diff --git a/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java b/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java index e11e4c2..955fa42 100644 --- a/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java +++ b/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java @@ -11,7 +11,7 @@ import java.sql.Timestamp; @SQLQuery(value = { @SQL(view = "getReportById", - sql = "SELECT ymbr.series, ymbr.id, ymbr.title, ymbr.manufacturer_name, ymbr.model_name, ymbr.module , ymbr.manufacturer_abbreviation, ymbr.model_abbreviation, ymbr.product_number, ymbr.plate, ymbr.platform , ymbr.market_segment, ymbr.project_name, ymbr.project_number, ymbr.upload_time, ymbr.file_path , ymbr.status, xu.username AS create_by FROM yfsjglpt_model_benchmarking_report ymbr LEFT JOIN xdap_users xu ON xu.id = ymbr.create_by where ymbr.id = #reportId") + sql = "SELECT ymbr.series, ymbr.id, ymbr.title, ymbr.manufacturer_name, ymbr.model_name, ymbr.module , ymbr.manufacturer_abbreviation, ymbr.model_abbreviation, ymbr.product_number, ymbr.plate, ymbr.platform , ymbr.market_segment, ymbr.project_name, ymbr.project_number, ymbr.upload_time, ymbr.file_path , ymbr.status, ymbr.file_name, xu.username AS create_by FROM yfsjglpt_model_benchmarking_report ymbr LEFT JOIN xdap_users xu ON xu.id = ymbr.create_by where ymbr.id = #reportId") }) @EqualsAndHashCode(callSuper = true) @Data 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/CommonParameterServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/CommonParameterServiceImpl.java index 47c7c92..f17e17b 100644 --- a/src/main/java/com/xdap/self_development/service/impl/CommonParameterServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/CommonParameterServiceImpl.java @@ -198,12 +198,13 @@ public class CommonParameterServiceImpl implements CommonParameterService { private List convertToModelCommonList( List paramsList, List commonParameters ) { - if (paramsList == null || paramsList.isEmpty()) { - return new ArrayList<>(); + Map> groupedByCommonId = new HashMap<>(); + if (paramsList != null && !paramsList.isEmpty()) { + groupedByCommonId = paramsList.stream() + .filter(param -> param.getCommonId() != null) // 过滤掉 commonId 为 null 的参数 + .collect(Collectors.groupingBy(ModelCommonParameters::getCommonId)); } - Map> groupedByCommonId = paramsList.stream() - .filter(param -> param.getCommonId() != null) // 过滤掉 commonId 为 null 的参数 - .collect(Collectors.groupingBy(ModelCommonParameters::getCommonId)); + List result = new ArrayList<>(); for (CommonParameter commonParameter : commonParameters) { String commonId = commonParameter.getId(); @@ -211,35 +212,37 @@ public class CommonParameterServiceImpl implements CommonParameterService { continue; } List commonParams = groupedByCommonId.get(commonId); - if (commonParams == null || commonParams.isEmpty()) { - continue; - } + ModelCommon modelCommon = new ModelCommon(); modelCommon.setCommonName(commonParameter.getCommonName()); modelCommon.setCommonId(commonId); - Map> groupedBySubsystem = commonParams.stream() - .filter(param -> param.getSubsystemName() != null) // 过滤掉 subsystemName 为 null 的参数 - .collect(Collectors.groupingBy(ModelCommonParameters::getSubsystemName)); - if (groupedBySubsystem.isEmpty()) { - continue; + + if (commonParams == null || commonParams.isEmpty()) { + // 即使没有参数,也返回一个空的子系统列表 + modelCommon.setSubsystems(new ArrayList<>()); + } else { + Map> groupedBySubsystem = commonParams.stream() + .filter(param -> param.getSubsystemName() != null) // 过滤掉 subsystemName 为 null 的参数 + .collect(Collectors.groupingBy(ModelCommonParameters::getSubsystemName)); + + List items = new ArrayList<>(); + for (Map.Entry> subsystemEntry : groupedBySubsystem.entrySet()) { + ModelCommonItem item = new ModelCommonItem(); + item.setSubsystem(subsystemEntry.getKey()); + List parameters = subsystemEntry.getValue().stream() + .map(param -> new ParametersView( + param.getParameterId(), + param.getParameterName(), + param.getParameterType(), + param.getSubsystemName(), + param.getPartsName() + )) + .collect(Collectors.toList()); + item.setParameters(parameters); + items.add(item); + } + modelCommon.setSubsystems(items); } - List items = new ArrayList<>(); - for (Map.Entry> subsystemEntry : groupedBySubsystem.entrySet()) { - ModelCommonItem item = new ModelCommonItem(); - item.setSubsystem(subsystemEntry.getKey()); - List parameters = subsystemEntry.getValue().stream() - .map(param -> new ParametersView( - param.getParameterId(), - param.getParameterName(), - param.getParameterType(), - param.getSubsystemName(), - param.getPartsName() - )) - .collect(Collectors.toList()); - item.setParameters(parameters); - items.add(item); - } - modelCommon.setSubsystems(items); result.add(modelCommon); } return result; 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/java/com/xdap/self_development/service/impl/TemplateServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TemplateServiceImpl.java index c263006..4a4c707 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TemplateServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TemplateServiceImpl.java @@ -83,45 +83,45 @@ public class TemplateServiceImpl implements TemplateService { .doQueryFirst(Template.class); if (template != null) { - if (Objects.equals(form.getTemplateName(), template.getTemplateName()) && form.getOrderNum() != null) { - List sorted = bd.getBusinessDatabase() - .groupBy("order_num") - .orderBy("order_num", "desc") - .doQuery(Template.class) - .stream().map(Template::getOrderNum) - .collect(Collectors.toList()); - - Long num = sorted.get(form.getOrderNum() - 1); - if (num == null) { - num = sorted.get(sorted.size() - 1); - } - - List originalTemplateId = bd.getBusinessDatabase() - .eq("order_num", template.getOrderNum()) - .doQuery(Template.class).stream().map(Template::getId) - .collect(Collectors.toList()); - List updateTemplateId = bd.getBusinessDatabase() - .eq("order_num", num) - .doQuery(Template.class).stream().map(Template::getId) - .collect(Collectors.toList()); - - if (updateTemplateId.isEmpty()) { - bd.getBusinessDatabase() - .in("id", originalTemplateId) - .update("order_num", System.currentTimeMillis()) - .doUpdate(Template.class); - } else { - bd.getBusinessDatabase() - .in("id", updateTemplateId) - .update("order_num", template.getOrderNum()) - .doUpdate(Template.class); - bd.getBusinessDatabase() - .in("id", originalTemplateId) - .update("order_num", num) - .doUpdate(Template.class); - } - return; - } +// if (Objects.equals(form.getTemplateName(), template.getTemplateName()) && form.getOrderNum() != null) { +// List sorted = bd.getBusinessDatabase() +// .groupBy("order_num") +// .orderBy("order_num", "desc") +// .doQuery(Template.class) +// .stream().map(Template::getOrderNum) +// .collect(Collectors.toList()); +// +// Long num = sorted.get(form.getOrderNum() - 1); +// if (num == null) { +// num = sorted.get(sorted.size() - 1); +// } +// +// List originalTemplateId = bd.getBusinessDatabase() +// .eq("order_num", template.getOrderNum()) +// .doQuery(Template.class).stream().map(Template::getId) +// .collect(Collectors.toList()); +// List updateTemplateId = bd.getBusinessDatabase() +// .eq("order_num", num) +// .doQuery(Template.class).stream().map(Template::getId) +// .collect(Collectors.toList()); +// +// if (updateTemplateId.isEmpty()) { +// bd.getBusinessDatabase() +// .in("id", originalTemplateId) +// .update("order_num", System.currentTimeMillis()) +// .doUpdate(Template.class); +// } else { +// bd.getBusinessDatabase() +// .in("id", updateTemplateId) +// .update("order_num", template.getOrderNum()) +// .doUpdate(Template.class); +// bd.getBusinessDatabase() +// .in("id", originalTemplateId) +// .update("order_num", num) +// .doUpdate(Template.class); +// } +// return; +// } throw new CommonException("不可修改为已有模板"); } diff --git a/src/main/resources/sql.sql b/src/main/resources/sql.sql index 53ea044..45cbafb 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`; @@ -379,6 +385,14 @@ FROM yfsjglpt_model_approval_record; DELETE FROM yfsjglpt_model_responsible_person; +DELETE +FROM yfsjglpt_model_common_parameters; + +DELETE +FROM yfsjglpt_common_parameter; +DELETE +FROM yfsjglpt_analysis_common_parameters; + delete