diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index 2d9e849f9..01139f7ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -140,7 +140,7 @@ SELECT * from params_collect_manifest pcm LEFT JOIN params_manifest pm ON pm.id = pcm.params_manifest_id WHERE pm.project_id = #{projectId} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjSjxtbhServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjSjxtbhServiceImpl.java index 52b8714bc..0f425e829 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjSjxtbhServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjSjxtbhServiceImpl.java @@ -353,7 +353,7 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl pcmQueryWrap = new QueryWrapper<>(); pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmIdList); List pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap); + pcmEoList = pcmEoList.stream().filter(pcmEo -> !StringUtils.equals(pcmEo.getControlType(),ControlTypeEnum.Title.getValue())).collect(Collectors.toList()); List sysDictItems = new ArrayList<>(); String pcmDutyTerritoryStr = pcmEoList.stream().map(ParamsCollectManifestEO::getDutyTerritory).collect(Collectors.joining(",")); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index 63a5cde6b..bc204e2b7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.cert.collect.entity.ParamsManifestEO; import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; import com.jero.modules.cert.collect.service.IParamsManifestEOService; +import com.jero.modules.cert.template.enums.ControlTypeEnum; import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.*; import com.jero.modules.project.mapper.ProjectUserPermissionMapper; @@ -578,6 +579,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService List pmEoList = this.paramsManifestEOService.list(); log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime)); List pcmEoList = this.paramsCollectManifestEOService.getList(null); + pcmEoList = pcmEoList.stream().filter(pcmEo -> !StringUtils.equals(pcmEo.getControlType(), ControlTypeEnum.Title.getValue())).collect(Collectors.toList());; log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime)); @@ -593,10 +595,11 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService // 多线程代码 // 创建线程一 List finalPlbEoList = plbEoList; + List finalPcmEoList = pcmEoList; Thread thread1 = new Thread(new Runnable() { @Override public void run() { - exportCrossProjectProgressSetData(finalPlbEoList, corssProjectProgressSheet,pliEoList,pciEoList,pmEoList,pcmEoList,projectLibraryBase,ptpEoList); + exportCrossProjectProgressSetData(finalPlbEoList, corssProjectProgressSheet,pliEoList,pciEoList,pmEoList, finalPcmEoList,projectLibraryBase,ptpEoList); } }); @@ -604,7 +607,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService Thread thread2 = new Thread(new Runnable() { @Override public void run() { - exportOverviewCrossProjectProgressSetData(finalPlbEoList, overviewCrossProjectProgressSheet,pliEoList,pciEoList,pmEoList,pcmEoList,projectLibraryBase,ptpEoList,cellStyleTitle); + exportOverviewCrossProjectProgressSetData(finalPlbEoList, overviewCrossProjectProgressSheet,pliEoList,pciEoList,pmEoList,finalPcmEoList,projectLibraryBase,ptpEoList,cellStyleTitle); } }); @@ -773,6 +776,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService List pcmEoList, ProjectLibraryBase projectLibraryBase, List ptpEoList) { + CellStyle style = sheet.getWorkbook().createCellStyle(); + style.setDataFormat(sheet.getWorkbook().createDataFormat().getFormat("0.00%")); // 将格式设置为百分比(保留两位小数) int dataIndex = 2; for (ProjectLibraryBase plbEo : plbEoList) { long startTime = System.currentTimeMillis(); @@ -821,7 +826,12 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(3).setCellValue(fgrqqrToBeConfirmed); dataRow.createCell(4).setCellValue(fgrqqrAccept); dataRow.createCell(5).setCellValue(fgrqqrRefuse); - dataRow.createCell(6).setCellValue(fgrqqrPercentage); + + Cell cell = dataRow.createCell(6); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(fgrqqrPercentage.replace("%",""))/100); + dataRow.createCell(7).setCellValue(legalTaskConfirmationStr); Map designMap = this.projectLawsInventoryEOService.groupByDesignStatus(pliEos); @@ -844,7 +854,10 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(13).setCellValue(designToBeTracked); dataRow.createCell(14).setCellValue(designNotInvolved); dataRow.createCell(15).setCellValue(designTaskTermination); - dataRow.createCell(16).setCellValue(designPercentage); + cell = dataRow.createCell(16); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(designPercentage.replace("%",""))/100); dataRow.createCell(17).setCellValue(designDeadlineStr); Map verifyMap = this.projectLawsInventoryEOService.groupByVerifyStatus(pliEos); @@ -867,7 +880,10 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(23).setCellValue(verifyToBeTracked); dataRow.createCell(24).setCellValue(verifyNotInvolved); dataRow.createCell(25).setCellValue(verifyTaskTermination); - dataRow.createCell(26).setCellValue(verifyPercentage); + cell = dataRow.createCell(26); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(verifyPercentage.replace("%",""))/100); dataRow.createCell(27).setCellValue(verifyDeadlineStr); List pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); @@ -884,7 +900,10 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(30).setCellValue(rzRqqrToBeConfirmed); dataRow.createCell(31).setCellValue(rzRqqrAccept); dataRow.createCell(32).setCellValue(rzRqqrRefuse); - dataRow.createCell(33).setCellValue(rzRqqrPercentage); + cell = dataRow.createCell(33); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(rzRqqrPercentage.replace("%",""))/100); dataRow.createCell(34).setCellValue(legalTaskConfirmationStr); Map preHomoMap = this.projectCertificationInventoryEOService.groupByPreHomoStatus(pciEos); @@ -900,7 +919,10 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(37).setCellValue(preHomoToBeReviewedCount); dataRow.createCell(38).setCellValue(preHomoAccept); dataRow.createCell(39).setCellValue(preHomoRefuse); - dataRow.createCell(40).setCellValue(preHomoPercentage); + cell = dataRow.createCell(40); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(preHomoPercentage.replace("%",""))/100); dataRow.createCell(41).setCellValue(attestationStartTimeStr); Map certificationProgressMap = this.projectCertificationInventoryEOService.groupByCertificationProgress(pciEos); @@ -921,7 +943,10 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService dataRow.createCell(46).setCellValue(certificationProgressNotSubmitCount); dataRow.createCell(47).setCellValue(certificationProgressReportSubmitCount); dataRow.createCell(48).setCellValue(certificationProgressStoredCount); - dataRow.createCell(49).setCellValue(certificationProgressPercentage); + cell = dataRow.createCell(49); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(certificationProgressPercentage.replace("%",""))/100); dataRow.createCell(50).setCellValue(certificationSubmissionStr); @@ -959,14 +984,17 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService syncReporAmount = (double) syncReporMap.get("amount"); double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount; - double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100; + double parameterCollectingPercentage = ((submitAmount + syncReporAmount) / parameterCollectingCount) * 100; parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) : "0"; } dataRow.createCell(51).setCellValue(notStartAmount); dataRow.createCell(52).setCellValue(collectingAmount); dataRow.createCell(53).setCellValue(submitAmount); dataRow.createCell(54).setCellValue(syncReporAmount); - dataRow.createCell(55).setCellValue(parameterCollectingPercentageStr + percentSign); + cell = dataRow.createCell(55); + cell.setCellStyle(style); + cell.setCellType(CellType.NUMERIC); + cell.setCellValue(Double.valueOf(parameterCollectingPercentageStr)/100); dataRow.createCell(56).setCellValue(certificationSubmissionStr); dataIndex ++; @@ -976,7 +1004,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService /** * 导出跨项目进度概览 - * @param workbook + * @param sheet * @param projectLibraryBase * @param plbEoList * @param pliEoList @@ -1110,30 +1138,30 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService List pliEos = pliEoList.stream().filter(pliEo -> StringUtils.equals(pliEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); Map fgRwqrMap = this.projectLawsInventoryEOService.groupByFGRwqrStatus(pliEos); Map fgRwqrProjectScheduleExportMap = (Map) fgRwqrMap.get("projectScheduleExportMap"); - String fgrqqrPercentage = (String) fgRwqrProjectScheduleExportMap.get("percentage"); + double fgrqqrPercentage = Double.parseDouble(((String)fgRwqrProjectScheduleExportMap.get("percentage")).replace("%",""))/100; Map designMap = this.projectLawsInventoryEOService.groupByDesignStatus(pliEos); Map designMapProjectScheduleExportMap = (Map) designMap.get("projectScheduleExportMap"); - String designPercentage = (String) designMapProjectScheduleExportMap.get("percentage"); + double designPercentage = Double.parseDouble(((String)designMapProjectScheduleExportMap.get("percentage")).replace("%",""))/100; Map verifyMap = this.projectLawsInventoryEOService.groupByVerifyStatus(pliEos); Map verifyMapProjectScheduleExportMap = (Map) verifyMap.get("projectScheduleExportMap"); - String verifyPercentage = (String) verifyMapProjectScheduleExportMap.get("percentage"); + double verifyPercentage = Double.parseDouble(((String)verifyMapProjectScheduleExportMap.get("percentage")).replace("%",""))/100; List pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); Map rzRwqrMap = this.projectCertificationInventoryEOService.groupByFGRwqrStatus(pciEos); Map rzRwqrProjectScheduleExportMap = (Map) rzRwqrMap.get("projectScheduleExportMap"); - String rzRqqrPercentage = (String) rzRwqrProjectScheduleExportMap.get("percentage"); + double rzRqqrPercentage = Double.parseDouble(((String)rzRwqrProjectScheduleExportMap.get("percentage")).replace("%",""))/100; Map preHomoMap = this.projectCertificationInventoryEOService.groupByPreHomoStatus(pciEos); Map preHomoProjectScheduleExportMap = (Map) preHomoMap.get("projectScheduleExportMap"); - String preHomoPercentage = (String) preHomoProjectScheduleExportMap.get("percentage"); + double preHomoPercentage = Double.parseDouble(((String)preHomoProjectScheduleExportMap.get("percentage")).replace("%",""))/100; List pmEos = pmEoList.stream().filter(pmEo -> { return StringUtils.equals(pmEo.getProjectId(), plbEo.getId()); }).collect(Collectors.toList()); - String parameterCollectingPercentageStr = "0" + percentSign; + double parameterCollectingPercentageStr = 0; if(CollectionUtils.isNotEmpty(pmEos)){ List pmEoIdList = pmEos.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); @@ -1159,13 +1187,13 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService double syncReporAmount = (double) syncReporMap.get("amount"); double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount; - double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100; - parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) + percentSign : "0" + percentSign; + double parameterCollectingPercentage = (submitAmount + syncReporAmount) / parameterCollectingCount; + parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? parameterCollectingPercentage : 0; } Map certificationProgressMap = this.projectCertificationInventoryEOService.groupByCertificationProgress(pciEos); Map certificationProgressMapProjectScheduleExportMap = (Map) certificationProgressMap.get("projectScheduleExportMap"); - String certificationProgressPercentage = (String) certificationProgressMapProjectScheduleExportMap.get("percentage"); + double certificationProgressPercentage = Double.parseDouble(((String)certificationProgressMapProjectScheduleExportMap.get("percentage")).replace("%",""))/100; CellRangeAddress regionCell1 = new CellRangeAddress(dataIndex, dataIndex + 1, 0, 0); sheet.addMergedRegion(regionCell1); @@ -1179,7 +1207,11 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService Cell dataRowCell = dataRow.createCell(i); dataRowCell.setCellStyle(cellStyleTitle); Cell dataRow2Cell = dataRow2.createCell(i); - dataRow2Cell.setCellStyle(cellStyleTitle); + CellStyle style = sheet.getWorkbook().createCellStyle(); + style.setDataFormat(sheet.getWorkbook().createDataFormat().getFormat("0.00%")); + dataRow2Cell.setCellStyle(style); + dataRow2Cell.setCellType(CellType.NUMERIC); + if(i == 0){ dataRowCell.setCellValue(plbEo.getShowName()); }else if(i==1){