From 4f224f37ef84fccc1b58b464fabe21f5f45aaf95 Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Thu, 6 Nov 2025 15:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E7=BC=96=E8=BE=91/=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BB=BB=E5=8A=A1;=E7=BC=96=E8=BE=91=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SimulationTaskController.java | 30 +++----- .../dao/SimulationTaskAttentionMapper.java | 10 +++ .../dao/SimulationTaskExtraMapper.java | 16 ++++ .../dao/SimulationTaskMemberMapper.java | 10 +++ .../model/entity/SimulationTaskAttention.java | 60 +++++++++++++++ .../model/entity/SimulationTaskExtra.java | 50 +++++++++++++ .../model/entity/SimulationTaskMember.java | 64 ++++++++++++++++ .../sdm/project/model/req/SpdmTaskOpr.java | 16 ++++ .../sdm/project/model/req/SpdmTaskOprReq.java | 56 ++++++++++++++ .../ISimulationTaskAttentionService.java | 9 +++ .../service/ISimulationTaskExtraService.java | 16 ++++ .../service/ISimulationTaskMemberService.java | 14 ++++ .../service/ISimulationTaskService.java | 5 ++ .../com/sdm/project/service/ITaskService.java | 6 +- .../SimulationTaskAttentionServiceImpl.java | 14 ++++ .../impl/SimulationTaskExtraServiceImpl.java | 20 +++++ .../impl/SimulationTaskMemberServiceImpl.java | 39 ++++++++++ .../impl/SimulationTaskServiceImpl.java | 38 ++++++++++ .../project/service/impl/TaskServiceImpl.java | 73 ++++++++++++------- 19 files changed, 498 insertions(+), 48 deletions(-) create mode 100644 project/src/main/java/com/sdm/project/dao/SimulationTaskAttentionMapper.java create mode 100644 project/src/main/java/com/sdm/project/dao/SimulationTaskExtraMapper.java create mode 100644 project/src/main/java/com/sdm/project/dao/SimulationTaskMemberMapper.java create mode 100644 project/src/main/java/com/sdm/project/model/entity/SimulationTaskAttention.java create mode 100644 project/src/main/java/com/sdm/project/model/entity/SimulationTaskExtra.java create mode 100644 project/src/main/java/com/sdm/project/model/entity/SimulationTaskMember.java create mode 100644 project/src/main/java/com/sdm/project/model/req/SpdmTaskOpr.java create mode 100644 project/src/main/java/com/sdm/project/model/req/SpdmTaskOprReq.java create mode 100644 project/src/main/java/com/sdm/project/service/ISimulationTaskAttentionService.java create mode 100644 project/src/main/java/com/sdm/project/service/ISimulationTaskExtraService.java create mode 100644 project/src/main/java/com/sdm/project/service/ISimulationTaskMemberService.java create mode 100644 project/src/main/java/com/sdm/project/service/impl/SimulationTaskAttentionServiceImpl.java create mode 100644 project/src/main/java/com/sdm/project/service/impl/SimulationTaskExtraServiceImpl.java create mode 100644 project/src/main/java/com/sdm/project/service/impl/SimulationTaskMemberServiceImpl.java 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 bf62a938..6c98f6f3 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationTaskController.java @@ -1,11 +1,8 @@ package com.sdm.project.controller; import com.sdm.common.common.SdmResponse; -import com.sdm.project.model.bo.ModifyProjectNode; import com.sdm.project.model.bo.ModifyTaskNode; -import com.sdm.project.model.req.SpdmTaskAttentionReq; -import com.sdm.project.model.req.SpdmTaskCountReq; -import com.sdm.project.model.req.SpdmTaskListReq; +import com.sdm.project.model.req.*; import com.sdm.project.service.ITaskService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -14,9 +11,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; @RestController @RequestMapping("/task") @@ -39,20 +33,12 @@ public class SimulationTaskController { } /** - * 驳回、启动、暂停、工时、关闭、关注、取消关注 - * - * @param taskId - * @param exeStatus - * @param achieveStatus - * @param process - * @return + * 驳回、启动、暂停、工时、关闭、关注、取消关注、编辑 */ - @GetMapping("/operation") + @PostMapping("/operation") @Operation(summary = "操作任务", description = "操作任务") - public SdmResponse operation(@RequestParam("taskId") String taskId, @RequestParam(value = "exeStatus",required = false) String exeStatus, - @RequestParam(value = "achieveStatus",required = false) String achieveStatus,@RequestParam(value = "process",required = false) Integer process, - @RequestParam(value = "finishTime",required = false) String finishTime) { - return taskService.operation(taskId, exeStatus,achieveStatus,process,finishTime); + public SdmResponse operation(@RequestBody SpdmTaskOpr taskOpr) { + return taskService.operation(taskOpr); } @PostMapping("/attention") @@ -85,4 +71,10 @@ public class SimulationTaskController { return taskService.countByStatus(req); } + @PostMapping("/batchDelete") + @Operation(summary = "批量删除任务", description = "批量删除任务") + public SdmResponse batchDeleteTask(@RequestBody SpdmTaskOpr taskOpr) { + return taskService.batchDeleteTask(taskOpr); + } + } diff --git a/project/src/main/java/com/sdm/project/dao/SimulationTaskAttentionMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationTaskAttentionMapper.java new file mode 100644 index 00000000..a24f03a3 --- /dev/null +++ b/project/src/main/java/com/sdm/project/dao/SimulationTaskAttentionMapper.java @@ -0,0 +1,10 @@ +package com.sdm.project.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sdm.project.model.entity.SimulationTaskAttention; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SimulationTaskAttentionMapper extends BaseMapper { + +} diff --git a/project/src/main/java/com/sdm/project/dao/SimulationTaskExtraMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationTaskExtraMapper.java new file mode 100644 index 00000000..1140f0fd --- /dev/null +++ b/project/src/main/java/com/sdm/project/dao/SimulationTaskExtraMapper.java @@ -0,0 +1,16 @@ +package com.sdm.project.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sdm.project.model.entity.SimulationTaskExtra; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2025-09-16 + */ +public interface SimulationTaskExtraMapper extends BaseMapper { + +} diff --git a/project/src/main/java/com/sdm/project/dao/SimulationTaskMemberMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationTaskMemberMapper.java new file mode 100644 index 00000000..0889e6e1 --- /dev/null +++ b/project/src/main/java/com/sdm/project/dao/SimulationTaskMemberMapper.java @@ -0,0 +1,10 @@ +package com.sdm.project.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sdm.project.model.entity.SimulationTaskMember; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SimulationTaskMemberMapper extends BaseMapper { + +} diff --git a/project/src/main/java/com/sdm/project/model/entity/SimulationTaskAttention.java b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskAttention.java new file mode 100644 index 00000000..4bc189ae --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskAttention.java @@ -0,0 +1,60 @@ +package com.sdm.project.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("simulation_task_attention") +@ApiModel(value="SimulationTaskAttention", description="") +public class SimulationTaskAttention implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "任务ID") + @TableField("task_id") + private String taskId; + + @ApiModelProperty(value = "身份标识") + @TableField("identity") + private String identity; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "用户ID") + @TableField("user_id") + private Long userId; + + @ApiModelProperty(value = "创建人") + @TableField("creator") + private String creator; + + @ApiModelProperty(value = "创建时间") + @TableField("create_time") + private String createTime; + + @ApiModelProperty(value = "更新人") + @TableField("updater") + private String updater; + + @ApiModelProperty(value = "更新时间") + @TableField("update_time") + private String updateTime; + +} diff --git a/project/src/main/java/com/sdm/project/model/entity/SimulationTaskExtra.java b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskExtra.java new file mode 100644 index 00000000..f1a7ed32 --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskExtra.java @@ -0,0 +1,50 @@ +package com.sdm.project.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author author + * @since 2025-09-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("simulation_task_extra") +@ApiModel(value="SimulationTaskExtra对象", description="") +public class SimulationTaskExtra implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @TableField("task_id") + private String taskId; + + @TableField("property_name") + private String propertyName; + + @TableField("property_value") + private String propertyValue; + + @TableField("value_type") + private String valueType; + + @TableField("property_class") + private String propertyClass; + + +} diff --git a/project/src/main/java/com/sdm/project/model/entity/SimulationTaskMember.java b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskMember.java new file mode 100644 index 00000000..73cee6a7 --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/entity/SimulationTaskMember.java @@ -0,0 +1,64 @@ +package com.sdm.project.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("simulation_task_member") +@ApiModel(value="SimulationTaskMember", description="") +public class SimulationTaskMember implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "任务ID") + @TableField("task_id") + private String taskId; + + @ApiModelProperty(value = "身份标识") + @TableField("identity") + private String identity; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "用户ID") + @TableField("user_id") + private Long userId; + + @ApiModelProperty(value = "创建人") + @TableField("creator") + private String creator; + + @ApiModelProperty(value = "创建时间") + @TableField("create_time") + private String createTime; + + @ApiModelProperty(value = "更新人") + @TableField("updater") + private String updater; + + @ApiModelProperty(value = "更新时间") + @TableField("update_time") + private String updateTime; + + @ApiModelProperty(value = "类型:0-仿真负责人 1-仿真执行人") + @TableField("type") + private Integer type; + +} diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmTaskOpr.java b/project/src/main/java/com/sdm/project/model/req/SpdmTaskOpr.java new file mode 100644 index 00000000..a93fbd73 --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/req/SpdmTaskOpr.java @@ -0,0 +1,16 @@ +package com.sdm.project.model.req; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; + +import java.util.List; + +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +public class SpdmTaskOpr { + + List taskIds; + + SpdmTaskOprReq req; + +} diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmTaskOprReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmTaskOprReq.java new file mode 100644 index 00000000..17227f2a --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/req/SpdmTaskOprReq.java @@ -0,0 +1,56 @@ +package com.sdm.project.model.req; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +public class SpdmTaskOprReq { + /** + * 任务名称 + */ + private String taskId; + + /** + * 任务状态 + */ + private String exeStatus; + + /** + * 达成情况 + */ + private String achieveStatus; + + /** + * 任务进度 + */ + private Integer progress; + + /** + * 实际结束时间 + */ + private String finishTime; + + /** + * 计划开始时间 + */ + private String beginTime; + + /** + * 计划结束时间 + */ + private String endTime; + + /** + * 仿真执行人 + */ + @JsonProperty(value = "eMemberList") + private String eMemberList; + + /** + * 任务名称 + */ + private String nodeName; + +} diff --git a/project/src/main/java/com/sdm/project/service/ISimulationTaskAttentionService.java b/project/src/main/java/com/sdm/project/service/ISimulationTaskAttentionService.java new file mode 100644 index 00000000..5f021b00 --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/ISimulationTaskAttentionService.java @@ -0,0 +1,9 @@ +package com.sdm.project.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.project.model.entity.SimulationTaskAttention; + + +public interface ISimulationTaskAttentionService extends IService { + +} diff --git a/project/src/main/java/com/sdm/project/service/ISimulationTaskExtraService.java b/project/src/main/java/com/sdm/project/service/ISimulationTaskExtraService.java new file mode 100644 index 00000000..9d8491e1 --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/ISimulationTaskExtraService.java @@ -0,0 +1,16 @@ +package com.sdm.project.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.project.model.entity.SimulationTaskExtra; + +/** + *

+ * 服务类 + *

+ * + * @author author + * @since 2025-09-16 + */ +public interface ISimulationTaskExtraService extends IService { + +} diff --git a/project/src/main/java/com/sdm/project/service/ISimulationTaskMemberService.java b/project/src/main/java/com/sdm/project/service/ISimulationTaskMemberService.java new file mode 100644 index 00000000..0d42c95c --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/ISimulationTaskMemberService.java @@ -0,0 +1,14 @@ +package com.sdm.project.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.project.model.entity.SimulationTaskMember; + +import java.util.List; + +public interface ISimulationTaskMemberService extends IService { + + void deleteTaskMemberList(String taskId, Integer type); + + boolean saveTaskMemberList(String taskId, Integer type, List userIds); + +} 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 1566a78d..4a0ec745 100644 --- a/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java +++ b/project/src/main/java/com/sdm/project/service/ISimulationTaskService.java @@ -2,6 +2,9 @@ package com.sdm.project.service; import com.sdm.project.model.entity.SimulationTask; import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.project.model.req.SpdmTaskOprReq; + +import java.util.List; /** *

@@ -13,4 +16,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISimulationTaskService extends IService { + boolean updateSimulationTask(SpdmTaskOprReq req); + } diff --git a/project/src/main/java/com/sdm/project/service/ITaskService.java b/project/src/main/java/com/sdm/project/service/ITaskService.java index 59239062..0a9bee27 100644 --- a/project/src/main/java/com/sdm/project/service/ITaskService.java +++ b/project/src/main/java/com/sdm/project/service/ITaskService.java @@ -4,7 +4,6 @@ import com.sdm.common.common.SdmResponse; import com.sdm.project.model.bo.ModifyTaskNode; import com.sdm.project.model.req.*; import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp; -import com.sdm.project.model.resp.RunResultResp; import org.springframework.stereotype.Service; import java.util.List; @@ -17,7 +16,7 @@ public interface ITaskService { SdmResponse countByStatus(SpdmTaskCountReq req); - SdmResponse operation(String taskId, String exeStatus,String achieveStatus,Integer process,String finishTime); + SdmResponse operation(SpdmTaskOpr req); SdmResponse analysisTaskList(SpdmAnalysisTaskListReq req); @@ -30,4 +29,7 @@ public interface ITaskService { SdmResponse edit(ModifyTaskNode req); SdmResponse getAllRunResultByTaskId(String taskId); + + SdmResponse batchDeleteTask(SpdmTaskOpr taskOpr); + } diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskAttentionServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskAttentionServiceImpl.java new file mode 100644 index 00000000..c72dbf8b --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskAttentionServiceImpl.java @@ -0,0 +1,14 @@ +package com.sdm.project.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sdm.project.dao.SimulationTaskAttentionMapper; +import com.sdm.project.model.entity.SimulationTaskAttention; +import com.sdm.project.service.ISimulationTaskAttentionService; +import com.sdm.project.service.ISimulationTaskMemberService; +import org.springframework.stereotype.Service; + + +@Service +public class SimulationTaskAttentionServiceImpl extends ServiceImpl implements ISimulationTaskAttentionService { + +} diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskExtraServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskExtraServiceImpl.java new file mode 100644 index 00000000..835cc674 --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskExtraServiceImpl.java @@ -0,0 +1,20 @@ +package com.sdm.project.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sdm.project.dao.SimulationTaskExtraMapper; +import com.sdm.project.model.entity.SimulationTaskExtra; +import com.sdm.project.service.ISimulationTaskExtraService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2025-09-16 + */ +@Service +public class SimulationTaskExtraServiceImpl extends ServiceImpl implements ISimulationTaskExtraService { + +} diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskMemberServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskMemberServiceImpl.java new file mode 100644 index 00000000..56ca1d32 --- /dev/null +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskMemberServiceImpl.java @@ -0,0 +1,39 @@ +package com.sdm.project.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sdm.common.common.ThreadLocalContext; +import com.sdm.project.dao.SimulationTaskMemberMapper; +import com.sdm.project.model.entity.SimulationTaskMember; +import com.sdm.project.service.ISimulationTaskMemberService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SimulationTaskMemberServiceImpl extends ServiceImpl implements ISimulationTaskMemberService { + + @Override + public void deleteTaskMemberList(String taskId, Integer type) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SimulationTaskMember::getTaskId, taskId); + wrapper.eq(SimulationTaskMember::getType, type); + this.remove(wrapper); + } + + @Override + public boolean saveTaskMemberList(String taskId, Integer type, List userIds) { + for (Long userId : userIds) { + SimulationTaskMember entity = new SimulationTaskMember(); + entity.setTaskId(taskId); + entity.setType(type); + entity.setUserId(userId); + entity.setCreator(String.valueOf(ThreadLocalContext.getUserId())); + entity.setCreateTime(DateUtil.now()); + this.save(entity); + } + return true; + } + +} diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java index 076e1e20..4201d589 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java @@ -1,11 +1,19 @@ package com.sdm.project.service.impl; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.sdm.common.common.ThreadLocalContext; import com.sdm.project.model.entity.SimulationTask; import com.sdm.project.dao.SimulationTaskMapper; +import com.sdm.project.model.entity.SimulationTaskMember; +import com.sdm.project.model.req.SpdmTaskOprReq; import com.sdm.project.service.ISimulationTaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +25,34 @@ import org.springframework.stereotype.Service; @Service public class SimulationTaskServiceImpl extends ServiceImpl implements ISimulationTaskService { + @Override + public boolean updateSimulationTask(SpdmTaskOprReq req) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SimulationTask::getUuid, req.getTaskId()); + if (req.getExeStatus() != null) { + wrapper.set(SimulationTask::getExeStatus, req.getExeStatus()); + } + if (req.getAchieveStatus() != null) { + wrapper.set(SimulationTask::getAchieveStatus, req.getAchieveStatus()); + } + if (req.getProgress() != null) { + wrapper.set(SimulationTask::getProgress, req.getProgress()); + } + if (req.getFinishTime() != null) { + wrapper.set(SimulationTask::getFinishTime, req.getFinishTime()); + } + if (req.getBeginTime() != null) { + wrapper.set(SimulationTask::getBeginTime, req.getBeginTime()); + } + if (req.getEndTime() != null) { + wrapper.set(SimulationTask::getEndTime, req.getEndTime()); + } + if (req.getNodeName() != null) { + wrapper.set(SimulationTask::getTaskName, req.getNodeName()); + } + wrapper.set(SimulationTask::getCreator, String.valueOf(ThreadLocalContext.getUserId())); + wrapper.set(SimulationTask::getCreateTime, DateUtil.now()); + return this.update(wrapper); + } + } 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 eb8044c3..be634b75 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 @@ -8,7 +8,6 @@ import com.sdm.common.entity.constants.SystemConstants; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.system.CIDUserResp; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; -import com.sdm.common.utils.Tools; import com.sdm.project.common.MemberTypeEnum; import com.sdm.project.common.TaskExeStatusEnum; import com.sdm.project.dao.SimulationDemandMapper; @@ -19,8 +18,7 @@ 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.entity.SimulationPerformance; -import com.sdm.project.model.entity.SimulationRun; +import com.sdm.project.model.entity.*; import com.sdm.project.model.po.PerformanceNodePo; import com.sdm.project.model.po.ProjectNodePo; import com.sdm.project.model.po.TaskNodeMemberPo; @@ -31,9 +29,7 @@ import com.sdm.project.model.resp.RunResultResp; import com.sdm.project.model.resp.TasKPerformanceResp; import com.sdm.project.model.resp.TaskCountResp; import com.sdm.project.model.vo.*; -import com.sdm.project.service.ISimulationPerformanceService; -import com.sdm.project.service.ISimulationRunService; -import com.sdm.project.service.ITaskService; +import com.sdm.project.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -41,6 +37,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -76,6 +73,15 @@ public class TaskServiceImpl implements ITaskService { @Autowired private SysUserFeignClientImpl sysUserFeignClient; + @Autowired + private ISimulationTaskMemberService simulationTaskMemberService; + @Autowired + private ISimulationTaskService simulationTaskService; + @Autowired + private ISimulationTaskExtraService simulationTaskExtraService; + @Autowired + private ISimulationTaskAttentionService simulationTaskAttentionService; + @Override public SdmResponse list(SpdmTaskListReq req) { @@ -487,10 +493,9 @@ public class TaskServiceImpl implements ITaskService { Integer type = req.getType(); SpdmTaskListReq qry = new SpdmTaskListReq(); - BeanUtils.copyProperties(req, qry); List allTaskList = mapper.getTaskList(tenantId, qry); // 今明任务 - req.setTodayTmrTasks(ProjectConstants.TODAY_TMR_TASKS); + qry.setTodayTmrTasks(ProjectConstants.TODAY_TMR_TASKS); List todayTmrTaskList = mapper.getTaskList(tenantId, qry); if (CollectionUtils.isEmpty(allTaskList)) { log.error("根据tenantId:{},未查询到任务", tenantId); @@ -605,26 +610,30 @@ public class TaskServiceImpl implements ITaskService { @Override - public SdmResponse operation(String taskId, String exeStatus, String achieveStatus, Integer process, String finishTime) { - if (StringUtils.isBlank(taskId)) { - return SdmResponse.failed("taskId不能为空"); - } - SpdmTaskVo task = mapper.getTask(taskId); - if (ObjectUtils.isEmpty(task)) { - log.error("根据taskId:{},未查询到任务", taskId); - return SdmResponse.failed("未查询到任务"); - } - task.setExeStatus(exeStatus); - task.setAchieveStatus(achieveStatus); - task.setProgress(process); - task.setFinishTime(finishTime); - task.setUpdater(ThreadLocalContext.getCommonHeader().getJobNumber()); - task.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); - if (mapper.updateTask(task) > 0) { - return SdmResponse.success(); - } else { - return SdmResponse.failed("编辑任务失败"); + @Transactional(rollbackFor = Exception.class) + public SdmResponse operation(SpdmTaskOpr taskOpr) { + if (CollectionUtils.isNotEmpty(taskOpr.getTaskIds()) && ObjectUtils.isNotEmpty(taskOpr.getReq())) { + SpdmTaskOprReq req = taskOpr.getReq(); + for (String taskId : taskOpr.getTaskIds()) { + req.setTaskId(taskId); + if (simulationTaskService.lambdaQuery().eq(SimulationTask::getUuid, taskId).count() <= 0) { + log.error("根据taskId:{},未查询到任务", taskId); + return SdmResponse.failed("未查询到任务"); + } + if (!simulationTaskService.updateSimulationTask(req)) { + return SdmResponse.failed("编辑任务失败"); + } + if (StringUtils.isNotBlank(req.getEMemberList())) { + String[] userIdArr = req.getEMemberList().split(","); + List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); + simulationTaskMemberService.deleteTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode()); + if (!simulationTaskMemberService.saveTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode(), longUserIdList)) { + return SdmResponse.failed("编辑仿真执行人失败"); + } + } + } } + return SdmResponse.success(); } @@ -938,4 +947,14 @@ public class TaskServiceImpl implements ITaskService { return SdmResponse.success(result); } + + @Override + public SdmResponse batchDeleteTask(SpdmTaskOpr taskOpr) { + List taskIds = taskOpr.getTaskIds(); + simulationTaskService.lambdaUpdate().in(SimulationTask::getUuid, taskIds).remove(); + simulationTaskMemberService.lambdaUpdate().in(SimulationTaskMember::getTaskId, taskIds).remove(); + simulationTaskExtraService.lambdaUpdate().in(SimulationTaskExtra::getTaskId, taskIds).remove(); + simulationTaskAttentionService.lambdaUpdate().in(SimulationTaskAttention::getTaskId, taskIds).remove(); + return SdmResponse.success(); + } }