From 918754b180b490dc7549d5e179424b781e6698c8 Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Thu, 25 Dec 2025 14:40:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=E6=B5=81=E7=A8=8B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9v4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BenchmarkingReportServiceImpl.java | 110 +++++++------ .../impl/TemplateApprovalServiceImpl.java | 152 +++++++++--------- src/main/resources/sql.sql | 88 +++++----- 3 files changed, 185 insertions(+), 165 deletions(-) diff --git a/src/main/java/com/xdap/self_development/service/impl/BenchmarkingReportServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/BenchmarkingReportServiceImpl.java index b3bbe1e..d838fae 100644 --- a/src/main/java/com/xdap/self_development/service/impl/BenchmarkingReportServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/BenchmarkingReportServiceImpl.java @@ -100,6 +100,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService } bd.getBusinessDatabase().doBatchInsert(approvalConfigs); + // 新增待办 List list = new ArrayList<>(); for (String person : firstNode.getAssignees()) { TodoTaskPojo todoTask = new TodoTaskPojo(); @@ -121,6 +122,17 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService } bd.getBusinessDatabase().doBatchInsert(list); + // 新增我创建的 + InitiatedTaskPojo initiatedTask = new InitiatedTaskPojo(); + initiatedTask.setDocumentNo(flow.getId()); + initiatedTask.setCreatedById(form.getUserId()); + initiatedTask.setCurrentNode(firstNode.getNodeName()); + initiatedTask.setCurrentProcessor(JSON.toJSONString(firstNode.getAssignees())); + initiatedTask.setDataType("对标报告审核"); + initiatedTask.setProcessTitle(form.getProcessTitle()); + initiatedTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + bd.getBusinessDatabase().doInsert(initiatedTask); + // 更新报告状态为校对中 bd.getBusinessDatabase() .eq("id", report.getId()) @@ -283,11 +295,11 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService throw new CommonException("当前节点正在处理,请稍后重试"); } try { + // 查询已完成的任务,检查当前节点是否完成 int processedCount = bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("is_delete", 1) - .eq("current_node", currentNode.getNodeName()) - .doQuery(TodoTaskPojo.class).size(); + .eq("flow_id", flow.getId()) + .eq("node", currentNode.getNodeName()) + .doQuery(ApprovalRecord.class).size(); if (processedCount > 0) { throw new CommonException("此节点已被他人处理"); } @@ -316,22 +328,26 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService bd.getBusinessDatabase() .eq("document_no", flow.getId()) - .eq("owner_id", request.getUserId()) .eq("current_node", currentNode.getNodeName()) .update("last_update_date", Timestamp.valueOf(LocalDateTime.now())) .update("is_delete", 1) .doUpdate(TodoTaskPojo.class); - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .ne("owner_id", request.getUserId()) - .eq("current_node", currentNode.getNodeName()) - .update("last_update_date", Timestamp.valueOf(LocalDateTime.now())) - .update("is_delete", 2) - .doUpdate(TodoTaskPojo.class); + + // 更新当前用户的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + completedTaskPojo.setDocumentNo(flow.getId()); + completedTaskPojo.setCreatedById(request.getUserId()); + completedTaskPojo.setCurrentNode(currentNode.getNodeName()); + completedTaskPojo.setCurrentProcessor(JSON.toJSONString(currentNode.getAssignees())); + completedTaskPojo.setDataType("对标报告审核"); + completedTaskPojo.setOwnerId(request.getUserId()); + completedTaskPojo.setProcessTitle(flow.getProcessTitle()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + bd.getBusinessDatabase().doInsert(completedTaskPojo); // 处理驳回逻辑 if ("REJECT".equals(request.getResult())) { - cancelProcess(flow, "REJECTED", request.getUserId()); + cancelProcess(flow, "REJECTED"); return; } // 处理通过逻辑,流转到下一节点 @@ -339,7 +355,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService } private void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) { - // 更新报告状态 + // 查询报告状态 BenchmarkingReport report = bd.getBusinessDatabase() .eq("id", flow.getTemplateId()) .doQueryFirst(BenchmarkingReport.class); @@ -358,10 +374,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService .update("status", report.getStatus()) .doUpdate(BenchmarkingReport.class); // 待办环节修改 - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .update("current_node", "已完成") - .doUpdate(TodoTaskPojo.class); + updateTasks(flow, "已完成"); } else { flow.setCurrentNode(1); addNodeTodo(flow, nextNode, report, userId); @@ -379,39 +392,33 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService // 新增待办 List list = new ArrayList<>(); for (String person : users) { - TodoTaskPojo todoTaskPojo = bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("owner_id", person).doQueryFirst(TodoTaskPojo.class); - if (todoTaskPojo != null) { - todoTaskPojo.setCurrentNode(node.getNodeName()); - todoTaskPojo.setCurrentProcessor(JSON.toJSONString(node.getAssignees())); - bd.getBusinessDatabase().doUpdate(todoTaskPojo); - bd.getBusinessDatabase().doUpdate(todoTaskPojo); - } else { - TodoTaskPojo todoTask = new TodoTaskPojo(); - todoTask.setCreatedById(createBy); - todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername()); - todoTask.setCurrentNode("1"); - todoTask.setDataType("对标报告审核"); - todoTask.setDocumentNo(flow.getId()); - todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); - todoTask.setIsDelete(0); - todoTask.setModelId(report.getId()); - todoTask.setModelName(report.getProjectName() + "对标报告"); - todoTask.setProcessTitle(flow.getProcessTitle()); - todoTask.setStatusCode(flow.getFlowStatus()); - todoTask.setVersionNumber(1); - todoTask.setOwnerId(person); - todoTask.setCurrentProcessor(JSON.toJSONString(node.getAssignees())); - list.add(todoTask); - } + TodoTaskPojo todoTask = new TodoTaskPojo(); + todoTask.setCreatedById(createBy); + todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername()); + todoTask.setCurrentNode("1"); + todoTask.setDataType("对标报告审核"); + todoTask.setDocumentNo(flow.getId()); + todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + todoTask.setIsDelete(0); + todoTask.setModelId(report.getId()); + todoTask.setModelName(report.getProjectName() + "对标报告"); + todoTask.setProcessTitle(flow.getProcessTitle()); + todoTask.setStatusCode(flow.getFlowStatus()); + todoTask.setVersionNumber(1); + todoTask.setOwnerId(person); + todoTask.setCurrentProcessor(JSON.toJSONString(node.getAssignees())); + list.add(todoTask); } + + // 更新已办和发起的状态 + updateTasks(flow, node.getNodeName()); + if (!list.isEmpty()) { bd.getBusinessDatabase().doBatchInsert(list); } } - private void cancelProcess(ApprovalFlow flow, String status, String userId) { + private void cancelProcess(ApprovalFlow flow, String status) { flow.setFlowStatus(status); bd.getBusinessDatabase() .rowid("id", flow.getRowId()) @@ -427,12 +434,19 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService .update("status", report.getStatus()) .doUpdate(BenchmarkingReport.class); + updateTasks(flow, "已拒绝"); + } + + private void updateTasks(ApprovalFlow flow, String status) { + // 更新已办和发起的节点状态 + bd.getBusinessDatabase() + .eq("document_no", flow.getId()) + .update("current_node", status) + .doUpdate(CompletedTaskPojo.class); bd.getBusinessDatabase() .eq("document_no", flow.getId()) .update("current_node", "已拒绝") - .doUpdate(TodoTaskPojo.class); - // 清除所有待办 - clearAllTodo(flow, userId); + .doUpdate(InitiatedTaskPojo.class); } @Override diff --git a/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java index 323089a..0a311de 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java @@ -137,6 +137,17 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { } bd.getBusinessDatabase().doBatchInsert(list); + // 新增我创建的 + InitiatedTaskPojo initiatedTask = new InitiatedTaskPojo(); + initiatedTask.setDocumentNo(flow.getId()); + initiatedTask.setCreatedById(request.getUserId()); + initiatedTask.setCurrentNode(firstNode.getNodeName()); + initiatedTask.setCurrentProcessor(JSON.toJSONString(firstNode.getAssignees())); + initiatedTask.setDataType("模板审核"); + initiatedTask.setProcessTitle(request.getProcessTitle()); + initiatedTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + bd.getBusinessDatabase().doInsert(initiatedTask); + // 更新模板状态为校对中 template.setStatus("APPROVING"); bd.getBusinessDatabase() @@ -210,11 +221,11 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { throw new CommonException("当前节点正在处理,请稍后重试"); } try { + // 查询已完成的任务,检查当前节点是否完成 int processedCount = bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("is_delete", 1) - .eq("current_node", currentNode.getNodeName()) - .doQuery(TodoTaskPojo.class).size(); + .eq("flow_id", flow.getId()) + .eq("node", currentNode.getNodeName()) + .doQuery(ApprovalRecord.class).size(); if (processedCount > 0) { throw new CommonException("此节点已被他人处理"); } @@ -235,8 +246,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { .toJavaList(String.class).contains(userId); } - @Transactional(rollbackFor = Exception.class) - public void processApprovalLogic(ApprovalFlow flow, HandleApprovalRequest request, ApprovalConfigPojo currentNode) { + private void processApprovalLogic(ApprovalFlow flow, HandleApprovalRequest request, ApprovalConfigPojo currentNode) { // 记录审批结果 ApprovalRecord record = new ApprovalRecord(); record.setFlowId(flow.getId()); @@ -247,39 +257,42 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { record.setApprovalTime(Timestamp.valueOf(LocalDateTime.now())); bd.getBusinessDatabase().doInsert(record); - // 完成当前节点的已处理待办 - if (!"会签".equals(currentNode.getNodeName())) { - bd.getBusinessDatabase() + // 当前流程当前节点的所有待办全部删除 + bd.getBusinessDatabase() .eq("document_no", flow.getId()) - .ne("owner_id", request.getUserId()) - .eq("current_node", currentNode.getNodeName()) - .update("is_delete", 2) + .eq("current_node", currentNode.getNodeName()) + .update("is_delete", 1) .update("last_update_date", Timestamp.valueOf(LocalDateTime.now())) .doUpdate(TodoTaskPojo.class); - } - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("owner_id", request.getUserId()) - .eq("current_node", currentNode.getNodeName()) - .update("last_update_date", Timestamp.valueOf(LocalDateTime.now())) - .update("is_delete", 1) - .doUpdate(TodoTaskPojo.class); + + // 更新当前用户的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + completedTaskPojo.setDocumentNo(flow.getId()); + completedTaskPojo.setCreatedById(request.getUserId()); + completedTaskPojo.setCurrentNode(currentNode.getNodeName()); + completedTaskPojo.setCurrentProcessor(JSON.toJSONString(currentNode.getAssignees())); + completedTaskPojo.setDataType("模板审核"); + completedTaskPojo.setOwnerId(request.getUserId()); + completedTaskPojo.setProcessTitle(flow.getProcessTitle()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + bd.getBusinessDatabase().doInsert(completedTaskPojo); + // 处理驳回逻辑 if ("REJECT".equals(request.getResult())) { // 审批人退回 - cancelProcess(flow, "REJECTED", request.getUserId()); + cancelProcess(flow, "REJECTED"); return; } else if ("RETURN".equals(request.getResult())) { // 申请人撤回 - cancelProcess(flow, "RETURNED", request.getUserId()); + cancelProcess(flow, "RETURNED"); return; } // 处理通过逻辑,流转到下一节点 processNextNode(flow, currentNode, request.getUserId()); } - private void cancelProcess(ApprovalFlow flow, String status, String userId) { + private void cancelProcess(ApprovalFlow flow, String status) { // 更新流程状态 flow.setFlowStatus(status); bd.getBusinessDatabase() @@ -297,33 +310,17 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { .update("return_num", template.getReturnNum() + 1) .doUpdate(Template.class); - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .update("current_node", "已拒绝") - .doUpdate(TodoTaskPojo.class); - // 清除所有待办 - clearAllTodo(flow); - } - - private void clearAllTodo(ApprovalFlow flow) { - // 清除已有待办 - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("is_delete", 0) - .update("is_delete", 2) - .update("last_update_date", Timestamp.valueOf(LocalDateTime.now())) - .doUpdate(TodoTaskPojo.class); + updateTasks(flow, "已拒绝"); } // 处理下一节点流转 - @Transactional(rollbackFor = Exception.class) - public void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) { + private void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) { // 检查当前节点是否满足流转条件 if (!checkNodeComplete(flow, currentNode)) { return; } - // 更新模板状态 + // 查询模板状态 Template template = bd.getBusinessDatabase() .eq("id", flow.getTemplateId()) .doQueryFirst(Template.class); @@ -350,10 +347,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { .update("published_time", Timestamp.valueOf(LocalDateTime.now())) .doUpdate(Template.class); // 待办环节修改 - bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .update("current_node", "已完成") - .doUpdate(TodoTaskPojo.class); + updateTasks(flow, "已完成"); // 更新机型版本 // dataEntryEngineModelService.updateModelForNewVersion(); } else { @@ -371,10 +365,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { // 检查节点是否完成 private boolean checkNodeComplete(ApprovalFlow flow, ApprovalConfigPojo node) { Integer processedCount = bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("is_delete", 1) - .eq("current_node", node.getNodeName()) - .doQuery(TodoTaskPojo.class).size(); + .eq("flow_id", flow.getId()) + .eq("node", node.getNodeName()) + .doQuery(ApprovalRecord.class).size(); if ("会签".equals(node.getNodeName())) { return processedCount.equals(JSON.parseArray(node.getAssignees()).size()); } else { @@ -388,37 +381,44 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { // 新增待办 List list = new ArrayList<>(); for (String person : users) { - TodoTaskPojo todoTaskPojo = bd.getBusinessDatabase() - .eq("document_no", flow.getId()) - .eq("owner_id", person).doQueryFirst(TodoTaskPojo.class); - if (todoTaskPojo != null) { - todoTaskPojo.setCurrentNode(node.getNodeName()); - todoTaskPojo.setCurrentProcessor(node.getAssignees()); - bd.getBusinessDatabase().doUpdate(todoTaskPojo); - } else { - TodoTaskPojo todoTask = new TodoTaskPojo(); - todoTask.setCreatedById(createBy); - todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername()); - todoTask.setCurrentNode(node.getNodeName()); - todoTask.setDataType("模板审核"); - todoTask.setDocumentNo(flow.getId()); - todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); - todoTask.setIsDelete(0); - todoTask.setModelId(template.getId()); - todoTask.setModelName(template.getTemplateName()); - todoTask.setProcessTitle(flow.getProcessTitle()); - todoTask.setStatusCode(flow.getFlowStatus()); - todoTask.setVersionNumber(template.getVersion()); - todoTask.setOwnerId(person); - todoTask.setCurrentProcessor(node.getAssignees()); - list.add(todoTask); - } + TodoTaskPojo todoTask = new TodoTaskPojo(); + todoTask.setCreatedById(createBy); + todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername()); + todoTask.setCurrentNode(node.getNodeName()); + todoTask.setDataType("模板审核"); + todoTask.setDocumentNo(flow.getId()); + todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + todoTask.setIsDelete(0); + todoTask.setModelId(template.getId()); + todoTask.setModelName(template.getTemplateName()); + todoTask.setProcessTitle(flow.getProcessTitle()); + todoTask.setStatusCode(flow.getFlowStatus()); + todoTask.setVersionNumber(template.getVersion()); + todoTask.setOwnerId(person); + todoTask.setCurrentProcessor(node.getAssignees()); + list.add(todoTask); } + + // 更新已办和发起的状态 + updateTasks(flow, node.getNodeName()); + if (!list.isEmpty()) { bd.getBusinessDatabase().doBatchInsert(list); } } + private void updateTasks(ApprovalFlow flow, String status) { + // 更新已办和发起的节点状态 + bd.getBusinessDatabase() + .eq("document_no", flow.getId()) + .update("current_node", status) + .doUpdate(CompletedTaskPojo.class); + bd.getBusinessDatabase() + .eq("document_no", flow.getId()) + .update("current_node", "已拒绝") + .doUpdate(InitiatedTaskPojo.class); + } + @Override public PageQueryResult getTemplateChanges(ApprovalAndParameterForm form) { Template template = bd.getBusinessDatabase() @@ -577,7 +577,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { bd.getBusinessDatabase().doInsert(record); // 申请人撤回 - cancelProcess(flow, "RETURNED", request.getUserId()); + cancelProcess(flow, "RETURNED"); } else { throw new CommonException("无法撤回"); } diff --git a/src/main/resources/sql.sql b/src/main/resources/sql.sql index 53ea044..aa93a2b 100644 --- a/src/main/resources/sql.sql +++ b/src/main/resources/sql.sql @@ -1,45 +1,51 @@ ---发起事项表 -CREATE TABLE `initiated_task` ( - `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'ID', - `document_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '单据编号', - `process_title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '流程主题', - `current_node` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前环节', - `current_processor` text COLLATE utf8mb4_bin COMMENT '当前处理人', - `status_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '状态代号', - `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品机型ID', - `model_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品型号名称', - `data_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据类型', - `version_number` int DEFAULT NULL COMMENT '版本', - `is_delete` int DEFAULT NULL COMMENT '删除标记0未删除,1 已删除', - `created_by_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人ID', - `created_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', - `creation_date` datetime DEFAULT NULL COMMENT '创建时间', - `last_updated_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最后更新人', - `last_update_date` datetime DEFAULT NULL COMMENT '最后更新时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='发起事项表'; +-- 发起事项表 +CREATE TABLE `initiated_task` +( + `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'ID', + `document_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '单据编号', + `process_title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '流程主题', + `current_node` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前环节', + `current_processor` text COLLATE utf8mb4_bin COMMENT '当前处理人', + `status_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '状态代号', + `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品机型ID', + `model_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品型号名称', + `data_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据类型', + `version_number` int DEFAULT NULL COMMENT '版本', + `is_delete` int DEFAULT NULL COMMENT '删除标记0未删除,1 已删除', + `created_by_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人ID', + `created_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `creation_date` datetime DEFAULT NULL COMMENT '创建时间', + `last_updated_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最后更新人', + `last_update_date` datetime DEFAULT NULL COMMENT '最后更新时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_bin COMMENT ='发起事项表'; ---已完成事项表 -CREATE TABLE `completed_task` ( - `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'ID', - `document_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '单据编号', - `process_title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '流程主题', - `current_node` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前环节', - `current_processor` text COLLATE utf8mb4_bin COMMENT '当前处理人', - `status_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '状态代号', - `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品机型ID', - `model_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品型号名称', - `data_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据类型(如玉柴)', - `version_number` int DEFAULT NULL COMMENT '版本', - `owner_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '所属人', - `is_delete` int DEFAULT NULL COMMENT '删除标记0未删除,1 已删除', - `created_by_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人ID', - `created_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', - `creation_date` datetime DEFAULT NULL COMMENT '创建时间', - `last_updated_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最后更新人', - `last_update_date` datetime DEFAULT NULL COMMENT '最后更新时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='已完成事项表'; +-- 已完成事项表 +CREATE TABLE `completed_task` +( + `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'ID', + `document_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '单据编号', + `process_title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '流程主题', + `current_node` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前环节', + `current_processor` text COLLATE utf8mb4_bin COMMENT '当前处理人', + `status_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '状态代号', + `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品机型ID', + `model_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品型号名称', + `data_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据类型(如玉柴)', + `version_number` int DEFAULT NULL COMMENT '版本', + `owner_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '所属人', + `is_delete` int DEFAULT NULL COMMENT '删除标记0未删除,1 已删除', + `created_by_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人ID', + `created_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `creation_date` datetime DEFAULT NULL COMMENT '创建时间', + `last_updated_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最后更新人', + `last_update_date` datetime DEFAULT NULL COMMENT '最后更新时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_bin COMMENT ='已完成事项表'; DROP TABLE IF EXISTS `yfsjglpt_model_approval_flow`;