1、解决任务列表提出人为空的问题

This commit is contained in:
2026-02-25 15:25:09 +08:00
parent 6d5258c89e
commit 162ce90cd9
7 changed files with 487 additions and 356 deletions

View File

@@ -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后缀

View File

@@ -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")

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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();

View File

@@ -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 原始userIdLong类型
* @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("===== 格式化打印所有任务耗时(推荐日志输出) =====");

View File

@@ -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">