项目权限(差一个认证参数列表权限没弄)

This commit is contained in:
CD
2022-11-14 11:27:21 +08:00
parent e8223399ac
commit bc514fdaf2
13 changed files with 973 additions and 27 deletions
@@ -43,4 +43,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
"where user_id = #{userId}")
List<SysRole> getRoleByUserId(@Param("userId") String userId);
@Select("SELECT count(0) from sys_user_role ur LEFT JOIN sys_role r ON r.id = ur.role_id WHERE r.role_code = #{roleCode} and ur.user_id = #{userId}")
Integer queryUserRoleByCode(@Param("roleCode")String roleCode, @Param("userId")String userId);
}
@@ -0,0 +1,38 @@
package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.jero.modules.project.service.IProjectUserPermissionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
/**
* @Description: 项目权限表
* @Author: jero-boot
* @Date: 2022-11-10
* @Version: V1.0
*/
@Api(tags="项目权限表")
@RestController
@RequestMapping("/project/projectUserPermission")
@Slf4j
public class ProjectUserPermissionController extends JeroController<ProjectUserPermission, IProjectUserPermissionService> {
}
@@ -0,0 +1,87 @@
package com.jero.modules.project.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 项目权限表
* @Author: jero-boot
* @Date: 2022-11-10
* @Version: V1.0
*/
@Data
@TableName("project_user_permission")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_user_permission对象", description="项目权限表")
public class ProjectUserPermission implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private String projectId;
/**用户id*/
@Excel(name = "用户id", width = 15)
@ApiModelProperty(value = "用户id")
private String userId;
/**所属位置*/
@Excel(name = "所属位置", width = 15)
@ApiModelProperty(value = "所属位置")
private String belong;
/**
* 如果是相关人员名单的时候,这里填写相关人员名单id
*
* 如果是法规清单的时候,这里填写对应的法规清单id
*
* 如果是认证参数的时候,这里填写参数收集清单id
*
* */
@Excel(name = "具体描述", width = 15)
@ApiModelProperty(value = "具体描述")
private String description;
}
@@ -0,0 +1,32 @@
package com.jero.modules.project.enums;
public enum PermissionDescriptionEnum {
PROJECT_RELATED_PERSONNEL("相关人员名单","projectRelatedPersonnelId:"),
PROJECT_LAWS_INVENTORY("法规清单","projectLawsInventoryId:"),
PARAMS_COLLECT_MANIFEST("参数项","paramsCollectManifestId:");
String label;
String value;
PermissionDescriptionEnum(String label, String value) {
this.label = label;
this.value = value;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -20,6 +20,7 @@ public enum ProjectRoleEnum {
VERIFYDUTY("验证符合性确认-责任人","10",""),
MANAGER("验证符合性确认-责任人","11",""),
ADMIN("系统管理员","12",""),
VIEWER("Viewer","",""),
;
String name;
@@ -0,0 +1,59 @@
package com.jero.modules.project.enums;
/**
* 项目权限相关添加人员的类型
*/
public enum ProjectUserLocationEnum {
PROJECT_ADD_STUDIO("PROJECT_ADD_STUDIO","项目新增时设置的Studio工程师"),
PROJECT_ADD_CERTIFICATION("PROJECT_ADD_CERTIFICATION","项目新增时设置的认证工程师"),
PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION("PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION","相关人员名单中认证工程师"),
PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE("PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE","相关人员名单中工程接口人"),
PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW("PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW","相关人员名单中法规工程师"),
PROJECT_LAWS_INVENTORY_CREATE_BY("PROJECT_LAWS_INVENTORY_CREATE_BY","法规清单创建人"),
PROJECT_LAWS_INVENTORY_REGULATION("PROJECT_LAWS_INVENTORY_REGULATION","法规清单中法规工程师"),
PROJECT_LAWS_INVENTORY_HOMOLOGATION("PROJECT_LAWS_INVENTORY_HOMOLOGATION","法规清单中认证工程师"),
PROJECT_LAWS_INVENTORY_INTERFACE("PROJECT_LAWS_INVENTORY_INTERFACE","法规清单中工程接口人"),
PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR("PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR","法规清单中设计符合性确认发起人"),
PROJECT_LAWS_INVENTORY_DESIGN_DUTY("PROJECT_LAWS_INVENTORY_DESIGN_DUTY","法规清单中设计符合性确认责任人"),
PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR("PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR","法规清单中prehomo确认发起人"),
PROJECT_LAWS_INVENTORY_PREHOMO_DUTY("PROJECT_LAWS_INVENTORY_PREHOMO_DUTY","法规清单中prehomo确认责任人"),
PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR("PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR","法规清单中验证符合性确认发起人"),
PROJECT_LAWS_INVENTORY_VERIFY_DUTY("PROJECT_LAWS_INVENTORY_VERIFY_DUTY","法规清单中验证符合性确认责任人"),
PROJECT_LAWS_TASK_AFFIRM_INQUIRE("PROJECT_LAWS_TASK_AFFIRM_INQUIRE","法规任务确认询问人"),
PROJECT_LAWS_DESIGN_DISTRIBUTION("PROJECT_LAWS_DESIGN_DISTRIBUTION","设计符合性确认分发工程师"),
PROJECT_LAWS_PREHOMO_DISTRIBUTION("PROJECT_LAWS_PREHOMO_DISTRIBUTION","prehomo确认分发工程师"),
PROJECT_LAWS_VERIFY_DISTRIBUTION("PROJECT_LAWS_VERIFY_DISTRIBUTION","验证符合性确认分发工程师"),
PROJECT_PARAMS_COLLECT_MANIFEST_DRE("PROJECT_PARAMS_COLLECT_MANIFEST_DRE","认证参数收集中填写人"),
PROJECT_PARAMS_COLLECT_MANIFEST_SDT("PROJECT_PARAMS_COLLECT_MANIFEST_SDT","认证参数收集中工程接口人");
String value;
String label;
ProjectUserLocationEnum(String value, String label) {
this.value = value;
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
@@ -0,0 +1,19 @@
package com.jero.modules.project.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 项目权限表
* @Author: jero-boot
* @Date: 2022-11-10
* @Version: V1.0
*/
public interface ProjectUserPermissionMapper extends BaseMapper<ProjectUserPermission> {
List<String> queryProjectIdsByUserId(@Param("userId") String userId);
}
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.ProjectUserPermissionMapper">
<resultMap id="ProjectUserPermissionResultMap" type="com.jero.modules.project.entity.ProjectUserPermission">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="project_id" property="projectId" />
<result column="user_id" property="userId" />
<result column="belong" property="belong" />
<result column="description" property="description" />
</resultMap>
<select id="queryProjectIdsByUserId" resultType="java.lang.String">
SELECT * FROM project_user_permission pup
WHERE pup.user_id = #{userId} GROUP BY pup.project_id
</select>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.project.service;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 项目权限表
* @Author: jero-boot
* @Date: 2022-11-10
* @Version: V1.0
*/
public interface IProjectUserPermissionService extends IService<ProjectUserPermission> {
/**
* 保存
*
* @param projectUserPermission
* @return
*/
void add(ProjectUserPermission projectUserPermission);
/**
* 更新
*
* @param projectUserPermission
* @return
*/
void editById(ProjectUserPermission projectUserPermission);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProjectUserPermission queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProjectUserPermission> queryList();
}
@@ -239,6 +239,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Autowired
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
@Autowired
private IProjectUserPermissionService projectUserPermissionService;
/**
* 保存
*
@@ -247,6 +250,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
*/
@Override
public void add(ProjectLawsInventoryEO projectLawsInventoryEO) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
Date now = new Date();
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = new ArrayList<>();
//法规清单所有的数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapperTemp = new LambdaQueryWrapper<>();
@@ -317,6 +322,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
if(projectLawsInventoryEOS.size() != 0){
this.saveBatch(projectLawsInventoryEOS);
//设置权限
for (ProjectLawsInventoryEO lawsInventoryEO : projectLawsInventoryEOS) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectLawsInventoryEO.getProjectLibraryId());
permission.setUserId(sysUser.getId());
permission.setBelong(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_CREATE_BY.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
permission.setCreateTime(now);
permission.setUpdateTime(now);
projectUserPermissionService.add(permission);
}
projectLawsInventoryEOS.forEach(lawsInventory -> {
ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO();
String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", "");
@@ -328,7 +344,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//更新log
String projectLibraryId = projectLawsInventoryEOS.stream().map(e->e.getProjectLibraryId()).collect(Collectors.toList()).get(0);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
QueryWrapper<DummyInventoryBaseEO> queryWrapper = new QueryWrapper<>();
String dummyInventoryBaseName = dummyInventoryBaseEOService.list(queryWrapper.eq("id", dummyInventoryBaseId)).get(0).getName();//name
@@ -375,7 +390,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
List<ProjectLawsInventoryEO> list = new ArrayList<>();
List<ProjectUserPermission> addPermission = new ArrayList<>();
for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) {
String standId = bussDocumentLibraryEO.getId();
@@ -397,11 +412,23 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
projectTaskInventoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
projectTaskInventoryEO.setStandId(standId);
projectTaskInventoryEOList.add(projectTaskInventoryEO);
//添加权限
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectLawsInventoryEO.getProjectLibraryId());
permission.setUserId(sysUser.getId());
permission.setBelong(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_CREATE_BY.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermission.add(permission);
}
super.saveBatch(list);
if (ObjectUtils.isNotEmpty(addPermission)) {
projectUserPermissionService.saveBatch(addPermission);
}
//更新log
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
String serialNumber = list.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
String contentLog = username+"向清单中添加了“"+serialNumber+"";
@@ -479,11 +506,63 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//更新流程信息
updateFlowInfo(projectLawsInventoryEO);
}
//设置权限 先删后加
List<ProjectUserPermission> adds = new ArrayList<>();
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getRegulationOwnerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getHomologationEngineerId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getEngineeringInterfacePerson(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(adds)) {
projectUserPermissionService.saveBatch(adds);
}
}else {
throw new JeroBootException("该用户没有权限操作该数据!");
}
}
private void setProjectLawsInventoryPermission(String userId, String projectId,String lawsInventoryId,Date now, List<ProjectUserPermission> adds, String belong) {
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectId)
.eq("belong", belong)
.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryId);
projectUserPermissionService.remove(del);
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(userId);
permission.setBelong(belong);
permission.setDescription(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
adds.add(permission);
}
private void setDateNull(ProjectLawsInventoryEO projectLawsInventoryEO, LambdaUpdateWrapper<ProjectLawsInventoryEO> updateWrapper) {
if(ObjectUtils.isEmpty(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){
updateWrapper.set(ProjectLawsInventoryEO::getXin1Che1Xing2Shi2Shi1Ri4Qi1,null);
@@ -639,6 +718,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
QueryWrapper<ProjectLawsInventoryRejectCauseEO> rejectCauseRemoveWrapper = new QueryWrapper<>();
rejectCauseRemoveWrapper.lambda().eq(ProjectLawsInventoryRejectCauseEO::getProjectLawsInventoryId,id);
this.projectLawsInventoryRejectCauseEOService.remove(rejectCauseRemoveWrapper);
//删除相关人员权限
QueryWrapper<ProjectUserPermission> delPermission = new QueryWrapper<>();
delPermission.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + id);
projectUserPermissionService.remove(delPermission);
}
/**
@@ -689,6 +772,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
QueryWrapper<ProjectLawsInventoryRejectCauseEO> rejectCauseRemoveWrapper = new QueryWrapper<>();
rejectCauseRemoveWrapper.lambda().in(ProjectLawsInventoryRejectCauseEO::getProjectLawsInventoryId,ids);
this.projectLawsInventoryRejectCauseEOService.remove(rejectCauseRemoveWrapper);
//删除相关人员权限
List<String> description = new ArrayList<>();
QueryWrapper<ProjectUserPermission> delPermission = new QueryWrapper<>();
for (String id : ids) {
description.add(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + id);
}
delPermission.in("description", description);
projectUserPermissionService.remove(delPermission);
}
/**
@@ -11,34 +11,18 @@ import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.entity.ProjectTaskPlanning;
import com.jero.modules.project.enums.CertificationProgressEnum;
import com.jero.modules.project.enums.CurrentProjectStatusEnum;
import com.jero.modules.project.enums.DesignComplianceStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.enums.TaskAffirmStatusEnum;
import com.jero.modules.project.enums.TopEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.mapper.*;
import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
import com.jero.modules.project.service.IProjectUserPermissionService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.mapper.SysRoleMapper;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
@@ -133,6 +117,15 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private ISysUserService sysUserService;
@Autowired
private SysRoleMapper sysRoleMapper;
@Autowired
private IProjectUserPermissionService projectUserPermissionService;
@Autowired
private ProjectUserPermissionMapper projectUserPermissionMapper;
/**
* 保存
*
@@ -162,6 +155,33 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectLibraryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer());
projectLibraryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue());
projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO);
//项目权限表添加
List<ProjectUserPermission> adds = new ArrayList<>();
if (ObjectUtils.isNotEmpty(projectLibraryBase.getStudioEngineer())) {
ProjectUserPermission projectUserPermission = new ProjectUserPermission();
projectUserPermission.setProjectId(projectLibraryBase.getId());
projectUserPermission.setUserId(projectLibraryBase.getStudioEngineer());
projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue());
projectUserPermission.setCreateTime(now);
projectUserPermission.setUpdateTime(now);
adds.add(projectUserPermission);
}
if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) {
for (String id : projectLibraryBase.getCertificationEngineer().split(",")) {
ProjectUserPermission projectUserPermission = new ProjectUserPermission();
projectUserPermission.setProjectId(projectLibraryBase.getId());
projectUserPermission.setUserId(id);
projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue());
projectUserPermission.setCreateTime(now);
projectUserPermission.setUpdateTime(now);
adds.add(projectUserPermission);
}
}
if (ObjectUtils.isNotEmpty(adds)) {
projectUserPermissionService.saveBatch(adds);
}
}
/**
@@ -182,6 +202,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectLibraryBaseTemp.setExplanation(projectLibraryBase.getExplanation());
this.save(projectLibraryBaseTemp);
Date now = new Date();
//相关人员名单中添加数据
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelMapper.queryPageList(id,
@@ -191,11 +212,57 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
null,
null);
if(projectRelatedPersonnelList.size() != 0){
List<ProjectUserPermission> relatedPersonnelPermissionList = new ArrayList<>();
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) {
projectRelatedPersonnel.setId(UUID.randomUUID().toString().replace("-", ""));
String relatedPersonnelId = UUID.randomUUID().toString().replace("-", "");
projectRelatedPersonnel.setId(relatedPersonnelId);
projectRelatedPersonnel.setProjectId(projectId);
//添加人员权限
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) {
for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) {
//projectUserPermissionService.queryRelatedPersonnelPermission(projectLibraryBase.getId(),lawEngineerId,ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue());
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(lawEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
relatedPersonnelPermissionList.add(permission);
}
}
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(engineeringInterfacePersonId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
relatedPersonnelPermissionList.add(permission);
}
}
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) {
for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(certificationEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
relatedPersonnelPermissionList.add(permission);
}
}
}
projectRelatedPersonnelService.saveBatch(projectRelatedPersonnelList);
if (ObjectUtils.isNotEmpty(relatedPersonnelPermissionList)) {
projectUserPermissionService.saveBatch(relatedPersonnelPermissionList);
}
}
//法规/认证任务计划添加数据 projectTaskPlanningService
@@ -213,13 +280,26 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
LambdaQueryWrapper<ProjectLibraryRoleRelEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId());
List<ProjectLibraryRoleRelEO> projectLibraryRoleRelEOList = projectLibraryRoleRelEOService.list(queryWrapper);
List<ProjectUserPermission> studioUserPermissions = new ArrayList<>();
if(ObjectUtils.isNotEmpty(projectLibraryRoleRelEOList)){
for (ProjectLibraryRoleRelEO projectLibraryRoleRelEO : projectLibraryRoleRelEOList) {
projectLibraryRoleRelEO.setId(UUID.randomUUID().toString().replace("-", ""));
projectLibraryRoleRelEO.setProjectLibraryId(projectId);
projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO);
//添加studio权限
ProjectUserPermission studioUserPermission = new ProjectUserPermission();
studioUserPermission.setProjectId(projectId);
studioUserPermission.setUserId(projectLibraryRoleRelEO.getUserId());
studioUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue());
studioUserPermission.setCreateTime(now);
studioUserPermission.setUpdateTime(now);
studioUserPermissions.add(studioUserPermission);
}
}
if (ObjectUtils.isNotEmpty(studioUserPermissions)) {
projectUserPermissionService.saveBatch(studioUserPermissions);
}
}
@@ -258,6 +338,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryBase.setUpdateBy(sysUser.getUsername());
ProjectLibraryBase original = baseMapper.selectById(projectLibraryBase.getId());
checkExitData(projectLibraryBase);
saveOrUpdate(projectLibraryBase);
@@ -265,6 +347,14 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
QueryWrapper<ProjectLibraryRoleRelEO> deleteLibraryRoleRelWrapper = new QueryWrapper<>();
deleteLibraryRoleRelWrapper.lambda().eq(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId());
projectLibraryRoleRelEOService.remove(deleteLibraryRoleRelWrapper);
//删除当前项目studio项目权限
QueryWrapper<ProjectUserPermission> delStudioPermission = new QueryWrapper<>();
delStudioPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue());
projectUserPermissionService.remove(delStudioPermission);
//删除当前项目certification engineer项目权限
QueryWrapper<ProjectUserPermission> delCertificationPermission = new QueryWrapper<>();
delCertificationPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue());
projectUserPermissionService.remove(delCertificationPermission);
// 初始化当前项目的studio与项目库 角色关系
ProjectLibraryRoleRelEO projectLibraryRoleRelEO = new ProjectLibraryRoleRelEO();
@@ -272,13 +362,67 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectLibraryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer());
projectLibraryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue());
projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO);
//重新设置当前项目studio项目权限
List<ProjectUserPermission> engineers = new ArrayList<>();
ProjectUserPermission studioPermission = new ProjectUserPermission();
studioPermission.setProjectId(projectLibraryBase.getId());
studioPermission.setUserId(projectLibraryBase.getStudioEngineer());
studioPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue());
studioPermission.setCreateTime(now);
studioPermission.setUpdateTime(now);
engineers.add(studioPermission);
//重新设置当前项目certification engineer项目权限
if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) {
for (String certificationEngineer : projectLibraryBase.getCertificationEngineer().split(",")) {
ProjectUserPermission certificationPermission = new ProjectUserPermission();
certificationPermission.setProjectId(projectLibraryBase.getId());
certificationPermission.setUserId(certificationEngineer);
certificationPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue());
certificationPermission.setCreateTime(now);
certificationPermission.setUpdateTime(now);
engineers.add(certificationPermission);
}
}
if (ObjectUtils.isNotEmpty(engineers)) {
projectUserPermissionService.saveBatch(engineers);
}
//编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(),
DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null);
//项目的认证工程师
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
//一个都不选的情况下
if ("".equals(certificationEngineer)) {
//删除当前项目的相关人员名单中认证工程师权限
QueryWrapper<ProjectUserPermission> delWrapper = new QueryWrapper<>();
delWrapper.eq("project_id", projectLibraryBase.getId())
.eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
projectUserPermissionService.remove(delWrapper);
//删除当前项目的法规清单中认证工程师权限
QueryWrapper<ProjectUserPermission> delLawInventoryWrapper = new QueryWrapper<>();
delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId())
.eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue());
projectUserPermissionService.remove(delLawInventoryWrapper);
}
//选择了其他工程师
if(StringUtils.isNotBlank(certificationEngineer)){
for (String id : original.getCertificationEngineer().split(",")) {
if (!certificationEngineer.contains(id)) {
//如果原来的认证工程师被删除了,则需要同步删除当前项目的相关人员名单中该认证工程师权限
QueryWrapper<ProjectUserPermission> delWrapper = new QueryWrapper<>();
delWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id).
eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
projectUserPermissionService.remove(delWrapper);
//如果原来的认证工程师被删除了,则需要同步删除当前项目的法规清单中该认证工程师权限
QueryWrapper<ProjectUserPermission> delLawInventoryWrapper = new QueryWrapper<>();
delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id).
eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue());
projectUserPermissionService.remove(delLawInventoryWrapper);
}
}
for (ProjectRelatedPersonnel projectRelatedPersonnel : result) {
//相关人员名单的认证工程师
String certificationEngineerTemp = projectRelatedPersonnel.getCertificationEngineer();
@@ -299,6 +443,102 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
//批量修改相关人员名单信息中的认证工程师
projectRelatedPersonnelService.updateBatchById(result);
}
/**
*法规清单发起任务前或任务结束后修改studio或者修改认证工程师时,
*如果设计符合性确认、Pre-Homo确认、 验证符合性确认中的发起人跟责任人引用到了这两人,
*而且这两个人不属于相关人员名单的工程接口人和法规工程师,同步删除这两人的权限
*/
List<String> belongs = new ArrayList<>();
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue());
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue());
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue());
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue());
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue());
belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue());
QueryWrapper<ProjectLawsInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_library_id", projectLibraryBase.getId());
List<ProjectLawsInventoryEO> list = projectLawsInventoryEOService.list(queryWrapper);
if (ObjectUtils.isNotEmpty(list)) {
for (ProjectLawsInventoryEO lawsInventoryEO : list) {
boolean boo = false;
//发起任务前
if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) {
boo = true;
}
//任务结束后
if (!boo) {
int count = 0;
QueryWrapper<ProjectTaskInventoryEO> taskInventoryQueryWrapper = new QueryWrapper<>();
taskInventoryQueryWrapper.eq("project_laws_inventory_id",lawsInventoryEO.getId());
List<ProjectTaskInventoryEO> taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper);
for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) {
String designStatus = taskInventoryRecord.getDesignStatus();
String verifyStatus = taskInventoryRecord.getVerifyStatus();
String prehomoStatus = taskInventoryRecord.getPrehomoStatus();
boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) {
count++;
}
}
if (count == 3) {
boo = true;
}
}
if (boo) {
QueryWrapper<ProjectRelatedPersonnel> personnelQueryWrapper = new QueryWrapper<>();
personnelQueryWrapper.eq("duty_territory", lawsInventoryEO.getDutyTerritory()).eq("project_id", projectLibraryBase.getId());
List<ProjectRelatedPersonnel> personnels = projectRelatedPersonnelService.list(personnelQueryWrapper);
if (!original.getStudioEngineer().equals(projectLibraryBase.getStudioEngineer())) {
StringBuilder participator = new StringBuilder();
if (ObjectUtils.isNotEmpty(personnels)) {
if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) {
participator.append(personnels.get(0).getLawEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(personnels.get(0).getCertificationEngineer())) {
participator.append(personnels.get(0).getCertificationEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) {
participator.append(personnels.get(0).getEngineeringInterfacePerson() + ",");
}
}
if (!participator.toString().contains(original.getStudioEngineer())) {
//删除当前studio在法规清单中的人员权限
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getStudioEngineer()).in("belong",belongs).
eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
projectUserPermissionService.remove(del);
}
}
for (String id : original.getCertificationEngineer().split(",")) {
if (!certificationEngineer.contains(id)) {
StringBuilder participator = new StringBuilder();
if (ObjectUtils.isNotEmpty(personnels)) {
if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) {
participator.append(personnels.get(0).getLawEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) {
participator.append(personnels.get(0).getEngineeringInterfacePerson() + ",");
}
}
participator.append(original.getStudioEngineer());
if (!participator.toString().contains(id)) {
//删除当前studio在法规清单中的人员权限
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectLibraryBase.getId()).eq("user_id", id).in("belong",belongs).
eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
projectUserPermissionService.remove(del);
}
}
}
}
}
}
}
/**
@@ -336,6 +576,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
logEOQueryWrapper.in("project_library_id",id);
projectLawsInventoryLogEOService.remove(logEOQueryWrapper);
//删除权限
QueryWrapper<ProjectUserPermission> permissionQueryWrapper = new QueryWrapper<>();
permissionQueryWrapper.eq("project_id", id);
projectUserPermissionService.remove(permissionQueryWrapper);
}
/*
@@ -478,6 +722,13 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
*/
@Override
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> projectIds = new ArrayList<>();
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) == 0) {
//如果不是Viewer,根据项目用户权限表筛选有权访问的项目
projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
}
List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);
disposeData(result,"",false);
//目标市场
@@ -17,10 +17,14 @@ import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.ocr.entity.User;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.jero.modules.project.enums.PermissionDescriptionEnum;
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.enums.ProjectUserLocationEnum;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.project.service.IProjectUserPermissionService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysDictItemMapper;
@@ -93,6 +97,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
@Autowired
private ProjectLibraryBaseServiceImpl projectLibraryBaseService;
@Autowired
private IProjectUserPermissionService projectUserPermissionService;
/**
* 保存
*
@@ -133,6 +141,76 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectRelatedPersonnel.setUpdateBy(sysUser.getUsername());
saveOrUpdate(projectRelatedPersonnel);
List<ProjectUserPermission> adds = new ArrayList<>();
if (projectRelatedPersonnel.getLawEngineer() != null) {
if (!"".equals(projectRelatedPersonnel.getLawEngineer())) {
for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectRelatedPersonnel.getProjectId());
permission.setUserId(lawEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
permission.setCreateTime(now);
permission.setUpdateTime(now);
adds.add(permission);
}
}
//修改当前相关人员名单中责任领域人员权限
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id", projectRelatedPersonnel.getProjectId())
.eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue())
.eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
projectUserPermissionService.remove(delPermissionWrapper);
}
if (projectRelatedPersonnel.getEngineeringInterfacePerson()!= null) {
if (!"".equals(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectRelatedPersonnel.getProjectId());
permission.setUserId(engineeringInterfacePersonId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
permission.setCreateTime(now);
permission.setUpdateTime(now);
adds.add(permission);
}
}
//修改当前相关人员名单中责任领域人员权限
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id",projectRelatedPersonnel.getProjectId())
.eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue())
.eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
projectUserPermissionService.remove(delPermissionWrapper);
}
if (projectRelatedPersonnel.getCertificationEngineer()!= null) {
if (!"".equals(projectRelatedPersonnel.getCertificationEngineer())) {
for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectRelatedPersonnel.getProjectId());
permission.setUserId(certificationEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
permission.setCreateTime(now);
permission.setUpdateTime(now);
adds.add(permission);
}
}
//修改当前相关人员名单中责任领域人员权限
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id",projectRelatedPersonnel.getProjectId())
.eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue())
.eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId());
projectUserPermissionService.remove(delPermissionWrapper);
}
if (ObjectUtils.isNotEmpty(adds)) {
projectUserPermissionService.saveBatch(adds);
}
//修改当前属于当前责任领域的法规清单的人员权限
}
/**
@@ -981,7 +1059,12 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
Result<?> result = new Result<>();
int row=3;
StringBuilder message = new StringBuilder();
List<ProjectUserPermission> addPermission = new ArrayList<>();
Date now = new Date();
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
String relatedPersonnelId = "";
//查标签内容里的责任领域数据
List<SysDictItem> sysDictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
List<String> dutyTerritoryValueList = new ArrayList<>();
@@ -1015,6 +1098,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
QueryWrapper<ProjectRelatedPersonnel> queryWrapper = new QueryWrapper<>();
List<ProjectRelatedPersonnel> idList = list(queryWrapper.select("id").eq("duty_territory", dutyTerritoryValueList.get(0)).eq("project_id",projectId));
projectRelatedPersonnel.setId(idList.get(0).getId());
relatedPersonnelId = idList.get(0).getId();
}
}
}else{
@@ -1056,8 +1140,26 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
}
midId.append(lawEngineerId).append(",");
//添加权限
if (ObjectUtils.isNotEmpty(relatedPersonnelId) && ObjectUtils.isNotEmpty(lawEngineerId)) {
for (String id : lawEngineerId.split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(id);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermission.add(permission);
}
}
}
projectRelatedPersonnel.setLawEngineer(midId.substring(0,midId.toString().length()-1));
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
projectUserPermissionService.remove(delPermissionWrapper);
}
}else{
projectRelatedPersonnel.setLawEngineer("");
@@ -1093,8 +1195,25 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
}
midId.append(engineeringInterfacePersonId).append(",");
//添加权限
if (ObjectUtils.isNotEmpty(relatedPersonnelId)&&ObjectUtils.isNotEmpty(engineeringInterfacePersonId)) {
for (String id : engineeringInterfacePersonId.split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(id);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermission.add(permission);
}
}
}
projectRelatedPersonnel.setEngineeringInterfacePerson(midId.substring(0,midId.toString().length()-1));
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
projectUserPermissionService.remove(delPermissionWrapper);
}
}else{
projectRelatedPersonnel.setEngineeringInterfacePerson("");
@@ -1161,15 +1280,31 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
}
midId.append(certificationEngineerId).append(",");
//添加权限
if (ObjectUtils.isNotEmpty(relatedPersonnelId)&&ObjectUtils.isNotEmpty(certificationEngineerId)) {
for (String id : certificationEngineerId.split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(id);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermission.add(permission);
}
}
}
projectRelatedPersonnel.setCertificationEngineer(midId.substring(0,midId.toString().length()-1));
QueryWrapper<ProjectUserPermission> delPermissionWrapper = new QueryWrapper<>();
delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId);
projectUserPermissionService.remove(delPermissionWrapper);
}
}else{
projectRelatedPersonnel.setCertificationEngineer("");
}
projectRelatedPersonnel.setProjectId(projectId);
Date now = new Date();
projectRelatedPersonnel.setUpdateTime(now);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectRelatedPersonnel.setUpdateBy(sysUser.getUsername());
@@ -1182,6 +1317,11 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
//中英切换提示语,message为空 = 之前的数据没错
if(StringUtils.isBlank(message.toString())) {
saveOrUpdateBatch(records);
//设置相关人员权限
if (ObjectUtils.isNotEmpty(addPermission)) {
projectUserPermissionService.saveBatch(addPermission);
}
if (CutEnum.CN.getValue().equals(cut)) {
message.append("导入成功");
} else {
@@ -1303,22 +1443,74 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
@Override
public void setBatch(ProjectRelatedPersonnel projectRelatedPersonnel) {
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = new ArrayList<>();
List<ProjectUserPermission> addPermissionList = new ArrayList<>();
String projectId = "";
ProjectRelatedPersonnel personnel = baseMapper.selectById(projectRelatedPersonnel.getIds().split(",")[0]);
if (ObjectUtils.isNotEmpty(personnel)) {
projectId = personnel.getProjectId();
}
Date now = new Date();
for (String id : projectRelatedPersonnel.getIds().split(",")) {
ProjectRelatedPersonnel projectRelatedPersonnelTemp = new ProjectRelatedPersonnel();
projectRelatedPersonnelTemp.setId(id);
projectRelatedPersonnelTemp.setUpdateTime(new Date());
projectRelatedPersonnelTemp.setUpdateTime(now);
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getLawEngineer())){
projectRelatedPersonnelTemp.setLawEngineer(projectRelatedPersonnel.getLawEngineer());
for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(lawEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermissionList.add(permission);
}
QueryWrapper<ProjectUserPermission> delPermissionQueryWrapper= new QueryWrapper<>();
delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
projectUserPermissionService.remove(delPermissionQueryWrapper);
}
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getEngineeringInterfacePerson())){
projectRelatedPersonnelTemp.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson());
for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(engineeringInterfacePersonId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermissionList.add(permission);
}
QueryWrapper<ProjectUserPermission> delPermissionQueryWrapper= new QueryWrapper<>();
delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
projectUserPermissionService.remove(delPermissionQueryWrapper);
}
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getCertificationEngineer())){
projectRelatedPersonnelTemp.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer());
for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) {
ProjectUserPermission permission = new ProjectUserPermission();
permission.setProjectId(projectId);
permission.setUserId(certificationEngineerId);
permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue());
permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
permission.setCreateTime(now);
permission.setUpdateTime(now);
addPermissionList.add(permission);
}
QueryWrapper<ProjectUserPermission> delPermissionQueryWrapper= new QueryWrapper<>();
delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id);
projectUserPermissionService.remove(delPermissionQueryWrapper);
}
projectRelatedPersonnelList.add(projectRelatedPersonnelTemp);
}
this.updateBatchById(projectRelatedPersonnelList);
if (ObjectUtils.isNotEmpty(addPermissionList)) {
projectUserPermissionService.saveBatch(addPermissionList);
}
}
}
@@ -0,0 +1,89 @@
package com.jero.modules.project.service.impl;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
import com.jero.modules.project.service.IProjectUserPermissionService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 项目权限表
* @Author: jero-boot
* @Date: 2022-11-10
* @Version: V1.0
*/
@Service
public class ProjectUserPermissionServiceImpl extends ServiceImpl<ProjectUserPermissionMapper, ProjectUserPermission> implements IProjectUserPermissionService {
/**
* 保存
*
* @param projectUserPermission
* @return
*/
@Override
public void add(ProjectUserPermission projectUserPermission) {
Date now = new Date();
projectUserPermission.setCreateTime(now);
projectUserPermission.setUpdateTime(now);
save(projectUserPermission);
}
/**
* 更新
*
* @param projectUserPermission
* @return
*/
@Override
public void editById(ProjectUserPermission projectUserPermission) {
Date now = new Date();
projectUserPermission.setUpdateTime(now);
saveOrUpdate(projectUserPermission);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProjectUserPermission queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProjectUserPermission> queryList() {
return list();
}
}