1、项目任务树查询 bug fix

2、任务列表新增标签字段
This commit is contained in:
2025-10-17 10:03:40 +08:00
parent f38c7a5f7c
commit 83126a497a
14 changed files with 276 additions and 223 deletions

View File

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

View File

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

View File

@@ -113,10 +113,15 @@ public class SpdmNodeDetailReq extends BaseEntity {
private List<String> Tag4;
@JsonProperty(value = "Tag5")
private List<String> Tag5;
@JsonProperty(value = "Tag6")
private List<String> Tag6;
@JsonProperty(value = "Tag7")
private List<String> Tag7;
@JsonProperty(value = "Tag8")
private List<String> Tag8;
@JsonProperty(value = "Tag9")
private List<String> Tag9;
@JsonProperty(value = "Tag10")
private List<String> Tag10;
private String exeStatus;

View File

@@ -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<TaskNodeTag> idMap;
/**
* 实际结束时间

View File

@@ -102,9 +102,7 @@ public class TaskEditNodeReq extends BaseEntity {
/**
* 项目进度状态(未开始、进行中、已完成)
*/
private Integer exeStatus;
private String exeStatusValue;
private String exeStatus;
/**
* 项目进度状态

View File

@@ -89,5 +89,6 @@ public class SpdmNodeDetailVo extends BaseEntity {
*/
List<SpdmUserVo> memberList;
private SpdmUserVo creatorObj;
}

View File

@@ -89,5 +89,6 @@ public class SpdmNodeVo extends BaseEntity {
*/
private String description;
private SpdmUserVo creatorObj;
}

View File

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

View File

@@ -458,56 +458,6 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
@Override
public SdmResponse getNodeDetail(GetProjectDetailReq req) {
log.info("项目详情参数为:{}", req);
// String tenantId = ThreadLocalContext.getCompany();
// SpdmNodeDetailVo nodeDetailVo = nodeMapper.getNodeDetail(req.getProjectNodeId(), tenantId);
// if (ObjectUtils.isEmpty(nodeDetailVo)) {
// SdmResponse.failed("根据节点id" + req.getProjectNodeId() + ",未查询到节点信息");
// }
// // 查询节点的额外属性
// String nodeId = nodeDetailVo.getUuid();
// nodeDetailVo.setExtraList(nodeMapper.getNodeExtraListByNodeIdList(Collections.singletonList(nodeId)));
// // TODO 转换项目进度状态
// if (ObjectUtils.isNotEmpty(nodeDetailVo.getProgress())) {
// switch (nodeDetailVo.getProgress()) {
// case 0:
// nodeDetailVo.setProgressStatusValue("未开始");
// break;
// case 1:
// nodeDetailVo.setProgressStatusValue("进行中");
// break;
// case 2:
// nodeDetailVo.setProgressStatusValue("已完成");
// break;
// default:
// nodeDetailVo.setProgressStatusValue("未知");
// break;
// }
// }
// // TODO 项目达成状态(红黄绿灯)
// if (ObjectUtils.isNotEmpty(nodeDetailVo.getAchieveStatus())) {
// switch (nodeDetailVo.getAchieveStatus()) {
// case 1:
// nodeDetailVo.setAchieveStatusValue("red");
// break;
// case 2:
// nodeDetailVo.setProgressStatusValue("yellow");
// break;
// case 3:
// nodeDetailVo.setProgressStatusValue("grey");
// break;
// case 4:
// nodeDetailVo.setProgressStatusValue("grey");
// break;
// default:
// nodeDetailVo.setProgressStatusValue("unknown");
// break;
// }
// }
// // TODO 用户信息待定
// nodeDetailVo.setMemberList(null);
// return SdmResponse.success(nodeDetailVo);
SpdmNodeVo projectNode = nodeMapper.getNodeById(req.getProjectNodeId());
if (ObjectUtils.isEmpty(projectNode)) {
log.error("根据节点id{},未查询到项目节点!", req.getProjectNodeId());
@@ -576,7 +526,14 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
break;
}
}
// 创建人要返回对象
String creator = projectNode.getCreator();
if (StringUtils.isNotBlank(creator)) {
List<SpdmUserVo> 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);

View File

@@ -95,100 +95,61 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
for (Map.Entry<String, List<TaskEditNodeReq>> 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<SpdmNodeDetailReq> 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<SpdmNodeDetailReq> 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<SpdmNodeDetailReq> editNodeList, String tenantId, String jobNumber) {
// log.info("editNode参数为{}", editNodeList);
// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// List<SpdmNodeRelateMemberReq> nodeManagerList;
// List<SpdmNodeRelateMemberReq> allNodeManagerList = new ArrayList<>();
// List<SpdmNodeExtraReq> extraList;
// List<SpdmNodeExtraReq> 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<SpdmNodeExtraReq> extraList;
List<SpdmNodeExtraReq> 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;
}

View File

@@ -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<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, req);
if (CollectionUtils.isEmpty(allTaskList)) {
log.error("根据tenantId{},未查询到任务", tenantId);
return SdmResponse.success(new ArrayList<>());
}
List<SpdmTaskVo> taskList = mapper.getTaskList(tenantId, req);
List<SpdmTaskVo> taskList = new ArrayList<>();
List<TaskNodeTag> 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<String> 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<String> tagList = idMapList.stream().map(TaskNodeTag::getValue).toList();
List<String> nodeIdList = new ArrayList<>();
List<String> 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<String, SpdmNodeVo> nodeMap = Map.of();
if (CollectionUtils.isNotEmpty(nodeIdList)) {
List<SpdmNodeVo> 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<SpdmNodeVo> 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<SpdmNewTaskVo> 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<Long> userIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getUserId).distinct().toList();
// List<SpdmUserVo> userList = demandMapper.getUserList(userIdList);
// if (CollectionUtils.isEmpty(userList)) {
// log.error("任务列表中未查询到用户");
// return SdmResponse.success(new ArrayList<>());
// }
// List<SpdmUserVo> eTaskMemberVoList = userList.stream().filter(taskMember -> jobNumber.equals(taskMember.getUsername())).toList();
// if (CollectionUtils.isEmpty(eTaskMemberVoList)) {
// log.error("任务列表中未查询到匹配的成员");
// return SdmResponse.success(new ArrayList<>());
// }
// List<Long> 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<Long> userIdList = taskAttentionMemberVoList.stream().map(SpdmTaskAttentionMemberVo::getUserId).distinct().toList();
// List<SpdmUserVo> userList = demandMapper.getUserList(userIdList);
// if (CollectionUtils.isEmpty(userList)) {
// log.error("未查询到用用户");
// return SdmResponse.success(new ArrayList<>());
// }
// Optional<SpdmUserVo> 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<String, SpdmNodeVo> nodeMap = Map.of();
if (CollectionUtils.isNotEmpty(nodeIdList)) {
List<SpdmNodeVo> nodeList = nodeMapper.getNodeListByIds(nodeIdList.stream().distinct().toList());
nodeMap = nodeList.stream().collect(Collectors.groupingBy(
SpdmNodeVo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
}
List<SpdmTaskAttentionMemberVo> attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList());
Map<String, List<SpdmTaskAttentionMemberVo>> attentionMap = Map.of();
List<SpdmTaskAttentionMemberVo> eachAttentionMemberList;
@@ -197,6 +313,33 @@ public class TaskServiceImpl implements ITaskService {
}
List<SpdmTaskMemberVo> 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<SpdmNodeVo> 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<SpdmNewTaskVo> 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);

View File

@@ -56,6 +56,9 @@
<if test="editNode.detailImgUrl != null and editNode.detailImgUrl != ''">
detailImgUrl = #{editNode.detailImgUrl}
</if>
<if test="editNode.exeStatus != null and editNode.exeStatus != ''">
exe_status = #{editNode.exeStatus}
</if>
<if test="editNode.updater != null and editNode.updater != ''">
updater = #{editNode.updater},
</if>

View File

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

View File

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