diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java index faccdc37e..9cb232dbd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java @@ -7,6 +7,7 @@ import com.jero.modules.cert.collect.entity.ParamsManifestEO; import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO; import com.jero.modules.cert.collect.vo.ParamsManifestVO; import com.jero.modules.cert.template.entity.ParamsTemplateEO; +import com.jero.modules.system.entity.SysDictItem; import java.util.List; import java.util.Map; @@ -99,4 +100,11 @@ public interface IParamsManifestEOService extends IService { boolean setTemplateName(List paramsTemplateIds); boolean updateModel(String mid,String version, String cid); + + /** + * 获取用户的责任领域数组 + * @param params + * @return + */ + List getUserDutyTerritoryList(Map params); } 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 ab57f651d..0ed131daf 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 @@ -3,6 +3,7 @@ package com.jero.modules.cert.collect.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -36,6 +37,7 @@ 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.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; @@ -56,14 +58,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -1135,4 +1130,45 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl getUserDutyTerritoryList(Map params) { + List result = new ArrayList<>(); + String userId = (String) params.get("userId"); + String userName = (String) params.get("userName"); + String projectLibraryId = (String) params.get("projectLibraryId"); + String parentId = (String) params.get("parentId"); + if(StringUtils.isNotEmpty(parentId)){ + projectLibraryId = parentId; + } + List dutyTerritorySdiList = (List) params.get("dutyTerritorySdiList"); + + QueryWrapper pmQueryWrap = new QueryWrapper<>(); + pmQueryWrap.lambda().like(ParamsManifestEO::getProjectId,projectLibraryId); + List pmEoList = this.list(pmQueryWrap); + if (CollectionUtils.isNotEmpty(pmEoList)) { + List pmEoIdList = pmEoList.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); + QueryWrapper pcmQueryWrap = new QueryWrapper<>(); + pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmEoIdList); + pcmQueryWrap.and(pcmQuery -> { + pcmQuery.lambda().eq(ParamsCollectManifestEO::getDre,userName).or().like(ParamsCollectManifestEO::getSdt,userName); + }); + List pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap); + if(CollectionUtils.isNotEmpty(pcmEoList)){ + List dutyTerritoryIdList = pcmEoList.stream().map(ParamsCollectManifestEO::getDutyTerritory).distinct().collect(Collectors.toList()); + + result = dutyTerritorySdiList.stream().filter(dutyTerritory -> { + boolean flag = false; + for (String dutyTerritoryId : dutyTerritoryIdList) { + if (org.apache.commons.lang3.StringUtils.equals(dutyTerritoryId, dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + } + return result; + } } 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 b870ca39e..5636ba5f1 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 @@ -6,6 +6,7 @@ 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.system.base.controller.JeroController; +import com.jero.common.system.vo.DictModel; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.service.IProjectLibraryBaseService; import io.swagger.annotations.Api; @@ -291,4 +292,12 @@ public class ProjectLibraryBaseController extends JeroController params) { this.projectLibraryBaseService.exportProjectProgressStatisticsXls(response,request, params); } + + @AutoLog(value = "获取用户在该项目中所有的责任领域") + @ApiOperation(value="获取用户在该项目中所有的责任领域", notes="获取用户在该项目中所有的责任领域") + @GetMapping(value = "/getUserAllDutyTerritoryList") + public Result> getUserAllDutyTerritoryList(@RequestParam Map params){ + List resList = this.projectLibraryBaseService.getUserAllDutyTerritoryList(params); + return Result.OK(resList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index 4c99ee3a5..42072e6fb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; +import com.jero.common.system.vo.DictModel; import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.system.entity.SysCategory; +import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysRole; import com.jero.modules.system.entity.SysUser; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; @@ -317,4 +319,11 @@ public interface IProjectCertificationInventoryEOService extends IService editEndTimeCertificationInventoryEOS); + + /** + * 获取用户的责任领域数组 + * @param params + * @return + */ + List getUserDutyTerritoryList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 208d148fb..2f3da9490 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.itextpdf.text.DocumentException; import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.MessageTypeEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.ProjectLawsInventoryEO; @@ -308,4 +309,11 @@ public interface IProjectLawsInventoryEOService extends IService queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req); Result finalizationVerify(Map params); + + /** + * 获取用户的责任领域数组 + * @param params + * @return + */ + List getUserDutyTerritoryList(Map params); } 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 34ea29c85..c3ac81e88 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 @@ -3,6 +3,7 @@ package com.jero.modules.project.service; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.common.system.vo.DictModel; import com.jero.modules.project.entity.ProjectLibraryBase; import javax.servlet.http.HttpServletRequest; @@ -167,4 +168,11 @@ public interface IProjectLibraryBaseService extends IService * @param params */ void exportProjectProgressStatisticsXls(HttpServletResponse response, HttpServletRequest request, Map params); + + /** + * 获取用户在该项目中所有的责任领域数组 + * @param params + * @return + */ + List getUserAllDutyTerritoryList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java index 9e34642b4..979479e95 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java @@ -2,7 +2,9 @@ package com.jero.modules.project.service; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; +import com.jero.common.system.vo.DictModel; import com.jero.modules.project.entity.ProjectRelatedPersonnel; +import com.jero.modules.system.entity.SysDictItem; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.springframework.web.multipart.MultipartFile; @@ -103,4 +105,11 @@ public interface IProjectRelatedPersonnelService extends IService> queryLawEngineerByProjectId(Map params); List> queryEngineeringInterfacePersonByProjectId(Map params); + + /** + * 获取用户的责任领域数组 + * @param params + * @return + */ + List getUserDutyTerritoryList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index cc48b581b..c5cb6235e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -18,6 +18,7 @@ import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.common.util.oss.CosBootUtil; @@ -6229,5 +6230,39 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl getUserDutyTerritoryList(Map params) { + List result = new ArrayList<>(); + String userId = (String) params.get("userId"); + String projectLibraryId = (String) params.get("projectLibraryId"); + List dutyTerritorySdiList = (List) params.get("dutyTerritorySdiList"); + + QueryWrapper pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); + pciQueryWrap.and(pciQuery -> { + pciQuery.lambda().like(ProjectCertificationInventoryEO::getDutyPerson,userId) + .or().like(ProjectCertificationInventoryEO::getSdt,userId); + }); + List pciEoList = this.list(pciQueryWrap); + + if(CollectionUtils.isNotEmpty(pciEoList)){ + List dutyTerritoryIdList = Arrays.asList( + pciEoList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(",")).split(",") + ).stream().distinct().collect(Collectors.toList()); + + result = dutyTerritorySdiList.stream().filter(dutyTerritory -> { + boolean flag = false; + for (String dutyTerritoryId : dutyTerritoryIdList) { + if (StringUtils.equals(dutyTerritoryId, dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index a4f8afe6d..a1f73b762 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -27,6 +27,7 @@ import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.constant.enums.MsgColorEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.common.util.oss.CosBootUtil; @@ -13682,4 +13683,39 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl getUserDutyTerritoryList(Map params) { + List result = new ArrayList<>(); + String userId = (String) params.get("userId"); + String projectLibraryId = (String) params.get("projectLibraryId"); + List dutyTerritorySdiList = (List) params.get("dutyTerritorySdiList"); + + QueryWrapper pliQueryWrap = new QueryWrapper<>(); + pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + pliQueryWrap.and(pliQuery -> { + pliQuery.lambda().like(ProjectLawsInventoryEO::getRegulationOwnerId,userId) + .or().like(ProjectLawsInventoryEO::getDesignDutyId,userId) + .or().like(ProjectLawsInventoryEO::getVerifyDutyId,userId); + }); + List pliEoList = this.list(pliQueryWrap); + if(CollectionUtils.isNotEmpty(pliEoList)){ + List dutyTerritoryIdList = Arrays.asList( + pliEoList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(",")).split(",") + ).stream().distinct().collect(Collectors.toList()); + + result = dutyTerritorySdiList.stream().filter(dutyTerritory -> { + boolean flag = false; + for (String dutyTerritoryId : dutyTerritoryIdList) { + if (StringUtils.equals(dutyTerritoryId, dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + + return result; + } } \ No newline at end of file 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 b025ab31d..75346a6b7 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 @@ -2585,6 +2585,49 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getUserAllDutyTerritoryList(Map params) { + List result = new ArrayList<>(); + List sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); + List dutyTerritorySdiList = sysDictItems.stream().filter(sysDictItem -> { + return (StringUtils.equals(sysDictItem.getDictCode(), DicCodeEnum.DUTY_TERRITORY.getCode())); + }).collect(Collectors.toList()); + params.put("dutyTerritorySdiList",dutyTerritorySdiList); + + List userAllDutyTerritorySdiList = new ArrayList<>(); + List prpSdiList = this.projectRelatedPersonnelService.getUserDutyTerritoryList(params); + if(CollectionUtils.isNotEmpty(prpSdiList)){ + userAllDutyTerritorySdiList.addAll(prpSdiList); + } + List pliSdiList = this.projectLawsInventoryEOService.getUserDutyTerritoryList(params); + if(CollectionUtils.isNotEmpty(pliSdiList)){ + userAllDutyTerritorySdiList.addAll(pliSdiList); + } + List pciSdiList = this.projectCertificationInventoryEOService.getUserDutyTerritoryList(params); + if(CollectionUtils.isNotEmpty(pciSdiList)){ + userAllDutyTerritorySdiList.addAll(pciSdiList); + } + String projectLibraryId = (String) params.get("projectLibraryId"); + ProjectLibraryBase projectLibraryBase = this.selectById(projectLibraryId); + params.put("parentId",projectLibraryBase.getParentId()); + List pmSdiList = this.paramsManifestEOService.getUserDutyTerritoryList(params); + if(CollectionUtils.isNotEmpty(pmSdiList)){ + userAllDutyTerritorySdiList.addAll(pmSdiList); + } + + userAllDutyTerritorySdiList = userAllDutyTerritorySdiList.stream().distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(userAllDutyTerritorySdiList)){ + for (SysDictItem sysDictItem : userAllDutyTerritorySdiList) { + DictModel dictModel = new DictModel(); + dictModel.setText(sysDictItem.getItemText()); + dictModel.setTextEn(sysDictItem.getEnName()); + dictModel.setValue(sysDictItem.getItemValue()); + result.add(dictModel); + } + } + return result; + } + /** * 导出法规符合性管理 * @param workbook diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index ee9069061..ee1097115 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -9,6 +9,7 @@ import com.jero.common.constant.CommonConstant; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; @@ -1894,4 +1895,35 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl getUserDutyTerritoryList(Map params) { + List result = new ArrayList<>(); + String userId = (String) params.get("userId"); + String projectLibraryId = (String) params.get("projectLibraryId"); + List dutyTerritorySdiList = (List) params.get("dutyTerritorySdiList"); + QueryWrapper prpQueryWrap = new QueryWrapper<>(); + prpQueryWrap.lambda().eq(ProjectRelatedPersonnel::getProjectId,projectLibraryId); + prpQueryWrap.and(prpQuery -> { + prpQuery.lambda().like(ProjectRelatedPersonnel::getLawEngineer,userId) + .or().like(ProjectRelatedPersonnel::getEngineerLawSet,userId) + .or().like(ProjectRelatedPersonnel::getEngineeringInterfacePerson,userId) + .or().like(ProjectRelatedPersonnel::getEngineerAttSet,userId); + }); + List projectRelatedPersonnelList = this.list(prpQueryWrap); + if(CollectionUtils.isNotEmpty(projectRelatedPersonnelList)){ + List dutyTerritoryIdList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getDutyTerritory).distinct().collect(Collectors.toList()); + result = dutyTerritorySdiList.stream().filter(dutyTerritory -> { + boolean flag = false; + for (String dutyTerritoryId : dutyTerritoryIdList) { + if (StringUtils.equals(dutyTerritoryId, dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + return result; + } + }