From c5dafd7dba14635643b4340597fb14c563c8dc7e Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 14 二月 2025 15:59:17 +0800
Subject: [PATCH] 挂起任务接口

---
 business/src/main/java/com/ycl/domain/form/TaskHangupForm.java                  |   39 +++++++++++++++++++
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java      |   23 +++++++++--
 business/src/main/java/com/ycl/controller/ProjectProcessController.java         |    7 +++
 business/src/main/java/com/ycl/service/ProjectProcessService.java               |   14 +++++++
 business/src/main/java/com/ycl/domain/json/HangupData.java                      |   22 +++++++++++
 common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java |    2 +
 6 files changed, 103 insertions(+), 4 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProjectProcessController.java b/business/src/main/java/com/ycl/controller/ProjectProcessController.java
index 8ee4e96..19ed1b9 100644
--- a/business/src/main/java/com/ycl/controller/ProjectProcessController.java
+++ b/business/src/main/java/com/ycl/controller/ProjectProcessController.java
@@ -119,4 +119,11 @@
     public Result taskSupervise(@Validated @RequestBody TaskSuperviseForm form) {
         return projectProcessService.taskSupervise(form);
     }
+
+    @PostMapping("/detail/task/hangup")
+    @ApiOperation(value = "鎸傝捣浠诲姟", notes = "鎸傝捣浠诲姟")
+//    @PreAuthorize("@ss.hasPermi('projectProcess:detail')")
+    public Result taskHangup(@Validated @RequestBody TaskHangupForm form) {
+        return projectProcessService.taskHangup(form);
+    }
 }
diff --git a/business/src/main/java/com/ycl/domain/form/TaskHangupForm.java b/business/src/main/java/com/ycl/domain/form/TaskHangupForm.java
new file mode 100644
index 0000000..4b86341
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/TaskHangupForm.java
@@ -0,0 +1,39 @@
+package com.ycl.domain.form;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/12/13 13:51
+ */
+@Data
+@ApiModel("浠诲姟鎸傝捣琛ㄥ崟")
+public class TaskHangupForm {
+
+    /**
+     * 褰撳墠浠诲姟id
+     *
+     */
+    @ApiModelProperty("浠诲姟id")
+    private String taskId;
+
+    /**
+     * 鎸傝捣鍘熷洜
+     *
+     */
+    @ApiModelProperty("鎸傝捣鍘熷洜")
+    private String reason;
+
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    /**
+     * 娴佺▼瀹炰緥id
+     *
+     */
+    @ApiModelProperty("娴佺▼瀹炰緥id")
+    private String processInsId;
+
+}
diff --git a/business/src/main/java/com/ycl/domain/json/HangupData.java b/business/src/main/java/com/ycl/domain/json/HangupData.java
new file mode 100644
index 0000000..c9df3c8
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/json/HangupData.java
@@ -0,0 +1,22 @@
+package com.ycl.domain.json;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鎸傝捣浠诲姟鏁版嵁
+ *
+ * @author锛歺p
+ * @date锛�2025/2/14 15:06
+ */
+@Data
+public class HangupData {
+
+    /** 鍘熷洜 */
+    private String reason;
+
+    public HangupData(String reason) {
+        this.reason = reason;
+    }
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectProcessService.java b/business/src/main/java/com/ycl/service/ProjectProcessService.java
index facc624..b01847d 100644
--- a/business/src/main/java/com/ycl/service/ProjectProcessService.java
+++ b/business/src/main/java/com/ycl/service/ProjectProcessService.java
@@ -105,5 +105,19 @@
      */
     Result taskJump(TaskJumpForm form);
 
+    /**
+     * 鐫e姙浠诲姟
+     *
+     * @param form
+     * @return
+     */
     Result taskSupervise(TaskSuperviseForm form);
+
+    /**
+     * 鎸傝捣浠诲姟
+     *
+     * @param form
+     * @return
+     */
+    Result taskHangup(TaskHangupForm form);
 }
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index ee3e6d6..c82b1a8 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -20,10 +20,9 @@
 import com.ycl.common.utils.SecurityUtils;
 import com.ycl.constant.TaskTypeConstant;
 import com.ycl.domain.entity.*;
-import com.ycl.domain.form.TaskDelegationForm;
-import com.ycl.domain.form.TaskJumpForm;
-import com.ycl.domain.form.TaskSuperviseForm;
+import com.ycl.domain.form.*;
 import com.ycl.domain.json.DelegateData;
+import com.ycl.domain.json.HangupData;
 import com.ycl.domain.json.JumpData;
 import com.ycl.domain.json.SuperviseData;
 import com.ycl.domain.vo.CustomerTaskVO;
@@ -35,7 +34,6 @@
 import com.ycl.service.*;
 import com.ycl.common.base.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.domain.form.ProjectProcessForm;
 import com.ycl.domain.vo.ProjectProcessVO;
 import com.ycl.domain.query.ProjectProcessQuery;
 import com.ycl.service.common.TaskCommonService;
@@ -670,6 +668,23 @@
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
+    @Override
+    public Result taskHangup(TaskHangupForm form) {
+        Task task = taskService.createTaskQuery().taskId(form.getTaskId()).singleResult();
+        // 浠诲姟鎸傝捣鍙渶瑕佸瓨鏃ュ織锛屾煡璇㈠緟鍔炴椂濡傛灉鏈夎繖涓棩蹇楄褰曪紝鍒欑鐢ㄦ彁浜ゆ寜閽紝浠ユ瀹炵幇浠诲姟鎸傝捣
+        publisher.publishEvent(new TaskLogEvent(this,
+                null,
+                SecurityUtils.getUserId(),
+                form.getProjectId(),
+                form.getProcessInsId(),
+                form.getTaskId(),
+                task.getName(),
+                ProcessLogEventTypeEnum.HANGUP,
+                new HangupData(form.getReason())
+                ));
+        return Result.ok("鎿嶄綔鎴愬姛");
+    }
+
     /**
      * 鏌ヨ寰呭姙浠诲姟
      *
diff --git a/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java
index c481324..ff8d254 100644
--- a/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java
+++ b/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java
@@ -19,6 +19,8 @@
     TEAM_WORK("TEAM_WORK", "鍗忓悓鍔炵悊"),
     JUMP("JUMP", "璺宠繃"),
     SUPERVISE("SUPERVISE", "鐫e姙"),
+    HANGUP("HANGUP", "鎸傝捣"),
+    CANCEL_HANGUP("CANCEL_HANGUP", "鍙栨秷鎸傝捣"),
 
     ;
 

--
Gitblit v1.8.0