From 38bc10b1fb216c949c14d3aeef48ab394e43370f Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Fri, 13 Mar 2026 11:11:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=E3=80=81=E8=B0=83=E6=95=B4=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=BE=85=E5=8A=9E=E6=97=B6=EF=BC=8C=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/service/impl/LyricInternalServiceImpl.java | 9 +++++---- .../com/sdm/project/service/impl/NodeServiceImpl.java | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) 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 a6e0e3c2..32aa4b52 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 @@ -599,9 +599,11 @@ public class LyricInternalServiceImpl implements ILyricInternalService { // 仿真负责人 addDemandMember(todo.getVerifierNo(), MemberTypeEnum.PRINCIPAL.getCode(), demandUuid, jobNumber, curDateStr, memberList); // 仿真执行人 - addDemandMember(todo.getFollowBy(), MemberTypeEnum.EXECUTOR.getCode(), demandUuid, jobNumber, curDateStr, memberList); + addDemandMember(todo.getEmulationExecutor(), MemberTypeEnum.EXECUTOR.getCode(), demandUuid, jobNumber, curDateStr, memberList); // 3D负责人 addDemandMember(todo.getThreeDimensionalPerformer(), MemberTypeEnum.THREED.getCode(), demandUuid, jobNumber, curDateStr, memberList); + // 关注人 + addDemandMember(todo.getFollowBy(), MemberTypeEnum.ATTENTION.getCode(), demandUuid, jobNumber, curDateStr, memberList); return memberList; } @@ -621,10 +623,9 @@ public class LyricInternalServiceImpl implements ILyricInternalService { String[] userIdStr; - if (MemberTypeEnum.PRINCIPAL.getCode().equals(type) || MemberTypeEnum.EXECUTOR.getCode().equals(type)) { + if (MemberTypeEnum.PRINCIPAL.getCode().equals(type) || MemberTypeEnum.ATTENTION.getCode().equals(type)) { userIdStr = memberStr.split(","); - } - { + }else { userIdStr = memberStr.split("-"); } if (ObjectUtils.isEmpty(userIdStr)) { 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 7e264003..f2bad3b9 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 @@ -3710,10 +3710,13 @@ public class NodeServiceImpl extends ServiceImpl Date: Fri, 13 Mar 2026 14:00:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E6=95=B0=E6=8D=AE=E6=80=BB=E8=A7=88?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/req/data/UploadFilesReq.java | 5 +++ .../entity/resp/project/SpdmTaskVo.java | 12 ++--- .../main/resources/application-dev-100.yml | 1 + .../main/resources/application-dev-190.yml | 1 + .../src/main/resources/application-dev-65.yml | 1 + data/src/main/resources/application-lyric.yml | 1 + .../controller/SimulationTaskController.java | 2 +- .../model/req/SpdmEditTaskForDataReq.java | 6 +++ .../sdm/project/service/IProjectService.java | 2 + .../service/ISimulationTaskService.java | 3 +- .../project/service/impl/NodeServiceImpl.java | 44 +++++++++++++++++-- .../impl/SimulationTaskServiceImpl.java | 33 ++++---------- .../project/service/impl/TaskServiceImpl.java | 12 +++++ 13 files changed, 86 insertions(+), 37 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java b/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java index cd0ddd9d..ab784297 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java @@ -2,6 +2,7 @@ package com.sdm.common.entity.req.data; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.sdm.common.entity.enums.FileBizTypeEnum; import com.sdm.common.entity.req.system.DictTagReq; import io.swagger.v3.oas.annotations.media.Schema; @@ -146,15 +147,19 @@ public class UploadFilesReq { private Boolean isConverSameNameFile = false; @Schema(description = "x轴物理量(曲线结果使用)") + @JsonProperty(value = "xQuantityType") private String xQuantityType; @Schema(description = "x轴结果单位(曲线结果使用)") + @JsonProperty(value = "xUnits") private String xUnits; @Schema(description = "y轴物理量(曲线结果使用)") + @JsonProperty(value = "yQuantityType") private String yQuantityType; @Schema(description = "y轴结果单位(曲线结果使用)") + @JsonProperty(value = "yUnits") private String yUnits; /** diff --git a/common/src/main/java/com/sdm/common/entity/resp/project/SpdmTaskVo.java b/common/src/main/java/com/sdm/common/entity/resp/project/SpdmTaskVo.java index e3aca37d..741cba60 100644 --- a/common/src/main/java/com/sdm/common/entity/resp/project/SpdmTaskVo.java +++ b/common/src/main/java/com/sdm/common/entity/resp/project/SpdmTaskVo.java @@ -143,6 +143,12 @@ public class SpdmTaskVo extends BaseEntity { @JsonProperty(value = "eMemberList") private List eMemberList; + /** + * 关注人 + */ + @JsonProperty(value = "payAttentionMemberList") + private List payAttentionMemberList; + /** * 0:未关注 1:已关注 */ @@ -214,12 +220,6 @@ public class SpdmTaskVo extends BaseEntity { private String tag9Code; private String tag10Code; - /** - * 仿真关注人 - */ - @JsonProperty(value = "payAttentionMemberList") - private List payAttentionMemberList; - /** * 仿真执行人userId */ diff --git a/data/src/main/resources/application-dev-100.yml b/data/src/main/resources/application-dev-100.yml index 86e9e62d..ac19dc1b 100644 --- a/data/src/main/resources/application-dev-100.yml +++ b/data/src/main/resources/application-dev-100.yml @@ -135,6 +135,7 @@ security: - /data/createDir - /data/approveParamLibrary - /ws/data/modelTraining + - /data/batchUpdatePermission data: storage-monitor: diff --git a/data/src/main/resources/application-dev-190.yml b/data/src/main/resources/application-dev-190.yml index 955b3914..6a5e6985 100644 --- a/data/src/main/resources/application-dev-190.yml +++ b/data/src/main/resources/application-dev-190.yml @@ -135,6 +135,7 @@ security: - /data/createDir - /data/approveParamLibrary - /ws/data/modelTraining + - /data/batchUpdatePermission data: storage-monitor: diff --git a/data/src/main/resources/application-dev-65.yml b/data/src/main/resources/application-dev-65.yml index 96585020..7b3283a2 100644 --- a/data/src/main/resources/application-dev-65.yml +++ b/data/src/main/resources/application-dev-65.yml @@ -135,6 +135,7 @@ security: - /data/createDir - /data/approveParamLibrary - /ws/data/modelTraining + - /data/batchUpdatePermission data: storage-monitor: diff --git a/data/src/main/resources/application-lyric.yml b/data/src/main/resources/application-lyric.yml index 2d9851ad..76c847a3 100644 --- a/data/src/main/resources/application-lyric.yml +++ b/data/src/main/resources/application-lyric.yml @@ -135,6 +135,7 @@ security: - /data/createDir - /data/approveParamLibrary - /ws/data/modelTraining + - /data/batchUpdatePermission data: storage-monitor: 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 962fb124..5230899b 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java @@ -167,7 +167,7 @@ public class SimulationTaskController implements ISimulationTaskFeignClient { */ @PostMapping("/editTaskForData") @Operation(summary = "修改任务(数据总览使用)", description = "修改任务(数据总览使用)") - public SdmResponse editTaskForData(@RequestBody @Validated SpdmEditTaskForDataReq req) { + public SdmResponse editTaskForData(@RequestBody TaskEditNodeReq req) { return simulationTaskService.editTaskForData(req); } diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmEditTaskForDataReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmEditTaskForDataReq.java index 9faae91c..f0ff996a 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmEditTaskForDataReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmEditTaskForDataReq.java @@ -182,6 +182,12 @@ public class SpdmEditTaskForDataReq { @JsonProperty(value = "eMemberList") private String eMemberList; + /** + * 仿真关注人 + */ + @JsonProperty(value = "payAttentionMemberList") + private String payAttentionMemberList; + /** * 任务名称 */ diff --git a/project/src/main/java/com/sdm/project/service/IProjectService.java b/project/src/main/java/com/sdm/project/service/IProjectService.java index 6a1f1836..fa73151e 100644 --- a/project/src/main/java/com/sdm/project/service/IProjectService.java +++ b/project/src/main/java/com/sdm/project/service/IProjectService.java @@ -39,4 +39,6 @@ public interface IProjectService { SdmResponse queryDesignVersions(String projectId, String phaseId); + void editTaskList(List taskEditNodeReqList); + } diff --git a/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java b/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java index 37191c85..2d904d97 100644 --- a/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java +++ b/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java @@ -6,6 +6,7 @@ import com.sdm.project.model.entity.SimulationTask; import com.baomidou.mybatisplus.extension.service.IService; import com.sdm.project.model.req.SpdmEditTaskForDataReq; import com.sdm.project.model.req.SpdmTaskOprReq; +import com.sdm.project.model.req.TaskEditNodeReq; import java.util.List; @@ -21,7 +22,7 @@ public interface ISimulationTaskService extends IService { boolean updateSimulationTask(SpdmTaskOprReq req); - SdmResponse editTaskForData(SpdmEditTaskForDataReq req); + SdmResponse editTaskForData(TaskEditNodeReq req); void batchCreateTaskFromDemand(List demandList); 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 a8c29359..121505e7 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 @@ -14,13 +14,11 @@ import com.sdm.common.common.SdmResponse; import com.sdm.common.common.ThreadLocalContext; import com.sdm.common.entity.ExportExcelFormat; import com.sdm.common.entity.constants.TagConstant; -import com.sdm.common.entity.enums.AttachFileTypeEnum; -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.enums.*; import com.sdm.common.entity.req.data.*; import com.sdm.common.entity.req.project.*; import com.sdm.common.entity.req.system.QueryGroupDetailReq; +import com.sdm.common.entity.req.system.SendMsgReq; import com.sdm.common.entity.req.system.UserListReq; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; @@ -32,6 +30,7 @@ import com.sdm.common.entity.resp.system.CIDStaffResp; import com.sdm.common.entity.resp.system.CIDUserResp; import com.sdm.common.entity.resp.system.SysUserGroupDetailResp; import com.sdm.common.feign.impl.data.DataClientFeignClientImpl; +import com.sdm.common.feign.impl.system.MessageFeignClientImpl; import com.sdm.common.feign.impl.system.SysConfigFeignClientImpl; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; import com.sdm.common.feign.inter.data.IDataFeignClient; @@ -129,6 +128,9 @@ public class NodeServiceImpl extends ServiceImpl userPermissions = new HashMap<>(); + updatePermissionReq.setUserPermissions(userPermissions); + // 设置仿真执行人 if (StringUtils.isNotBlank(taskNode.getEMemberList())) { String[] userIdArr = taskNode.getEMemberList().split(","); List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); simulationTaskMemberService.saveTaskMemberList(taskNode.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList); + // 添加执行人权限 + for (Long userId : longUserIdList) { + userPermissions.put(userId, FilePermissionEnum.ALL_EXCLUDE_DELETE.getValue()); + } + // 给执行人发消息 + longUserIdList.forEach(userId -> + sendMessage(MessageTemplateEnum.TASK_ISSUE, taskNode.getNodeName(), String.valueOf(userId), taskNode.getUuid())); } // 设置仿真负责人 if (StringUtils.isNotBlank(taskNode.getPMemberList())) { String[] userIdArr = taskNode.getPMemberList().split(","); List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); simulationTaskMemberService.saveTaskMemberList(taskNode.getUuid(), MemberTypeEnum.PRINCIPAL.getCode(), longUserIdList); + // 添加负责人权限 + for (Long userId : longUserIdList) { + userPermissions.put(userId, FilePermissionEnum.ALL.getValue()); + } + } + if (!userPermissions.values().isEmpty()) { + log.info("数据总览创建任务时,更新用户权限的参数为:{}",updatePermissionReq); + SdmResponse updatePermissionResponse = dataClientFeignClient.updatePermission(updatePermissionReq); + log.info("数据总览创建任务时,更新用户权限的返回值为:{}",updatePermissionResponse); } } + for (TaskNode taskNode : addTaskList) { createDirResult = createTaskDir(taskNode.getUuid(), taskNode.getNodeType(), taskNode.getPid(), taskNode.getNodeName(),taskNode); if (createDirResult.getCode() != ResultCode.SUCCESS.getCode()) { @@ -3199,6 +3223,18 @@ public class NodeServiceImpl extends ServiceImpl wrapper = new LambdaUpdateWrapper<>(); @@ -124,25 +124,8 @@ public class SimulationTaskServiceImpl extends ServiceImpl longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); - simulationTaskMemberService.deleteTaskMemberList(req.getUuid(), MemberTypeEnum.EXECUTOR.getCode()); - simulationTaskMemberService.saveTaskMemberList(req.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList); - } - // 设置仿真负责人 - if (StringUtils.isNotBlank(req.getPMemberList())) { - String[] userIdArr = req.getPMemberList().split(","); - List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); - simulationTaskMemberService.deleteTaskMemberList(req.getUuid(), MemberTypeEnum.PRINCIPAL.getCode()); - simulationTaskMemberService.saveTaskMemberList(req.getUuid(), MemberTypeEnum.PRINCIPAL.getCode(), longUserIdList); - } + public SdmResponse editTaskForData(TaskEditNodeReq req) { + projectService.editTaskList(Arrays.asList(req)); return SdmResponse.success(); } 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 f2f3feba..9c405ecc 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 @@ -2743,6 +2743,18 @@ public class TaskServiceImpl implements ITaskService { taskVo.setEMemberList(spdmEUserVoList); } } + List aMemberList = memberList.stream().filter(member -> MemberTypeEnum.ATTENTION.getCode().equals(member.getType())).toList(); + if (CollectionUtils.isNotEmpty(aMemberList)) { + List spdmAUserVoList = new ArrayList<>(); + for (Long userId : aMemberList.stream().map(SpdmTaskMemberVo::getUserId).toList()) { + if (ObjectUtils.isNotEmpty(userId) && CollectionUtils.isNotEmpty(userMap.get(userId))) { + spdmAUserVoList.addAll(userMap.get(userId)); + } + } + if (CollectionUtils.isNotEmpty(spdmAUserVoList)) { + taskVo.setPayAttentionMemberList(spdmAUserVoList); + } + } } return SdmResponse.success(taskVo); }