From f8499faf6a13f77b1fe0082eaba5e9ad50d7d481 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 07 八月 2025 14:22:31 +0800
Subject: [PATCH] 增加任务表

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java |   13 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.java     |   10 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java      |    4 +
 doc/sql/mdm/mdm.mysql.all.create.sql                                                              |   24 ++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java           |   57 +++++++++++++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.xml      |   13 ++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java   |   38 ++++++++++++
 7 files changed, 156 insertions(+), 3 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
index b496b9c..8a7d871 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -23,6 +23,7 @@
 import org.springblade.mdm.flow.service.ApproveRecordService;
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
+import org.springblade.mdm.flow.service.TaskDispatchService;
 import org.springblade.mdm.flow.service.execute.AbstractFlowCompleteService;
 import org.springblade.mdm.flow.service.execute.DefaultFlowCompleteService;
 import org.springblade.mdm.flow.service.execute.TryFlowCompleteService;
@@ -59,14 +60,22 @@
 
 	private final TryFlowCompleteService tryFlowCompleteService;
 	private final DefaultFlowCompleteService defaultFlowCompleteService;
+	private final TaskDispatchService taskDispatchService;
 	/**
 	 * 鍙戣捣娲惧伐娴佺▼
 	 */
 	@PostMapping("/start")
 	@Operation(summary = "浠诲姟璁″垝(娲惧伐娴佺▼)", description = "鍚姩娲惧伐娴佺▼")
 	public R<Boolean> start(@RequestBody TaskAssignVO startVO) {
-		dispatcher.start(startVO);
-		return R.status(true);
+		try {
+			long id= taskDispatchService.saveTask(startVO);
+			String instId = dispatcher.start(startVO);
+			taskDispatchService.updateSuccess(id,instId);
+			return R.data(true);
+		}catch(Exception e){
+			return R.fail(e.getMessage());
+		}
+
 	}
 
 	AbstractFlowCompleteService getActualService(String processInstanceId){
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
new file mode 100644
index 0000000..e766c54
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
@@ -0,0 +1,57 @@
+package org.springblade.mdm.flow.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BizEntity;
+
+import java.util.Date;
+
+/**
+ * 浠诲姟娲惧伐鍙戣捣鐨勬暟鎹�
+ */
+@Setter
+@Getter
+@TableName("mdm_task_dispatch")
+public class TaskDispatch extends BizEntity {
+	/**
+	 * 璁惧缂栧彿
+	 */
+	private String machineCode;
+	/**
+	 * 宸ュ簭鍚嶇О锛屽鈥滅簿閾b��
+	 */
+	private String processName;
+
+	/**
+	 * 宸ュ簭鐗堟
+	 */
+	private String processEdition;
+	/**
+	 * 绋嬪簭鏂囦欢鑺傜偣鐨勬暟鎹�
+	 */
+	private String processNo;
+	/**
+	 * 宸ヨ壓鐗堟
+	 */
+	private String craftEdition;
+	/**
+	 * 闆剁粍浠跺彿/鍥惧彿
+	 */
+	private String drawingNo;
+	/**
+	 * 鍥惧彿鐗堟
+	 */
+	private String drawingNoEdition;
+
+	/**
+	 * 浜у搧鍨嬪彿
+	 */
+	private String productModel;
+
+	/**
+	 * 瀹℃壒鏃剁殑娴佺▼瀹炰緥id锛屽叧鑱旂殑娴佺▼瀹炰緥id锛屾祦绋嬪彂璧峰悗濉厖
+	 */
+	private String processInstanceId;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index 049a382..11e0ec2 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -40,9 +40,10 @@
 	/**
 	 * 鍚姩娲惧伐娴佺▼
 	 * @param startVO
+	 * @return 娴佺▼瀹炰緥id
 	 */
 	@Transactional
-	public void start(TaskAssignVO startVO){
+	public String start(TaskAssignVO startVO){
 
 		Map<String,Object> preAssignee = autoAssignUsersService.autoAssignUsers(startVO);
 		Map<String, Object> vars = new HashMap<>(preAssignee);
@@ -90,6 +91,7 @@
 			copyFlowProgramFiles(programPkg.getProcessInstanceId(),inst.getProcessInstanceId());
 		}
 
+		return inst.getProcessInstanceId();
 	}
 
 	/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.java
new file mode 100644
index 0000000..42e4d5f
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.java
@@ -0,0 +1,10 @@
+package org.springblade.mdm.flow.mapper;
+
+import org.springblade.core.mp.mapper.BladeMapper;
+import org.springblade.mdm.flow.entity.FlowProgramFile;
+import org.springblade.mdm.flow.entity.TaskDispatch;
+
+public interface TaskDispatchMapper extends BladeMapper<TaskDispatch> {
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.xml
new file mode 100644
index 0000000..7b48cd2
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.mdm.flow.mapper.TaskDispatchMapper">
+    <resultMap id="BaseResultMap" type="org.springblade.mdm.flow.entity.TaskDispatch">
+        <id column="id" property="id"/>
+        <result column="status" property="status"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
new file mode 100644
index 0000000..b8914d7
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
@@ -0,0 +1,38 @@
+
+package org.springblade.mdm.flow.service;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.mdm.flow.entity.TaskDispatch;
+import org.springblade.mdm.flow.mapper.TaskDispatchMapper;
+import org.springblade.mdm.flow.vo.TaskAssignVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 浠诲姟娲惧伐鏁版嵁 澶勭悊鏈嶅姟
+ *
+ * @author yangys
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class TaskDispatchService  extends BizServiceImpl<TaskDispatchMapper, TaskDispatch> {
+
+	@Transactional(rollbackFor = Exception.class)
+	public long saveTask(TaskAssignVO startVO) {
+		TaskDispatch taskDispatch = new TaskDispatch();
+		BeanUtils.copyProperties(startVO, taskDispatch);
+		this.save(taskDispatch);
+
+		return taskDispatch.getId();
+	}
+
+	public void updateSuccess(long id, String instId) {
+		TaskDispatch taskDispatch = getById(id);
+		taskDispatch.setProcessInstanceId(instId);
+		this.updateById(taskDispatch);
+	}
+}
diff --git a/doc/sql/mdm/mdm.mysql.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
index 1fb8f60..4d79bc8 100644
--- a/doc/sql/mdm/mdm.mysql.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -151,6 +151,30 @@
    PRIMARY KEY (`id`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='绋嬪簭鑺傜偣鐩綍';
 
+DROP TABLE IF EXISTS `mdm_task_dispatch`;
+CREATE TABLE `mdm_task_dispatch` (
+   `id` bigint NOT NULL,
+   `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+   `process_name` varchar(20) NULL COMMENT '宸ュ簭鍚嶇О',
+   `process_no` varchar(100) NULL COMMENT '宸ュ簭鍙�',
+   `machine_code` varchar(100) DEFAULT NULL COMMENT '璁惧缂栧彿/鏈哄簥缂栧彿',
+   `drawing_no` varchar(100) NULL COMMENT '闆剁粍浠剁紪鍙�/鍥惧彿',
+   `process_edition` varchar(40) DEFAULT NULL COMMENT '宸ュ簭鐗堟锛屽崌鐗堝氨鏄彉鏇存敼璇ュ瓧娈碉紝闇�瑕佷繚鐣欏巻鍙茶褰�',
+   `craft_edition` varchar(40) DEFAULT NULL COMMENT '宸ヨ壓鐗堟',
+   `drawing_no_edition` varchar(100) NULL COMMENT '鍥惧彿鐗堟',
+   `node_type` varchar(20) DEFAULT NULL COMMENT '鑺傜偣绫诲瀷锛氫笟鍔″瓧鍏稿畾涔�',
+   `product_model` varchar(100) NULL COMMENT '浜у搧鍨嬪彿',
+   `process_instance_id` varchar(64) NULL COMMENT '鍏宠仈鐨勬祦绋嬪疄渚媔d锛屾祦绋嬪彂璧峰悗濉厖',
+   `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵�侊紝1锛氬垵濮嬪寲锛�2:娴佺▼宸插惎鍔�',
+   `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
+   `is_deleted` int DEFAULT NULL,
+   `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+   `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
+   `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+   `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
+   PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='浠诲姟娲惧伐琛�';
+
 DROP TABLE IF EXISTS `mdm_nc_program`;
 CREATE TABLE `mdm_nc_program` (
   `id` bigint NOT NULL,

--
Gitblit v1.9.3