diff --git a/data/src/main/resources/application-dev.yml b/data/src/main/resources/application-dev.yml index 9ae6f6c8..954cf357 100644 --- a/data/src/main/resources/application-dev.yml +++ b/data/src/main/resources/application-dev.yml @@ -29,7 +29,7 @@ spring: cloud: nacos: discovery: - server-addr: 192.168.65.161:8848 + server-addr: 127.0.0.1:8848 # server-addr: 127.0.0.1:8848 enabled: true # username: nacos diff --git a/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java b/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java index 4ad9adb5..bfa62da9 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java @@ -67,21 +67,10 @@ public class SimulationTaskController { * @param req * @return */ - @GetMapping("/list") + @PostMapping("/list") @Operation(summary = "任务列表(我执行的、我关注的、所有)", description = "任务列表(我执行的、我关注的、所有)") - public SdmResponse list(@Validated SpdmTaskListReq req) { + public SdmResponse list(@RequestBody SpdmTaskListReq req) { return taskService.list(req); } - @GetMapping("/test") - public SdmResponse test() { - // 创建一个ScheduledExecutorService实例 - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - // 定义要执行的任务 - Runnable task = () -> System.out.println("任务执行: " + System.nanoTime()); - // 延时5秒后执行任务 - scheduler.schedule(task, 5, TimeUnit.SECONDS); - - return SdmResponse.success(); - } } diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmNodeDetailReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmNodeDetailReq.java index 6e96c7f0..da366027 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmNodeDetailReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmNodeDetailReq.java @@ -113,10 +113,15 @@ public class SpdmNodeDetailReq extends BaseEntity { private List Tag4; @JsonProperty(value = "Tag5") private List Tag5; + @JsonProperty(value = "Tag6") private List Tag6; + @JsonProperty(value = "Tag7") private List Tag7; + @JsonProperty(value = "Tag8") private List Tag8; + @JsonProperty(value = "Tag9") private List Tag9; + @JsonProperty(value = "Tag10") private List Tag10; private String exeStatus; diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java index c1090ffb..563b8b6e 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java @@ -2,9 +2,12 @@ package com.sdm.project.model.req; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import com.sdm.project.model.bo.TaskNodeTag; import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.util.List; + @JsonIgnoreProperties(ignoreUnknown = true) @Data public class SpdmTaskListReq { @@ -53,20 +56,7 @@ public class SpdmTaskListReq { @JsonProperty(value = "eMemberIdList") private String eMemberIdList; - /** - * 项目名称 - */ - private String projectName; - - /** - * 阶段名称 - */ - private String phaseName; - - /** - * 学科名称 - */ - private String disciplineName; + private List idMap; /** * 实际结束时间 diff --git a/project/src/main/java/com/sdm/project/model/req/TaskEditNodeReq.java b/project/src/main/java/com/sdm/project/model/req/TaskEditNodeReq.java index 0f6512d8..0021abc9 100644 --- a/project/src/main/java/com/sdm/project/model/req/TaskEditNodeReq.java +++ b/project/src/main/java/com/sdm/project/model/req/TaskEditNodeReq.java @@ -102,9 +102,7 @@ public class TaskEditNodeReq extends BaseEntity { /** * 项目进度状态(未开始、进行中、已完成) */ - private Integer exeStatus; - - private String exeStatusValue; + private String exeStatus; /** * 项目进度状态 diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java index 655bc526..bd66f5bb 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java @@ -89,5 +89,6 @@ public class SpdmNodeDetailVo extends BaseEntity { */ List memberList; + private SpdmUserVo creatorObj; } diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeVo.java index 2c866e6f..fd70c848 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeVo.java @@ -89,5 +89,6 @@ public class SpdmNodeVo extends BaseEntity { */ private String description; + private SpdmUserVo creatorObj; } diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmTaskVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmTaskVo.java index 6e114b77..b0320cd0 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmTaskVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmTaskVo.java @@ -124,4 +124,16 @@ public class SpdmTaskVo extends BaseEntity { */ private Integer attentionFlag; + + private String tag1; + private String tag2; + private String tag3; + private String tag4; + private String tag5; + private String tag6; + private String tag7; + private String tag8; + private String tag9; + private String tag10; + } diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index 62b0b814..d2c52913 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -458,56 +458,6 @@ public class NodeServiceImpl extends ServiceImpl userList = demandMapper.getUserList(Collections.singletonList(Long.valueOf(creator))); + if (CollectionUtils.isNotEmpty(userList)) { + projectNode.setCreatorObj(userList.get(0)); + } + } SpdmNodeDetailVo spdmNodeDetailVo = new SpdmNodeDetailVo(); BeanUtils.copyProperties(projectNode, spdmNodeDetailVo); return SdmResponse.success(spdmNodeDetailVo); diff --git a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java index 60bba278..dd45848c 100644 --- a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java @@ -95,100 +95,61 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { for (Map.Entry> taskEntry : editNodeListMap.entrySet()) { nodeType = taskEntry.getKey(); log.info("nodeType为:{}", nodeType); - switch (nodeType) { - case SystemConstants.PROJECT_TAG: - case SystemConstants.PHASE_TAG: - case SystemConstants.MACHINE_TAG: - case SystemConstants.WORKSPACE_TAG: - case SystemConstants.DISCIPLINE_TAG: - SpdmEditNodeReq spdmEditNodeReq = new SpdmEditNodeReq(); - List editNodeList = new ArrayList<>(); - for (TaskEditNodeReq taskEditNodeReq : taskEntry.getValue()) { - SpdmNodeDetailReq spdmNodeDetailReq = new SpdmNodeDetailReq(); - BeanUtils.copyProperties(taskEditNodeReq, spdmNodeDetailReq); - spdmNodeDetailReq.setTenantId(tenantId); - spdmNodeDetailReq.setUpdater(jobNumber); - spdmNodeDetailReq.setUpdateTime(updateTime); - editNodeList.add(spdmNodeDetailReq); - } - spdmEditNodeReq.setEditNodeList(editNodeList); - if (!editNode(editNodeList, tenantId, jobNumber)) { - log.error("更新节点失败!"); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return SdmResponse.failed("更新节点失败!"); - } - break; - case SystemConstants.TASK_TAG: - editTaskList(taskEntry.getValue()); - break; - case SystemConstants.PERFORMANCE_TAG: - editPerformanceList(taskEntry.getValue()); - break; - default: - log.error("不支持的节点类型:{}", nodeType); - break; + if (SystemConstants.TASK_TAG.equals(nodeType)) { + editTaskList(taskEntry.getValue()); + }else if (SystemConstants.PERFORMANCE_TAG.equals(nodeType)) { + editPerformanceList(taskEntry.getValue()); + }else { + SpdmEditNodeReq spdmEditNodeReq = new SpdmEditNodeReq(); + List editNodeList = new ArrayList<>(); + for (TaskEditNodeReq taskEditNodeReq : taskEntry.getValue()) { + SpdmNodeDetailReq spdmNodeDetailReq = new SpdmNodeDetailReq(); + BeanUtils.copyProperties(taskEditNodeReq, spdmNodeDetailReq); + spdmNodeDetailReq.setTenantId(tenantId); + spdmNodeDetailReq.setUpdater(jobNumber); + spdmNodeDetailReq.setUpdateTime(updateTime); + editNodeList.add(spdmNodeDetailReq); + } + spdmEditNodeReq.setEditNodeList(editNodeList); + if (!editNode(editNodeList, tenantId, jobNumber)) { + log.error("更新节点失败!"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("更新节点失败!"); + } } } -// TaskNodeTree taskNodeTree = parseTaskTree(jsonObject); -// SdmResponse response = realUpdateSimulationTaskItems(taskNodeTree, "", tenantId); -// if (response.getCode() != ResultCode.SUCCESS.getCode()) { -// log.error("新增任务失败,清理新增数据!"); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// return SdmResponse.failed("新增任务失败!"); -// } return SdmResponse.success(); } private boolean editNode(List editNodeList, String tenantId, String jobNumber) { -// log.info("editNode参数为:{}", editNodeList); -// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); -// List nodeManagerList; -// List allNodeManagerList = new ArrayList<>(); -// List extraList; -// List allExtraList = new ArrayList<>(); -// for (SpdmNodeDetailReq editNode : editNodeList) { -// editNode.setUpdateTime(curDateStr); -// editNode.setUpdater(jobNumber); -// nodeManagerList = editNode.getMemberList(); -// if (CollectionUtils.isNotEmpty(nodeManagerList)) { -// nodeManagerList.forEach(nodeManager -> { -// nodeManager.setUpdateTime(curDateStr); -// nodeManager.setUpdater(jobNumber); -// }); -// allNodeManagerList.addAll(nodeManagerList); -// } -// extraList = editNode.getExtraList(); -// if (CollectionUtils.isNotEmpty(extraList)) { -// extraList.forEach(extra -> { -// extra.setUpdateTime(curDateStr); -// extra.setUpdater(jobNumber); -// }); -// allExtraList.addAll(extraList); -// } -// } -// -// for (SpdmNodeDetailReq editNode : editNodeList) { -// if (nodeMapper.editNode(editNode) <= 0) { -// return false; -// } -// } -// -// if (CollectionUtils.isNotEmpty(allNodeManagerList)) { -// for (SpdmNodeRelateMemberReq nodeManager : allNodeManagerList) { -// if (nodeMapper.editNodeMember(nodeManager) <= 0) { -// return false; -// } -// } -// } -// -// if (CollectionUtils.isNotEmpty(allExtraList)) { -// for (SpdmNodeExtraReq nodeExtra : allExtraList) { -// if (nodeMapper.editNodeExtra(nodeExtra) <= 0) { -// return false; -// } -// } -// } - + log.info("editNode参数为:{}", editNodeList); + String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + List extraList; + List allExtraList = new ArrayList<>(); + for (SpdmNodeDetailReq editNode : editNodeList) { + editNode.setUpdateTime(curDateStr); + editNode.setUpdater(jobNumber); + extraList = editNode.getExtraList(); + if (CollectionUtils.isNotEmpty(extraList)) { + extraList.forEach(extra -> { + extra.setUpdateTime(curDateStr); + extra.setUpdater(jobNumber); + }); + allExtraList.addAll(extraList); + } + } + for (SpdmNodeDetailReq editNode : editNodeList) { + if (nodeMapper.editNode(editNode) <= 0) { + return false; + } + } + if (CollectionUtils.isNotEmpty(allExtraList)) { + for (SpdmNodeExtraReq nodeExtra : allExtraList) { + if (nodeMapper.editNodeExtra(nodeExtra) <= 0) { + return false; + } + } + } return true; } diff --git a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java index 261b875c..9d1b0ea6 100644 --- a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java @@ -12,6 +12,7 @@ import com.sdm.project.dao.SimulationTaskMapper; import com.sdm.project.model.bo.ModifyTaskNode; import com.sdm.project.model.bo.TaskExtraNode; import com.sdm.project.model.bo.TaskMemberNode; +import com.sdm.project.model.bo.TaskNodeTag; import com.sdm.project.model.po.PerformanceNodePo; import com.sdm.project.model.po.ProjectNodePo; import com.sdm.project.model.po.TaskNodeMemberPo; @@ -33,6 +34,9 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.sdm.project.service.impl.NodeServiceImpl.getTagProperty; +import static com.sdm.project.service.impl.NodeServiceImpl.setTagProperty; + @Slf4j @Service public class TaskServiceImpl implements ITaskService { @@ -62,11 +66,38 @@ public class TaskServiceImpl implements ITaskService { Integer type = req.getType(); if (type != 0 && type != 1 && type != 2) { log.error("type必须为0或1或2"); + return SdmResponse.failed("公司和工号都不能为空"); + } + List allTaskList = mapper.getTaskList(tenantId, req); + if (CollectionUtils.isEmpty(allTaskList)) { + log.error("根据tenantId:{},未查询到任务", tenantId); return SdmResponse.success(new ArrayList<>()); } - List taskList = mapper.getTaskList(tenantId, req); + List taskList = new ArrayList<>(); + List idMapList = req.getIdMap(); + if (CollectionUtils.isEmpty(idMapList)) { + log.error("任务列表中的idMap不能为空"); + return SdmResponse.failed("任务列表中的idMap不能为空"); + } + if (CollectionUtils.isNotEmpty(idMapList)) { + String currentNodeTagId = ""; + for (TaskNodeTag taskNodeTag : idMapList) { + for (SpdmTaskVo spdmTaskVo : allTaskList) { + try { + currentNodeTagId = getTagProperty(spdmTaskVo, taskNodeTag.getValue().replace("T", "t")); + if (StringUtils.isNotBlank(currentNodeTagId) && StringUtils.isNotBlank(taskNodeTag.getKey()) && currentNodeTagId.contains(taskNodeTag.getKey())) { + taskList.add(spdmTaskVo); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + } else { + taskList = allTaskList; + } if (CollectionUtils.isEmpty(taskList)) { - log.error("根据tenantId:{},未查询到任务", tenantId); + log.info("未查询任务"); return SdmResponse.success(new ArrayList<>()); } List taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).toList(); @@ -90,6 +121,11 @@ public class TaskServiceImpl implements ITaskService { JSONObject jsonObject = new JSONObject(); jsonObject.put("currentPage", req.getCurrent()); jsonObject.put("pageSize", req.getSize()); + List tagList = idMapList.stream().map(TaskNodeTag::getValue).toList(); + List nodeIdList = new ArrayList<>(); + List eachNodeIdList; + String eachNodeId; + SpdmNodeVo eachNodeVo; if (type == 2) { if (CollectionUtils.isEmpty(taskList)) { return SdmResponse.success(new ArrayList<>()); @@ -100,7 +136,60 @@ public class TaskServiceImpl implements ITaskService { if (CollectionUtils.isNotEmpty(attentionMemberList)) { attentionMap = attentionMemberList.stream().collect(Collectors.groupingBy(SpdmTaskAttentionMemberVo::getTaskId)); } + for (SpdmTaskVo spdmTaskVo : taskList) { + for (String tag : tagList) { + try { + eachNodeId = getTagProperty(spdmTaskVo, tag.replace("T", "t")); + if (StringUtils.isNotBlank(eachNodeId)) { + eachNodeIdList = Arrays.stream(eachNodeId.split(",")).filter(nodeId -> !nodeId.equals("null")).toList(); + if (CollectionUtils.isNotEmpty(eachNodeIdList)) { + nodeIdList.addAll(eachNodeIdList); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + Map nodeMap = Map.of(); + if (CollectionUtils.isNotEmpty(nodeIdList)) { + List nodeList = nodeMapper.getNodeListByIds(nodeIdList.stream().distinct().toList()); + nodeMap = nodeList.stream().collect(Collectors.groupingBy( + SpdmNodeVo::getUuid, + Collectors.collectingAndThen( + Collectors.toList(), + list -> list.get(0) + ) + )); + } for (SpdmTaskVo task : taskList) { + for (String tag : tagList) { + tag = tag.replace("T", "t"); + try { + eachNodeId = getTagProperty(task, tag); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (StringUtils.isNotBlank(eachNodeId)) { + eachNodeIdList = Arrays.stream(eachNodeId.split(",")).filter(nodeId -> !nodeId.equals("null")).toList(); + if (CollectionUtils.isNotEmpty(eachNodeIdList)) { + List eachNodeList = new ArrayList<>(); + for (String nodeId : eachNodeIdList) { + eachNodeVo = nodeMap.get(nodeId); + if (ObjectUtils.isNotEmpty(eachNodeVo)) { + eachNodeList.add(eachNodeVo); + } + } + if (CollectionUtils.isNotEmpty(eachNodeList)) { + try { + setTagProperty(task, tag, eachNodeList.stream().map(SpdmNodeVo::getNodeName).collect(Collectors.joining(","))); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + } + } eachAttentionMemberList = attentionMap.get(task.getUuid()); task.setAttentionFlag(CollectionUtils.isEmpty(eachAttentionMemberList) ? 0 : (eachAttentionMemberList.stream().map(SpdmTaskAttentionMemberVo::getUserId).toList().contains(Long.valueOf(jobNumber)) ? 1 : 0)); @@ -112,7 +201,26 @@ public class TaskServiceImpl implements ITaskService { task.setEMemberList(eachMemberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).toList()); } jsonObject.put("total", taskList.size()); - jsonObject.put("data", taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList()); + taskList = taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList(); + List newTaskList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(taskList)) { + for (SpdmTaskVo taskVo : taskList) { + SpdmNewTaskVo spdmNewTaskVo = new SpdmNewTaskVo(); + BeanUtils.copyProperties(taskVo, spdmNewTaskVo); + spdmNewTaskVo.setTag1(taskVo.getTag1()); + spdmNewTaskVo.setTag2(taskVo.getTag2()); + spdmNewTaskVo.setTag3(taskVo.getTag3()); + spdmNewTaskVo.setTag4(taskVo.getTag4()); + spdmNewTaskVo.setTag5(taskVo.getTag5()); + spdmNewTaskVo.setTag6(taskVo.getTag6()); + spdmNewTaskVo.setTag7(taskVo.getTag7()); + spdmNewTaskVo.setTag8(taskVo.getTag8()); + spdmNewTaskVo.setTag9(taskVo.getTag9()); + spdmNewTaskVo.setTag10(taskVo.getTag10()); + newTaskList.add(spdmNewTaskVo); + } + } + jsonObject.put("data", newTaskList); return SdmResponse.success(jsonObject); } if (type == 0) { @@ -128,19 +236,6 @@ public class TaskServiceImpl implements ITaskService { log.error("任务列表中未查询到仿真执行人1"); return SdmResponse.success(new ArrayList<>()); } -// List userIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getUserId).distinct().toList(); -// List userList = demandMapper.getUserList(userIdList); -// if (CollectionUtils.isEmpty(userList)) { -// log.error("任务列表中未查询到用户"); -// return SdmResponse.success(new ArrayList<>()); -// } -// List eTaskMemberVoList = userList.stream().filter(taskMember -> jobNumber.equals(taskMember.getUsername())).toList(); -// if (CollectionUtils.isEmpty(eTaskMemberVoList)) { -// log.error("任务列表中未查询到匹配的成员"); -// return SdmResponse.success(new ArrayList<>()); -// } -// List curUserIdList = eTaskMemberVoList.stream().map(SpdmUserVo::getId).distinct().toList(); -// log.info("过滤后的userIdList:{}", userIdList); Long curUserId = userByJobNumber.getId(); taskMemberVoList = taskMemberVoList.stream().filter(member -> curUserId.equals(member.getUserId())).toList(); if (CollectionUtils.isEmpty(taskMemberVoList)) { @@ -161,17 +256,6 @@ public class TaskServiceImpl implements ITaskService { log.error("未查询到关注人"); return SdmResponse.success(new ArrayList<>()); } -// List userIdList = taskAttentionMemberVoList.stream().map(SpdmTaskAttentionMemberVo::getUserId).distinct().toList(); -// List userList = demandMapper.getUserList(userIdList); -// if (CollectionUtils.isEmpty(userList)) { -// log.error("未查询到用用户"); -// return SdmResponse.success(new ArrayList<>()); -// } -// Optional curUser = userList.stream().filter(user -> jobNumber.equals(user.getUsername())).findFirst(); -// if (curUser.isEmpty()) { -// log.error("当前用户工号:{},在用户表中没有匹配数据",jobNumber); -// return SdmResponse.success(new ArrayList<>()); -// } // 当前用户的主键id Long curUserId = userByJobNumber.getId(); taskAttentionMemberVoList = taskAttentionMemberVoList.stream().filter(member -> curUserId.equals(member.getUserId())).toList(); @@ -189,6 +273,38 @@ public class TaskServiceImpl implements ITaskService { } jsonObject.put("total", taskList.size()); taskList = taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList(); + if (CollectionUtils.isEmpty(taskList)) { + jsonObject.put("data", taskList); + return SdmResponse.success(jsonObject); + } + for (SpdmTaskVo spdmTaskVo : taskList) { + for (String tag : tagList) { + try { + eachNodeId = getTagProperty(spdmTaskVo, tag.replace("T", "t")); + if (StringUtils.isNotBlank(eachNodeId)) { + eachNodeIdList = Arrays.stream(eachNodeId.split(",")).filter(nodeId -> !nodeId.equals("null")).toList(); + if (CollectionUtils.isNotEmpty(eachNodeIdList)) { + nodeIdList.addAll(eachNodeIdList); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + Map nodeMap = Map.of(); + if (CollectionUtils.isNotEmpty(nodeIdList)) { + List nodeList = nodeMapper.getNodeListByIds(nodeIdList.stream().distinct().toList()); + nodeMap = nodeList.stream().collect(Collectors.groupingBy( + SpdmNodeVo::getUuid, + Collectors.collectingAndThen( + Collectors.toList(), + list -> list.get(0) + ) + )); + } + + List attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList()); Map> attentionMap = Map.of(); List eachAttentionMemberList; @@ -197,6 +313,33 @@ public class TaskServiceImpl implements ITaskService { } List eachTaskMemberList; for (SpdmTaskVo task : taskList) { + for (String tag : tagList) { + tag = tag.replace("T", "t"); + try { + eachNodeId = getTagProperty(task, tag); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (StringUtils.isNotBlank(eachNodeId)) { + eachNodeIdList = Arrays.stream(eachNodeId.split(",")).filter(nodeId -> !nodeId.equals("null")).toList(); + if (CollectionUtils.isNotEmpty(eachNodeIdList)) { + List eachNodeList = new ArrayList<>(); + for (String nodeId : eachNodeIdList) { + eachNodeVo = nodeMap.get(nodeId); + if (ObjectUtils.isNotEmpty(eachNodeVo)) { + eachNodeList.add(eachNodeVo); + } + } + if (CollectionUtils.isNotEmpty(eachNodeList)) { + try { + setTagProperty(task, tag, eachNodeList.stream().map(SpdmNodeVo::getNodeName).collect(Collectors.joining(","))); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + } + } eachAttentionMemberList = attentionMap.get(task.getUuid()); task.setAttentionFlag(CollectionUtils.isEmpty(eachAttentionMemberList) ? 0 : (eachAttentionMemberList.stream().map(SpdmTaskAttentionMemberVo::getUserId).toList().contains(Long.valueOf(jobNumber)) ? 1 : 0)); @@ -206,9 +349,24 @@ public class TaskServiceImpl implements ITaskService { } task.setPMemberList(eachTaskMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList()); task.setEMemberList(eachTaskMemberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).toList()); - } - jsonObject.put("data", taskList); + List newTaskList = new ArrayList<>(); + for (SpdmTaskVo taskVo : taskList) { + SpdmNewTaskVo spdmNewTaskVo = new SpdmNewTaskVo(); + BeanUtils.copyProperties(taskVo, spdmNewTaskVo); + spdmNewTaskVo.setTag1(taskVo.getTag1()); + spdmNewTaskVo.setTag2(taskVo.getTag2()); + spdmNewTaskVo.setTag3(taskVo.getTag3()); + spdmNewTaskVo.setTag4(taskVo.getTag4()); + spdmNewTaskVo.setTag5(taskVo.getTag5()); + spdmNewTaskVo.setTag6(taskVo.getTag6()); + spdmNewTaskVo.setTag7(taskVo.getTag7()); + spdmNewTaskVo.setTag8(taskVo.getTag8()); + spdmNewTaskVo.setTag9(taskVo.getTag9()); + spdmNewTaskVo.setTag10(taskVo.getTag10()); + newTaskList.add(spdmNewTaskVo); + } + jsonObject.put("data", newTaskList); return SdmResponse.success(jsonObject); } @@ -223,28 +381,6 @@ public class TaskServiceImpl implements ITaskService { log.error("根据taskId:{},未查询到任务", taskId); return SdmResponse.failed("未查询到任务"); } -// if (operationType.equals(TaskOperationTypeEnum.REJECTED.getCode())) { -// task.setStatus(TaskOperationTypeEnum.REJECTED.getName()); -// } else if (operationType.equals(TaskOperationTypeEnum.IN_PROGRESS.getCode())) { -// task.setExeStatus(TaskOperationTypeEnum.IN_PROGRESS.getName()); -// } else if (operationType.equals(TaskOperationTypeEnum.PAUSE.getCode())) { -// task.setExeStatus(TaskOperationTypeEnum.PAUSE.getName()); -// } else if (operationType.equals(TaskOperationTypeEnum.CLOSED.getCode())) { -// task.setExeStatus(TaskOperationTypeEnum.CLOSED.getName()); -// } -// -// // TODO LDY 工时 -// if (operationType.equals(TaskOperationTypeEnum.DAYS.getCode())) { -// -// } -// -// if (operationType.equals(TaskOperationTypeEnum.FOLLOW.getCode())) { -// -// } -// -// if (operationType.equals(TaskOperationTypeEnum.UN_FOLLOW.getCode())) { -// -// } task.setExeStatus(exeStatus); task.setAchieveStatus(achieveStatus); task.setProgress(process); diff --git a/project/src/main/resources/mapper/SimulationNodeMapper.xml b/project/src/main/resources/mapper/SimulationNodeMapper.xml index baf74be1..5a5f25fb 100644 --- a/project/src/main/resources/mapper/SimulationNodeMapper.xml +++ b/project/src/main/resources/mapper/SimulationNodeMapper.xml @@ -56,6 +56,9 @@ detailImgUrl = #{editNode.detailImgUrl} + + exe_status = #{editNode.exeStatus} + updater = #{editNode.updater}, diff --git a/system/src/main/resources/application-dev.yml b/system/src/main/resources/application-dev.yml index a2d2cc2e..d471a211 100644 --- a/system/src/main/resources/application-dev.yml +++ b/system/src/main/resources/application-dev.yml @@ -29,7 +29,7 @@ spring: cloud: nacos: discovery: - server-addr: 192.168.65.161:8848 + server-addr: 127.0.0.1:8848 # server-addr: localhost:8848 enabled: true data: diff --git a/task/src/main/resources/application-dev.yml b/task/src/main/resources/application-dev.yml index dc9bd347..bda14558 100644 --- a/task/src/main/resources/application-dev.yml +++ b/task/src/main/resources/application-dev.yml @@ -30,7 +30,7 @@ spring: cloud: nacos: discovery: - server-addr: 192.168.65.161:8848 + server-addr: 127.0.0.1:8848 # server-addr: 127.0.0.1:8848 enabled: true # username: nacos