From 58cfdb9ea4b0bdf56cbda9ca2cc0eb8b23c18589 Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Thu, 11 Dec 2025 19:50:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A\?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeleteController.java | 4 ++- .../controller/form/UpdateTemplateForm.java | 4 +++ .../listener/SheetDataListener.java | 24 +++++++++++++++ .../xdap/self_development/pojo/Parameter.java | 4 +-- .../xdap/self_development/pojo/Template.java | 2 +- .../service/impl/TemplateServiceImpl.java | 30 ++++++++++++++++++- 6 files changed, 63 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xdap/self_development/controller/DeleteController.java b/src/main/java/com/xdap/self_development/controller/DeleteController.java index 890532c..c14472e 100644 --- a/src/main/java/com/xdap/self_development/controller/DeleteController.java +++ b/src/main/java/com/xdap/self_development/controller/DeleteController.java @@ -32,10 +32,12 @@ public class DeleteController { @GetMapping("/getTables") - public Response getTables() { + public Response getTables(String ztj, String z_wlms) { Map map = new HashMap<>(); List> list = queryFactory .buildFromDatasource("yc_lrs_test_relsult") + .eq("ztj", ztj) + .eq("z_wlms", z_wlms) .table("ads_prd_f_yfsjglpt_fdjlbjcjb") .doQuery(); List> list1 = queryFactory diff --git a/src/main/java/com/xdap/self_development/controller/form/UpdateTemplateForm.java b/src/main/java/com/xdap/self_development/controller/form/UpdateTemplateForm.java index 4205739..f10ddf1 100644 --- a/src/main/java/com/xdap/self_development/controller/form/UpdateTemplateForm.java +++ b/src/main/java/com/xdap/self_development/controller/form/UpdateTemplateForm.java @@ -3,9 +3,13 @@ package com.xdap.self_development.controller.form; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; @Data public class UpdateTemplateForm { + @NotNull(message = "顺序不能为空") + private Integer orderNum; + @NotBlank(message = "模板名不能为空") private String templateName; diff --git a/src/main/java/com/xdap/self_development/listener/SheetDataListener.java b/src/main/java/com/xdap/self_development/listener/SheetDataListener.java index f8c9d31..ea5fa3f 100644 --- a/src/main/java/com/xdap/self_development/listener/SheetDataListener.java +++ b/src/main/java/com/xdap/self_development/listener/SheetDataListener.java @@ -33,6 +33,7 @@ public class SheetDataListener implements ReadListener { private final Set requiredHeaders; // 标记当前sheet是否有效 private boolean validSheet = false; + private Set someNumber = new HashSet<>(); public SheetDataListener(TemplateService templateService, String templateRowId, String createBy, MyResponse problems, Integer maxOrder) { @@ -53,6 +54,7 @@ public class SheetDataListener implements ReadListener { .filter(Objects::nonNull) .collect(Collectors.toSet()); currentSheetName = context.readSheetHolder().getSheetName(); + someNumber = new HashSet<>(); log.info("开始解析Sheet: {}", currentSheetName); } @@ -69,6 +71,28 @@ public class SheetDataListener implements ReadListener { return; } + if (data.getSubsystemName() == null) { + problems.setFlag(true); + problems.getErrors().add(currentSheetName +"模板的参数"+data.getParameterName()+"的子系统字段为空"); + return; + } + + if (data.getPartsName() == null || data.getPartsName().isEmpty()) { + data.setPartsName("/"); + } + + if (data.getParameterNumber() == null) { + problems.setFlag(true); + problems.getErrors().add(currentSheetName +"模板的参数"+data.getParameterName()+"的序号字段为空"); + return; + } + + if (!someNumber.add(data.getParameterNumber())) { + problems.setFlag(true); + problems.getErrors().add(currentSheetName +"模板的参数"+data.getParameterName()+"的序号字段重复"); + return; + } + if (currentSheetName == null) { currentSheetName = context.readSheetHolder().getSheetName(); } diff --git a/src/main/java/com/xdap/self_development/pojo/Parameter.java b/src/main/java/com/xdap/self_development/pojo/Parameter.java index b851bbb..4e45437 100644 --- a/src/main/java/com/xdap/self_development/pojo/Parameter.java +++ b/src/main/java/com/xdap/self_development/pojo/Parameter.java @@ -10,9 +10,9 @@ import lombok.NoArgsConstructor; @SQLQuery(value = { @SQL(view = "selectParametersByTIdAndCreateBy", - sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId and p.created_by = #createdBy"), + sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId and p.created_by = #createdBy order by p.parameter_number"), @SQL(view = "selectParametersByTId", - sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId"), + sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId order by p.parameter_number"), @SQL(view = "getAllSubsystemAndPara", sql = "SELECT DISTINCT mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type, mt.order_num FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mt.order_num"), @SQL(view = "getAllSubsystem", diff --git a/src/main/java/com/xdap/self_development/pojo/Template.java b/src/main/java/com/xdap/self_development/pojo/Template.java index 12a2468..fa18719 100644 --- a/src/main/java/com/xdap/self_development/pojo/Template.java +++ b/src/main/java/com/xdap/self_development/pojo/Template.java @@ -14,7 +14,7 @@ import java.sql.Timestamp; sql = "SELECT * FROM ( SELECT *, MAX(order_num) OVER (PARTITION BY template_name ) AS maxOrder , ROW_NUMBER() OVER (PARTITION BY template_name ORDER BY order_num DESC) AS rn FROM yfsjglpt_model_template ) tmp WHERE rn = 1"), // 查找每个模板的最新版本并且优先级按照已发布、审核中、草稿状态转变(只有这三种状态) @SQL(view = "getLatestTemplate", - sql = "SELECT ranked.id, ranked.template_name, ranked.version, ranked.status, ranked.created_time , ranked.published_time, xu.username AS 'createBy' FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY template_name ORDER BY CASE WHEN status = 'COMPLETE' THEN 1 WHEN status = 'APPROVING' THEN 2 ELSE 3 END, version DESC) AS rn FROM yfsjglpt_model_template t WHERE status IN ('COMPLETE', 'DRAFT', 'APPROVING') ) ranked LEFT JOIN xdap_users xu ON xu.id = ranked.create_by WHERE rn = 1 ORDER BY CASE status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'RETURNED' THEN 4 WHEN 'REJECTED' THEN 5 ELSE 6 END ASC" + sql = "SELECT ranked.order_num, ranked.id, ranked.template_name, ranked.version, ranked.status, ranked.created_time , ranked.published_time, xu.username AS 'createBy' FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY template_name ORDER BY CASE WHEN status = 'COMPLETE' THEN 1 WHEN status = 'APPROVING' THEN 2 ELSE 3 END, version DESC) AS rn FROM yfsjglpt_model_template t WHERE status IN ('COMPLETE', 'DRAFT', 'APPROVING') ) ranked LEFT JOIN xdap_users xu ON xu.id = ranked.create_by WHERE rn = 1 ORDER BY CASE status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'RETURNED' THEN 4 WHEN 'REJECTED' THEN 5 ELSE 6 END ASC" ), // 获取所有模板的最新版本号(包括所有状态) @SQL(view = "getNewTemplate", 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 c41ec20..7aae11b 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 @@ -64,13 +64,14 @@ public class TemplateServiceImpl implements TemplateService { // 创建新模板 Template newTemplate = new Template( form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), - null, permissionGetter.getCurrentUserId(), 1 + null, permissionGetter.getCurrentUserId(), getMaxOrder() ); bd.getBusinessDatabase().doInsert(newTemplate); } @Override + @Transactional(rollbackFor = CommonException.class) public void updateTemplate(UpdateTemplateForm form) { Template template = bd.getBusinessDatabase() .viewQueryMode(true) @@ -79,6 +80,33 @@ public class TemplateServiceImpl implements TemplateService { .doQueryFirst(Template.class); if (template != null) { + if (Objects.equals(form.getTemplateName(), template.getTemplateName())) { + 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", form.getOrderNum()) + .doQuery(Template.class).stream().map(Template::getId) + .collect(Collectors.toList()); + + if (updateTemplateId.isEmpty()) { + bd.getBusinessDatabase() + .in("id", updateTemplateId) + .update("order_num", getMaxOrder()) + .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", form.getOrderNum()) + .doUpdate(Template.class); + } + return; + } throw new CommonException("不可修改为已有模板"); } From dd0fa6017b9be70f059525837a68977caf9bf913 Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Fri, 12 Dec 2025 11:31:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=8E=86=E5=8F=B2=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xdap/self_development/pojo/Parameter.java | 2 +- .../pojo/view/ParametersView.java | 3 ++ .../impl/CommonParameterServiceImpl.java | 15 ++++++- .../service/impl/ParameterServiceImpl.java | 40 +++++++++---------- .../impl/TemplateApprovalServiceImpl.java | 6 ++- .../service/impl/TemplateServiceImpl.java | 1 + 6 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/xdap/self_development/pojo/Parameter.java b/src/main/java/com/xdap/self_development/pojo/Parameter.java index 4e45437..f848cc5 100644 --- a/src/main/java/com/xdap/self_development/pojo/Parameter.java +++ b/src/main/java/com/xdap/self_development/pojo/Parameter.java @@ -14,7 +14,7 @@ import lombok.NoArgsConstructor; @SQL(view = "selectParametersByTId", sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId order by p.parameter_number"), @SQL(view = "getAllSubsystemAndPara", - sql = "SELECT DISTINCT mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type, mt.order_num FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mt.order_num"), + sql = "SELECT DISTINCT mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type, mp.parts_name, mt.order_num FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mt.order_num"), @SQL(view = "getAllSubsystem", sql = "SELECT DISTINCT mp.subsystem_name FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mp.subsystem_name"), @SQL(view = "selectParametersByTemplateId", diff --git a/src/main/java/com/xdap/self_development/pojo/view/ParametersView.java b/src/main/java/com/xdap/self_development/pojo/view/ParametersView.java index f8c2ba1..73e7e60 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/ParametersView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/ParametersView.java @@ -17,4 +17,7 @@ public class ParametersView { private String parameterId; private String parameterName; private String parameterType; + + private String subsystem; + private String partsName; } 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 af768a5..bdc321d 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 @@ -169,7 +169,13 @@ public class CommonParameterServiceImpl implements CommonParameterService { ModelCommonItem item = new ModelCommonItem(); item.setSubsystem(entry.getKey()); List parameters = entry.getValue().stream() - .map(param -> new ParametersView(param.getId(), param.getParameterName(), param.getParameterType())) + .map(param -> new ParametersView( + param.getId(), + param.getParameterName(), + param.getParameterType(), + param.getSubsystemName(), + param.getPartsName() + )) .collect(Collectors.toList()); item.setParameters(parameters); return item; @@ -203,7 +209,12 @@ public class CommonParameterServiceImpl implements CommonParameterService { ModelCommonItem item = new ModelCommonItem(); item.setSubsystem(subsystemEntry.getKey()); List parameters = subsystemEntry.getValue().stream() - .map(param -> new ParametersView(param.getParameterId(), param.getParameterName(), param.getSubsystemName())) + .map(param -> new ParametersView( + param.getParameterId(), + param.getParameterName(), + param.getSubsystemName(), + null,null + )) .collect(Collectors.toList()); item.setParameters(parameters); items.add(item); diff --git a/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java index aa0f68f..782db96 100644 --- a/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java @@ -92,30 +92,28 @@ public class ParameterServiceImpl implements ParameterService { // 获取基准模板和最新模板 TemplateBenchmark benchmark = getTemplateBenchmark(form.getTemplateRowId()); Template newVersionTemplate; - // 如果当前修改的模板为最新版并且为草稿状态,就不需要新建版本 - if (Objects.equals(benchmark.getLastTemplate().getId(), benchmark.getBaseTemplate().getId()) - && Objects.equals(benchmark.getBaseTemplate().getStatus(), "DRAFT") - && Objects.equals(benchmark.getLastTemplate().getStatus(), "DRAFT")) { + + // 当前修改的模板不为最新版 + if (!Objects.equals(benchmark.getLastTemplate().getId(), benchmark.getBaseTemplate().getId())) { + throw new CommonException("该状态的模板不可修改"); + } + + // 当前模板为草稿状态 + if (Objects.equals(benchmark.getBaseTemplate().getStatus(), "DRAFT")) { newVersionTemplate = benchmark.getBaseTemplate(); } - // 否则创建新版本 + // 当前模板为已发布状态 + else if (Objects.equals(benchmark.getBaseTemplate().getStatus(), "COMPLETE")) { + newVersionTemplate = new Template( + benchmark.getLastTemplate().getTemplateName(), calculateNextVersion(benchmark.getLastTemplate().getVersion()), + "DRAFT", Timestamp.valueOf(LocalDateTime.now()), null, permissionGetter.getCurrentUserId(),getMaxOrder() + ); + // 保存新模板 + bd.getBusinessDatabase().doInsert(newVersionTemplate); + } + // 其他状态 else { - switch (benchmark.getLastTemplate().getStatus()) { - // 如果最新版本为草稿状态,沿用该版本 - case "DRAFT": - throw new CommonException("最新模板为草稿状态,暂时无法新建版本"); - // 如果最新版本为审核中,则不允许新建版本 - case "APPROVING": - throw new CommonException("最新模板审核中,暂时无法新建版本"); - // 如果最新版本为已完成,创建新版本 - default: - newVersionTemplate = new Template( - benchmark.getLastTemplate().getTemplateName(), calculateNextVersion(benchmark.getLastTemplate().getVersion()), - "DRAFT", Timestamp.valueOf(LocalDateTime.now()), null, permissionGetter.getCurrentUserId(),getMaxOrder() - ); - // 保存新模板 - bd.getBusinessDatabase().doInsert(newVersionTemplate); - } + throw new CommonException("该状态的模板不可修改"); } // 4. 处理参数变更 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 2167451..fd143eb 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 @@ -338,15 +338,17 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { flow.setFlowStatus("COMPLETE"); flow.setCurrentNode(null); template.setStatus("COMPLETE"); + bd.getBusinessDatabase() + .eq("template_name", template.getTemplateName()) + .update("status", "HISTORY") + .doUpdate(Template.class); bd.getBusinessDatabase() .rowid("id", template.getRowId()) .update("status", template.getStatus()) .update("published_time", Timestamp.valueOf(LocalDateTime.now())) .doUpdate(Template.class); - // 更新机型版本 dataEntryEngineModelService.updateModelForNewVersion(); - clearProcessed(flow); } else { flow.setCurrentNode(nextNode); 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 7aae11b..991b118 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 @@ -275,6 +275,7 @@ public class TemplateServiceImpl implements TemplateService { problems.getErrors().add("模板‘"+templateName+"’已有参数,无法导入"); return; } + break; case "APPROVING": problems.setFlag(true); problems.getErrors().add("模板‘"+templateName+"‘的最新版本正在审核中,无法导入");