1、解决任务列表提出人为空的问题
This commit is contained in:
@@ -48,7 +48,7 @@ HK_GET_PROCESS_DATA_SUFFIX: /haikui-oa/autoCreateFlow/getProcessData/oa_three_d_
|
||||
# EP系统URL
|
||||
#EP_URL : https://ep-url.dev.haikuicloud.com
|
||||
# 开发环境
|
||||
EP_URL: https://ep-url-test.lyh.haikuicloud.com
|
||||
EP_URL: https://ep-url.lyh.haikuicloud.com
|
||||
# 推送代办状态url后缀
|
||||
QUERY_TODO_STATUS_SUFFIX: /todoApi/todo/emulation/dm/status
|
||||
# 查询待办结果url后缀
|
||||
|
||||
@@ -53,7 +53,7 @@ public class SimulationLyricNodeController {
|
||||
@GetMapping("/getTodoList")
|
||||
@Operation(summary = "获取待办列表", description = "获取待办列表")
|
||||
public SdmResponse getTodoList() {
|
||||
return lyricInternalService.getTodoList("http");
|
||||
return lyricInternalService.optimisedGetTodoList("http");
|
||||
}
|
||||
|
||||
@GetMapping("/optimisedGetTodoList")
|
||||
|
||||
@@ -15,7 +15,7 @@ public interface ILyricInternalService {
|
||||
|
||||
SdmResponse getTodoList(String from);
|
||||
|
||||
SdmResponse getTodoListByProjectNum(String projectNum);
|
||||
// SdmResponse getTodoListByProjectNum(String projectNum);
|
||||
|
||||
SdmResponse getMainPlanListByProjectId(Integer projectId,String projectUuid);
|
||||
|
||||
|
||||
@@ -494,11 +494,12 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
||||
req.setEndTime(todo.getClosedTime());
|
||||
req.setCreateTime(curDateStr);
|
||||
req.setDemandSource(SYNC_PROJECT_SOURCE);
|
||||
if (isConvertibleToInt(todo.getIntroduceBy())) {
|
||||
req.setCreator(Long.valueOf(todo.getIntroduceBy()));
|
||||
}else {
|
||||
req.setCreator(usernameToUserIdMap.get(todo.getIntroduceBy()));
|
||||
}
|
||||
// if (isConvertibleToInt(todo.getIntroduceBy())) {
|
||||
// req.setCreator(Long.valueOf(todo.getIntroduceBy()));
|
||||
// }else {
|
||||
// req.setCreator(usernameToUserIdMap.get(todo.getIntroduceBy()));
|
||||
// }
|
||||
req.setCreator(usernameToUserIdMap.get(todo.getIntroduceBy()));
|
||||
req.setTenantId(tenantId);
|
||||
|
||||
|
||||
@@ -873,285 +874,285 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse getTodoListByProjectNum(String projectNum) {
|
||||
log.info("同步代办时,项目号为:{}", projectNum);
|
||||
if (StringUtils.isBlank(projectNum)) {
|
||||
log.error("同步待办时,项目号不能为空");
|
||||
return SdmResponse.failed("同步待办时,项目号不能为空");
|
||||
}
|
||||
// 查询
|
||||
List<LyricVTodoEmulationInfoDM> todoInfoList = lyricVTodoInfoService.lambdaQuery().eq(LyricVTodoEmulationInfoDM::getProject, projectNum)
|
||||
.list();
|
||||
log.info("同步代办时,todoInfoList:{}", todoInfoList);
|
||||
// 过滤掉数据库中已经有的需求
|
||||
if (CollectionUtils.isEmpty(todoInfoList)) {
|
||||
log.info("未同步到待办");
|
||||
return SdmResponse.success();
|
||||
}
|
||||
log.info("同步到{}条待办", todoInfoList.size());
|
||||
List<SpdmDemandVo> allDemandList = demandMapper.getAllList();
|
||||
if (CollectionUtils.isNotEmpty(allDemandList)) {
|
||||
List<String> demandCodeList = allDemandList.stream().map(SpdmDemandVo::getDemandCode).toList();
|
||||
todoInfoList = todoInfoList.stream().filter(todoInfo -> !demandCodeList.contains(String.valueOf(todoInfo.getTodoId()))).toList();
|
||||
if (CollectionUtils.isEmpty(todoInfoList)) {
|
||||
log.info("本次同步到的待办都已经进行过同步");
|
||||
return SdmResponse.success();
|
||||
}
|
||||
}
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
Long jobNumber = ThreadLocalContext.getUserId();
|
||||
String uuid;
|
||||
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||
for (LyricVTodoEmulationInfoDM emulation : todoInfoList) {
|
||||
try {
|
||||
List<SpdmDemandExtraReq> extras = new ArrayList<>();
|
||||
List<SpdmDemandRelateMemberReq> allMemberList = new ArrayList<>();
|
||||
// 需求的基础属性
|
||||
SpdmAddDemandReq spdmAddDemandReq = new SpdmAddDemandReq();
|
||||
uuid = RandomUtil.generateString(32);
|
||||
spdmAddDemandReq.setUuid(uuid);
|
||||
spdmAddDemandReq.setDemandName(emulation.getEmulationDemand());
|
||||
if (ObjectUtils.isNotEmpty(emulation.getTodoId())) {
|
||||
spdmAddDemandReq.setDemandCode(String.valueOf(emulation.getTodoId()));
|
||||
}
|
||||
spdmAddDemandReq.setDemandType(emulation.getEmulationType());
|
||||
spdmAddDemandReq.setDemandStatus("0");
|
||||
spdmAddDemandReq.setAchieveStatus("0");
|
||||
spdmAddDemandReq.setProgress(0);
|
||||
spdmAddDemandReq.setBeginTime(emulation.getPlanStartTime());
|
||||
spdmAddDemandReq.setEndTime(emulation.getClosedTime());
|
||||
spdmAddDemandReq.setProjectId(emulation.getProject());
|
||||
spdmAddDemandReq.setPhaseId(emulation.getProjectStage());
|
||||
spdmAddDemandReq.setDemandSource(SYNC_PROJECT_SOURCE);
|
||||
// 需求的额外属性
|
||||
SpdmDemandExtraReq extraReq1 = new SpdmDemandExtraReq();
|
||||
extraReq1.setDemandId(uuid);
|
||||
extraReq1.setPropertyName("emulationResult");
|
||||
extraReq1.setPropertyValue(emulation.getEmulationResult());
|
||||
extras.add(extraReq1);
|
||||
SpdmDemandExtraReq extraReq2 = new SpdmDemandExtraReq();
|
||||
extraReq2.setDemandId(uuid);
|
||||
extraReq2.setPropertyName("robotBrand");
|
||||
extraReq2.setPropertyValue(emulation.getRobotBrand());
|
||||
extras.add(extraReq2);
|
||||
SpdmDemandExtraReq extraReq3 = new SpdmDemandExtraReq();
|
||||
extraReq3.setDemandId(uuid);
|
||||
extraReq3.setPropertyName("axis");
|
||||
extraReq3.setPropertyValue(emulation.getAxis());
|
||||
extras.add(extraReq3);
|
||||
SpdmDemandExtraReq extraReq4 = new SpdmDemandExtraReq();
|
||||
extraReq4.setDemandId(uuid);
|
||||
extraReq4.setPropertyName("beatRequirements");
|
||||
extraReq4.setPropertyValue(emulation.getBeatRequirements());
|
||||
extras.add(extraReq4);
|
||||
SpdmDemandExtraReq extraReq5 = new SpdmDemandExtraReq();
|
||||
extraReq5.setDemandId(uuid);
|
||||
extraReq5.setPropertyName("threeDimensionalReposito");
|
||||
extraReq5.setPropertyValue(emulation.getThreeDimensionalRepositoryPath());
|
||||
extras.add(extraReq5);
|
||||
SpdmDemandExtraReq extraReq6 = new SpdmDemandExtraReq();
|
||||
extraReq6.setDemandId(uuid);
|
||||
extraReq6.setPropertyName("resultPath");
|
||||
extraReq6.setPropertyValue(emulation.getResultPath());
|
||||
extras.add(extraReq6);
|
||||
SpdmDemandExtraReq extraReq7 = new SpdmDemandExtraReq();
|
||||
extraReq7.setDemandId(uuid);
|
||||
extraReq7.setPropertyName("resultDescribe");
|
||||
extraReq7.setPropertyValue(emulation.getResultDescribe());
|
||||
extras.add(extraReq7);
|
||||
SpdmDemandExtraReq extraReq8 = new SpdmDemandExtraReq();
|
||||
extraReq8.setDemandId(uuid);
|
||||
extraReq8.setPropertyName("analysisType");
|
||||
extraReq8.setPropertyValue(emulation.getAnalysisType());
|
||||
extras.add(extraReq8);
|
||||
SpdmDemandExtraReq extraReq11 = new SpdmDemandExtraReq();
|
||||
extraReq11.setDemandId(uuid);
|
||||
extraReq11.setPropertyName("software");
|
||||
extraReq11.setPropertyValue(emulation.getSoftware());
|
||||
extras.add(extraReq11);
|
||||
SpdmDemandExtraReq extraReq12 = new SpdmDemandExtraReq();
|
||||
extraReq12.setDemandId(uuid);
|
||||
extraReq12.setPropertyName("type");
|
||||
extraReq12.setPropertyValue(emulation.getType());
|
||||
extras.add(extraReq12);
|
||||
SpdmDemandExtraReq extraReq13 = new SpdmDemandExtraReq();
|
||||
extraReq13.setDemandId(uuid);
|
||||
extraReq13.setPropertyName("resultFileId");
|
||||
extraReq13.setPropertyValue(emulation.getResultFileId());
|
||||
extras.add(extraReq13);
|
||||
SpdmDemandExtraReq extraReq14 = new SpdmDemandExtraReq();
|
||||
extraReq14.setDemandId(uuid);
|
||||
extraReq14.setPropertyName("difficulty");
|
||||
extraReq14.setPropertyValue(emulation.getDifficulty());
|
||||
extras.add(extraReq14);
|
||||
SpdmDemandExtraReq extraReq15 = new SpdmDemandExtraReq();
|
||||
extraReq15.setDemandId(uuid);
|
||||
extraReq15.setPropertyName("requiredTime");
|
||||
extraReq15.setPropertyValue(emulation.getRequiredTime());
|
||||
extras.add(extraReq15);
|
||||
SpdmDemandExtraReq extraReq20 = new SpdmDemandExtraReq();
|
||||
extraReq20.setDemandId(uuid);
|
||||
extraReq20.setPropertyName("subject");
|
||||
extraReq20.setPropertyValue(emulation.getSubject());
|
||||
extras.add(extraReq20);
|
||||
SpdmDemandExtraReq extraReq21 = new SpdmDemandExtraReq();
|
||||
extraReq21.setDemandId(uuid);
|
||||
extraReq21.setPropertyName("todoNum");
|
||||
extraReq21.setPropertyValue(emulation.getTodoNum());
|
||||
extras.add(extraReq21);
|
||||
SpdmDemandExtraReq extraReq22 = new SpdmDemandExtraReq();
|
||||
extraReq22.setDemandId(uuid);
|
||||
extraReq22.setPropertyName("status");
|
||||
extraReq22.setPropertyValue(emulation.getStatus());
|
||||
extras.add(extraReq22);
|
||||
SpdmDemandExtraReq extraReq26 = new SpdmDemandExtraReq();
|
||||
extraReq26.setDemandId(uuid);
|
||||
extraReq26.setPropertyName("projectName");
|
||||
extraReq26.setPropertyValue(emulation.getProjectName());
|
||||
extras.add(extraReq26);
|
||||
SpdmDemandExtraReq extraReq27 = new SpdmDemandExtraReq();
|
||||
extraReq27.setDemandId(uuid);
|
||||
extraReq27.setPropertyName("projectModel");
|
||||
extraReq27.setPropertyValue(emulation.getProjectModel());
|
||||
extras.add(extraReq27);
|
||||
SpdmDemandExtraReq extraReq28 = new SpdmDemandExtraReq();
|
||||
extraReq28.setDemandId(uuid);
|
||||
extraReq28.setPropertyName("projectType");
|
||||
extraReq28.setPropertyValue(emulation.getProjectType());
|
||||
extras.add(extraReq28);
|
||||
SpdmDemandExtraReq extraReq31 = new SpdmDemandExtraReq();
|
||||
extraReq31.setDemandId(uuid);
|
||||
extraReq31.setPropertyName("stationNum");
|
||||
extraReq31.setPropertyValue(emulation.getStationNum());
|
||||
extras.add(extraReq31);
|
||||
SpdmDemandExtraReq extraReq32 = new SpdmDemandExtraReq();
|
||||
extraReq32.setDemandId(uuid);
|
||||
extraReq32.setPropertyName("planStartTime");
|
||||
extraReq32.setPropertyValue(emulation.getPlanStartTime());
|
||||
extras.add(extraReq32);
|
||||
SpdmDemandExtraReq extraReq33 = new SpdmDemandExtraReq();
|
||||
extraReq33.setDemandId(uuid);
|
||||
extraReq33.setPropertyName("requirementsTime");
|
||||
extraReq33.setPropertyValue(emulation.getRequiredTime());
|
||||
extras.add(extraReq33);
|
||||
SpdmDemandExtraReq extraReq34 = new SpdmDemandExtraReq();
|
||||
extraReq34.setDemandId(uuid);
|
||||
extraReq34.setPropertyName("pausedTime");
|
||||
extraReq34.setPropertyValue(emulation.getPausedTime());
|
||||
extras.add(extraReq34);
|
||||
SpdmDemandExtraReq extraReq35 = new SpdmDemandExtraReq();
|
||||
extraReq35.setDemandId(uuid);
|
||||
extraReq35.setPropertyName("performer");
|
||||
extraReq35.setPropertyValue(emulation.getPerformer());
|
||||
extras.add(extraReq35);
|
||||
SpdmDemandExtraReq extraReq36 = new SpdmDemandExtraReq();
|
||||
extraReq36.setDemandId(uuid);
|
||||
extraReq36.setPropertyName("performerName");
|
||||
extraReq36.setPropertyValue(emulation.getPerformerName());
|
||||
extras.add(extraReq36);
|
||||
SpdmDemandExtraReq extraReq37 = new SpdmDemandExtraReq();
|
||||
extraReq37.setDemandId(uuid);
|
||||
extraReq37.setPropertyName("verifier");
|
||||
extraReq37.setPropertyValue(emulation.getVerifier());
|
||||
extras.add(extraReq37);
|
||||
SpdmDemandExtraReq extraReq39 = new SpdmDemandExtraReq();
|
||||
extraReq39.setDemandId(uuid);
|
||||
extraReq39.setPropertyName("workHourPlan");
|
||||
extraReq39.setPropertyValue(emulation.getWorkHourPlan());
|
||||
extras.add(extraReq39);
|
||||
SpdmDemandExtraReq extraReq40 = new SpdmDemandExtraReq();
|
||||
extraReq40.setDemandId(uuid);
|
||||
extraReq40.setPropertyName("realWorkHour");
|
||||
extraReq40.setPropertyValue(emulation.getRealWorkHour());
|
||||
extras.add(extraReq40);
|
||||
SpdmDemandExtraReq extraReq41 = new SpdmDemandExtraReq();
|
||||
extraReq41.setDemandId(uuid);
|
||||
extraReq41.setPropertyName("standardWorkHour");
|
||||
extraReq41.setPropertyValue(emulation.getStandardWorkHour());
|
||||
extras.add(extraReq41);
|
||||
SpdmDemandExtraReq extraReq42 = new SpdmDemandExtraReq();
|
||||
extraReq42.setDemandId(uuid);
|
||||
extraReq42.setPropertyName("turnDownReason");
|
||||
extraReq42.setPropertyValue(emulation.getTurnDownReason());
|
||||
extras.add(extraReq42);
|
||||
|
||||
// 需求的成员
|
||||
// 仿真负责人
|
||||
String emulationPerformer = emulation.getEmulationPerformer();
|
||||
if (StringUtils.isNotBlank(emulationPerformer)) {
|
||||
SpdmDemandRelateMemberReq pMemberReq = new SpdmDemandRelateMemberReq();
|
||||
pMemberReq.setDemandId(uuid);
|
||||
pMemberReq.setType(0);
|
||||
String pUserId = emulationPerformer.split("-")[0];
|
||||
if (isConvertibleToLong(pUserId)) {
|
||||
pMemberReq.setUserId(Long.valueOf(pUserId));
|
||||
}
|
||||
pMemberReq.setCreateTime(curDateStr);
|
||||
pMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(pMemberReq);
|
||||
}
|
||||
|
||||
// 仿真执行人
|
||||
String emulationExecutor = emulation.getEmulationExecutor();
|
||||
if (StringUtils.isNotBlank(emulationExecutor)) {
|
||||
SpdmDemandRelateMemberReq eMemberReq = new SpdmDemandRelateMemberReq();
|
||||
eMemberReq.setDemandId(uuid);
|
||||
eMemberReq.setType(1);
|
||||
String eUserId = emulationExecutor.split("-")[0];
|
||||
if (isConvertibleToLong(eUserId)) {
|
||||
eMemberReq.setUserId(Long.valueOf(eUserId));
|
||||
}
|
||||
eMemberReq.setCreateTime(curDateStr);
|
||||
eMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(eMemberReq);
|
||||
}
|
||||
|
||||
// 3D负责人
|
||||
String threeDimensionalPerformer = emulation.getThreeDimensionalPerformer();
|
||||
if (StringUtils.isNotBlank(emulationExecutor)) {
|
||||
SpdmDemandRelateMemberReq tMemberReq = new SpdmDemandRelateMemberReq();
|
||||
tMemberReq.setDemandId(uuid);
|
||||
tMemberReq.setType(2);
|
||||
String tUserId = threeDimensionalPerformer.split("-")[0];
|
||||
if (isConvertibleToLong(tUserId)) {
|
||||
tMemberReq.setUserId(Long.valueOf(tUserId));
|
||||
}
|
||||
tMemberReq.setCreateTime(curDateStr);
|
||||
tMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(tMemberReq);
|
||||
}
|
||||
demandMapper.addDemand(spdmAddDemandReq, tenantId, jobNumber);
|
||||
// 更新文件权限
|
||||
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
updatePermissionReq.setUserId(jobNumber);
|
||||
updatePermissionReq.setUuid(uuid);
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
updatePermissionReq.setUserPermissions(userPermissions);
|
||||
log.info("同步需求时,更新用户权限的参数为:{}", updatePermissionReq);
|
||||
SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
log.info("同步需求时,更新用户权限的返回值为:{}", updatePermissionResponse);
|
||||
demandMapper.addDemandMember(allMemberList);
|
||||
for (SpdmDemandExtraReq extra : extras) {
|
||||
extra.setCreateTime(curDateStr);
|
||||
extra.setCreator(jobNumber);
|
||||
}
|
||||
demandMapper.addDemandExtra(extras);
|
||||
CreateDirReq createDirReq = new CreateDirReq();
|
||||
createDirReq.setUuId(uuid);
|
||||
createDirReq.setParentUuId(null);
|
||||
createDirReq.setDirName(spdmAddDemandReq.getDemandName());
|
||||
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
|
||||
log.info("同步待办创建需求时,调用创建文件夹的参数为:{}", createDirReq);
|
||||
SdmResponse response = dataFeignClient.createDir(createDirReq);
|
||||
log.info("同步代办创建需求时,调用创建文件夹的返回值为:{}", response);
|
||||
} catch (Exception e) {
|
||||
log.error("同步代办时有异常:{}", e.getMessage());
|
||||
}
|
||||
}
|
||||
return SdmResponse.success();
|
||||
}
|
||||
// @Override
|
||||
// public SdmResponse getTodoListByProjectNum(String projectNum) {
|
||||
// log.info("同步代办时,项目号为:{}", projectNum);
|
||||
// if (StringUtils.isBlank(projectNum)) {
|
||||
// log.error("同步待办时,项目号不能为空");
|
||||
// return SdmResponse.failed("同步待办时,项目号不能为空");
|
||||
// }
|
||||
// // 查询
|
||||
// List<LyricVTodoEmulationInfoDM> todoInfoList = lyricVTodoInfoService.lambdaQuery().eq(LyricVTodoEmulationInfoDM::getProject, projectNum)
|
||||
// .list();
|
||||
// log.info("同步代办时,todoInfoList:{}", todoInfoList);
|
||||
// // 过滤掉数据库中已经有的需求
|
||||
// if (CollectionUtils.isEmpty(todoInfoList)) {
|
||||
// log.info("未同步到待办");
|
||||
// return SdmResponse.success();
|
||||
// }
|
||||
// log.info("同步到{}条待办", todoInfoList.size());
|
||||
// List<SpdmDemandVo> allDemandList = demandMapper.getAllList();
|
||||
// if (CollectionUtils.isNotEmpty(allDemandList)) {
|
||||
// List<String> demandCodeList = allDemandList.stream().map(SpdmDemandVo::getDemandCode).toList();
|
||||
// todoInfoList = todoInfoList.stream().filter(todoInfo -> !demandCodeList.contains(String.valueOf(todoInfo.getTodoId()))).toList();
|
||||
// if (CollectionUtils.isEmpty(todoInfoList)) {
|
||||
// log.info("本次同步到的待办都已经进行过同步");
|
||||
// return SdmResponse.success();
|
||||
// }
|
||||
// }
|
||||
// Long tenantId = ThreadLocalContext.getTenantId();
|
||||
// Long jobNumber = ThreadLocalContext.getUserId();
|
||||
// String uuid;
|
||||
// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||
// for (LyricVTodoEmulationInfoDM emulation : todoInfoList) {
|
||||
// try {
|
||||
// List<SpdmDemandExtraReq> extras = new ArrayList<>();
|
||||
// List<SpdmDemandRelateMemberReq> allMemberList = new ArrayList<>();
|
||||
// // 需求的基础属性
|
||||
// SpdmAddDemandReq spdmAddDemandReq = new SpdmAddDemandReq();
|
||||
// uuid = RandomUtil.generateString(32);
|
||||
// spdmAddDemandReq.setUuid(uuid);
|
||||
// spdmAddDemandReq.setDemandName(emulation.getEmulationDemand());
|
||||
// if (ObjectUtils.isNotEmpty(emulation.getTodoId())) {
|
||||
// spdmAddDemandReq.setDemandCode(String.valueOf(emulation.getTodoId()));
|
||||
// }
|
||||
// spdmAddDemandReq.setDemandType(emulation.getEmulationType());
|
||||
// spdmAddDemandReq.setDemandStatus("0");
|
||||
// spdmAddDemandReq.setAchieveStatus("0");
|
||||
// spdmAddDemandReq.setProgress(0);
|
||||
// spdmAddDemandReq.setBeginTime(emulation.getPlanStartTime());
|
||||
// spdmAddDemandReq.setEndTime(emulation.getClosedTime());
|
||||
// spdmAddDemandReq.setProjectId(emulation.getProject());
|
||||
// spdmAddDemandReq.setPhaseId(emulation.getProjectStage());
|
||||
// spdmAddDemandReq.setDemandSource(SYNC_PROJECT_SOURCE);
|
||||
// // 需求的额外属性
|
||||
// SpdmDemandExtraReq extraReq1 = new SpdmDemandExtraReq();
|
||||
// extraReq1.setDemandId(uuid);
|
||||
// extraReq1.setPropertyName("emulationResult");
|
||||
// extraReq1.setPropertyValue(emulation.getEmulationResult());
|
||||
// extras.add(extraReq1);
|
||||
// SpdmDemandExtraReq extraReq2 = new SpdmDemandExtraReq();
|
||||
// extraReq2.setDemandId(uuid);
|
||||
// extraReq2.setPropertyName("robotBrand");
|
||||
// extraReq2.setPropertyValue(emulation.getRobotBrand());
|
||||
// extras.add(extraReq2);
|
||||
// SpdmDemandExtraReq extraReq3 = new SpdmDemandExtraReq();
|
||||
// extraReq3.setDemandId(uuid);
|
||||
// extraReq3.setPropertyName("axis");
|
||||
// extraReq3.setPropertyValue(emulation.getAxis());
|
||||
// extras.add(extraReq3);
|
||||
// SpdmDemandExtraReq extraReq4 = new SpdmDemandExtraReq();
|
||||
// extraReq4.setDemandId(uuid);
|
||||
// extraReq4.setPropertyName("beatRequirements");
|
||||
// extraReq4.setPropertyValue(emulation.getBeatRequirements());
|
||||
// extras.add(extraReq4);
|
||||
// SpdmDemandExtraReq extraReq5 = new SpdmDemandExtraReq();
|
||||
// extraReq5.setDemandId(uuid);
|
||||
// extraReq5.setPropertyName("threeDimensionalReposito");
|
||||
// extraReq5.setPropertyValue(emulation.getThreeDimensionalRepositoryPath());
|
||||
// extras.add(extraReq5);
|
||||
// SpdmDemandExtraReq extraReq6 = new SpdmDemandExtraReq();
|
||||
// extraReq6.setDemandId(uuid);
|
||||
// extraReq6.setPropertyName("resultPath");
|
||||
// extraReq6.setPropertyValue(emulation.getResultPath());
|
||||
// extras.add(extraReq6);
|
||||
// SpdmDemandExtraReq extraReq7 = new SpdmDemandExtraReq();
|
||||
// extraReq7.setDemandId(uuid);
|
||||
// extraReq7.setPropertyName("resultDescribe");
|
||||
// extraReq7.setPropertyValue(emulation.getResultDescribe());
|
||||
// extras.add(extraReq7);
|
||||
// SpdmDemandExtraReq extraReq8 = new SpdmDemandExtraReq();
|
||||
// extraReq8.setDemandId(uuid);
|
||||
// extraReq8.setPropertyName("analysisType");
|
||||
// extraReq8.setPropertyValue(emulation.getAnalysisType());
|
||||
// extras.add(extraReq8);
|
||||
// SpdmDemandExtraReq extraReq11 = new SpdmDemandExtraReq();
|
||||
// extraReq11.setDemandId(uuid);
|
||||
// extraReq11.setPropertyName("software");
|
||||
// extraReq11.setPropertyValue(emulation.getSoftware());
|
||||
// extras.add(extraReq11);
|
||||
// SpdmDemandExtraReq extraReq12 = new SpdmDemandExtraReq();
|
||||
// extraReq12.setDemandId(uuid);
|
||||
// extraReq12.setPropertyName("type");
|
||||
// extraReq12.setPropertyValue(emulation.getType());
|
||||
// extras.add(extraReq12);
|
||||
// SpdmDemandExtraReq extraReq13 = new SpdmDemandExtraReq();
|
||||
// extraReq13.setDemandId(uuid);
|
||||
// extraReq13.setPropertyName("resultFileId");
|
||||
// extraReq13.setPropertyValue(emulation.getResultFileId());
|
||||
// extras.add(extraReq13);
|
||||
// SpdmDemandExtraReq extraReq14 = new SpdmDemandExtraReq();
|
||||
// extraReq14.setDemandId(uuid);
|
||||
// extraReq14.setPropertyName("difficulty");
|
||||
// extraReq14.setPropertyValue(emulation.getDifficulty());
|
||||
// extras.add(extraReq14);
|
||||
// SpdmDemandExtraReq extraReq15 = new SpdmDemandExtraReq();
|
||||
// extraReq15.setDemandId(uuid);
|
||||
// extraReq15.setPropertyName("requiredTime");
|
||||
// extraReq15.setPropertyValue(emulation.getRequiredTime());
|
||||
// extras.add(extraReq15);
|
||||
// SpdmDemandExtraReq extraReq20 = new SpdmDemandExtraReq();
|
||||
// extraReq20.setDemandId(uuid);
|
||||
// extraReq20.setPropertyName("subject");
|
||||
// extraReq20.setPropertyValue(emulation.getSubject());
|
||||
// extras.add(extraReq20);
|
||||
// SpdmDemandExtraReq extraReq21 = new SpdmDemandExtraReq();
|
||||
// extraReq21.setDemandId(uuid);
|
||||
// extraReq21.setPropertyName("todoNum");
|
||||
// extraReq21.setPropertyValue(emulation.getTodoNum());
|
||||
// extras.add(extraReq21);
|
||||
// SpdmDemandExtraReq extraReq22 = new SpdmDemandExtraReq();
|
||||
// extraReq22.setDemandId(uuid);
|
||||
// extraReq22.setPropertyName("status");
|
||||
// extraReq22.setPropertyValue(emulation.getStatus());
|
||||
// extras.add(extraReq22);
|
||||
// SpdmDemandExtraReq extraReq26 = new SpdmDemandExtraReq();
|
||||
// extraReq26.setDemandId(uuid);
|
||||
// extraReq26.setPropertyName("projectName");
|
||||
// extraReq26.setPropertyValue(emulation.getProjectName());
|
||||
// extras.add(extraReq26);
|
||||
// SpdmDemandExtraReq extraReq27 = new SpdmDemandExtraReq();
|
||||
// extraReq27.setDemandId(uuid);
|
||||
// extraReq27.setPropertyName("projectModel");
|
||||
// extraReq27.setPropertyValue(emulation.getProjectModel());
|
||||
// extras.add(extraReq27);
|
||||
// SpdmDemandExtraReq extraReq28 = new SpdmDemandExtraReq();
|
||||
// extraReq28.setDemandId(uuid);
|
||||
// extraReq28.setPropertyName("projectType");
|
||||
// extraReq28.setPropertyValue(emulation.getProjectType());
|
||||
// extras.add(extraReq28);
|
||||
// SpdmDemandExtraReq extraReq31 = new SpdmDemandExtraReq();
|
||||
// extraReq31.setDemandId(uuid);
|
||||
// extraReq31.setPropertyName("stationNum");
|
||||
// extraReq31.setPropertyValue(emulation.getStationNum());
|
||||
// extras.add(extraReq31);
|
||||
// SpdmDemandExtraReq extraReq32 = new SpdmDemandExtraReq();
|
||||
// extraReq32.setDemandId(uuid);
|
||||
// extraReq32.setPropertyName("planStartTime");
|
||||
// extraReq32.setPropertyValue(emulation.getPlanStartTime());
|
||||
// extras.add(extraReq32);
|
||||
// SpdmDemandExtraReq extraReq33 = new SpdmDemandExtraReq();
|
||||
// extraReq33.setDemandId(uuid);
|
||||
// extraReq33.setPropertyName("requirementsTime");
|
||||
// extraReq33.setPropertyValue(emulation.getRequiredTime());
|
||||
// extras.add(extraReq33);
|
||||
// SpdmDemandExtraReq extraReq34 = new SpdmDemandExtraReq();
|
||||
// extraReq34.setDemandId(uuid);
|
||||
// extraReq34.setPropertyName("pausedTime");
|
||||
// extraReq34.setPropertyValue(emulation.getPausedTime());
|
||||
// extras.add(extraReq34);
|
||||
// SpdmDemandExtraReq extraReq35 = new SpdmDemandExtraReq();
|
||||
// extraReq35.setDemandId(uuid);
|
||||
// extraReq35.setPropertyName("performer");
|
||||
// extraReq35.setPropertyValue(emulation.getPerformer());
|
||||
// extras.add(extraReq35);
|
||||
// SpdmDemandExtraReq extraReq36 = new SpdmDemandExtraReq();
|
||||
// extraReq36.setDemandId(uuid);
|
||||
// extraReq36.setPropertyName("performerName");
|
||||
// extraReq36.setPropertyValue(emulation.getPerformerName());
|
||||
// extras.add(extraReq36);
|
||||
// SpdmDemandExtraReq extraReq37 = new SpdmDemandExtraReq();
|
||||
// extraReq37.setDemandId(uuid);
|
||||
// extraReq37.setPropertyName("verifier");
|
||||
// extraReq37.setPropertyValue(emulation.getVerifier());
|
||||
// extras.add(extraReq37);
|
||||
// SpdmDemandExtraReq extraReq39 = new SpdmDemandExtraReq();
|
||||
// extraReq39.setDemandId(uuid);
|
||||
// extraReq39.setPropertyName("workHourPlan");
|
||||
// extraReq39.setPropertyValue(emulation.getWorkHourPlan());
|
||||
// extras.add(extraReq39);
|
||||
// SpdmDemandExtraReq extraReq40 = new SpdmDemandExtraReq();
|
||||
// extraReq40.setDemandId(uuid);
|
||||
// extraReq40.setPropertyName("realWorkHour");
|
||||
// extraReq40.setPropertyValue(emulation.getRealWorkHour());
|
||||
// extras.add(extraReq40);
|
||||
// SpdmDemandExtraReq extraReq41 = new SpdmDemandExtraReq();
|
||||
// extraReq41.setDemandId(uuid);
|
||||
// extraReq41.setPropertyName("standardWorkHour");
|
||||
// extraReq41.setPropertyValue(emulation.getStandardWorkHour());
|
||||
// extras.add(extraReq41);
|
||||
// SpdmDemandExtraReq extraReq42 = new SpdmDemandExtraReq();
|
||||
// extraReq42.setDemandId(uuid);
|
||||
// extraReq42.setPropertyName("turnDownReason");
|
||||
// extraReq42.setPropertyValue(emulation.getTurnDownReason());
|
||||
// extras.add(extraReq42);
|
||||
//
|
||||
// // 需求的成员
|
||||
// // 仿真负责人
|
||||
// String emulationPerformer = emulation.getEmulationPerformer();
|
||||
// if (StringUtils.isNotBlank(emulationPerformer)) {
|
||||
// SpdmDemandRelateMemberReq pMemberReq = new SpdmDemandRelateMemberReq();
|
||||
// pMemberReq.setDemandId(uuid);
|
||||
// pMemberReq.setType(0);
|
||||
// String pUserId = emulationPerformer.split("-")[0];
|
||||
// if (isConvertibleToLong(pUserId)) {
|
||||
// pMemberReq.setUserId(Long.valueOf(pUserId));
|
||||
// }
|
||||
// pMemberReq.setCreateTime(curDateStr);
|
||||
// pMemberReq.setCreator(jobNumber);
|
||||
// allMemberList.add(pMemberReq);
|
||||
// }
|
||||
//
|
||||
// // 仿真执行人
|
||||
// String emulationExecutor = emulation.getEmulationExecutor();
|
||||
// if (StringUtils.isNotBlank(emulationExecutor)) {
|
||||
// SpdmDemandRelateMemberReq eMemberReq = new SpdmDemandRelateMemberReq();
|
||||
// eMemberReq.setDemandId(uuid);
|
||||
// eMemberReq.setType(1);
|
||||
// String eUserId = emulationExecutor.split("-")[0];
|
||||
// if (isConvertibleToLong(eUserId)) {
|
||||
// eMemberReq.setUserId(Long.valueOf(eUserId));
|
||||
// }
|
||||
// eMemberReq.setCreateTime(curDateStr);
|
||||
// eMemberReq.setCreator(jobNumber);
|
||||
// allMemberList.add(eMemberReq);
|
||||
// }
|
||||
//
|
||||
// // 3D负责人
|
||||
// String threeDimensionalPerformer = emulation.getThreeDimensionalPerformer();
|
||||
// if (StringUtils.isNotBlank(emulationExecutor)) {
|
||||
// SpdmDemandRelateMemberReq tMemberReq = new SpdmDemandRelateMemberReq();
|
||||
// tMemberReq.setDemandId(uuid);
|
||||
// tMemberReq.setType(2);
|
||||
// String tUserId = threeDimensionalPerformer.split("-")[0];
|
||||
// if (isConvertibleToLong(tUserId)) {
|
||||
// tMemberReq.setUserId(Long.valueOf(tUserId));
|
||||
// }
|
||||
// tMemberReq.setCreateTime(curDateStr);
|
||||
// tMemberReq.setCreator(jobNumber);
|
||||
// allMemberList.add(tMemberReq);
|
||||
// }
|
||||
// demandMapper.addDemand(spdmAddDemandReq, tenantId, jobNumber);
|
||||
// // 更新文件权限
|
||||
// UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
// updatePermissionReq.setUserId(jobNumber);
|
||||
// updatePermissionReq.setUuid(uuid);
|
||||
// Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
// userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
// updatePermissionReq.setUserPermissions(userPermissions);
|
||||
// log.info("同步需求时,更新用户权限的参数为:{}", updatePermissionReq);
|
||||
// SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
// log.info("同步需求时,更新用户权限的返回值为:{}", updatePermissionResponse);
|
||||
// demandMapper.addDemandMember(allMemberList);
|
||||
// for (SpdmDemandExtraReq extra : extras) {
|
||||
// extra.setCreateTime(curDateStr);
|
||||
// extra.setCreator(jobNumber);
|
||||
// }
|
||||
// demandMapper.addDemandExtra(extras);
|
||||
// CreateDirReq createDirReq = new CreateDirReq();
|
||||
// createDirReq.setUuId(uuid);
|
||||
// createDirReq.setParentUuId(null);
|
||||
// createDirReq.setDirName(spdmAddDemandReq.getDemandName());
|
||||
// createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
|
||||
// log.info("同步待办创建需求时,调用创建文件夹的参数为:{}", createDirReq);
|
||||
// SdmResponse response = dataFeignClient.createDir(createDirReq);
|
||||
// log.info("同步代办创建需求时,调用创建文件夹的返回值为:{}", response);
|
||||
// } catch (Exception e) {
|
||||
// log.error("同步代办时有异常:{}", e.getMessage());
|
||||
// }
|
||||
// }
|
||||
// return SdmResponse.success();
|
||||
// }
|
||||
|
||||
@Override
|
||||
public SdmResponse getMainPlanListByProjectId(Integer projectId, String projectUuid) {
|
||||
|
||||
@@ -3405,7 +3405,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
String demandUuid = RandomUtil.generateString(32);
|
||||
|
||||
// 1. 构建基础需求信息
|
||||
SpdmAddDemandReq demandAddReq = buildDemandAddReq(todoItem, demandUuid, projectNodeMap, currentTimeStr,workspaceNodeMap);
|
||||
SpdmAddDemandReq demandAddReq = buildDemandAddReq(todoItem, demandUuid, projectNodeMap, currentTimeStr,workspaceNodeMap,usernameToUserIdMap);
|
||||
|
||||
// 2. 构建成员信息和权限信息
|
||||
List<SpdmDemandRelateMemberReq> memberList = buildDemandMemberList(
|
||||
@@ -3433,7 +3433,8 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
String demandUuid,
|
||||
Map<String, SpdmProjectNodeEditReq> projectNodeMap,
|
||||
String currentTimeStr,
|
||||
Map<String, String> workspaceNodeMap) {
|
||||
Map<String, String> workspaceNodeMap,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
SpdmAddDemandReq demandAddReq = new SpdmAddDemandReq();
|
||||
|
||||
// 基础属性
|
||||
@@ -3457,6 +3458,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
if (StringUtils.isNotBlank(demandAddReq.getWorkspaceId()) && MapUtils.isNotEmpty(workspaceNodeMap)) {
|
||||
demandAddReq.setMachineId(workspaceNodeMap.get(demandAddReq.getWorkspaceId()));
|
||||
}
|
||||
demandAddReq.setCreator(usernameToUserIdMap.get(todoItem.getIntroduceBy()));
|
||||
return demandAddReq;
|
||||
}
|
||||
|
||||
@@ -3471,6 +3473,43 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
return node != null ? node.getUuid() : null;
|
||||
}
|
||||
|
||||
private void addDemandMember(String memberStr,
|
||||
int type,
|
||||
String demandUuid,
|
||||
Long jobNumber,
|
||||
String curDateStr,
|
||||
List<SpdmDemandRelateMemberReq> memberList,
|
||||
List<UpdatePermissionReq> permissionReqList,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
if (StringUtils.isBlank(memberStr)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
String[] userIdStr;
|
||||
if (MemberTypeEnum.PRINCIPAL.getCode().equals(type) || MemberTypeEnum.EXECUTOR.getCode().equals(type)) {
|
||||
userIdStr = memberStr.split(",");
|
||||
} {
|
||||
userIdStr = memberStr.split("-");
|
||||
}
|
||||
if (ObjectUtils.isEmpty(userIdStr)) {
|
||||
return;
|
||||
}
|
||||
for (String userId : userIdStr) {
|
||||
SpdmDemandRelateMemberReq memberReq = new SpdmDemandRelateMemberReq();
|
||||
memberReq.setDemandId(demandUuid);
|
||||
memberReq.setType(type);
|
||||
memberReq.setCreateTime(curDateStr);
|
||||
memberReq.setCreator(jobNumber);
|
||||
memberReq.setUserIdStr(userId);
|
||||
memberList.add(memberReq);
|
||||
if (MemberTypeEnum.PRINCIPAL.getCode().equals(type) || MemberTypeEnum.EXECUTOR.getCode().equals(type)) {
|
||||
addUserPermission(permissionReqList, demandUuid, usernameToUserIdMap.get(userId),FilePermissionEnum.BASE.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建需求成员列表,并同步构建权限请求
|
||||
*/
|
||||
@@ -3487,9 +3526,16 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
|
||||
// 仿真负责人(在EP里是确认人):verifier
|
||||
// 需求创建人(在EP里是提出人):introduceBy
|
||||
addDemandMember(todoItem.getVerifierNo(),todoItem.getIntroduceBy(), MemberTypeEnum.PRINCIPAL.getCode(), demandUuid, currentUserId, currentTimeStr, memberList, permissionReqList,usernameToUserIdMap);
|
||||
|
||||
// addDemandMember(todoItem.getVerifierNo(),todoItem.getIntroduceBy(), MemberTypeEnum.PRINCIPAL.getCode(), demandUuid, currentUserId, currentTimeStr, memberList, permissionReqList,usernameToUserIdMap);
|
||||
// 仿真负责人
|
||||
addDemandMember(todoItem.getVerifierNo(), MemberTypeEnum.PRINCIPAL.getCode(), demandUuid, currentUserId, currentTimeStr, memberList,permissionReqList,usernameToUserIdMap);
|
||||
// 仿真执行人
|
||||
addDemandMember(todoItem.getFollowBy(), MemberTypeEnum.EXECUTOR.getCode(), demandUuid, currentUserId, currentTimeStr, memberList,permissionReqList,usernameToUserIdMap);
|
||||
// 3D负责人
|
||||
addDemandMember(todoItem.getThreeDimensionalPerformer(), MemberTypeEnum.THREED.getCode(), demandUuid, currentUserId, currentTimeStr, memberList,permissionReqList,usernameToUserIdMap);
|
||||
|
||||
// 需求创建人添加权限
|
||||
addUserPermission(permissionReqList, demandUuid, usernameToUserIdMap.get(todoItem.getIntroduceBy()),FilePermissionEnum.ALL.getValue());
|
||||
|
||||
// 仿真执行人
|
||||
// addDemandMember(todoItem.getEmulationExecutor(), 1, demandUuid, currentUserId, currentTimeStr, memberList, permissionReqList);
|
||||
@@ -3503,74 +3549,76 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
return memberList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加需求成员
|
||||
*/
|
||||
private void addDemandMember(String verifierNo,String introduceBy, int memberType, String demandUuid,
|
||||
Long currentUserId, String currentTimeStr,
|
||||
List<SpdmDemandRelateMemberReq> memberList,
|
||||
List<UpdatePermissionReq> permissionReqList,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
log.info("verifierNo为:{},introduceBy为:{}",verifierNo,introduceBy);
|
||||
if (StringUtils.isBlank(verifierNo) && StringUtils.isBlank(introduceBy)) {
|
||||
log.error("确认人和提出人都为空");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// TODO
|
||||
Long verifierUserId = 0L;;
|
||||
if (StringUtils.isNotBlank(verifierNo)) {
|
||||
verifierUserId = usernameToUserIdMap.get(verifierNo);
|
||||
// 构建仿真负责人信息
|
||||
SpdmDemandRelateMemberReq memberReq = new SpdmDemandRelateMemberReq();
|
||||
memberReq.setDemandId(demandUuid);
|
||||
memberReq.setType(memberType);
|
||||
memberReq.setUserId(verifierUserId);
|
||||
memberReq.setCreateTime(currentTimeStr);
|
||||
memberReq.setCreator(currentUserId);
|
||||
memberList.add(memberReq);
|
||||
}
|
||||
Long introduceByUserId = 0L;
|
||||
if (StringUtils.isNotBlank(introduceBy)) {
|
||||
introduceByUserId = usernameToUserIdMap.get(introduceBy);
|
||||
}
|
||||
|
||||
// 添加权限
|
||||
addUserPermission(permissionReqList, demandUuid, verifierUserId,introduceByUserId,FilePermissionEnum.BASE.getValue());
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("添加需求成员失败,确认人:{},提出人:{}", verifierNo,introduceBy , e);
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * 添加需求成员
|
||||
// */
|
||||
// private void addDemandMember(String verifierNo,String introduceBy, int memberType, String demandUuid,
|
||||
// Long currentUserId, String currentTimeStr,
|
||||
// List<SpdmDemandRelateMemberReq> memberList,
|
||||
// List<UpdatePermissionReq> permissionReqList,
|
||||
// Map<String, Long> usernameToUserIdMap) {
|
||||
// log.info("verifierNo为:{},introduceBy为:{}",verifierNo,introduceBy);
|
||||
// if (StringUtils.isBlank(verifierNo) && StringUtils.isBlank(introduceBy)) {
|
||||
// log.error("确认人和提出人都为空");
|
||||
// return;
|
||||
// }
|
||||
// try {
|
||||
// // TODO
|
||||
// Long verifierUserId = 0L;;
|
||||
// if (StringUtils.isNotBlank(verifierNo)) {
|
||||
// verifierUserId = usernameToUserIdMap.get(verifierNo);
|
||||
// // 构建仿真负责人信息
|
||||
// SpdmDemandRelateMemberReq memberReq = new SpdmDemandRelateMemberReq();
|
||||
// memberReq.setDemandId(demandUuid);
|
||||
// memberReq.setType(memberType);
|
||||
// memberReq.setUserId(verifierUserId);
|
||||
// memberReq.setCreateTime(currentTimeStr);
|
||||
// memberReq.setCreator(currentUserId);
|
||||
// memberList.add(memberReq);
|
||||
// }
|
||||
// Long introduceByUserId = 0L;
|
||||
// if (StringUtils.isNotBlank(introduceBy)) {
|
||||
// introduceByUserId = usernameToUserIdMap.get(introduceBy);
|
||||
// }
|
||||
//
|
||||
// // 添加权限
|
||||
// addUserPermission(permissionReqList, demandUuid, verifierUserId,introduceByUserId,FilePermissionEnum.BASE.getValue());
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// log.error("添加需求成员失败,确认人:{},提出人:{}", verifierNo,introduceBy , e);
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 添加用户权限
|
||||
*/
|
||||
private void addUserPermission(List<UpdatePermissionReq> permissionReqList,
|
||||
String demandUuid,
|
||||
Long verifierUserId,Long introduceByUserId,byte filePermissionEnumValue) {
|
||||
Long userId,byte filePermissionEnumValue) {
|
||||
|
||||
if (verifierUserId != 0L) {
|
||||
if (userId != 0L) {
|
||||
UpdatePermissionReq permissionReq = new UpdatePermissionReq();
|
||||
permissionReq.setUserId(verifierUserId);
|
||||
permissionReq.setUserId(userId);
|
||||
permissionReq.setUuid(demandUuid);
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(verifierUserId, filePermissionEnumValue);
|
||||
userPermissions.put(userId, filePermissionEnumValue);
|
||||
permissionReq.setUserPermissions(userPermissions);
|
||||
permissionReq.setPermission(filePermissionEnumValue);
|
||||
permissionReqList.add(permissionReq);
|
||||
}
|
||||
|
||||
if (introduceByUserId != 0L) {
|
||||
UpdatePermissionReq introduceByPermissionReq = new UpdatePermissionReq();
|
||||
introduceByPermissionReq.setUserId(introduceByUserId);
|
||||
introduceByPermissionReq.setUuid(demandUuid);
|
||||
Map<Long, Byte> introduceByUserPermissions = new HashMap<>();
|
||||
introduceByUserPermissions.put(introduceByUserId, FilePermissionEnum.ALL.getValue());
|
||||
introduceByPermissionReq.setUserPermissions(introduceByUserPermissions);
|
||||
introduceByPermissionReq.setPermission(FilePermissionEnum.ALL.getValue());
|
||||
permissionReqList.add(introduceByPermissionReq);
|
||||
}
|
||||
|
||||
|
||||
// if (introduceByUserId != 0L) {
|
||||
// UpdatePermissionReq introduceByPermissionReq = new UpdatePermissionReq();
|
||||
// introduceByPermissionReq.setUserId(introduceByUserId);
|
||||
// introduceByPermissionReq.setUuid(demandUuid);
|
||||
// Map<Long, Byte> introduceByUserPermissions = new HashMap<>();
|
||||
// introduceByUserPermissions.put(introduceByUserId, FilePermissionEnum.ALL.getValue());
|
||||
// introduceByPermissionReq.setUserPermissions(introduceByUserPermissions);
|
||||
// introduceByPermissionReq.setPermission(FilePermissionEnum.ALL.getValue());
|
||||
// permissionReqList.add(introduceByPermissionReq);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
@@ -3614,13 +3662,17 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
ThreadLocalContext.setUserId(currentUserId);
|
||||
demandMapper.addDemand(demandAddReq, tenantId, currentUserId);
|
||||
if (CollectionUtils.isNotEmpty(memberList)) {
|
||||
List<SpdmDemandRelateMemberReq> normalMemberList = new ArrayList<>();
|
||||
for (SpdmDemandRelateMemberReq member : memberList) {
|
||||
Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId()));
|
||||
if (cidUserId != null) {
|
||||
member.setUserId(cidUserId);
|
||||
Long cidUserId = usernameToUserIdMap.get(member.getUserIdStr());
|
||||
if (cidUserId == null) {
|
||||
log.info("工号为:{}的用户未查询到用户id", member.getUserIdStr());
|
||||
continue;
|
||||
}
|
||||
member.setUserId(cidUserId);
|
||||
normalMemberList.add(member);
|
||||
}
|
||||
demandMapper.addDemandMember(memberList);
|
||||
demandMapper.addDemandMember(normalMemberList);
|
||||
}
|
||||
|
||||
SimulationDemand demand = new SimulationDemand();
|
||||
|
||||
@@ -149,6 +149,9 @@ public class TaskServiceImpl implements ITaskService {
|
||||
@Value("${lyricFlag:1}")
|
||||
private int lyricFlag;
|
||||
|
||||
// 利元亨工号位数(五位数)
|
||||
private static final int LYRIC_JOB_NUMBER_LENGTH = 5;
|
||||
|
||||
|
||||
/**
|
||||
* 预处理请求参数
|
||||
@@ -703,6 +706,38 @@ public class TaskServiceImpl implements ITaskService {
|
||||
newTaskVo.setPayAttentionMemberList(getCidUserListByUserId(memberType2UserIdMap.get(MemberTypeEnum.ATTENTION.getCode()), cidUserMap));
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算Long类型数值的位数
|
||||
* @param number 要计算的Long数值
|
||||
* @return 数值的位数
|
||||
*/
|
||||
public static int getDigitCount(long number) {
|
||||
// 处理0的特殊情况
|
||||
if (number == 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 取绝对值,统一处理正负值
|
||||
long absNumber = Math.abs(number);
|
||||
|
||||
// 计算位数
|
||||
return (int) (Math.log10(absNumber) + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将Long类型的userId补零到5位数
|
||||
* @param userId 原始userId(Long类型)
|
||||
* @return 补零后的字符串(不足5位前补0,超过5位原样返回)
|
||||
*/
|
||||
public static String formatUserId(Long userId) {
|
||||
// 空值处理:防止userId为null时报错
|
||||
if (userId == null) {
|
||||
return "00000";
|
||||
}
|
||||
// %05d 表示:0代表补零,5代表总长度,d代表十进制整数
|
||||
return String.format("%05d", userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置需求相关信息(需求名称/提出人/提出人名称)
|
||||
*
|
||||
@@ -714,8 +749,26 @@ public class TaskServiceImpl implements ITaskService {
|
||||
private void setDemandRelatedInfo(SpdmNewTaskVo newTaskVo,
|
||||
String demandId,
|
||||
Map<String, SpdmDemandVo> demandMap,
|
||||
Map<String, Long> demandSubmitMap) {
|
||||
Map<String, Long> demandSubmitMap,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
if (StringUtils.isBlank(demandId)) {
|
||||
// 提出人:需求的创建人没有就取任务的创建人
|
||||
// 之前同步创建的需求、任务时,创建人用的工号,这里先兼容处理下
|
||||
Long creator = newTaskVo.getCreator();
|
||||
Long userId;
|
||||
if (getDigitCount(creator) < LYRIC_JOB_NUMBER_LENGTH) {
|
||||
// 不足五位的前面补0
|
||||
userId = usernameToUserIdMap.get(formatUserId(creator));
|
||||
}else {
|
||||
userId = creator;
|
||||
}
|
||||
newTaskVo.setSubmitter(userId);
|
||||
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
|
||||
UserQueryReq.builder().userId(userId).build()
|
||||
);
|
||||
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
|
||||
newTaskVo.setSubmitterName(userResp.getData().getNickname());
|
||||
}
|
||||
return;
|
||||
}
|
||||
// 设置需求名称(没有就返回空字符串)
|
||||
@@ -725,18 +778,32 @@ public class TaskServiceImpl implements ITaskService {
|
||||
Long submitterId = demandSubmitMap.get(demandId);
|
||||
newTaskVo.setSubmitter(submitterId);
|
||||
// 设置提出人名称(提出人ID不为空时查询)
|
||||
Long userId;
|
||||
if (submitterId != null) {
|
||||
if (getDigitCount(submitterId) < LYRIC_JOB_NUMBER_LENGTH) {
|
||||
// 不足五位的前面补0
|
||||
userId = usernameToUserIdMap.get(formatUserId(submitterId));
|
||||
}else {
|
||||
userId = submitterId;
|
||||
}
|
||||
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
|
||||
UserQueryReq.builder().userId(submitterId).build()
|
||||
UserQueryReq.builder().userId(userId).build()
|
||||
);
|
||||
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
|
||||
newTaskVo.setSubmitterName(userResp.getData().getNickname());
|
||||
}
|
||||
} else {
|
||||
// 提出人:需求的创建人没有就取任务的创建人
|
||||
newTaskVo.setSubmitter(newTaskVo.getCreator());
|
||||
Long creator = newTaskVo.getCreator();
|
||||
if (getDigitCount(creator) < LYRIC_JOB_NUMBER_LENGTH) {
|
||||
// 不足五位的前面补0
|
||||
userId = usernameToUserIdMap.get(formatUserId(creator));
|
||||
}else {
|
||||
userId = creator;
|
||||
}
|
||||
newTaskVo.setSubmitter(userId);
|
||||
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
|
||||
UserQueryReq.builder().userId(newTaskVo.getCreator()).build()
|
||||
UserQueryReq.builder().userId(userId).build()
|
||||
);
|
||||
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
|
||||
newTaskVo.setSubmitterName(userResp.getData().getNickname());
|
||||
@@ -748,7 +815,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
/**
|
||||
* 批量转换为返回VO
|
||||
*/
|
||||
private List<SpdmNewTaskVo> convertToNewVoBatch(List<SpdmTaskVo> taskList, BatchAssociatedData batchData) {
|
||||
private List<SpdmNewTaskVo> convertToNewVoBatch(List<SpdmTaskVo> taskList, BatchAssociatedData batchData,Map<String, Long> usernameToUserIdMap) {
|
||||
// 空值安全处理,直接返回空集合
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
return new ArrayList<>();
|
||||
@@ -799,7 +866,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
setTaskMemberInfo(newTaskVo, taskMemberMap.get(taskId), cidUserMap);
|
||||
|
||||
// 5. 设置需求相关信息(提出人/提出人名称)
|
||||
setDemandRelatedInfo(newTaskVo, taskVo.getDemandId(), demandMap, demandSubmitMap);
|
||||
setDemandRelatedInfo(newTaskVo, taskVo.getDemandId(), demandMap, demandSubmitMap,usernameToUserIdMap);
|
||||
|
||||
// 6. 设置工位号信息
|
||||
setWorkSpaceNodeCode(newTaskVo, taskVo, workSpaceNodeMap, taskNodeTag);
|
||||
@@ -973,7 +1040,18 @@ public class TaskServiceImpl implements ITaskService {
|
||||
stopWatch.stop();
|
||||
// 10. 转换为返回VO
|
||||
stopWatch.start("转换为返回VO");
|
||||
List<SpdmNewTaskVo> newTaskList = convertToNewVoBatch(pageTaskList, batchData);
|
||||
// 将利元亨的用户工号与userId映射
|
||||
Map<String, Long> usernameToUserIdMap = new HashMap<>();
|
||||
UserListReq userListReq = new UserListReq();
|
||||
userListReq.setTenantId(tenantId);
|
||||
userListReq.setCurrent(1);
|
||||
userListReq.setSize(9999);
|
||||
SdmResponse<PageDataResp<List<CIDUserResp>>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq);
|
||||
if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) {
|
||||
List<CIDUserResp> userList = pageDataRespSdmResponse.getData().getData();
|
||||
usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId));
|
||||
}
|
||||
List<SpdmNewTaskVo> newTaskList = convertToNewVoBatch(pageTaskList, batchData,usernameToUserIdMap);
|
||||
stopWatch.stop();
|
||||
// 输出计时结果(两种方式:格式化打印/自定义输出)
|
||||
System.out.println("===== 格式化打印所有任务耗时(推荐日志输出) =====");
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
insert into simulation_demand (uuid,demand_name,demand_code,demand_type,sim_type,demand_status,achieve_status,progress,approval_status,
|
||||
begin_time,end_time,finish_time,project_id,phase_id,workspace_id,tenant_id,creator,create_time,demandSource,description,machine_id) values
|
||||
(#{req.uuid},#{req.demandName},#{req.demandCode},#{req.demandType},#{req.simType},#{req.demandStatus},#{req.achieveStatus},#{req.progress},#{req.approvalStatus},
|
||||
#{req.beginTime},#{req.endTime},'',#{req.projectId},#{req.phaseId},#{req.workspaceId},#{req.creator},#{jobNumber},#{req.createTime},#{req.demandSource},#{req.description},#{req.machineId})
|
||||
#{req.beginTime},#{req.endTime},'',#{req.projectId},#{req.phaseId},#{req.workspaceId},#{tenantId},#{req.creator},#{req.createTime},#{req.demandSource},#{req.description},#{req.machineId})
|
||||
</insert>
|
||||
|
||||
<insert id="addDemandMember">
|
||||
|
||||
Reference in New Issue
Block a user