权限同步数据库脚本

This commit is contained in:
CD
2022-11-17 18:01:57 +08:00
parent 2d40c42d5d
commit a8076b6d46
6 changed files with 212 additions and 6 deletions
@@ -28,4 +28,6 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper<ParamsCollectM
IPage pageInfo(@Param("page") IPage page, @Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
List<ParamsCollectManifestEO> queryByParamManifestId(@Param("paramsManifestId") String paramsManifestIdString);
List<ParamsCollectManifestEO> queryByProjectId(@Param("projectId") String projectId);
}
@@ -125,4 +125,8 @@
select * from params_collect_manifest where params_manifest_id = #{paramsManifestId}
</select>
<select id="queryByProjectId" resultMap="ParamsCollectManifestEOResultMap">
SELECT * from params_collect_manifest pcm LEFT JOIN params_manifest pm ON pm.id = pcm.params_manifest_id WHERE pm.project_id = #{projectId}
</select>
</mapper>
@@ -41,4 +41,15 @@ public class ProjectUserPermissionController extends JeroController<ProjectUserP
return projectUserPermissionService.setPermission(jsonObject);
}
}
/**
* 权限同步接口
*/
@AutoLog(value = "权限同步接口")
@ApiOperation(value="权限同步接口", notes="权限同步接口")
@PostMapping(value = "/sync")
public void sync(){
projectUserPermissionService.sync();
}
}
@@ -67,4 +67,10 @@ public interface IProjectUserPermissionService extends IService<ProjectUserPermi
* @return
*/
Result<?> setPermission(JSONObject jsonObject);
/**
* 权限同步
*/
void sync();
}
@@ -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<ProjectUserPer
@Autowired
private ISysUserService sysUserService;
@Autowired
private IProjectLibraryBaseService projectLibraryBaseService;
@Autowired
private IProjectRelatedPersonnelService projectRelatedPersonnelService;
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
@Autowired
private ParamsCollectManifestEOMapper paramsCollectManifestEOMapper;
@Autowired
private IProjectTaskInventoryDetailEOService projectTaskInventoryDetailEOService;
@Autowired
private WorkFlowFeignClient workFlowFeignClient;
/**
* 保存
@@ -128,4 +150,163 @@ public class ProjectUserPermissionServiceImpl extends ServiceImpl<ProjectUserPer
}
return new Result<>().success("调用成功!");
}
/**
* 权限同步
*/
@Override
public void sync() {
List<ProjectUserPermission> adds = new ArrayList<>();
Date now = new Date();
List<ProjectLibraryBase> 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<ProjectRelatedPersonnel> personnelQueryWrapper = new QueryWrapper<>();
personnelQueryWrapper.eq("project_id", project.getId());
List<ProjectRelatedPersonnel> 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<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
lawsInventoryEOQueryWrapper.eq("project_library_id", project.getId());
List<ProjectLawsInventoryEO> 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<String> 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<ProjectTaskInventoryDetailEO> taskInventoryDetailEOQueryWrapper = new QueryWrapper<>();
taskInventoryDetailEOQueryWrapper.eq("project_task_inventory_id", project.getId()).eq("task_definition_key", DesignComplianceNodeEnum.DRE_DISPOSE.getKey());
List<ProjectTaskInventoryDetailEO> 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<ParamsCollectManifestEO> 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<ProjectUserPermission> 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);
}
}
@@ -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<String, String> getTaskInfo(@RequestParam("actiProcInstId") String actiProcInstId);
@RequestMapping(value = "/bat-wkflow/task/getTaskConfirmAskedEngineer",method = RequestMethod.GET)
Set<String> getTaskConfirmAskedEngineer(@RequestParam("projectLawInventoryId")String projectLawInventoryId);
}