From 3a4de30d119887b69bf5fa019bf8ead9f2279d4c Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Tue, 3 Feb 2026 12:49:58 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=9A=E5=88=B6=E6=97=A0=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=BF=87=E6=BB=A4=E7=9A=84=E9=A1=B9=E7=9B=AE=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E6=96=B0=E5=A2=9E=E9=9C=80=E6=B1=82=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimulationDemandController.java | 13 ++ .../SimulationLyricNodeController.java | 21 +++ .../project/dao/SimulationDemandMapper.java | 2 + .../sdm/project/dao/SimulationNodeMapper.java | 6 + .../sdm/project/service/IDemandService.java | 2 + .../service/ILyricInternalService.java | 3 + .../service/impl/DemandServiceImpl.java | 146 ++++++++++++++++++ .../impl/LyricInternalServiceImpl.java | 132 ++++++++++++++++ .../mapper/SimulationDemandMapper.xml | 4 + .../resources/mapper/SimulationNodeMapper.xml | 57 +++++++ 10 files changed, 386 insertions(+) diff --git a/project/src/main/java/com/sdm/project/controller/SimulationDemandController.java b/project/src/main/java/com/sdm/project/controller/SimulationDemandController.java index 456d193f..461facc6 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationDemandController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationDemandController.java @@ -138,4 +138,17 @@ public class SimulationDemandController { return demandService.queryTodoList(req); } + /** + * 新增需求(无权限过滤) + * + * @param req + * @return + */ + @SysLog("新增需求") + @PostMapping("/addDemandNoPermission") + @Operation(summary = "新增需求", description = "新增需求") + public SdmResponse addDemandNoPermission(@RequestBody @Validated SpdmAddDemandReq req) { + return demandService.addDemandNoPermission(req); + } + } diff --git a/project/src/main/java/com/sdm/project/controller/SimulationLyricNodeController.java b/project/src/main/java/com/sdm/project/controller/SimulationLyricNodeController.java index 0ffaac65..a439a7e4 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationLyricNodeController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationLyricNodeController.java @@ -1,11 +1,15 @@ package com.sdm.project.controller; import com.sdm.common.common.SdmResponse; +import com.sdm.common.entity.req.project.SpdmNodeListReq; +import com.sdm.common.log.annotation.SysLog; import com.sdm.outbridge.mode.GetProcessDataReq; import com.sdm.outbridge.service.lyric.LyricIntegrateService; import com.sdm.project.model.req.PushReportReq; +import com.sdm.project.model.req.SpdmAddDemandReq; import com.sdm.project.model.req.ep.EpProjectQueryReq; import com.sdm.project.model.req.ep.EpSyncPhaseReq; +import com.sdm.project.service.IDemandService; import com.sdm.project.service.ILyricInternalService; import com.sdm.project.service.ISimulationLyricNodeService; import io.swagger.v3.oas.annotations.Operation; @@ -14,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + @RestController @RequestMapping(value = "/node") @Tag(name = "利元亨定制节点相关接口", description = "利元亨定制节点相关接口") @@ -28,6 +34,9 @@ public class SimulationLyricNodeController { @Autowired private LyricIntegrateService lyricIntegrateService; + @Resource + private IDemandService demandService; + @GetMapping("/updateApprovalStatus") @Operation(summary = "仿真节点审批状态更新", description = "仿真节点审批状态更新") public SdmResponse updateApprovalStatus(@RequestParam(value = "projectName") @Validated String projectName, @RequestParam(value = "workspaceName") @Validated String workspaceName, @RequestParam(value = "approvalStatus") @Validated Integer approvalStatus) { @@ -167,5 +176,17 @@ public class SimulationLyricNodeController { return lyricInternalService.queryProjectMember(projectId,queryType,current,size); } + /** + * 项目列表(无权限过滤) + * + * @param req + * @return + */ + @PostMapping("/listNoPermission") + @Operation(summary = "项目列表", description = "项目列表") + public SdmResponse listNoPermission(@RequestBody SpdmNodeListReq req) { + return lyricInternalService.listNoPermission(req); + } + } diff --git a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java index 9b4db6ca..324a6c2a 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java @@ -32,6 +32,8 @@ public interface SimulationDemandMapper extends BaseMapper { SpdmDemandVo getDemandByName(@Param("tenantId") Long tenantId,@Param("demandName") String demandName); + SpdmDemandVo getDemandByNameNoPermission(@Param("demandName") String demandName); + List getDemandExtraList(@Param("demandIdList") List demandIdList); List getDemandListById(@Param("demandIdList") List demandIdList); diff --git a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java index b3179385..1aca5321 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java @@ -45,9 +45,15 @@ public interface SimulationNodeMapper extends BaseMapper { List getNodeList(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("pos") int pos, @Param("limit") int limit); + List getNodeListNoPermission(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, + @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("pos") int pos, @Param("limit") int limit); + int getNodeListCount(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId); + int getNodeListCountNoPermission(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, + @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId); + List getNodeExtraListByNodeIdList(@Param("nodeIdList") List nodeIdList); diff --git a/project/src/main/java/com/sdm/project/service/IDemandService.java b/project/src/main/java/com/sdm/project/service/IDemandService.java index 4078cb3b..f4217caf 100644 --- a/project/src/main/java/com/sdm/project/service/IDemandService.java +++ b/project/src/main/java/com/sdm/project/service/IDemandService.java @@ -46,4 +46,6 @@ public interface IDemandService { SdmResponse>> queryDemandFiles(QueryDirReq req); SdmResponse queryTodoList(DemandQryReq req); + + SdmResponse addDemandNoPermission(SpdmAddDemandReq req); } diff --git a/project/src/main/java/com/sdm/project/service/ILyricInternalService.java b/project/src/main/java/com/sdm/project/service/ILyricInternalService.java index e91e652e..141b3797 100644 --- a/project/src/main/java/com/sdm/project/service/ILyricInternalService.java +++ b/project/src/main/java/com/sdm/project/service/ILyricInternalService.java @@ -1,6 +1,7 @@ package com.sdm.project.service; import com.sdm.common.common.SdmResponse; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.outbridge.mode.GetProcessDataReq; import com.sdm.project.model.req.PushReportReq; import com.sdm.project.model.req.ep.EpProjectQueryReq; @@ -49,4 +50,6 @@ public interface ILyricInternalService { /* 同步任务的异常状态 */ SdmResponse syncException(); + SdmResponse listNoPermission(SpdmNodeListReq req); + } diff --git a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java index 163c31ee..06482fee 100644 --- a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java @@ -1104,6 +1104,152 @@ public class DemandServiceImpl extends BaseService implements IDemandService { return SdmResponse.success(demandVoList); } + @Transactional + @Override + public SdmResponse addDemandNoPermission(SpdmAddDemandReq req) { + Long tenantId = ThreadLocalContext.getTenantId(); + Long jobNumber = ThreadLocalContext.getUserId(); + req.setCreator(jobNumber); + log.info("新增需求时(无权限校验),当前租户id为:{},工号为:{}", tenantId, jobNumber); + // 获取仿真负责人 + String pMemberList = req.getPMemberList(); + // 获取仿真执行人 + String eMemberList = req.getEMemberList(); + // 3D负责人 + String threeDMemberList = req.getTMemberList(); + // 关注人 + String attentionMemberList = req.getAMemberList(); + // 获取需求额外属性 + List demandExtraList = req.getExtras(); + String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + req.setCreateTime(curDateStr); + req.setUuid(RandomUtil.generateString(32)); + SpdmDemandVo demandByName = mapper.getDemandByNameNoPermission(req.getDemandName()); + if (ObjectUtils.isNotEmpty(demandByName)) { + return SdmResponse.failed("需求名称:" + demandByName.getDemandName() + "已存在,请修改"); + } + if (mapper.addDemand(req, tenantId, jobNumber) <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("新增需求失败!"); + } + long demandId = req.getId(); + log.info("需求主键id为(无权限校验):{}", demandId); + List allMemberList = new ArrayList<>(); + String uuid = req.getUuid(); + if (StringUtils.isNotBlank(pMemberList)) { + String[] pMemberArray = pMemberList.split(","); + for (String userId : pMemberArray) { + SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq(); + spdmDemandRelateMemberReq.setDemandId(uuid); + spdmDemandRelateMemberReq.setType(0); + spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId)); + spdmDemandRelateMemberReq.setCreateTime(curDateStr); + spdmDemandRelateMemberReq.setCreator(jobNumber); + allMemberList.add(spdmDemandRelateMemberReq); + } + } + + if (StringUtils.isNotBlank(eMemberList)) { + String[] eMemberArray = eMemberList.split(","); + for (String userId : eMemberArray) { + SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq(); + spdmDemandRelateMemberReq.setDemandId(uuid); + spdmDemandRelateMemberReq.setType(1); + spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId)); + spdmDemandRelateMemberReq.setCreateTime(curDateStr); + spdmDemandRelateMemberReq.setCreator(jobNumber); + allMemberList.add(spdmDemandRelateMemberReq); + } + } + + if (StringUtils.isNotBlank(threeDMemberList)) { + String[] threeDMemberArray = threeDMemberList.split(","); + for (String userId : threeDMemberArray) { + SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq(); + spdmDemandRelateMemberReq.setDemandId(uuid); + spdmDemandRelateMemberReq.setType(2); + spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId)); + spdmDemandRelateMemberReq.setCreateTime(curDateStr); + spdmDemandRelateMemberReq.setCreator(jobNumber); + allMemberList.add(spdmDemandRelateMemberReq); + } + } + + if (StringUtils.isNotBlank(attentionMemberList)) { + String[] attentionMemberArray = attentionMemberList.split(","); + for (String userId : attentionMemberArray) { + SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq(); + spdmDemandRelateMemberReq.setDemandId(uuid); + spdmDemandRelateMemberReq.setType(3); + spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId)); + spdmDemandRelateMemberReq.setCreateTime(curDateStr); + spdmDemandRelateMemberReq.setCreator(jobNumber); + allMemberList.add(spdmDemandRelateMemberReq); + } + } + + if (CollectionUtils.isNotEmpty(allMemberList)) { + if (mapper.addDemandMember(allMemberList) <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("新增需求关联成员失败!"); + } + } + if (CollectionUtils.isNotEmpty(demandExtraList)) { + demandExtraList.forEach(demandExtra -> { + demandExtra.setDemandId(req.getUuid()); + demandExtra.setCreateTime(curDateStr); + demandExtra.setCreator(jobNumber); + }); + if (mapper.addDemandExtra(demandExtraList) <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("新增需求额外属性失败!"); + } + } + + BatchCreateNormalDirReq batchCreateNormalDirReq = new BatchCreateNormalDirReq(); + batchCreateNormalDirReq.setParentUUId(req.getProjectId()); + FolderItemReq folderItemReq = new FolderItemReq(); + folderItemReq.setFolderName(req.getDemandName()); + folderItemReq.setFolderUuid(req.getUuid()); + batchCreateNormalDirReq.setFolderItems(Collections.singletonList(folderItemReq)); + batchCreateNormalDirReq.setSkipPermissionCheck(true); + log.info("创建需求文件夹参数(无权限校验): {}", batchCreateNormalDirReq); + SdmResponse dirCreateResp = dataFeignClient.batchCreateNormalDirs(batchCreateNormalDirReq); + if (ObjectUtils.isEmpty(dirCreateResp) || dirCreateResp.getCode() != ResultCode.SUCCESS.getCode()) { + log.error("创建项目:{}下的{}需求文件夹(无权限校验)时,创建文件夹失败,原因为:{}", req.getProjectId(),req.getDemandName(), dirCreateResp.getMessage()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("您没有选择项目的相应权限,请更换其他项目进行创建"); + } + log.info("创建需求文件夹响应(无权限校验): {}", dirCreateResp); + + // 更新需求创建人对需求文件夹的权限 & 更新需求仿真负责人(确认人)对需求文件夹的权限(预览、下载) + Long userId = ThreadLocalContext.getUserId(); + UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq(); + updatePermissionReq.setUuid(uuid); + Map userPermissions = new HashMap<>(); + // 创建人 + userPermissions.put(userId, FilePermissionEnum.ALL.getValue()); + // 仿真负责人 + if (CollectionUtils.isNotEmpty(allMemberList)) { + allMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).forEach(member -> { + userPermissions.put(member.getUserId(), FilePermissionEnum.BASE.getValue()); + }); + } + updatePermissionReq.setUserPermissions(userPermissions); + log.info("创建需求时(无权限校验),更新需求创建人和需求仿真负责人(确认人)权限的参数为:{}",updatePermissionReq); + SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq); + log.info("创建需求时(无权限校验),更新需求创建人和需求仿真负责人(确认人)权限的返回值为:{}",updatePermissionResponse); + + // 只有利元亨需要在创建需求的同时创建任务 + if (req.getIsLyric()) { + SimulationDemand demand = new SimulationDemand(); + BeanUtils.copyProperties(req, demand); + simulationTaskService.batchCreateTaskFromDemand(Collections.singletonList(demand)); + } + + return SdmResponse.success(req.getUuid()); + } + private String getLastNodeId(TaskNode taskNode) { List tagListProperty; String lastNodeId = ""; diff --git a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java index aaa46064..4ba22313 100644 --- a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java @@ -9,10 +9,12 @@ import com.sdm.common.entity.enums.DirTypeEnum; import com.sdm.common.entity.enums.FilePermissionEnum; import com.sdm.common.entity.enums.NodeTypeEnum; import com.sdm.common.entity.req.data.*; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.system.CIDUserResp; import com.sdm.common.feign.impl.data.DataClientFeignClientImpl; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; +import com.sdm.common.log.CoreLogger; import com.sdm.common.utils.FilesUtil; import com.sdm.common.utils.MdcUtil; import com.sdm.common.utils.PageUtils; @@ -37,6 +39,9 @@ import com.sdm.project.model.req.*; import com.sdm.project.model.req.ep.EpProjectQueryReq; import com.sdm.project.model.req.ep.EpSyncPhaseReq; import com.sdm.project.model.vo.SpdmDemandVo; +import com.sdm.project.model.vo.SpdmNodeExtraVo; +import com.sdm.project.model.vo.SpdmNodeMemberVo; +import com.sdm.project.model.vo.SpdmNodeVo; import com.sdm.project.service.ILyricInternalService; import com.sdm.project.service.INodeService; import com.sdm.project.service.ISimulationTaskService; @@ -64,6 +69,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -1787,6 +1793,132 @@ public class LyricInternalServiceImpl implements ILyricInternalService { } + @Override + public SdmResponse listNoPermission(SpdmNodeListReq req) { + int pos = (req.getCurrent() - 1) * req.getSize(); + int limit = req.getSize(); + Long tenantId = ThreadLocalContext.getTenantId(); + List nodeList = nodeMapper.getNodeListNoPermission(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), + tenantId, pos, limit); + CoreLogger.info("getNodeList param:{},tenantId:{}", JSONObject.toJSONString(req), tenantId); + if (CollectionUtils.isEmpty(nodeList)) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data", nodeList); + jsonObject.put("total", 0); + return SdmResponse.success(jsonObject); + } + int total = nodeMapper.getNodeListCountNoPermission(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), ThreadLocalContext.getTenantId()); + log.info("总数为:{}", total); + Integer progressStatus; + Integer achieveStatus; + // 查询节点的额外属性 + List nodeIdList = nodeList.stream().map(SpdmNodeVo::getUuid).toList(); + List spdmNodeMemberVoList = nodeMapper.getNodeMemberListByNodeIdList(nodeIdList); + if (CollectionUtils.isNotEmpty(spdmNodeMemberVoList)) { + List usewrIdList = spdmNodeMemberVoList.stream().map(SpdmNodeMemberVo::getUserId).distinct().toList(); + SdmResponse> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(usewrIdList).build()); + List userList = cidUserResp.getData(); + + Map> userMap = Map.of(); + if (CollectionUtils.isNotEmpty(userList)) { + userMap = userList.stream().collect(Collectors.groupingBy(CIDUserResp::getUserId)); + } + String nodeId; + // 关联到节点上 + Map> nodeMemberMap = spdmNodeMemberVoList.stream().collect(Collectors.groupingBy(SpdmNodeMemberVo::getNodeId)); + for (Map.Entry> nodeMemberEntry : nodeMemberMap.entrySet()) { + List memberList = new ArrayList<>(); + nodeId = nodeMemberEntry.getKey(); + for (SpdmNodeVo spdmNodeVo : nodeList) { + if (nodeId.equals(spdmNodeVo.getUuid())) { + for (SpdmNodeMemberVo spdmNodeMemberVo : nodeMemberEntry.getValue()) { + if (CollectionUtils.isNotEmpty(userMap.get(spdmNodeMemberVo.getUserId()))) { + memberList.add(userMap.get(spdmNodeMemberVo.getUserId()).get(0)); + } + } + spdmNodeVo.setMemberList(memberList); + } + } + } + + + } + List spdmNodeExtraVoList = nodeMapper.getNodeExtraListByNodeIdList(nodeIdList); + if (CollectionUtils.isNotEmpty(spdmNodeExtraVoList)) { + String nodeId; + // 关联到节点上 + Map> nodeExtraMap = spdmNodeExtraVoList.stream().collect(Collectors.groupingBy(SpdmNodeExtraVo::getNodeId)); + for (Map.Entry> nodeExtraEntry : nodeExtraMap.entrySet()) { + nodeId = nodeExtraEntry.getKey(); + for (SpdmNodeVo spdmNodeVo : nodeList) { + if (nodeId.equals(spdmNodeVo.getUuid())) { + spdmNodeVo.setExtras(nodeExtraEntry.getValue()); + } + } + } + } + + List userIdList = nodeList.stream().filter(node -> ObjectUtils.isNotEmpty(node.getCreator())).map(SpdmNodeVo::getCreator) + .toList(); + Map userMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(userIdList)) { + SdmResponse> listSdmResponse = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(userIdList.stream().distinct().toList()).build()); + if (listSdmResponse.isSuccess() && CollectionUtils.isNotEmpty(listSdmResponse.getData())) { + userMap = listSdmResponse.getData().stream().collect(Collectors.toMap(CIDUserResp::getUserId, Function.identity())); + } + } + + for (SpdmNodeVo spdmNodeVo : nodeList) { + // TODO 转换项目进度状态 + progressStatus = spdmNodeVo.getProgress(); + if (ObjectUtils.isNotEmpty(progressStatus)) { + switch (progressStatus) { + case 0: + spdmNodeVo.setProgressStatusValue("未开始"); + break; + case 1: + spdmNodeVo.setProgressStatusValue("进行中"); + break; + case 2: + spdmNodeVo.setProgressStatusValue("已完成"); + break; + default: + spdmNodeVo.setProgressStatusValue("未知"); + break; + } + } + // TODO 项目达成状态(红黄绿灯) + achieveStatus = spdmNodeVo.getAchieveStatus(); + if (ObjectUtils.isNotEmpty(achieveStatus)) { + switch (achieveStatus) { + case 1: + spdmNodeVo.setAchieveStatusValue("red"); + break; + case 2: + spdmNodeVo.setProgressStatusValue("yellow"); + break; + case 3: + spdmNodeVo.setProgressStatusValue("grey"); + break; + case 4: + spdmNodeVo.setProgressStatusValue("grey"); + break; + default: + spdmNodeVo.setProgressStatusValue("unknown"); + break; + } + } + Long creator = spdmNodeVo.getCreator(); + if (ObjectUtils.isNotEmpty(creator)) { + spdmNodeVo.setCreatorObj(userMap.get(creator)); + } + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data", nodeList); + jsonObject.put("total", total); + return SdmResponse.success(jsonObject); + } + private SdmResponse httpSyncTodoData( List projectNodeList,List todoInfoList){ String traceId = MdcUtil.getTraceId(); CompletableFuture syncTodoDataFeature = CompletableFuture.supplyAsync(() -> diff --git a/project/src/main/resources/mapper/SimulationDemandMapper.xml b/project/src/main/resources/mapper/SimulationDemandMapper.xml index 72b7aee9..127750d0 100644 --- a/project/src/main/resources/mapper/SimulationDemandMapper.xml +++ b/project/src/main/resources/mapper/SimulationDemandMapper.xml @@ -153,6 +153,10 @@ select * from simulation_demand where tenant_id = #{tenantId} and demand_name = #{demandName} limit 1 + + + + + +