diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 5673e1662..2bbf14a84 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -35,13 +35,16 @@ import com.jero.modules.cert.template.entity.ParamsTemplateEO; import com.jero.modules.cert.template.enums.ControlTypeEnum; import com.jero.modules.cert.template.service.IParamsInfoPublishEOService; import com.jero.modules.cert.template.service.IParamsTemplateEOService; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.project.service.IProjectUserPermissionService; +import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.mapper.SysDictMapper; +import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import org.apache.commons.collections4.CollectionUtils; @@ -125,6 +128,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl getStatisticsForProjectDetails(String paramsManifestId, String cut) { - // 查询所有责任领域 - List dutyTerritoryDictList = sysDictMapper.queryDictItemsByCode("duty_territory"); + List sysDictItems = this.sysDictItemService.selectItemsAll(); + Map> firstLevelDutyTerritoryMap = this.sysDictItemService.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); Map result = new LinkedHashMap<>(); List dutyTerritoryNameList = new LinkedList<>(); @@ -898,60 +904,122 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl> listAll = paramsCollectManifestEOMapper.listInfoForExport(paramsCollectManifestEO, null); - // 循环责任领域,计算每个责任领域中的四种状态数据 - for (DictModel item : dutyTerritoryDictList) { + if(ObjectUtil.isNotEmpty(firstLevelDutyTerritoryMap)){ + for (Map.Entry> dutyTerritoryMap : firstLevelDutyTerritoryMap.entrySet()) { + String firstLevelDutyTerritory = dutyTerritoryMap.getKey(); + List dutyTerritoryList = dutyTerritoryMap.getValue(); + if(StringUtils.isEmpty(firstLevelDutyTerritory) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } - // 计算数量 - double notStartNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state")) + double notStartNumber = 0; + double collectingNumber = 0; + double submitNumber = 0; + double syncReportNumber = 0; + + for (SysDictItem dictItem : dutyTerritoryList) { + // 计算数量 + notStartNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state")) || CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state")) - || CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory"))) - .count(); // 未开始的参数项 数量 + || CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory"))) + .count(); // 未开始的参数项 数量 - double collectingNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state")) + collectingNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state")) || CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.get("state")) || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.get("state")) - || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory"))) - .count(); // 收集中的参数项 数量 + || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory"))) + .count(); // 收集中的参数项 数量 - double submitNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory"))) - .count(); // 已提交的参数项 数量 + submitNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory"))) + .count(); // 已提交的参数项 数量 - double syncReportNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory"))) - .count(); // 已同步上报库的参数项 数量 + syncReportNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory"))) + .count(); // 已同步上报库的参数项 数量 + } - // 计算百分比 - double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数 - String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比 - String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比 - String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比 - String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比 + // 计算百分比 + double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数 + String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比 + String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比 + String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比 + String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比 - // 累加 - totalAll += total; - notStartTotal += notStartNumber; - collectingTotal += collectingNumber; - submitTotal += submitNumber; - syncReportTotal += syncReportNumber; + // 累加 + totalAll += total; + notStartTotal += notStartNumber; + collectingTotal += collectingNumber; + submitTotal += submitNumber; + syncReportTotal += syncReportNumber; + // 组装数据 返回前端 + if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) { + continue; + } + getData(notStartList, notStartNumber, notStartPercent); + getData(collectingList, collectingNumber, collectingPercent); + getData(submitList, submitNumber, submitPercent); + getData(syncReportList, syncReportNumber, syncReportPercent); - // 组装数据 返回前端 - if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) { - continue; + dutyTerritoryNameList.add(firstLevelDutyTerritory); } - - if (CutEnum.EN.getValue().equals(cut)) { - dutyTerritoryNameList.add(item.getTextEn()); - } else { - dutyTerritoryNameList.add(item.getText()); - } - - getData(notStartList, notStartNumber, notStartPercent); - getData(collectingList, collectingNumber, collectingPercent); - getData(submitList, submitNumber, submitPercent); - getData(syncReportList, syncReportNumber, syncReportPercent); - } +// // 查询所有责任领域 +// List dutyTerritoryDictList = sysDictMapper.queryDictItemsByCode("duty_territory"); +// // 循环责任领域,计算每个责任领域中的四种状态数据 +// for (DictModel item : dutyTerritoryDictList) { +// +// // 计算数量 +// double notStartNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state")) +// || CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state")) +// || CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory"))) +// .count(); // 未开始的参数项 数量 +// +// double collectingNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state")) +// || CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.get("state")) +// || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.get("state")) +// || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory"))) +// .count(); // 收集中的参数项 数量 +// +// double submitNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory"))) +// .count(); // 已提交的参数项 数量 +// +// double syncReportNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory"))) +// .count(); // 已同步上报库的参数项 数量 +// +// // 计算百分比 +// double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数 +// String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比 +// String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比 +// String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比 +// String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比 +// +// // 累加 +// totalAll += total; +// notStartTotal += notStartNumber; +// collectingTotal += collectingNumber; +// submitTotal += submitNumber; +// syncReportTotal += syncReportNumber; +// +// +// // 组装数据 返回前端 +// if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) { +// continue; +// } +// +// if (CutEnum.EN.getValue().equals(cut)) { +// dutyTerritoryNameList.add(item.getTextEn()); +// } else { +// dutyTerritoryNameList.add(item.getText()); +// } +// +// getData(notStartList, notStartNumber, notStartPercent); +// getData(collectingList, collectingNumber, collectingPercent); +// getData(submitList, submitNumber, submitPercent); +// getData(syncReportList, syncReportNumber, syncReportPercent); +// +// } + // 设置全部 if (CutEnum.EN.getValue().equals(cut)) { dutyTerritoryNameList.add(0, "All");