From 46fc2db7a57fb61555f5d50beff95c55f4ef01eb Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 20 Sep 2023 16:45:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=8B=BE=E9=80=89=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E8=BF=9B=E8=A1=8C=E5=85=B3=E8=81=94=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLibraryBaseController.java | 18 ++- .../service/IProjectLibraryBaseService.java | 9 +- .../impl/ProjectLibraryBaseServiceImpl.java | 113 +++++++++++++++++- 3 files changed, 135 insertions(+), 5 deletions(-) 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 2ecf13b82..ba98706f0 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 @@ -63,17 +63,29 @@ public class ProjectLibraryBaseController extends JeroController listPlatform(@RequestBody Map params) { List> mapList = projectLibraryBaseService.listPlatform(params); return Result.OK(params.get("cut").toString(),mapList); } + /** + * 不勾选法规清单进行关联平台件 + * + * @return + */ + @AutoLog(value = "不勾选法规清单进行关联平台件") + @ApiOperation(value="不勾选法规清单进行关联平台件", notes="不勾选法规清单进行关联平台件") + @PostMapping(value = "/listPlatformAll") + public Result listPlatformAll(@RequestBody Map params) { + List> mapList = projectLibraryBaseService.listPlatformAll(params); + return Result.OK(params.get("cut").toString(),mapList); + } /** * 列表查询 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 26a2b99dc..4f9f6f60e 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 @@ -87,11 +87,18 @@ public interface IProjectLibraryBaseService extends IService List queryPageList(Map params); /** - * 法规清单关联平台件 + * 勾选法规清单进行关联平台件 * @param params * @return */ List> listPlatform(Map params); + + /** + * 不勾选法规清单进行关联平台件 + * @param params + * @return + */ + List> listPlatformAll(Map params); // IPage queryPageList(Map params); /** 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 3aa0f273f..25d289488 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 @@ -1265,7 +1265,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl 1){ + map.put("lawsInventoryId",projectLawsInventoryEO.getId()); + map.put("title",serialNumber+" "+dutyTerritoryNew+" "+subtitle+"在平台件项目中包含多条匹配内容,请选择关联"); + map.put("result",projectLawsInventoryEOS); + mapList.add(map); + }else if(!projectLawsInventoryEOS.isEmpty() && projectLawsInventoryEOS.size() == 1){ + Map mapTemp = new HashMap<>(); + mapTemp.put("lawsInventoryId",projectLawsInventoryEO.getId()); + mapTemp.put("result",projectLawsInventoryEOS); + mapListOne.add(mapTemp); + } + } + if(!mapListOne.isEmpty()){ + //匹配一条平台件时直接新增 + List lawsInventoryPlatformEOS = new ArrayList<>(); + for (Map map : mapListOne) { + LawsInventoryPlatformEO inventoryPlatformEO = new LawsInventoryPlatformEO(); + inventoryPlatformEO.setCreateTime(new Date()); + inventoryPlatformEO.setUpdateTime(new Date()); + inventoryPlatformEO.setLawsInventoryId((String) map.get("lawsInventoryId")); + List projectLawsInventoryEOS = (List) map.get("result"); + inventoryPlatformEO.setPlatformLawsInventoryId(projectLawsInventoryEOS.get(0).getId()); + lawsInventoryPlatformEOS.add(inventoryPlatformEO); + } + + if (!lawsInventoryPlatformEOS.isEmpty()) { + lawsInventoryPlatformEOService.saveBatch(lawsInventoryPlatformEOS); + } + } + return mapList; + } + /** + * 不勾选法规清单进行关联平台件 + * + * @return + */ + @Override + public List> listPlatformAll(Map params) { + String cut = (String) params.get("cut");// + String projectLibraryIds = (String) params.get("projectLibraryIds");//法规清单id + String platformProjectLibraryIds = (String) params.get("platformProjectLibraryIds");//平台件法规id + + //法规清单数据 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectLawsInventoryEO::getId,Arrays.asList(projectLibraryIds.split(","))); + List lawsInventoryEOList = projectLawsInventoryEOService.list(wrapper); + //只有法规的设计符合性确认和验证符合性确认中的流程状态均为清单待发布的时候,才能关联平台件数据 + lawsInventoryEOList = lawsInventoryEOList.stream() + .filter(e->ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue().equals(e.getDesignFlowStatus()) + && ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue().equals(e.getVerifyFlowStatus())).collect(Collectors.toList()); + + //平台件项目对应的法规清单数据 + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.in(ProjectLawsInventoryEO::getId,Arrays.asList(platformProjectLibraryIds.split(","))); + List lawsInventoryEOS = projectLawsInventoryEOService.list(wrapper1); + + //平台件项目信息 + List projectLibraryBaseList = new ArrayList<>(); + if(!lawsInventoryEOList.isEmpty()){ + List projectIdList = lawsInventoryEOS.stream().map(ProjectLawsInventoryEO::getProjectLibraryId).distinct().collect(Collectors.toList()); + LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.in(ProjectLibraryBase::getId,projectIdList); + projectLibraryBaseList = this.list(wrapper2); + } + + //普通数据字典 + List sysDictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); + List> mapList = new ArrayList<>(); + List> mapListOne = new ArrayList<>(); + List projectLawsInventoryEOList = new ArrayList<>(); + for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) { + Map map = new HashMap<>(); + List projectLawsInventoryEOS = new ArrayList<>(); + //serialNumber dutyTerritory + String serialNumber = projectLawsInventoryEO.getSerialNumber(); + String dutyTerritory = projectLawsInventoryEO.getDutyTerritory(); + String subtitle = projectLawsInventoryEO.getSubtitle(); + + //责任领域 + List list = new LinkedList<>(); + if(StringUtils.isNotBlank(dutyTerritory)){ + for (String s : dutyTerritory.split(",")) { + List collect = sysDictItemList.stream().filter(e -> e.getItemValue().equals(s)).collect(Collectors.toList()); + if(CutEnum.CN.getValue().equals(cut) && !collect.isEmpty()){ + list.add(collect.get(0).getItemText()); + }else if(CutEnum.EN.getValue().equals(cut) && !collect.isEmpty()){ + list.add(collect.get(0).getEnName()); + } + } + } + String dutyTerritoryNew = ""; + if(!list.isEmpty()){ + dutyTerritoryNew = StringUtils.join(list, ","); + } + + for (ProjectLawsInventoryEO lawsInventoryEO : lawsInventoryEOS) { + String serialNumberTemp = lawsInventoryEO.getSerialNumber(); + String dutyTerritoryTemp = lawsInventoryEO.getDutyTerritory(); + if(serialNumber.equals(serialNumberTemp) && StringUtils.isNotBlank(dutyTerritory) && dutyTerritory.equals(dutyTerritoryTemp)){ + List projectLibraryBases = projectLibraryBaseList.stream().filter(e -> e.getId().equals(lawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList()); + if(!projectLibraryBases.isEmpty()){ + lawsInventoryEO.setProjectName(projectLibraryBases.get(0).getProjectNameId()); + } + if(!list.isEmpty()){ + lawsInventoryEO.setDutyTerritory_dictText(dutyTerritoryNew); + } + projectLawsInventoryEOS.add(lawsInventoryEO); + } + } + + if(!projectLawsInventoryEOS.isEmpty() && projectLawsInventoryEOS.size() > 1){ map.put("lawsInventoryId",projectLawsInventoryEO.getId()); map.put("title",serialNumber+" "+dutyTerritoryNew+" "+subtitle+"在平台件项目中包含多条匹配内容,请选择关联");