diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java index 42288369f..aeb4366a9 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java @@ -7,6 +7,7 @@ import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; +import com.jero.modules.system.entity.SysUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -79,14 +80,14 @@ public class ParamsCollectManifestEOController extends JeroController submit(@RequestBody List> configDataList) { - boolean isSuccess = paramsCollectManifestEOService.submit(configDataList); + public Result submit(@RequestBody ParamsCollectManifestVO paramsCollectManifestVO) { + boolean isSuccess = paramsCollectManifestEOService.submit(paramsCollectManifestVO.getConfigDataList()); if (isSuccess) { return Result.OK("提交成功!"); } else { @@ -152,6 +153,33 @@ public class ParamsCollectManifestEOController extends JeroController> querySdtList(ParamsCollectManifestVO paramsCollectManifestVO) { + List sdtList = paramsCollectManifestEOService.querySdtList(paramsCollectManifestVO); + return Result.OK(sdtList); + } + + /** + * 判断当前登录用户在当前项目下的角色:homo,sdt,dre + * 一个用户可以有多个用户类型 + * @param paramsCollectManifestVO + * @return + */ + @AutoLog(value = "参数项收集清单-判断当前登录用户类型") + @ApiOperation(value="参数项收集清单-判断当前登录用户类型", notes="参数项收集清单-判断当前登录用户类型") + @GetMapping(value = "/getLoginUserType") + public Result getLoginUserTypes(ParamsCollectManifestVO paramsCollectManifestVO) { + String loginUserType = paramsCollectManifestEOService.getLoginUserTypes(paramsCollectManifestVO); + return Result.OK(loginUserType); + } /** * 通过id查询 diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsConfigEOController.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsConfigEOController.java index e8b70424e..30fc6a374 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsConfigEOController.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/controller/ParamsConfigEOController.java @@ -60,4 +60,17 @@ public class ParamsConfigEOController extends JeroController getById(@RequestParam(name = "id") String id) { + ParamsConfigEO paramsConfigEO = paramsConfigEOService.getById(id); + return Result.OK(paramsConfigEO); + } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java index b50d58e5d..bbe9aa777 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java @@ -1,6 +1,7 @@ package com.jero.modules.cert.collect.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -154,4 +155,7 @@ public class ParamsCollectManifestEO implements Serializable { @Excel(name = "是否冻结", width = 15) @ApiModelProperty(value = "是否冻结") private String isLock; + + @TableField(exist = false) + private String userTypes; } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java new file mode 100644 index 000000000..aa858d512 --- /dev/null +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java @@ -0,0 +1,37 @@ +package com.jero.modules.cert.collect.enums; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 16:47 2022/5/11 + */ +public enum CollectManifestUserTypeEnum { + HOMO("认证工程师","homo"), + SDT("工程接口人","sdt"), + DRE("填写人","dre"), + GUEST("游客","guest"); + + String name; + String value; + + CollectManifestUserTypeEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index 40595bc90..90fc8fc8c 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -49,6 +49,19 @@ AND params_manifest_id LIKE CONCAT(CONCAT('%',#{paramsCollectManifestEO.paramsManifestId}),'%') + + + + AND sdt = #{paramsCollectManifestEO.sdt} + + + AND dre = #{paramsCollectManifestEO.dre} + + + AND (sdt = #{paramsCollectManifestEO.sdt} or dre = #{paramsCollectManifestEO.dre}) + + + diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java index 84a5fba90..14542044d 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; +import com.jero.modules.system.entity.SysUser; import java.util.List; import java.util.Map; @@ -86,4 +87,8 @@ public interface IParamsCollectManifestEOService extends IService getParamsInfoPublishListForAdd(ParamsCollectManifestVO paramsCollectManifestVO); + + List querySdtList(ParamsCollectManifestVO paramsCollectManifestVO); + + String getLoginUserTypes(ParamsCollectManifestVO paramsCollectManifestVO); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 60aa2e40d..af0e6a08d 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.LoginUser; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.cert.collect.entity.ParamsConfigDataEO; import com.jero.modules.cert.collect.entity.ParamsConfigEO; import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; +import com.jero.modules.cert.collect.enums.CollectManifestUserTypeEnum; import com.jero.modules.cert.collect.enums.ConfigDataTypeEnum; import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; @@ -32,6 +34,7 @@ import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysUserService; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -173,7 +176,17 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl> queryList(ParamsCollectManifestEO paramsCollectManifestEO, String cut) { String paramsManifestId = paramsCollectManifestEO.getParamsManifestId(); - List list = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO); // 查询固定列 +// String userTypes = paramsCollectManifestEO.getUserTypes(); +// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 +// if ("sdt".equals(userTypes)) { +// paramsCollectManifestEO.setSdt(loginUser.getUsername()); +// } else if ("dre".equals(userTypes)) { +// paramsCollectManifestEO.setDre(loginUser.getUsername()); +// } else if ("sdt,dre".equals(userTypes)) { +// paramsCollectManifestEO.setSdt(loginUser.getUsername()); +// paramsCollectManifestEO.setDre(loginUser.getUsername()); +// } + List list = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO); // 查询固定列 TODO 添加用户类型权限 List paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); // 查询配置列 // 普通数据字典 @@ -266,7 +279,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl map : configDataList) { - String paramsCollectManifestId = (String) map.get("paramsCollectManifestId"); - ParamsConfigDataEO paramsConfigDataEO = new ParamsConfigDataEO(); + String paramsCollectManifestId = (String) map.get("id"); for (Map.Entry entry : map.entrySet()) { - if ("paramsCollectManifestId".equals(entry.getKey())) { + ParamsConfigDataEO paramsConfigDataEO = new ParamsConfigDataEO(); + if ("id".equals(entry.getKey())) { continue; } // 取值 String paramsConfigEOId = entry.getKey(); Map paramsConfigDataMap = (Map) entry.getValue(); - List paramsConfigDataVOList = (List) paramsConfigDataMap.get("list"); + // 无法转ParamsConfigDataVO(遍历会出现该异常 : LinkedHashMap cannot be cast to ParamsConfigDataVO) + List> paramsConfigDataVOList = (List>) paramsConfigDataMap.get("list"); // 判断是新增还是修改 ParamsConfigDataEO oldConfigDataEO = paramsConfigDataEOService.queryByConfigIdAndCollectManifestId(paramsConfigEOId, paramsCollectManifestId); @@ -521,16 +535,18 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl { - if (paramsConfigDataVO.getType().equals(ConfigDataTypeEnum.TEXT.getValue())) { - paramsConfigDataEO.setTextData(paramsConfigDataVO.getDataValue()); + for (Map paramsConfigDataVO : paramsConfigDataVOList) { + String type = (String) paramsConfigDataVO.get("type"); + String dataValue = (String) paramsConfigDataVO.get("dataValue"); - } else if (paramsConfigDataVO.getType().equals(ConfigDataTypeEnum.PULL.getValue()) - || paramsConfigDataVO.getType().equals(ConfigDataTypeEnum.PULL_MORE.getValue())) { - paramsConfigDataEO.setPullData(paramsConfigDataVO.getDataValue()); + if (type.equals(ConfigDataTypeEnum.TEXT.getValue())) { + paramsConfigDataEO.setTextData(dataValue); - } else if (paramsConfigDataVO.getType().equals(ConfigDataTypeEnum.TEXT.getValue())) { - String dataValue = paramsConfigDataVO.getDataValue(); + } else if (type.equals(ConfigDataTypeEnum.PULL.getValue()) + || type.equals(ConfigDataTypeEnum.PULL_MORE.getValue())) { + paramsConfigDataEO.setPullData(dataValue); + + } else if (type.equals(ConfigDataTypeEnum.FILE.getValue())) { if (StringUtils.isNotEmpty(dataValue) && dataValue.contains(",")) { // 处理文件connectId String[] fileIdList = dataValue.split(","); @@ -548,9 +564,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl querySdtList(ParamsCollectManifestVO paramsCollectManifestVO) { + List sdtList = new ArrayList<>(); + ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsCollectManifestVO.getProjectId(), paramsCollectManifestVO.getDutyTerritory()); + if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) { + String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson(); + if (StringUtils.isNotBlank(sdtId)) { + SysUser sysUser = sysUserService.getById(sdtId); + if (ObjectUtil.isNotEmpty(sysUser)) { + sdtList.add(sysUser); + } + } + } + return sdtList; + } + + @Override + public String getLoginUserTypes(ParamsCollectManifestVO paramsCollectManifestVO) { + String projectId = paramsCollectManifestVO.getProjectId(); + String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); + + StringBuilder userTypesBuilder=new StringBuilder(); // 一个用户可以有多个用户类型 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 + + // 查询项目下所有责任领域下的 homo,sdt人员 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProjectRelatedPersonnel::getProjectId, projectId); + List prpList = projectRelatedPersonnelService.list(queryWrapper); + + String homoIdStr = prpList.stream().map(e -> e.getCertificationEngineer()).collect(Collectors.joining(",")); + String sdtIdStr = prpList.stream().map(e -> e.getEngineeringInterfacePerson()).collect(Collectors.joining(",")); + List homoList = new ArrayList<>(); + if (StringUtils.isNotEmpty(homoIdStr)) { + List homoIdList = Arrays.asList(homoIdStr.split(",")).stream().distinct().collect(Collectors.toList()); + homoList = sysUserService.listByIds(homoIdList).stream().map(SysUser::getUsername).collect(Collectors.toList()); + } else { + return CollectManifestUserTypeEnum.GUEST.getValue(); + } + // 项目下有homo-->必定有sdt + List sdtIdList = Arrays.asList(sdtIdStr.split(",")).stream().distinct().collect(Collectors.toList()); + List sdtList = sysUserService.listByIds(sdtIdList).stream().map(SysUser::getUsername).collect(Collectors.toList()); + + // 查询项目下参数清单下收集参数项中的 sdt,dre人员 + ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO(); + paramsCollectManifestEO.setParamsManifestId(paramsManifestId); + List pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO); + List sdtListOfPCM = pcmList.stream() + .filter(e->StringUtils.isNotEmpty(e.getSdt())) + .map(ParamsCollectManifestEO::getSdt) + .distinct() + .collect(Collectors.toList()); + sdtList.addAll(sdtListOfPCM); + + List dreListOfPCM = pcmList.stream() + .filter(e->StringUtils.isNotEmpty(e.getDre())) + .map(ParamsCollectManifestEO::getDre) + .distinct() + .collect(Collectors.toList()); + + if (!homoList.contains(loginUser.getUsername()) + && !sdtList.contains(loginUser.getUsername()) + && !dreListOfPCM.contains(loginUser.getUsername())) { + + return CollectManifestUserTypeEnum.GUEST.getValue(); + } + + if (homoList.contains(loginUser.getUsername())) { + userTypesBuilder.append(CollectManifestUserTypeEnum.HOMO.getValue()).append(","); + } + + if (sdtList.contains(loginUser.getUsername())) { + userTypesBuilder.append(CollectManifestUserTypeEnum.SDT.getValue()).append(","); + } + + if (dreListOfPCM.contains(loginUser.getUsername())) { + userTypesBuilder.append(CollectManifestUserTypeEnum.DRE.getValue()).append(","); + } + + return userTypesBuilder.substring(0, userTypesBuilder.toString().length() - 1); + } + /** * 实体对象转成Map * @param obj 实体对象 diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java index 5b6c1b873..48502babd 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java @@ -4,6 +4,7 @@ import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; import lombok.Data; import java.util.List; +import java.util.Map; /** * @Author: liyawei @@ -20,5 +21,6 @@ public class ParamsCollectManifestVO { private String paramsManifestId; private String projectId; - private List paramsInfoPublishEOList; + private List paramsInfoPublishEOList; // 添加专用 + private List> configDataList; // 提交专用 }