diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java index dec40b212..789f55ff8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java @@ -159,4 +159,19 @@ public class ProjectLibraryBaseController extends JeroController getProjectDetailsStatistics(@RequestParam(name="id",required=true) String id, + @RequestParam(name="cut",required=true) String cut) { + Map data = projectLibraryBaseService.getProjectDetailsStatistics(id); + return Result.OK(cut,data); + } + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationProgressEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationProgressEnum.java new file mode 100644 index 000000000..8ce5f5997 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationProgressEnum.java @@ -0,0 +1,47 @@ +package com.jero.modules.project.enums; + +/** + * 认证进度枚举类 + */ +public enum CertificationProgressEnum { + TEST_PASSED("实验通过","Test passed"), + TEST_FAILED("实验失败","Test failed"), + NOT_START("待开始","Not start"), + IN_PROGRESS("进行中","In progress"), + NA("不涉及","NA"), + ; + + String name; + String value; + + private CertificationProgressEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value) { + CertificationProgressEnum[] values = values(); + for (CertificationProgressEnum certificationProgressEnum : values) { + if (certificationProgressEnum.value.equals(value)) { + return certificationProgressEnum.name; + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CurrentProjectStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CurrentProjectStatusEnum.java new file mode 100644 index 000000000..72e36b199 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CurrentProjectStatusEnum.java @@ -0,0 +1,47 @@ +package com.jero.modules.project.enums; + +/** + * 当前项目状态枚举类 + */ +public enum CurrentProjectStatusEnum { + + BLUE("蓝色","0"), + RED("红色","1"), + YELLOW("黄色","2"), + GREEN("绿色","3"), + ; + + String name; + String value; + + private CurrentProjectStatusEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value) { + CurrentProjectStatusEnum[] values = values(); + for (CurrentProjectStatusEnum currentProjectStatusEnum : values) { + if (currentProjectStatusEnum.value.equals(value)) { + return currentProjectStatusEnum.name; + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java index ec58479e2..609d1c5ba 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java @@ -1,6 +1,7 @@ package com.jero.modules.project.mapper; import java.util.List; +import java.util.Map; import com.jero.modules.project.entity.ConditionAssessmentEO; import org.apache.ibatis.annotations.Param; @@ -13,5 +14,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @Version: V1.0 */ public interface ConditionAssessmentEOMapper extends BaseMapper { - + /** + * 获取当前项目状态统计数据 + * @param projectLawsInventoryIdList + * @return + */ + List> getCurrentProjectStatusStatistics(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java index fc0f2ce0d..aa7af9818 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java @@ -1,6 +1,7 @@ package com.jero.modules.project.mapper; import java.util.List; +import java.util.Map; import org.apache.ibatis.annotations.Param; import com.jero.modules.project.entity.ProjectLawsInventoryEO; @@ -14,4 +15,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ProjectLawsInventoryEOMapper extends BaseMapper { + /** + * 获取清单确认统计 + * @param projectLibraryId 项目库id + * @return + */ + List> getlistingToConfirmStatistics(@Param("projectLibraryId") String projectLibraryId); + + /** + * 获取清单确认统计 + * @param projectLibraryId 项目库id + * @return + */ + List> getTaskToConfirmStatistics(@Param("projectLibraryId")String projectLibraryId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java index bb5c79abc..f5ee847d9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java @@ -1,6 +1,7 @@ package com.jero.modules.project.mapper; import java.util.List; +import java.util.Map; import org.apache.ibatis.annotations.Param; import com.jero.modules.project.entity.ProjectTaskInventoryEO; @@ -14,4 +15,29 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ProjectTaskInventoryEOMapper extends BaseMapper { + /** + * 获取认证进度统计数据 + * @param projectLawsInventoryIdList + * @return + */ + List> getCertificationProgressStatistics(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); + + /** + * 获取设计符合性统计数据 + * @param projectLawsInventoryIdList + * @return + */ + List> getDesignComplianceStatistice(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); + /** + * 获取prehomo确认统计数据 + * @param projectLawsInventoryIdList + * @return + */ + List> getPrehomoStatistice(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); + /** + * 获取验证符合性统计数据 + * @param projectLawsInventoryIdList + * @return + */ + List> getVerifyComplianceStatistice(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml index dfe111a08..fda409366 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml @@ -13,4 +13,19 @@ + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml index 3c0b1a42e..58ae4f5ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml @@ -41,4 +41,28 @@ + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml index 822f453be..460876633 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml @@ -18,4 +18,64 @@ - \ No newline at end of file + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index dedae398b..abdee6784 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -69,4 +69,11 @@ public interface IProjectLibraryBaseService extends IService * @return */ IPage queryPageList(Map params); + + /** + * 项目详情-统计接口 + * @param id + * @return + */ + Map getProjectDetailsStatistics(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 6c1553114..8cb90354d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -5,8 +5,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.project.entity.ConditionAssessmentEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; +import com.jero.modules.project.enums.CertificationProgressEnum; +import com.jero.modules.project.enums.CurrentProjectStatusEnum; +import com.jero.modules.project.enums.InventoryAffirmStatusEnum; +import com.jero.modules.project.enums.TaskAffirmStatusEnum; +import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; +import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper; +import com.jero.modules.project.service.IConditionAssessmentEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysDictItemMapper; @@ -43,6 +52,15 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectDetailsStatistics(String id) { + Map result = new HashMap<>(); + + //当前项目状态 + Map currentProjectStatusMap = new HashMap<>(); + //清单确认 + Map listingToConfirmMap = new HashMap<>(); + //任务确认 + Map taskToConfirmMap = new HashMap<>(); + //设计符合性 + Map designComplianceMap = new HashMap<>(); + //prehomo确认 + Map prehomoMap = new HashMap<>(); + //验证符合性 + Map verifyComplianceMap = new HashMap<>(); + //认证进度 + Map certificationProgressMap = new HashMap<>(); + + QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,id); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue()); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue()); + List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); + + //当前项目状态统计 获取一个 最差的结果 统计的数据 就是studio看到的数据。 + List> currentProjectStatusMapList = new ArrayList<>(); + CurrentProjectStatusEnum[] values = CurrentProjectStatusEnum.values(); + for (CurrentProjectStatusEnum value : values) { + Map map = new HashMap<>(); + map.put("color",value.getValue()); + currentProjectStatusMapList.add(map); + } + int currentProjectStatusTotal; + List projectStatusAssessList = this.conditionAssessmentEOService.getProjectStatusAssessList(projectLawsInventoryIdList); + + for (Map map : currentProjectStatusMapList) { + List collect = projectStatusAssessList.stream().filter( + projectStatusAssess -> StringUtils.equals(projectStatusAssess.getConditionAssessment(),map.get("color").toString()) + ).collect(Collectors.toList()); + map.put("conditionAssessmentCount",collect.size()); + } + + currentProjectStatusTotal = currentProjectStatusMapList.stream().filter( + currentProjectStatus -> Integer.parseInt(currentProjectStatus.get("conditionAssessmentCount").toString()) != 0 + ).mapToInt(currentProjectStatus -> Integer.parseInt(currentProjectStatus.get("conditionAssessmentCount").toString())).sum(); + + currentProjectStatusMap.put("currentProjectStatusMapList",currentProjectStatusMapList); + currentProjectStatusMap.put("currentProjectStatusTotal",currentProjectStatusTotal); + result.put("currentProjectStatusMap",currentProjectStatusMap); + + //清单确认统计 + List> listingToConfirmMapList = this.projectLawsInventoryEOMapper.getlistingToConfirmStatistics(id); + listingToConfirmMap.put("listingToConfirmMapList",listingToConfirmMapList); + result.put("listingToConfirmMap",listingToConfirmMap); + + //任务确认统计 + List> taskToConfirmMapList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatistics(id); + taskToConfirmMap.put("taskToConfirmMapList",taskToConfirmMapList); + result.put("taskToConfirmMap",taskToConfirmMap); + + //设计符合性 + List> designComplianceMapList = this.projectTaskInventoryEOMapper.getDesignComplianceStatistice(projectLawsInventoryIdList); + designComplianceMap.put("designComplianceMapList",designComplianceMapList); + result.put("designComplianceMap",designComplianceMap); + + //prehomo确认 + List> prehomoMapList = this.projectTaskInventoryEOMapper.getPrehomoStatistice(projectLawsInventoryIdList); + prehomoMap.put("prehomoMapList",prehomoMapList); + result.put("prehomoMap",prehomoMap); + + //验证符合性 + List> verifyComplianceMapList = this.projectTaskInventoryEOMapper.getVerifyComplianceStatistice(projectLawsInventoryIdList); + verifyComplianceMap.put("verifyComplianceMapList",verifyComplianceMapList); + result.put("verifyComplianceMap",verifyComplianceMap); + + //认证进度统计 + int certificationProgressTotal; + List> certificationProgressMapList = this.projectTaskInventoryEOMapper.getCertificationProgressStatistics(projectLawsInventoryIdList); + certificationProgressTotal = certificationProgressMapList.stream().filter( + certificationProgress -> Integer.parseInt(certificationProgress.get("certificationProgressCount").toString()) != 0 + ).mapToInt(certificationProgress -> Integer.parseInt(certificationProgress.get("certificationProgressCount").toString())).sum(); + + CertificationProgressEnum[] CertificationProgressEnumValues = CertificationProgressEnum.values(); + for (CertificationProgressEnum certificationProgressEnumValue : CertificationProgressEnumValues) { + boolean flag = true; + for (Map map : certificationProgressMapList) { + if(StringUtils.equals(certificationProgressEnumValue.getValue(),map.get("certificationProgress").toString())){ + flag = false; + break; + } + } + if(flag){ + Map map = new HashMap<>(); + map.put("certificationProgress",certificationProgressEnumValue.getValue()); + map.put("certificationProgressCount",0); + certificationProgressMapList.add(map); + } + } + + certificationProgressMap.put("certificationProgressTotal",certificationProgressTotal); + certificationProgressMap.put("certificationProgressMapList",certificationProgressMapList); + result.put("certificationProgressMap",certificationProgressMap); + } + + return result; + } }