From 0c92219a152f7bdd6eb87a565dda8fb93d0c3216 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 14 Dec 2023 16:20:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NcrTrackController.java | 22 +++ .../project/service/INcrTrackService.java | 3 + .../service/impl/NcrTrackServiceImpl.java | 176 ++++++++++++++++++ 3 files changed, 201 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java index 77aa1c209..dd32a8e9e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java @@ -3,7 +3,9 @@ package com.jero.modules.project.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.util.PageUtil; import com.jero.modules.dummy.enums.OrderEnum; +import com.jero.modules.project.entity.ProblemManagementEO; import com.jero.modules.project.service.INcrTrackService; import com.jero.modules.project.vo.NcrTrackVO; import io.swagger.annotations.Api; @@ -63,6 +65,26 @@ public class NcrTrackController { return Result.OK(ncrTrackVO.getCut(),pages); } + /** + * 法规清单或者认证清单关联问题管理列表 + * + * @param serialNumber + * @return + */ + @AutoLog(value = "法规清单或者认证清单关联问题管理列表") + @ApiOperation(value="法规清单或者认证清单关联问题管理列表", notes="法规清单或者认证清单关联问题管理列表") + @GetMapping(value = "/queryPageProblem") + public Result queryPageProblem(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + String serialNumber, + String cut) { + List pageInfo = iNcrTrackService.queryPageProblem(serialNumber,cut); + //表头排序 +// orderHeader(ncrTrackVO, pageInfo); + Page pages = PageUtil.getPages(pageNo,pageSize,pageInfo); + return Result.OK(cut,pages); + } + private void orderHeader(NcrTrackVO ncrTrackVO, List pageInfo) { String orderBy = ncrTrackVO.getOrderBy(); String orderByField = ncrTrackVO.getOrderByField(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java index 4b476cc2d..2671ea93c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java @@ -2,6 +2,7 @@ package com.jero.modules.project.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.project.entity.ProblemManagementEO; import com.jero.modules.project.vo.NcrTrackVO; import javax.servlet.http.HttpServletRequest; @@ -17,6 +18,8 @@ public interface INcrTrackService extends IService { List getPageInfo(NcrTrackVO ncrTrackVO); + List queryPageProblem(String serialNumber, String cut); + Page getPages(Integer currentPage, Integer pageSize, List list); void exportData(HttpServletResponse response, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index c25c47fb8..2022c9e68 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -388,6 +388,10 @@ public class NcrTrackServiceImpl extends ServiceImpl return trackVOList; } } + public List queryPageProblem(String serialNumber,String cut) { + List problemManagement = getProblemManagement(serialNumber, cut); + return problemManagement; + } private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList) { Collator comparator = Collator.getInstance(Locale.CHINESE); @@ -779,6 +783,178 @@ public class NcrTrackServiceImpl extends ServiceImpl } return ncrTrackVOList; } + private List getProblemManagement(String serialNumber,String cut) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(BussDocumentLibraryEO::getSerialNumber, serialNumber); + List bussDocumentLibraryEOS = bussDocumentLibraryEOService.list(queryWrapper); + if(ObjectUtils.isEmpty(bussDocumentLibraryEOS)){ + return new ArrayList<>(); + } + //wen4_ti2_lei4_xing2 问题类型 + List problemTypeList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_TYPE.getCode()); + + List dictModelListTemp = problemTypeList.stream().filter(e -> "Lessons Learned".equals(e.getText())).collect(Collectors.toList()); + if(ObjectUtils.isEmpty(dictModelListTemp)){ + return new ArrayList<>(); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.like(ProblemManagementEO::getLawsId,bussDocumentLibraryEOS.get(0).getId()); + lambdaQueryWrapper.eq(ProblemManagementEO::getProjectType,dictModelListTemp.get(0).getValue()); + lambdaQueryWrapper.orderByDesc(ProblemManagementEO::getCreateTime); + List managementEOList = problemManagementEOService.list(lambdaQueryWrapper); + //法规 + List lawsIdList = managementEOList.stream() + .filter(e->StringUtils.isNotBlank(e.getLawsId())).map(ProblemManagementEO::getLawsId).collect(Collectors.toList()); + //项目 + List projectIdList = managementEOList.stream() + .filter(e->StringUtils.isNotBlank(e.getProjectId())).map(ProblemManagementEO::getProjectId).collect(Collectors.toList()); + //相关文件 + List fileList = managementEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getFile())).map(ProblemManagementEO::getFile).collect(Collectors.toList()); + //审批证据 + List approvalEvidenceList = managementEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getApprovalEvidence())).map(ProblemManagementEO::getApprovalEvidence).collect(Collectors.toList()); + List connectList = new ArrayList<>(); + if(!fileList.isEmpty()){ + connectList.addAll(fileList); + } + if(!approvalEvidenceList.isEmpty()){ + connectList.addAll(approvalEvidenceList); + } + List fileInfoList = new ArrayList<>(); + if(!connectList.isEmpty()){ + fileInfoList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectList,",")); + } + + List documentLibraryEOList = new ArrayList<>(); + if(!lawsIdList.isEmpty()){ + Set lawIdSet = new HashSet<>(); + for (String lawIds : lawsIdList) { + lawIdSet.addAll(Arrays.asList(lawIds.split(","))); + } + if(!lawIdSet.isEmpty()){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(BussDocumentLibraryEO::getId, lawIdSet); + documentLibraryEOList = bussDocumentLibraryEOService.list(wrapper); + } + } + + List projectLibraryBaseList = new ArrayList<>(); + if(!projectIdList.isEmpty()){ + Set projectIdSet = new HashSet<>(); + for (String projectIds : projectIdList) { + projectIdSet.addAll(Arrays.asList(projectIds.split(","))); + } + if(!projectIdSet.isEmpty()){ + projectLibraryBaseList = problemManagementEOMapper.queryByIds(StringUtils.join(projectIdSet,",")); + } + } + + List problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode()); + for (ProblemManagementEO problemManagementEO : managementEOList) { + //问题类型 + List dictModelList = problemTypeList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemType())).collect(Collectors.toList()); + List dictModelListPp = problemPriorityList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemPriority())).collect(Collectors.toList()); + + if(!dictModelList.isEmpty()){ + if(CutEnum.CN.getValue().equals(cut)){ + problemManagementEO.setProblemType_dictText(dictModelList.get(0).getText()); + }else{ + problemManagementEO.setProblemType_dictText(dictModelList.get(0).getTextEn()); + } + } + if(!dictModelListPp.isEmpty()){ + if(CutEnum.CN.getValue().equals(cut)){ + problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getText()); + }else{ + problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getTextEn()); + } + } + + //相关法规 + if(StringUtils.isNotBlank(problemManagementEO.getLawsId())){ + if(!documentLibraryEOList.isEmpty()){ + List documentLibraryEOListTemp = documentLibraryEOList.stream() + .filter(e->StringUtils.isNotBlank(problemManagementEO.getLawsId()) + && problemManagementEO.getLawsId().contains(e.getId())).collect(Collectors.toList()); + List serialNumberList = documentLibraryEOListTemp.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); + problemManagementEO.setLawsName(com.jero.modules.system.util.StringUtils.join(serialNumberList,",")); + } + } + //相关项目 + if(StringUtils.isNotBlank(problemManagementEO.getProjectId())){ + List projectLibraryBaseListTemp = projectLibraryBaseList.stream() + .filter(e->StringUtils.isNotBlank(problemManagementEO.getProjectId()) + && problemManagementEO.getProjectId().contains(e.getId())).collect(Collectors.toList()); + //目标市场数据字典 + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List projectNameList = new ArrayList<>(); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListTemp) { + //目标市场 + String targetMarket = problemManagementEOService.getMarket(cut, targetMarketList, projectLibraryBase); + //主项目的版本号 + String projectVersion = ""; + if(com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId())){ + projectVersion = "00"; + }else{ + projectVersion = projectLibraryBase.getProjectVersion(); + } + projectNameList.add(projectLibraryBase.getProjectName() + + "-" + projectLibraryBase.getYearName() + + "-" + targetMarket + +"-"+projectVersion); + } + if(!projectNameList.isEmpty()){ + problemManagementEO.setProjectName(StringUtils.join(projectNameList,",")); + } + } + + //相关文件连接 + if(StringUtils.isNotBlank(problemManagementEO.getFileLink())){ + List list = new ArrayList<>(); + for (String fileLink : problemManagementEO.getFileLink().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setFileLink(fileLink); + list.add(problemManagementVO); + } + problemManagementEO.setFileLinkList(list); + } + + //审批证据连接 + if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidenceLink())){ + List list = new ArrayList<>(); + for (String approvalEvidenceLink : problemManagementEO.getApprovalEvidenceLink().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setApprovalEvidenceLink(approvalEvidenceLink); + list.add(problemManagementVO); + } + problemManagementEO.setApprovalEvidenceLinkList(list); + } + //进度追踪 + if(StringUtils.isNotBlank(problemManagementEO.getProgressTracking())){ + List list = new ArrayList<>(); + for (String progressTracking : problemManagementEO.getProgressTracking().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setProgressTracking(progressTracking); + list.add(problemManagementVO); + } + problemManagementEO.setProgressTrackingList(list); + } + //相关文件 + if(StringUtils.isNotBlank(problemManagementEO.getFile())){ + List collect = fileInfoList.stream() + .filter(e -> e.getConnectId().equals(problemManagementEO.getFile())).collect(Collectors.toList()); + problemManagementEO.setFileList(collect); + } + //审批证据 + if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidence())){ + List collect = fileInfoList.stream() + .filter(e -> e.getConnectId().equals(problemManagementEO.getApprovalEvidence())).collect(Collectors.toList()); + problemManagementEO.setApprovalEvidenceFileList(collect); + } + } + return managementEOList; + } private String getMarket(List targetMarketList, NcrTrackVO trackVO,String cut) { //目标市场