相关人员名单与法规清单列表的权限关联删除

This commit is contained in:
CD
2022-11-14 15:33:46 +08:00
parent a10476474e
commit 738936ea74
2 changed files with 195 additions and 23 deletions
@@ -514,25 +514,27 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
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(original.getCertificationEngineer())) {
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() + ",");
}
}
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);
}
}
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);
}
}
}
}
@@ -15,14 +15,12 @@ import com.jero.common.util.TokenUtils;
import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl;
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.entity.*;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.project.service.IProjectUserPermissionService;
import com.jero.modules.system.entity.SysDictItem;
@@ -101,6 +99,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
@Autowired
private IProjectUserPermissionService projectUserPermissionService;
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
@Autowired
private ProjectTaskInventoryEOMapper projectTaskInventoryEOMapper;
@Autowired
private ProjectLibraryBaseMapper projectLibraryBaseMapper;
/**
* 保存
*
@@ -136,6 +143,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
*/
@Override
public void editById(ProjectRelatedPersonnel projectRelatedPersonnel) {
//用于权限对比
ProjectRelatedPersonnel original = baseMapper.selectById(projectRelatedPersonnel.getId());
ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectById(projectRelatedPersonnel.getProjectId());
Date now = new Date();
projectRelatedPersonnel.setUpdateTime(now);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -208,7 +219,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
projectUserPermissionService.saveBatch(adds);
}
//修改当前属于当前责任领域的法规清单的人员权限
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());
setLawsInventoryPermission(projectRelatedPersonnel.getProjectId(), belongs, projectRelatedPersonnel, original, projectLibraryBase);
}
@@ -1062,6 +1081,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
List<ProjectUserPermission> addPermission = new ArrayList<>();
Date now = new Date();
//修改当前属于当前责任领域的法规清单的人员权限
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());
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
String relatedPersonnelId = "";
@@ -1312,6 +1339,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
row++;
result.error500(message.toString());
//用于权限对比
ProjectRelatedPersonnel original = baseMapper.selectById(projectRelatedPersonnel.getId());
ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectById(projectId);
setLawsInventoryPermission(projectId, belongs, projectRelatedPersonnel, original, projectLibraryBase);
}
//中英切换提示语,message为空 = 之前的数据没错
@@ -1332,6 +1366,142 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
return result;
}
private void setLawsInventoryPermission(String projectId, List<String> belongs, ProjectRelatedPersonnel projectRelatedPersonnel, ProjectRelatedPersonnel original, ProjectLibraryBase projectLibraryBase) {
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryWrapper = new QueryWrapper<>();
lawsInventoryWrapper.eq("project_library_id", projectId).eq("duty_territory", projectRelatedPersonnel.getDutyTerritory());
List<ProjectLawsInventoryEO> list = projectLawsInventoryEOService.list(lawsInventoryWrapper);
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) {
if (projectRelatedPersonnel.getLawEngineer() != null) {
//判断三个符合性确认的发起人跟责任人中是否有当前法规工程师,且该用户不为相关人员名单中的认证工程师、工程接口人、studio
if (ObjectUtils.isNotEmpty(original.getLawEngineer())) {
StringBuilder participator = new StringBuilder();
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ",");
}
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) {
participator.append(projectRelatedPersonnel.getCertificationEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
participator.append(projectLibraryBase.getStudioEngineer());
}
for (String lawEngineer : original.getLawEngineer().split(",")) {
if (!projectRelatedPersonnel.getLawEngineer().contains(lawEngineer)) {
//删除法规清单中法规工程师权限
QueryWrapper<ProjectUserPermission> LawEngineerPermissionDel = new QueryWrapper<>();
LawEngineerPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId())
.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId())
.eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue())
.eq("user_id", lawEngineer);
projectUserPermissionService.remove(LawEngineerPermissionDel);
//删除三个符合性确认中发起人/责任人权限
if (!participator.toString().contains(lawEngineer)) {
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectLibraryBase.getId()).eq("user_id", lawEngineer).in("belong", belongs).
eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
projectUserPermissionService.remove(del);
}
}
}
}
}
if (projectRelatedPersonnel.getEngineeringInterfacePerson() != null) {
//判断三个符合性确认的发起人跟责任人中是否有当前工程接口人,且该用户不为相关人员名单中的法规工程师、认证工程师、studio
if (ObjectUtils.isNotEmpty(original.getEngineeringInterfacePerson())) {
StringBuilder participator = new StringBuilder();
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) {
participator.append(projectRelatedPersonnel.getLawEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) {
participator.append(projectRelatedPersonnel.getCertificationEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
participator.append(projectLibraryBase.getStudioEngineer());
}
for (String interfacePerson : original.getEngineeringInterfacePerson().split(",")) {
if (!projectRelatedPersonnel.getEngineeringInterfacePerson().contains(interfacePerson)) {
//删除法规清单中工程接口人权限
QueryWrapper<ProjectUserPermission> interfacePersonPermissionDel = new QueryWrapper<>();
interfacePersonPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId())
.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId())
.eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue())
.eq("user_id", interfacePerson);
projectUserPermissionService.remove(interfacePersonPermissionDel);
//删除三个符合性确认中发起人/责任人权限
if (!participator.toString().contains(interfacePerson)) {
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectLibraryBase.getId()).eq("user_id", interfacePerson).in("belong", belongs).
eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
projectUserPermissionService.remove(del);
}
}
}
}
}
if (projectRelatedPersonnel.getCertificationEngineer() != null) {
//判断三个符合性确认的发起人跟责任人中是否有当前认证工程师,且该用户不为相关人员名单中的法规工程师、工程接口人、studio
if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) {
StringBuilder participator = new StringBuilder();
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) {
participator.append(projectRelatedPersonnel.getLawEngineer() + ",");
}
if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ",");
}
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
participator.append(projectLibraryBase.getStudioEngineer());
}
if (!projectRelatedPersonnel.getCertificationEngineer().equals(original.getCertificationEngineer())) {
//删除法规清单中认证工程师权限
QueryWrapper<ProjectUserPermission> certificationPermissionDel = new QueryWrapper<>();
certificationPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId())
.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId())
.eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue())
.eq("user_id", original.getCertificationEngineer());
projectUserPermissionService.remove(certificationPermissionDel);
//删除三个符合性确认中发起人/责任人权限
if (!participator.toString().contains(original.getCertificationEngineer())) {
QueryWrapper<ProjectUserPermission> del = new QueryWrapper<>();
del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getCertificationEngineer()).in("belong", belongs).
eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId());
projectUserPermissionService.remove(del);
}
}
}
}
}
}
}
}
/**
* 验证导入的相关人员
* @param userList 所有的用户