diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java index f157d3b57..3902df9f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java @@ -28,4 +28,6 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper queryByParamManifestId(@Param("paramsManifestId") String paramsManifestIdString); + + List queryByProjectId(@Param("projectId") String projectId); } 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 de267b0bb..2d53913ce 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 @@ -125,4 +125,8 @@ select * from params_collect_manifest where params_manifest_id = #{paramsManifestId} + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java index 6055ac317..3a76fd1e1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java @@ -41,4 +41,15 @@ public class ProjectUserPermissionController extends JeroController setPermission(JSONObject jsonObject); + + /** + * 权限同步 + */ + void sync(); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectUserPermissionServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectUserPermissionServiceImpl.java index 831581962..846e78d28 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectUserPermissionServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectUserPermissionServiceImpl.java @@ -3,18 +3,27 @@ package com.jero.modules.project.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; -import com.jero.common.system.vo.LoginUser; -import com.jero.modules.project.entity.ProjectUserPermission; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; +import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper; +import com.jero.modules.project.entity.*; +import com.jero.modules.project.enums.PermissionDescriptionEnum; +import com.jero.modules.project.enums.ProjectUserLocationEnum; import com.jero.modules.project.mapper.ProjectUserPermissionMapper; -import com.jero.modules.project.service.IProjectUserPermissionService; +import com.jero.modules.project.service.*; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient; import org.apache.commons.lang3.ObjectUtils; -import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; import java.util.List; import java.util.Date; +import java.util.Set; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** @@ -28,6 +37,19 @@ public class ProjectUserPermissionServiceImpl extends ServiceImpl().success("调用成功!"); } + + /** + * 权限同步 + */ + @Override + public void sync() { + + List adds = new ArrayList<>(); + Date now = new Date(); + + List projects = projectLibraryBaseService.list(); + + if (ObjectUtils.isNotEmpty(projects)) { + for (ProjectLibraryBase project : projects) { + //项目详情 编辑 + if (ObjectUtils.isNotEmpty(project.getStudioEngineer())) { + createPermission(project.getId(), project.getStudioEngineer(), ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue(), null, now, adds); + } + if (ObjectUtils.isNotEmpty(project.getCertificationEngineer())) { + for (String id : project.getCertificationEngineer().split(",")) { + createPermission(project.getId(), id, ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue(), null, now, adds); + } + } + + //项目详情 相关人员名单 + QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); + personnelQueryWrapper.eq("project_id", project.getId()); + List projectRelatedPersonnels = projectRelatedPersonnelService.list(personnelQueryWrapper); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnels)) { + for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { + //法规工程师 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) { + createPermission(project.getId(), lawEngineerId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + //工程接口人 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) { + createPermission(project.getId(), engineeringInterfacePersonId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + //认证工程师 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) { + createPermission(project.getId(), certificationEngineerId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + } + } + + //法规清单 + QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + lawsInventoryEOQueryWrapper.eq("project_library_id", project.getId()); + List projectLawsInventoryEOS = projectLawsInventoryEOService.list(lawsInventoryEOQueryWrapper); + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + //创建人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getCreateBy())) { + SysUser creater = sysUserService.getUserByName(projectLawsInventoryEO.getCreateBy()); + if (ObjectUtils.isNotEmpty(creater)) { + createPermission(project.getId(), creater.getId(), ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_CREATE_BY.getValue(), PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + //法规工程师名称 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + createPermission(project.getId(),projectLawsInventoryEO.getRegulationOwnerId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //认证工程师 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + createPermission(project.getId(),projectLawsInventoryEO.getHomologationEngineerId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //工程接口人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + createPermission(project.getId(),projectLawsInventoryEO.getEngineeringInterfacePerson(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //三个符合性认证发起人和责任人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getDesignInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getDesignDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getPrehomoInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getPrehomoDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getVerifyInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getVerifyDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //任务确认询问 + Set engineers = workFlowFeignClient.getTaskConfirmAskedEngineer(project.getId()); + if (ObjectUtils.isNotEmpty(engineers)) { + for (String engineer : engineers) { + createPermission(project.getId(),engineer,ProjectUserLocationEnum.PROJECT_LAWS_TASK_AFFIRM_INQUIRE.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + //分发工程师 + QueryWrapper taskInventoryDetailEOQueryWrapper = new QueryWrapper<>(); + taskInventoryDetailEOQueryWrapper.eq("project_task_inventory_id", project.getId()).eq("task_definition_key", DesignComplianceNodeEnum.DRE_DISPOSE.getKey()); + List taskInventoryDetailEOS = projectTaskInventoryDetailEOService.list(taskInventoryDetailEOQueryWrapper); + if (ObjectUtils.isNotEmpty(taskInventoryDetailEOS)) { + for (ProjectTaskInventoryDetailEO taskInventoryDetailEO : taskInventoryDetailEOS) { + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_DESIGN_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_PREHOMO_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_VERIFY_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + } + } + //认证参数 + List paramsCollectManifestEOS = paramsCollectManifestEOMapper.queryByProjectId(project.getId()); + if (ObjectUtils.isNotEmpty(paramsCollectManifestEOS)) { + for (ParamsCollectManifestEO paramsCollectManifestEO : paramsCollectManifestEOS) { + if (ObjectUtils.isNotEmpty(paramsCollectManifestEO.getDre())) { + SysUser dre = sysUserService.getUserByName(paramsCollectManifestEO.getDre()); + if (ObjectUtils.isNotEmpty(dre)) { + createPermission(project.getId(),dre.getId(),ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_DRE.getValue(),PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId(), now, adds); + } + } + if (ObjectUtils.isNotEmpty(paramsCollectManifestEO.getSdt())) { + SysUser sdt = sysUserService.getUserByName(paramsCollectManifestEO.getSdt()); + if (ObjectUtils.isNotEmpty(sdt)) { + createPermission(project.getId(),sdt.getId(),ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue(),PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId(), now, adds); + } + } + } + } + } + } + //将当前SQL表清空 + remove(new QueryWrapper<>()); + //重新添加 + if (ObjectUtils.isNotEmpty(adds)) { + saveBatch(adds); + } + + } + + private void createPermission(String projectId,String userId,String belong,String description,Date now,List permissionList) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setBelong(belong); + if (ObjectUtils.isNotEmpty(description)) { + permission.setDescription(description); + } + permission.setUserId(userId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + permissionList.add(permission); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index 1c8fa71ec..0ec3392fa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; +import java.util.Set; @FeignClient(value = "weilai-wkflow") public interface WorkFlowFeignClient { @@ -202,5 +203,6 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/task/getTaskInfo",method = RequestMethod.GET) Map getTaskInfo(@RequestParam("actiProcInstId") String actiProcInstId); - + @RequestMapping(value = "/bat-wkflow/task/getTaskConfirmAskedEngineer",method = RequestMethod.GET) + Set getTaskConfirmAskedEngineer(@RequestParam("projectLawInventoryId")String projectLawInventoryId); }