Merge remote-tracking branch 'origin/master'

This commit is contained in:
ys.git 2025-12-25 15:57:08 +08:00
commit b2d4ea9f8d
6 changed files with 266 additions and 235 deletions

View File

@ -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

View File

@ -100,6 +100,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
}
bd.getBusinessDatabase().doBatchInsert(approvalConfigs);
// 新增待办
List<TodoTaskPojo> 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<TodoTaskPojo> 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

View File

@ -198,12 +198,13 @@ public class CommonParameterServiceImpl implements CommonParameterService {
private List<ModelCommon> convertToModelCommonList(
List<ModelCommonParameters> paramsList, List<CommonParameter> commonParameters
) {
if (paramsList == null || paramsList.isEmpty()) {
return new ArrayList<>();
Map<String, List<ModelCommonParameters>> groupedByCommonId = new HashMap<>();
if (paramsList != null && !paramsList.isEmpty()) {
groupedByCommonId = paramsList.stream()
.filter(param -> param.getCommonId() != null) // 过滤掉 commonId null 的参数
.collect(Collectors.groupingBy(ModelCommonParameters::getCommonId));
}
Map<String, List<ModelCommonParameters>> groupedByCommonId = paramsList.stream()
.filter(param -> param.getCommonId() != null) // 过滤掉 commonId null 的参数
.collect(Collectors.groupingBy(ModelCommonParameters::getCommonId));
List<ModelCommon> result = new ArrayList<>();
for (CommonParameter commonParameter : commonParameters) {
String commonId = commonParameter.getId();
@ -211,35 +212,37 @@ public class CommonParameterServiceImpl implements CommonParameterService {
continue;
}
List<ModelCommonParameters> commonParams = groupedByCommonId.get(commonId);
if (commonParams == null || commonParams.isEmpty()) {
continue;
}
ModelCommon modelCommon = new ModelCommon();
modelCommon.setCommonName(commonParameter.getCommonName());
modelCommon.setCommonId(commonId);
Map<String, List<ModelCommonParameters>> 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<String, List<ModelCommonParameters>> groupedBySubsystem = commonParams.stream()
.filter(param -> param.getSubsystemName() != null) // 过滤掉 subsystemName null 的参数
.collect(Collectors.groupingBy(ModelCommonParameters::getSubsystemName));
List<ModelCommonItem> items = new ArrayList<>();
for (Map.Entry<String, List<ModelCommonParameters>> subsystemEntry : groupedBySubsystem.entrySet()) {
ModelCommonItem item = new ModelCommonItem();
item.setSubsystem(subsystemEntry.getKey());
List<ParametersView> 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<ModelCommonItem> items = new ArrayList<>();
for (Map.Entry<String, List<ModelCommonParameters>> subsystemEntry : groupedBySubsystem.entrySet()) {
ModelCommonItem item = new ModelCommonItem();
item.setSubsystem(subsystemEntry.getKey());
List<ParametersView> 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;

View File

@ -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<TodoTaskPojo> 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<TemplateChangeView> 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("无法撤回");
}

View File

@ -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<Long> 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<String> originalTemplateId = bd.getBusinessDatabase()
.eq("order_num", template.getOrderNum())
.doQuery(Template.class).stream().map(Template::getId)
.collect(Collectors.toList());
List<String> 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<Long> 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<String> originalTemplateId = bd.getBusinessDatabase()
// .eq("order_num", template.getOrderNum())
// .doQuery(Template.class).stream().map(Template::getId)
// .collect(Collectors.toList());
// List<String> 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("不可修改为已有模板");
}

View File

@ -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