| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110 |
- package platform.modules.government.service;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import platform.common.Constant;
- import platform.common.util.DateUtil;
- import platform.common.util.StringUtils;
- import platform.modules.company.dao.StockLandDao;
- import platform.modules.company.dto.StockLandStatistic;
- import platform.modules.government.entity.Street;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * 用地统计service
- */
- @Service
- @Transactional
- public class LandStatisticsService {
- @Autowired
- private StockLandDao stockLandDao;
- @Autowired
- private StreetService streetService;
- /**
- * @Author: huZhiHao
- * @Description: 获取待审核 审核中 已审核 统计
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getApproveStatusStatistic(String streetId) {
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetId(streetId, null);
- //创建待处理,处理中,已处理
- List<Map> pending = new ArrayList<>(), processing = new ArrayList<>(), processed = new ArrayList<>();
- //创建待处理具体
- Integer pendingCompany = 0, pendingStreet = 0;
- //创建处理中具体
- Integer processingLocalAudit = 0, processingDistribute = 0, processingComplianceAudit = 0, processingUnitedAudit = 0, processingGovernmentAudit = 0, processingHGXSCTG = 0;
- //创建已处理具体
- Integer processedPassed = 0, processedReject = 0, processedNotPass = 0;
- for (StockLandStatistic stockLand : stockLandList) {
- //待审核
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.LOCAL_AUDIT)
- && Objects.equals(stockLand.getApproval_round(), "1")
- && Objects.equals(stockLand.getApply_user_type(), Constant.UserType.STREET + "")) {
- //处于属地初审 轮次为1 申请人类型为街道
- pendingStreet++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.LOCAL_AUDIT)
- && Objects.equals(stockLand.getApproval_round(), "1")
- && Objects.equals(stockLand.getApply_user_type(), Constant.UserType.COMPANY + "")) {
- //处于属地初审 轮次为1 申请人类型为企业
- pendingCompany++;
- }
- //审核中
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.LOCAL_AUDIT)
- && !Objects.equals(stockLand.getApproval_round(), "1")) {
- //处于属地初审 轮次为2
- processingLocalAudit++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PENDING_DISTRIBUTE)) {
- //处于待分发
- processingDistribute++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.COMPLIANCE_AUDIT)) {
- //处于合规性审查
- processingComplianceAudit++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.UNITED_AUDIT)) {
- //处于联合评议
- processingUnitedAudit++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.GOVERNMENT_AUDIT)) {
- //处于区政府审核
- processingGovernmentAudit++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.HGXSCTG)) {
- //处于合规性审查汇总
- processingGovernmentAudit++;
- }
- //已审核
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //通过
- processedPassed++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- processedNotPass++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- processedReject++;
- }
- }
- Map<String, Object> temp;
- //装配待处理具体
- temp = new HashMap<>();
- temp.put("name", "企业申请");
- temp.put("value", pendingCompany);
- pending.add(temp);
- temp = new HashMap<>();
- temp.put("name", "街道代理");
- temp.put("value", pendingStreet);
- pending.add(temp);
- //装配处理中具体
- temp = new HashMap<>();
- temp.put("name", "属地初审");
- temp.put("value", processingLocalAudit);
- processing.add(temp);
- temp = new HashMap<>();
- temp.put("name", "待分发");
- temp.put("value", processingDistribute);
- processing.add(temp);
- temp = new HashMap<>();
- temp.put("name", "合规性审查");
- temp.put("value", processingComplianceAudit);
- processing.add(temp);
- temp = new HashMap<>();
- temp.put("name", "联合评议");
- temp.put("value", processingUnitedAudit);
- processing.add(temp);
- temp = new HashMap<>();
- temp.put("name", "区政府审核");
- temp.put("value", processingGovernmentAudit);
- processing.add(temp);
- temp = new HashMap<>();
- temp.put("name", "合规性审查汇总");
- temp.put("value", processingHGXSCTG);
- processing.add(temp);
- //装配已处理具体
- temp = new HashMap<>();
- temp.put("name", "通过");
- temp.put("value", processedPassed);
- processed.add(temp);
- temp = new HashMap<>();
- temp.put("name", "不通过");
- temp.put("value", processedNotPass);
- processed.add(temp);
- temp = new HashMap<>();
- temp.put("name", "退回");
- temp.put("value", processedReject);
- processed.add(temp);
- //最后装配一起返回
- Map<String, List> map = new HashMap<>();
- map.put("pending", pending);
- map.put("processing", processing);
- map.put("processed", processed);
- return map;
- }
- /**
- * @Author: huZhiHao
- * @Description: 获取月度分类统计
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getTypeStatistic(String streetId, String startTime, String endTime) {
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetIdAndTime(streetId, startTime, endTime);
- //创建 申请数量 退回数量 通过数量 不通过数量 列表
- List<Integer> apply = new ArrayList<>(), reject = new ArrayList<>(), pass = new ArrayList<>(), notPass = new ArrayList<>();
- //创建存量工业用地用途依法改变 申请数量 退回数量 通过数量 不通过数量
- Integer useChangeApplyNum = 0, useChangeRejectNum = 0, useChangePassNum = 0, useChangeNotPassNum = 0;
- //创建存量工业用地项目公司股权(结构)变更登记 退回数量 通过数量 不通过数量
- Integer equityStructureChangeApplyNum = 0, equityStructureChangeRejectNum = 0, equityStructureChangePassNum = 0, equityStructureChangeNotPassNum = 0;
- //创建存量工业用地不动产权权属转移登记 退回数量 通过数量 不通过数量
- Integer immovablesChangeApplyNum = 0, immovablesChangeRejectNum = 0, immovablesChangePassNum = 0, immovablesChangeNotPassNum = 0;
- //创建存量工业用地房屋出租 退回数量 通过数量 不通过数量
- Integer rentApplyNum = 0, rentRejectNum = 0, rentPassNum = 0, rentNotPassNum = 0;
- //创建X轴坐标名称
- List<String> xAxisName = new ArrayList<>();
- //创建通过率
- int rentPassRate, useChangePassRate, immovablesChangePassRate, equityStructureChangePassRate;
- for (StockLandStatistic stockLand : stockLandList) {
- if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.RENT)) {
- //存量工业用地房屋出租
- rentApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- rentPassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- rentNotPassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rentRejectNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.EQUITY_STRUCTURE_CHANGE)) {
- //存量工业用地项目公司股权(结构)变更登记
- equityStructureChangeApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- equityStructureChangePassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- equityStructureChangeNotPassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- equityStructureChangeRejectNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.IMMOVABLES_CHANGE)) {
- //存量工业用地不动产权权属转移登记
- immovablesChangeApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- immovablesChangePassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- immovablesChangeNotPassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- immovablesChangeRejectNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.USE_CHANGE)) {
- //存量工业用地用途依法改变
- useChangeApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- useChangePassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- useChangeNotPassNum++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- useChangeRejectNum++;
- }
- }
- }
- List<Map> listMap = new ArrayList<>();
- Map<String, Object> temp;
- //装配申请数量具体
- //存量工业用地房屋出租
- apply.add(rentApplyNum);
- //存量工业用地用途依法改变
- apply.add(useChangeApplyNum);
- //存量工业用地不动产权权属转移登记
- apply.add(immovablesChangeApplyNum);
- //存量工业用地项目公司股权(结构)变更登记
- apply.add(equityStructureChangeApplyNum);
- temp = new HashMap<>();
- temp.put("name", "申请数量");
- temp.put("type", "bar");
- temp.put("data", apply);
- listMap.add(temp);
- //存量工业用地房屋出租
- reject.add(rentRejectNum);
- //存量工业用地用途依法改变
- reject.add(useChangeRejectNum);
- //存量工业用地不动产权权属转移登记
- reject.add(immovablesChangeRejectNum);
- //存量工业用地项目公司股权(结构)变更登记
- reject.add(equityStructureChangeRejectNum);
- temp = new HashMap<>();
- temp.put("name", "退回数量");
- temp.put("type", "bar");
- temp.put("data", reject);
- listMap.add(temp);
- //存量工业用地房屋出租
- pass.add(rentPassNum);
- //存量工业用地用途依法改变
- pass.add(useChangePassNum);
- //存量工业用地不动产权权属转移登记
- pass.add(immovablesChangePassNum);
- //存量工业用地项目公司股权(结构)变更登记
- pass.add(equityStructureChangePassNum);
- temp = new HashMap<>();
- temp.put("name", "审核通过");
- temp.put("type", "bar");
- temp.put("data", pass);
- listMap.add(temp);
- //存量工业用地房屋出租
- notPass.add(rentNotPassNum);
- //存量工业用地用途依法改变
- notPass.add(useChangeNotPassNum);
- //存量工业用地不动产权权属转移登记
- notPass.add(immovablesChangeNotPassNum);
- //存量工业用地项目公司股权(结构)变更登记
- notPass.add(equityStructureChangeNotPassNum);
- temp = new HashMap<>();
- temp.put("name", "审核不通过");
- temp.put("type", "bar");
- temp.put("data", notPass);
- listMap.add(temp);
- rentPassRate = rentApplyNum == 0 ? 0 : rentPassNum * 100 / rentApplyNum;
- useChangePassRate = useChangeApplyNum == 0 ? 0 : useChangePassNum * 100 / useChangeApplyNum;
- immovablesChangePassRate = immovablesChangeApplyNum == 0 ? 0 : immovablesChangePassNum * 100 / immovablesChangeApplyNum;
- equityStructureChangePassRate = equityStructureChangeApplyNum == 0 ? 0 : equityStructureChangePassNum * 100 / equityStructureChangeApplyNum;
- xAxisName.add("存量工业用地房屋出租 \n\n通过率:" + rentPassRate + "%");
- xAxisName.add("存量工业用地用途依法改变 \n\n通过率:" + useChangePassRate + "%");
- xAxisName.add("存量工业用地不动产权权属转移登记 \n\n通过率:" + immovablesChangePassRate + "%");
- xAxisName.add("存量工业用地项目公司股权(结构)变更登记 \n\n通过率:" + equityStructureChangePassRate + "%");
- Map ret = new HashMap();
- ret.put("data", listMap);
- ret.put("xAxisName", xAxisName);
- return ret;
- }
- /**
- * @Author: huZhiHao
- * @Description: 获取月度审核结果对比
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getMonthlyApproveResult() {
- String[] timeMorning = new String[12];
- String[] timeEvening = new String[12];
- Date date1 = new Date();//获取当前时间
- String endTime = DateUtil.getTimeString(date1);
- List<Map> listMap = new ArrayList<>();
- //创建X轴坐标名称
- List<String> xAxisName = new ArrayList<>();
- try {
- for (int i = 0; i <= 11; i++) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date1);
- calendar.add(Calendar.MONTH, i - 11);//当前时间前去一个月,即一个月前的时间
- Date date2 = calendar.getTime();//获取一年前的时间,或者一个月前的时间
- String dateString = DateUtil.getTimeString(date2);
- String date_str = dateString.split(" ")[0];
- Calendar cale = Calendar.getInstance();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- cale.setTime(formatter.parse(date_str));
- cale.add(Calendar.MONTH, 0);
- cale.set(Calendar.DAY_OF_MONTH, 1);
- timeMorning[i] = formatter.format(cale.getTime()) + " 00:00:00"; // 当月第一天 2019-02-01
- cale.add(Calendar.MONTH, 1);
- cale.set(Calendar.DAY_OF_MONTH, 0);
- timeEvening[i] = formatter.format(cale.getTime()) + " 23:59:59"; // 当月最后一天 2019-02-28
- }
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetIdAndTime(null, timeMorning[0], endTime);
- //创建 通过 不通过 退回 数组
- int[] passNum = new int[12], notPassNum = new int[12], rejectNum = new int[12];
- for (int i = 0; i < 12; i++) {
- String[] timeArray = timeMorning[i].split("-");
- xAxisName.add(timeArray[0] + "年" + timeArray[1] + "月");
- for (StockLandStatistic stockLand : stockLandList) {
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- if (dateFormat.parse(timeMorning[i]).getTime() <= dateFormat.parse(stockLand.getCreate_time()).getTime()
- && dateFormat.parse(timeEvening[i]).getTime() >= dateFormat.parse(stockLand.getCreate_time()).getTime()) {
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- }
- }
- }
- }
- Map<String, Object> temp;
- temp = new HashMap<>();
- temp.put("name", "审核通过");
- temp.put("type", "bar");
- temp.put("stack", "group1");
- temp.put("data", passNum);
- listMap.add(temp);
- temp = new HashMap<>();
- temp.put("name", "审核不通过");
- temp.put("type", "bar");
- temp.put("stack", "group1");
- temp.put("data", notPassNum);
- listMap.add(temp);
- temp = new HashMap<>();
- temp.put("name", "审核退回");
- temp.put("type", "bar");
- temp.put("stack", "group1");
- temp.put("data", rejectNum);
- listMap.add(temp);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- Map ret = new HashMap();
- ret.put("data", listMap);
- ret.put("xAxisName", xAxisName);
- return ret;
- }
- /**
- * @Author: huZhiHao
- * @Description: 月度审核统计表
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getMonthlyApproveStatistic(String streetId, String startTime, String endTime) {
- try {
- /*计算日期*/
- String[] timeMorning = null;
- String[] timeEvening = null;
- Date date1 = new Date();//获取当前时间
- int mounthCount = 12;
- //如果未传开始结束时间 默认当前月前十二个月
- if (StringUtils.isEmpty(startTime) && StringUtils.isEmpty(endTime)) {
- mounthCount = 12;
- endTime = DateUtil.getTimeString(date1);
- } else if (StringUtils.isEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
- mounthCount = 12;
- date1 = DateUtil.parseTimeStringToDate(endTime, "yyyy-MM-dd");
- } else if (StringUtils.isNotEmpty(startTime) && StringUtils.isEmpty(endTime)) {
- Date startDate = DateUtil.parseTimeStringToDate(startTime, "yyyy-MM-dd");
- endTime = DateUtil.getTimeString(date1);
- Date endDate = DateUtil.parseTimeStringToDate(endTime, "yyyy-MM-dd");
- mounthCount = DateUtil.getMonthDiff(startDate, endDate);
- } else {
- Date startDate = DateUtil.parseTimeStringToDate(startTime, "yyyy-MM-dd");
- Date endDate = DateUtil.parseTimeStringToDate(endTime, "yyyy-MM-dd");
- date1 = DateUtil.parseTimeStringToDate(endTime, "yyyy-MM-dd");
- mounthCount = DateUtil.getMonthDiff(startDate, endDate);
- }
- timeMorning = new String[mounthCount];
- timeEvening = new String[mounthCount];
- for (int i = 0; i < mounthCount; i++) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date1);
- calendar.add(Calendar.MONTH, i - (mounthCount - 1));//当前时间前去一个月,即一个月前的时间
- Date date2 = calendar.getTime();//获取一年前的时间,或者一个月前的时间
- String dateString = DateUtil.getTimeString(date2);
- String date_str = dateString.split(" ")[0];
- Calendar cale = Calendar.getInstance();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- cale.setTime(formatter.parse(date_str));
- cale.add(Calendar.MONTH, 0);
- cale.set(Calendar.DAY_OF_MONTH, 1);
- timeMorning[i] = formatter.format(cale.getTime()) + " 00:00:00"; // 当月第一天
- cale.add(Calendar.MONTH, 1);
- cale.set(Calendar.DAY_OF_MONTH, 0);
- timeEvening[i] = formatter.format(cale.getTime()) + " 23:59:59"; // 当月最后一天
- }
- if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) {
- startTime = timeMorning[0];
- }
- /*计算日期*/
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetIdAndTime(streetId, startTime, endTime);
- Map<String, Object> map = null;
- List<Map> resultList = new ArrayList<>();
- //初始化统计值
- int rentApplyAmountNum = 0, rentPassAmountNum = 0, useChangeApplyAmountNum = 0, useChangePassAmountNum = 0, immovablesChangeApplyAmountNum = 0, immovablesChangePassAmountNum = 0,
- equityStructureChangeApplyAmountNum = 0, equityStructureChangePassAmountNum = 0, summaryProcedureApplyAmountNum = 0, summaryProcedurePassAmountNum = 0, totalApplyAmountNum = 0, totalPassAmountNum = 0;
- for (int i = 0; i < mounthCount; i++) {
- map = new HashMap<>();
- //行名称
- String[] timeArray = timeMorning[i].split("-");
- // stockLandMonthlyApproveStatistic.setRowName(timeArray[0] + "年" + timeArray[1] + "月");
- map.put("rowName", timeArray[0] + "年" + timeArray[1] + "月");
- //初始化统计值
- int rentApplyNum = 0, rentPassNum = 0, useChangeApplyNum = 0, useChangePassNum = 0, immovablesChangeApplyNum = 0, immovablesChangePassNum = 0,
- equityStructureChangeApplyNum = 0, equityStructureChangePassNum = 0, summaryProcedureApplyNum = 0, summaryProcedurePassNum = 0, totalApplyNum = 0, totalPassNum = 0;
- for (StockLandStatistic stockLand : stockLandList) {
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- if (dateFormat.parse(timeMorning[i]).getTime() <= dateFormat.parse(stockLand.getCreate_time()).getTime()
- && dateFormat.parse(timeEvening[i]).getTime() >= dateFormat.parse(stockLand.getCreate_time()).getTime()) {
- if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.RENT)) {
- //存量工业用地房屋出租
- totalApplyNum++;
- rentApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- totalPassNum++;
- rentPassNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.USE_CHANGE)) {
- //存量工业用地用途依法改变
- totalApplyNum++;
- useChangeApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- totalPassNum++;
- useChangePassNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.IMMOVABLES_CHANGE)) {
- //存量工业用地不动产权权属转移登记
- totalApplyNum++;
- immovablesChangeApplyNum++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- totalPassNum++;
- immovablesChangePassNum++;
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.EQUITY_STRUCTURE_CHANGE)) {
- //存量工业用地项目公司股权(结构)变更登记
- totalApplyNum++;
- equityStructureChangeApplyNum++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedureApplyNum++;
- }
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- totalPassNum++;
- equityStructureChangePassNum++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedurePassNum++;
- }
- }
- }
- }
- }
- rentApplyAmountNum += rentApplyNum;
- rentPassAmountNum += rentPassNum;
- useChangeApplyAmountNum += useChangeApplyNum;
- useChangePassAmountNum += useChangePassNum;
- immovablesChangeApplyAmountNum += immovablesChangeApplyNum;
- immovablesChangePassAmountNum += immovablesChangePassNum;
- equityStructureChangeApplyAmountNum += equityStructureChangeApplyNum;
- equityStructureChangePassAmountNum += equityStructureChangePassNum;
- summaryProcedureApplyAmountNum += summaryProcedureApplyNum;
- summaryProcedurePassAmountNum += summaryProcedurePassNum;
- totalApplyAmountNum += totalApplyNum;
- totalPassAmountNum += totalPassNum;
- map.put("rentApplyNum", rentApplyNum);
- map.put("rentPassNum", rentPassNum);
- map.put("rentPassRate", rentApplyNum == 0 ? 0 : rentPassNum * 100 / rentApplyNum);
- map.put("useChangeApplyNum", useChangeApplyNum);
- map.put("useChangePassNum", useChangePassNum);
- map.put("useChangePassRate", useChangeApplyNum == 0 ? 0 : useChangePassNum * 100 / useChangeApplyNum);
- map.put("immovablesChangeApplyNum", immovablesChangeApplyNum);
- map.put("immovablesChangePassNum", immovablesChangePassNum);
- map.put("immovablesChangePassRate", immovablesChangeApplyNum == 0 ? 0 : immovablesChangePassNum * 100 / immovablesChangeApplyNum);
- map.put("equityStructureChangeApplyNum", equityStructureChangeApplyNum + "(" + summaryProcedureApplyNum + ")");
- map.put("equityStructureChangePassNum", equityStructureChangePassNum + "(" + summaryProcedurePassNum + ")");
- map.put("equityStructureChangePassRate",
- (equityStructureChangeApplyNum == 0 ? 0 : equityStructureChangePassNum * 100 / equityStructureChangeApplyNum)
- + "%(" + (summaryProcedureApplyNum == 0 ? 0 : summaryProcedurePassNum * 100 / summaryProcedureApplyNum) + "%)"
- );
- map.put("totalApplyNum", totalApplyNum);
- map.put("totalPassNum", totalPassNum);
- map.put("totalPassRate", totalApplyNum == 0 ? 0 : totalPassNum * 100 / totalApplyNum);
- resultList.add(map);
- }
- map = new HashMap<>();
- map.put("rowName", "合计");
- map.put("rentApplyNum", rentApplyAmountNum);
- map.put("rentPassNum", rentPassAmountNum);
- map.put("rentPassRate", rentApplyAmountNum == 0 ? 0 : rentPassAmountNum * 100 / rentApplyAmountNum);
- map.put("useChangeApplyNum", useChangeApplyAmountNum);
- map.put("useChangePassNum", useChangePassAmountNum);
- map.put("useChangePassRate", useChangeApplyAmountNum == 0 ? 0 : useChangePassAmountNum * 100 / useChangeApplyAmountNum);
- map.put("immovablesChangeApplyNum", immovablesChangeApplyAmountNum);
- map.put("immovablesChangePassNum", immovablesChangePassAmountNum);
- map.put("immovablesChangePassRate", immovablesChangeApplyAmountNum == 0 ? 0 : immovablesChangePassAmountNum * 100 / immovablesChangeApplyAmountNum);
- map.put("equityStructureChangeApplyNum", equityStructureChangeApplyAmountNum + "(" + summaryProcedureApplyAmountNum + ")");
- map.put("equityStructureChangePassNum", equityStructureChangePassAmountNum + "(" + summaryProcedurePassAmountNum + ")");
- map.put("equityStructureChangePassRate",
- (equityStructureChangeApplyAmountNum == 0 ? 0 : equityStructureChangePassAmountNum * 100 / equityStructureChangeApplyAmountNum)
- + "%(" + (summaryProcedureApplyAmountNum == 0 ? 0 : summaryProcedurePassAmountNum * 100 / summaryProcedureApplyAmountNum) + "%)"
- );
- map.put("totalApplyNum", totalApplyAmountNum);
- map.put("totalPassNum", totalPassAmountNum);
- map.put("totalPassRate", totalApplyAmountNum == 0 ? 0 : totalPassAmountNum * 100 / totalApplyAmountNum);
- resultList.add(map);
- return resultList;
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * @Author: huZhiHao
- * @Description: 板块统计表
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getPlateStatistic(String startTime, String endTime) {
- //所有街道列表
- List<Street> streetList = streetService.findList();
- int[] rentApplyNum = new int[streetList.size() + 1], rentRejectNum = new int[streetList.size() + 1], rentPassNum = new int[streetList.size() + 1], rentNotPassNum = new int[streetList.size() + 1], rentPassRate = new int[streetList.size() + 1];
- int[] useChangeApplyNum = new int[streetList.size() + 1], useChangeRejectNum = new int[streetList.size() + 1], useChangePassNum = new int[streetList.size() + 1], useChangeNotPassNum = new int[streetList.size() + 1], useChangePassRate = new int[streetList.size() + 1];
- int[] immovablesChangeApplyNum = new int[streetList.size() + 1], immovablesChangeRejectNum = new int[streetList.size() + 1], immovablesChangePassNum = new int[streetList.size() + 1], immovablesChangeNotPassNum = new int[streetList.size() + 1], immovablesChangePassRate = new int[streetList.size() + 1];
- int[] equityStructureChangeApplyNum = new int[streetList.size() + 1], equityStructureChangeRejectNum = new int[streetList.size() + 1], equityStructureChangePassNum = new int[streetList.size() + 1], equityStructureChangeNotPassNum = new int[streetList.size() + 1], equityStructureChangePassRate = new int[streetList.size() + 1];
- int[] summaryProcedureApplyNum = new int[streetList.size() + 1], summaryProcedurePassNum = new int[streetList.size() + 1], summaryProcedureNotPassNum = new int[streetList.size() + 1], summaryProcedureRejectNum = new int[streetList.size() + 1], summaryProcedurePassRate = new int[streetList.size() + 1];
- int[] applyNum = new int[streetList.size() + 1], rejectNum = new int[streetList.size() + 1], passNum = new int[streetList.size() + 1], notPassNum = new int[streetList.size() + 1], passRate = new int[streetList.size() + 1];
- String[] equityStructureChangeApplyNumStr = new String[streetList.size() + 1], equityStructureChangeRejectNumStr = new String[streetList.size() + 1], equityStructureChangePassNumStr = new String[streetList.size() + 1], equityStructureChangeNotPassNumStr = new String[streetList.size() + 1], equityStructureChangePassRateStr = new String[streetList.size() + 1];
- //存量用地信息
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetIdAndTime(null, startTime, endTime);
- for (StockLandStatistic stockLand : stockLandList) {
- if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.RENT)) {
- //存量工业用地房屋出租
- for (int i = 0; i < streetList.size(); i++) {
- //判断是哪个街道
- if (Objects.equals(stockLand.getStreet_id(), streetList.get(i).getId().toString())) {
- applyNum[i]++;
- rentApplyNum[i]++;
- applyNum[streetList.size()]++;
- rentApplyNum[streetList.size()]++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- rentPassNum[i]++;
- passNum[streetList.size()]++;
- rentPassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- rentNotPassNum[i]++;
- notPassNum[streetList.size()]++;
- rentNotPassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- rentRejectNum[i]++;
- rejectNum[streetList.size()]++;
- rentRejectNum[streetList.size()]++;
- }
- }
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.USE_CHANGE)) {
- //存量工业用地用途依法改变
- for (int i = 0; i < streetList.size(); i++) {
- //判断是哪个街道
- if (Objects.equals(stockLand.getStreet_id(), streetList.get(i).getId().toString())) {
- applyNum[i]++;
- useChangeApplyNum[i]++;
- applyNum[streetList.size()]++;
- useChangeApplyNum[streetList.size()]++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- useChangePassNum[i]++;
- passNum[streetList.size()]++;
- useChangePassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- useChangeNotPassNum[i]++;
- notPassNum[streetList.size()]++;
- useChangeNotPassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- useChangeRejectNum[i]++;
- rejectNum[streetList.size()]++;
- useChangeRejectNum[streetList.size()]++;
- }
- }
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.IMMOVABLES_CHANGE)) {
- //存量工业用地不动产权权属转移登记
- for (int i = 0; i < streetList.size(); i++) {
- //判断是哪个街道
- if (Objects.equals(stockLand.getStreet_id(), streetList.get(i).getId().toString())) {
- applyNum[i]++;
- immovablesChangeApplyNum[i]++;
- applyNum[streetList.size()]++;
- immovablesChangeApplyNum[streetList.size()]++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- immovablesChangePassNum[i]++;
- passNum[streetList.size()]++;
- immovablesChangePassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- immovablesChangeNotPassNum[i]++;
- notPassNum[streetList.size()]++;
- immovablesChangeNotPassNum[streetList.size()]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- immovablesChangeRejectNum[i]++;
- rejectNum[streetList.size()]++;
- immovablesChangeRejectNum[streetList.size()]++;
- }
- }
- }
- } else if (Objects.equals(stockLand.getApply_type(), Constant.LandApplyType.EQUITY_STRUCTURE_CHANGE)) {
- //存量工业用地项目公司股权(结构)变更登记
- for (int i = 0; i < streetList.size(); i++) {
- //判断是哪个街道
- if (Objects.equals(stockLand.getStreet_id(), streetList.get(i).getId().toString())) {
- applyNum[i]++;
- equityStructureChangeApplyNum[i]++;
- applyNum[streetList.size()]++;
- equityStructureChangeApplyNum[streetList.size()]++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedureApplyNum[i]++;
- summaryProcedureApplyNum[streetList.size()]++;
- }
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- equityStructureChangePassNum[i]++;
- passNum[streetList.size()]++;
- equityStructureChangePassNum[streetList.size()]++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedurePassNum[i]++;
- summaryProcedurePassNum[streetList.size()]++;
- }
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- equityStructureChangeNotPassNum[i]++;
- notPassNum[streetList.size()]++;
- equityStructureChangeNotPassNum[streetList.size()]++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedureNotPassNum[i]++;
- summaryProcedureNotPassNum[streetList.size()]++;
- }
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- equityStructureChangeRejectNum[i]++;
- rejectNum[streetList.size()]++;
- equityStructureChangeRejectNum[streetList.size()]++;
- //是否简易流程
- if (StringUtils.isNotEmpty(stockLand.getSummary_procedure())) {
- summaryProcedureRejectNum[i]++;
- summaryProcedureRejectNum[streetList.size()]++;
- }
- }
- }
- }
- }
- }
- Map map = new HashMap();
- List<Map> applyResultList = new ArrayList<>();
- List<Map> passResultList = new ArrayList<>();
- List<Map> notPassResultList = new ArrayList<>();
- List<Map> rejectResultList = new ArrayList<>();
- List<Map> passRateResultList = new ArrayList<>();
- /*提交数量*/
- Map rentApplyNumMap = new HashMap();
- rentApplyNumMap.put("name", "存量工业用地房屋出租");
- rentApplyNumMap.put("streetNum", rentApplyNum);
- Map useChangeApplyNumMap = new HashMap();
- useChangeApplyNumMap.put("name", "存量工业用地用途依法改变");
- useChangeApplyNumMap.put("streetNum", useChangeApplyNum);
- Map immovablesChangeApplyNumMap = new HashMap();
- immovablesChangeApplyNumMap.put("name", "存量工业用地不动产权权属转移登记");
- immovablesChangeApplyNumMap.put("streetNum", immovablesChangeApplyNum);
- Map equityStructureChangeApplyNumMap = new HashMap();
- equityStructureChangeApplyNumMap.put("name", "存量工业用地项目公司股权(结构)变更登记");
- equityStructureChangeApplyNumMap.put("streetNum", equityStructureChangeApplyNumStr);
- applyResultList.add(rentApplyNumMap);
- applyResultList.add(useChangeApplyNumMap);
- applyResultList.add(immovablesChangeApplyNumMap);
- applyResultList.add(equityStructureChangeApplyNumMap);
- Map applyNumMap = new HashMap();
- applyNumMap.put("name", "提交数量");
- applyNumMap.put("num", applyNum);
- applyNumMap.put("type", applyResultList);
- /*提交数量*/
- /*退回数量*/
- Map rentRejectNumMap = new HashMap();
- rentRejectNumMap.put("name", "存量工业用地房屋出租");
- rentRejectNumMap.put("streetNum", rentRejectNum);
- Map useChangeRejectNumMap = new HashMap();
- useChangeRejectNumMap.put("name", "存量工业用地用途依法改变");
- useChangeRejectNumMap.put("streetNum", useChangeRejectNum);
- Map immovablesChangeRejectNumMap = new HashMap();
- immovablesChangeRejectNumMap.put("name", "存量工业用地不动产权权属转移登记");
- immovablesChangeRejectNumMap.put("streetNum", immovablesChangeRejectNum);
- Map equityStructureChangeRejectNumMap = new HashMap();
- equityStructureChangeRejectNumMap.put("name", "存量工业用地项目公司股权(结构)变更登记");
- equityStructureChangeRejectNumMap.put("streetNum", equityStructureChangeRejectNumStr);
- rejectResultList.add(rentRejectNumMap);
- rejectResultList.add(useChangeRejectNumMap);
- rejectResultList.add(immovablesChangeRejectNumMap);
- rejectResultList.add(equityStructureChangeRejectNumMap);
- Map rejectNumMap = new HashMap();
- rejectNumMap.put("name", "退回数量");
- rejectNumMap.put("num", rejectNum);
- rejectNumMap.put("type", rejectResultList);
- /*退回数量*/
- /*通过数量*/
- Map rentPassNumMap = new HashMap();
- rentPassNumMap.put("name", "存量工业用地房屋出租");
- rentPassNumMap.put("streetNum", rentPassNum);
- Map useChangePassNumMap = new HashMap();
- useChangePassNumMap.put("name", "存量工业用地用途依法改变");
- useChangePassNumMap.put("streetNum", useChangePassNum);
- Map immovablesChangePassNumMap = new HashMap();
- immovablesChangePassNumMap.put("name", "存量工业用地不动产权权属转移登记");
- immovablesChangePassNumMap.put("streetNum", immovablesChangePassNum);
- Map equityStructureChangePassNumMap = new HashMap();
- equityStructureChangePassNumMap.put("name", "存量工业用地项目公司股权(结构)变更登记");
- equityStructureChangePassNumMap.put("streetNum", equityStructureChangePassNumStr);
- passResultList.add(rentPassNumMap);
- passResultList.add(useChangePassNumMap);
- passResultList.add(immovablesChangePassNumMap);
- passResultList.add(equityStructureChangePassNumMap);
- Map passNumMap = new HashMap();
- passNumMap.put("name", "通过数量");
- passNumMap.put("num", passNum);
- passNumMap.put("type", passResultList);
- /*通过数量*/
- /*不通过数量*/
- Map rentNotPassNumMap = new HashMap();
- rentNotPassNumMap.put("name", "存量工业用地房屋出租");
- rentNotPassNumMap.put("streetNum", rentNotPassNum);
- Map useChangeNotPassNumMap = new HashMap();
- useChangeNotPassNumMap.put("name", "存量工业用地用途依法改变");
- useChangeNotPassNumMap.put("streetNum", useChangeNotPassNum);
- Map immovablesChangeNotPassNumMap = new HashMap();
- immovablesChangeNotPassNumMap.put("name", "存量工业用地不动产权权属转移登记");
- immovablesChangeNotPassNumMap.put("streetNum", immovablesChangeNotPassNum);
- Map equityStructureChangeNotPassNumMap = new HashMap();
- equityStructureChangeNotPassNumMap.put("name", "存量工业用地项目公司股权(结构)变更登记");
- equityStructureChangeNotPassNumMap.put("streetNum", equityStructureChangeNotPassNumStr);
- notPassResultList.add(rentNotPassNumMap);
- notPassResultList.add(useChangeNotPassNumMap);
- notPassResultList.add(immovablesChangeNotPassNumMap);
- notPassResultList.add(equityStructureChangeNotPassNumMap);
- Map notPassNumMap = new HashMap();
- notPassNumMap.put("name", "不通过数量");
- notPassNumMap.put("num", notPassNum);
- notPassNumMap.put("type", notPassResultList);
- /*不通过数量*/
- /*通过率*/
- for (int i = 0; i <= streetList.size(); i++) {
- rentPassRate[i] = rentApplyNum[i] == 0 ? 0 : rentPassNum[i] * 100 / rentApplyNum[i];
- useChangePassRate[i] = useChangeApplyNum[i] == 0 ? 0 : useChangePassNum[i] * 100 / useChangeApplyNum[i];
- immovablesChangePassRate[i] = immovablesChangeApplyNum[i] == 0 ? 0 : immovablesChangePassNum[i] * 100 / immovablesChangeApplyNum[i];
- equityStructureChangePassRate[i] = equityStructureChangeApplyNum[i] == 0 ? 0 : equityStructureChangePassNum[i] * 100 / equityStructureChangeApplyNum[i];
- summaryProcedurePassRate[i] = summaryProcedureApplyNum[i] == 0 ? 0 : summaryProcedurePassNum[i] * 100 / summaryProcedureApplyNum[i];
- passRate[i] = applyNum[i] == 0 ? 0 : passNum[i] * 100 / applyNum[i];
- equityStructureChangeApplyNumStr[i] = equityStructureChangeApplyNum[i] + "(" + summaryProcedureApplyNum[i] + ")";
- equityStructureChangePassNumStr[i] = equityStructureChangePassNum[i] + "(" + summaryProcedurePassNum[i] + ")";
- equityStructureChangeNotPassNumStr[i] = equityStructureChangeNotPassNum[i] + "(" + summaryProcedureNotPassNum[i] + ")";
- equityStructureChangeRejectNumStr[i] = equityStructureChangeRejectNum[i] + "(" + summaryProcedureRejectNum[i] + ")";
- equityStructureChangePassRateStr[i] = equityStructureChangePassRate[i] + "%(" + summaryProcedurePassRate[i] + "%)";
- }
- Map rentPassRateNumMap = new HashMap();
- rentPassRateNumMap.put("name", "存量工业用地房屋出租");
- rentPassRateNumMap.put("streetNum", rentPassRate);
- Map useChangePassRateNumMap = new HashMap();
- useChangePassRateNumMap.put("name", "存量工业用地用途依法改变");
- useChangePassRateNumMap.put("streetNum", useChangePassRate);
- Map immovablesChangePassRateNumMap = new HashMap();
- immovablesChangePassRateNumMap.put("name", "存量工业用地不动产权权属转移登记");
- immovablesChangePassRateNumMap.put("streetNum", immovablesChangePassRate);
- Map equityStructureChangePassRateNumMap = new HashMap();
- equityStructureChangePassRateNumMap.put("name", "存量工业用地项目公司股权(结构)变更登记");
- equityStructureChangePassRateNumMap.put("streetNum", equityStructureChangePassRateStr);
- passRateResultList.add(rentPassRateNumMap);
- passRateResultList.add(useChangePassRateNumMap);
- passRateResultList.add(immovablesChangePassRateNumMap);
- passRateResultList.add(equityStructureChangePassRateNumMap);
- Map passRateMap = new HashMap();
- passRateMap.put("name", "通过率");
- passRateMap.put("num", passRate);
- passRateMap.put("type", passRateResultList);
- /*通过率*/
- List<Map> data = new ArrayList<>();
- data.add(applyNumMap);
- data.add(rejectNumMap);
- data.add(passNumMap);
- data.add(notPassNumMap);
- data.add(passRateMap);
- map.put("data", data);
- Street street1 = new Street();
- street1.setName(" ");
- Street street2 = new Street();
- street2.setName("合计");
- streetList.add(0, street1);
- streetList.add(street2);
- map.put("head", streetList);
- return map;
- }
- /**
- * @Author: huZhiHao
- * @Description: 每日统计表
- * @Date: 2020/1/13
- * @Params:
- * @Return:
- **/
- public Object getDailyStatistic(String streetId, String startTime, String endTime) throws ParseException {
- List<String> days = getDaysBetweenTwoDay(startTime, endTime);
- int mounthCount = days.size();
- String[] timeMorning = new String[mounthCount];
- String[] timeEvening = new String[mounthCount];
- List<Map> listMap = new ArrayList<>();
- //创建X轴坐标名称
- List<String> xAxisName = new ArrayList<>();
- for (int i = 0; i < mounthCount; i++) {
- timeMorning[i] = days.get(i) + " 00:00:00";
- timeEvening[i] = days.get(i) + " 23:59:59";
- }
- /*计算日期*/
- startTime = startTime + " 00:00:00";
- endTime = endTime + " 23:59:59";
- List<StockLandStatistic> stockLandList = stockLandDao.findListByStreetIdAndTime(streetId, startTime, endTime);
- //创建 通过 不通过 退回 数组
- int[] applyNum = new int[mounthCount], passNum = new int[mounthCount], notPassNum = new int[mounthCount], rejectNum = new int[mounthCount];
- for (int i = 0; i < mounthCount; i++) {
- String[] timeArray = timeMorning[i].split(" ")[0].split("-");
- xAxisName.add(timeArray[1] + "月" + timeArray[2] + "日");
- for (StockLandStatistic stockLand : stockLandList) {
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- if (dateFormat.parse(timeMorning[i]).getTime() <= dateFormat.parse(stockLand.getCreate_time()).getTime()
- && dateFormat.parse(timeEvening[i]).getTime() >= dateFormat.parse(stockLand.getCreate_time()).getTime()) {
- applyNum[i]++;
- if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.PASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTPASSED)
- || Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.APPROVED)) {
- //通过
- passNum[i]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.NOTAPPROVED)) {
- //不通过
- notPassNum[i]++;
- } else if (Objects.equals(stockLand.getApprove_status(), Constant.LandApproveStatus.REJECT)) {
- //退回
- rejectNum[i]++;
- }
- }
- }
- }
- Map<String, Object> temp;
- temp = new HashMap<>();
- temp.put("name", "提交数量");
- temp.put("type", "line");
- temp.put("data", applyNum);
- listMap.add(temp);
- temp = new HashMap<>();
- temp.put("name", "审核通过");
- temp.put("type", "line");
- temp.put("data", passNum);
- listMap.add(temp);
- temp = new HashMap<>();
- temp.put("name", "审核不通过");
- temp.put("type", "line");
- temp.put("data", notPassNum);
- listMap.add(temp);
- temp = new HashMap<>();
- temp.put("name", "审核退回");
- temp.put("type", "line");
- temp.put("data", rejectNum);
- listMap.add(temp);
- Map ret = new HashMap();
- ret.put("data", listMap);
- ret.put("xAxisName", xAxisName);
- return ret;
- }
- //取一段时间的每一天
- public static List<String> getDaysBetweenTwoDay(String dateStart, String dateEnd) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- List<String> dateList = new ArrayList<String>();
- try {
- Date dateOne = sdf.parse(dateStart);
- Date dateTwo = sdf.parse(dateEnd);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(dateOne);
- dateList.add(dateStart);
- while (calendar.getTime().before(dateTwo)) { //倒序时间,顺序after改before其他相应的改动。
- calendar.add(Calendar.DAY_OF_MONTH, 1);
- dateList.add(sdf.format(calendar.getTime()));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return dateList;
- }
- }
|