认证-参数清单-子项目引发的变更-人员方面

This commit is contained in:
liyawei
2022-11-24 10:35:32 +08:00
parent 8e39693d1a
commit 56a3124a0e
9 changed files with 120 additions and 22 deletions
@@ -27,3 +27,8 @@ ALTER TABLE `laws_weilai`.`params_manifest_history`
ADD COLUMN `project_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关项目版本' AFTER `params_template_name`,
ADD COLUMN `explanation` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `project_version`;
-- 认证参数历史列表添加字段--------2022-11-23 未同步生产环境
ALTER TABLE `laws_weilai`.`params_manifest`
ADD COLUMN `project_version_id` varchar(50) NULL COMMENT '项目相关版本对应的项目id' AFTER `explanation`;
ALTER TABLE `laws_weilai`.`params_manifest_history`
ADD COLUMN `project_version_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目相关版本对应的项目id' AFTER `explanation`;
@@ -103,10 +103,13 @@ public class ParamsManifestEO implements Serializable {
@TableField(exist = false)
private String projectName;
//相关项目版本
@ApiModelProperty(value = "相关项目版本")
private String projectVersion;
//说明
@ApiModelProperty(value = "说明")
private String explanation;
@ApiModelProperty(value = "项目相关版本对应的项目id")
private String projectVersionId;
}
@@ -18,6 +18,7 @@
<result column="params_template_name" property="paramsTemplateName" />
<result column="project_version" property="projectVersion" />
<result column="explanation" property="explanation" />
<result column="project_version_id" property="projectVersionId" />
</resultMap>
<resultMap id="ParamsManifestEOResultMapForCopy" type="com.jero.modules.cert.collect.vo.ParamsManifestVO">
<id column="id" property="id" />
@@ -49,6 +49,7 @@ import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.split.common.ReadExcel;
@@ -147,6 +148,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
@Autowired
private ProjectLibraryBaseMapper projectLibraryBaseMapper;
@Autowired
private IProjectLibraryBaseService projectLibraryBaseService;
@Autowired
private WebSocketServer webSocketServer; // 同步上报库时变更清单状态时使用
@Resource
private WebSocket webSocket; // 消息专用
@@ -172,6 +175,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
List<ParamsInfoPublishEO> paramsInfoPublishEOList = paramsCollectManifestVO.getParamsInfoPublishEOList();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
// 复制参数项
List<ParamsCollectManifestEO> paramsCollectManifestEOList = new ArrayList<>();
@@ -192,7 +196,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
target.setUpdateTime(date);
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectId, source.getDutyTerritory());
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), source.getDutyTerritory());
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -207,7 +211,6 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
}
// 判断清单状态是否为已完成,若是,更改为收集中
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
if (ManifestStateEnum.FINISHED.getValue().equals(paramsManifestEO.getState())) {
// 更新清单状态和完成时间
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
@@ -1043,8 +1046,11 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
@Override
public List<Map<String,String>> querySdtList(ParamsCollectManifestVO paramsCollectManifestVO) {
// 根据主项目ID 查询 相关项目版本的项目ID
String projectVersionId = projectLibraryBaseService.getIdByVersionAndParentId(paramsCollectManifestVO.getProjectVersion(), paramsCollectManifestVO.getProjectId());
List<Map<String,String>> sdtList = new ArrayList<>();
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsCollectManifestVO.getProjectId(), paramsCollectManifestVO.getDutyTerritory());
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectVersionId, paramsCollectManifestVO.getDutyTerritory());
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtIds = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (StringUtils.isNotBlank(sdtIds)) {
@@ -1075,15 +1081,30 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
List<Map<String, String>> userTypeList = new ArrayList<>(); // 一个用户可以有多个用户类型
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户
// 查询项目下所有责任领域下的 homo人员
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.queryById(projectId);
List<String> homoList = new ArrayList<>();
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.getParentAndChildern(projectId);
List<String> homoList = new ArrayList<>(); //homo人员
List<String> studioList = new ArrayList<>(); //studio人员
if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) {
String homoIdStr = projectLibraryBaseList.get(0).getCertificationEngineer();
if (StringUtils.isNotEmpty(homoIdStr)) {
List<String> homoIdList = Arrays.asList(homoIdStr.split(",")).stream().distinct().collect(Collectors.toList());
homoList = sysUserService.listByIds(homoIdList).stream().map(SysUser::getUsername).collect(Collectors.toList());
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) {
// 查询主项目及子项目下所有 homo人员
List<String> homoIdList1 = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")).stream().collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(homoIdList1)) {
homoList.addAll(sysUserService.listByIds(homoIdList1).stream().map(SysUser::getUsername).collect(Collectors.toList()));
}
// 查询当前登录用户角色 是否是当前项目的studio
List<String> studioList1 = Arrays.asList(projectLibraryBase.getStudioEngineer().split(",")).stream().collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(studioList1)) {
studioList.addAll(sysUserService.listByIds(studioList1).stream().map(SysUser::getUsername).collect(Collectors.toList())); // studio 一个项目只有一个
}
}
// 去重
homoList = homoList.stream().distinct().collect(Collectors.toList());
studioList = studioList.stream().distinct().collect(Collectors.toList());
}
// 查询项目下所有责任领域下的 sdt人员
@@ -1124,11 +1145,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
List<String> userRoleIdList = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
userRoleIds = roleIdList.stream().filter(e->userRoleIdList.contains(e)).collect(Collectors.toList());
}
// 查询当前登录用户角色 是否是当前项目的studio
List<String> studioList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) {
studioList = projectLibraryBaseList.stream().map(ProjectLibraryBase::getStudioEngineerName).collect(Collectors.toList()); // studio 一个项目只有一个
}
String loginUserName = loginUser.getUsername().toLowerCase();
studioList = toLowerCaseOfList(studioList);
@@ -1460,7 +1477,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
updateEO.setDutyTerritory(dutyTerritory);
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectId, dutyTerritory);
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), dutyTerritory);
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -2248,6 +2265,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
String projectId = paramsCollectManifestVO.getProjectId();
// 查询参数清单
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
// 查询所有收集参数项
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
@@ -2260,7 +2280,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
list.forEach(collectManifestEO -> {
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectId, collectManifestEO.getDutyTerritory());
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), collectManifestEO.getDutyTerritory());
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -2870,6 +2890,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String projectId = paramsCollectManifestVO.getProjectId();
String cut = paramsCollectManifestVO.getCut();
// 查询参数清单
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
// 查询清单的所有参数项
LambdaQueryWrapper<ParamsCollectManifestEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ParamsCollectManifestEO::getId, paramsCollectManifestIdList);
List<ParamsCollectManifestEO> paramsCollectManifestEOList = paramsCollectManifestEOMapper.selectList(queryWrapper);
@@ -2885,7 +2908,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
updateEO.setDutyTerritory(dutyTerritory);
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectId, dutyTerritory);
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), dutyTerritory);
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -29,6 +29,7 @@ import com.jero.modules.cert.template.enums.ControlTypeEnum;
import com.jero.modules.cert.template.service.IParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysDictMapper;
@@ -93,6 +94,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Autowired
private SysDictMapper sysDictMapper;
@Autowired
private IProjectLibraryBaseService projectLibraryBaseService;
/**
@@ -117,6 +121,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
String paramsManifestId = UUID.randomUUID().toString().replace("-","");
// 根据主项目ID 查询 相关项目版本的项目ID
String projectVersionId = projectLibraryBaseService.getIdByVersionAndParentId(paramsManifestEO.getProjectVersion(), paramsManifestEO.getProjectId());
// 根据参数模板id发布版本查询对应参数项集合
List<ParamsInfoPublishEO> paramsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsManifestEO.getParamsTemplateId(),paramsManifestEO.getParamsTemplatePublishVersion());
@@ -135,7 +142,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
if (!ControlTypeEnum.Title.getValue().equals(source.getControlType())) {
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectId(), source.getDutyTerritory());
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectVersionId, source.getDutyTerritory());
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -153,6 +160,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
// 对应参数模板发布版本 前端传过来
paramsManifestEO.setId(paramsManifestId);
paramsManifestEO.setProjectVersionId(projectVersionId);
paramsManifestEO.setState(ManifestStateEnum.COLLECTING.getValue());
paramsManifestEO.setVersion(1); // 默认版本为 1
Date now = new Date();
@@ -184,11 +192,15 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
}
// 根据主项目ID 查询 相关项目版本的项目ID
String projectVersionId = projectLibraryBaseService.getIdByVersionAndParentId(paramsManifestEO.getProjectVersion(), oldParamsManifestEO.getProjectId());
ParamsManifestEO updateEO = new ParamsManifestEO();
updateEO.setId(paramsManifestEO.getId());
updateEO.setTitle(paramsManifestEO.getTitle());
updateEO.setProjectVersion(paramsManifestEO.getProjectVersion());
updateEO.setExplanation(paramsManifestEO.getExplanation());
updateEO.setProjectVersionId(projectVersionId);
Date now = new Date();
updateEO.setUpdateTime(now);
return updateById(updateEO);
@@ -546,6 +558,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
}
// 根据主项目ID 查询 相关项目版本的项目ID
String projectVersionId = projectLibraryBaseService.getIdByVersionAndParentId(paramsManifestEO.getProjectVersion(), paramsManifestEO.getProjectId());
// 查询所有模板参数项
List<ParamsInfoPublishEO> paramsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsTemplateId, paramsTemplatePublishVersion);
@@ -630,7 +645,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
addCollectManifestEO.setParamsManifestId(addManifestId);
addCollectManifestEO.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
// 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectId(), addCollectManifestEO.getDutyTerritory());
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectVersionId, addCollectManifestEO.getDutyTerritory());
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段
@@ -77,4 +77,7 @@ public class ParamsCollectManifestVO {
@ApiModelProperty(value = "用户类型")
private String userTypes; // 用户类型
@ApiModelProperty(value = "项目相关版本")
private String projectVersion;
}
@@ -124,4 +124,19 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
* @return
*/
List<ProjectLibraryBase> versionStatistics(String id);
/**
* 通过主项目id和子项目版本号
* @param version
* @param parentId
* @return
*/
String getIdByVersionAndParentId(String version, String parentId);
/**
* 查询主项目及其所有子项目
* @param parentId
* @return
*/
List<ProjectLibraryBase> getParentAndChildern(String parentId);
}
@@ -1316,6 +1316,38 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
return list;
}
/**
* 通过主项目id和子项目版本号
* @param version
* @param parentId
* @return
*/
@Override
public String getIdByVersionAndParentId(String version, String parentId) {
if ("00".equals(version)) {
return parentId;
}
LambdaQueryWrapper<ProjectLibraryBase> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectLibraryBase::getProjectVersion,version);
wrapper.eq(ProjectLibraryBase::getParentId, parentId);
List<ProjectLibraryBase> list = this.list(wrapper);
if (CollectionUtils.isNotEmpty(list)) {
return list.get(0).getId();
} else {
return null;
}
}
@Override
public List<ProjectLibraryBase> getParentAndChildern(String parentId) {
LambdaQueryWrapper<ProjectLibraryBase> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectLibraryBase::getId,parentId);
wrapper.or().eq(ProjectLibraryBase::getParentId, parentId);
List<ProjectLibraryBase> list = this.list(wrapper);
return list;
}
}
@@ -450,6 +450,7 @@
this.getquerySdtId = record.id
getAction(this.url.getquerySdtList, {
projectId: this.$route.query.projectId,
projectVersion:this.$route.query.projectVersion,
dutyTerritory: record.dutyTerritory
}).then((res) => {
if (res.success) {