From d984933dd35c8ada96316a4535a5e20e2d6a9242 Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Mon, 8 Dec 2025 10:19:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=9C=BA=E5=9E=8B?= =?UTF-8?q?=E5=B8=B8=E7=94=A8=E5=8F=82=E6=95=B0=E5=A2=9E=E5=88=A0=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommonParameterController.java | 20 ++-- .../controller/PermissionController.java | 16 +++- ...monParameterForm.java => ModelCommon.java} | 4 +- .../controller/form/ModelCommonItem.java | 3 +- .../form/ModelCommonParameterInsertForm.java | 14 +++ .../pojo/ModelCommonParameters.java | 13 ++- .../pojo/view/ParametersView.java | 19 ++++ .../service/CommonParameterService.java | 10 +- .../service/ParameterService.java | 4 + .../impl/CommonParameterServiceImpl.java | 93 ++++++++++++++++++- .../service/impl/ParameterServiceImpl.java | 13 ++- src/main/resources/sql.sql | 1 + 12 files changed, 185 insertions(+), 25 deletions(-) rename src/main/java/com/xdap/self_development/controller/form/{ModelCommonParameterForm.java => ModelCommon.java} (69%) create mode 100644 src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterInsertForm.java create mode 100644 src/main/java/com/xdap/self_development/pojo/view/ParametersView.java diff --git a/src/main/java/com/xdap/self_development/controller/CommonParameterController.java b/src/main/java/com/xdap/self_development/controller/CommonParameterController.java index 50f0e32..2d05d08 100644 --- a/src/main/java/com/xdap/self_development/controller/CommonParameterController.java +++ b/src/main/java/com/xdap/self_development/controller/CommonParameterController.java @@ -1,8 +1,8 @@ package com.xdap.self_development.controller; import com.definesys.mpaas.common.http.Response; -import com.xdap.self_development.controller.form.ModelCommonItem; -import com.xdap.self_development.controller.form.ModelCommonParameterForm; +import com.xdap.self_development.controller.form.ModelCommon; +import com.xdap.self_development.controller.form.ModelCommonParameterInsertForm; import com.xdap.self_development.service.CommonParameterService; import org.springframework.web.bind.annotation.*; @@ -20,26 +20,26 @@ public class CommonParameterController { // 查询机型参数常用 @GetMapping("/getModelCommon") public Response getModelCommonParameter( - @NotBlank @RequestParam String modelCommonId + @NotBlank @RequestParam String userId ) { - List list = commonParameterService.getModelCommonParameter(modelCommonId); + List list = commonParameterService.getModelCommonParameter(userId); return Response.ok().data(list); } // 新增机型参数常用 @PostMapping("/insertModelCommon") public Response insertModelCommonParameter( - @Valid @RequestBody ModelCommonParameterForm form + @Valid @RequestBody ModelCommonParameterInsertForm form ) { - - return Response.ok(); + commonParameterService.insertModelCommonParameter(form); + return Response.ok().setMessage("新增成功"); } // 修改机型参数常用 @PostMapping("/updateModelCommon") public Response updateModelCommonParameter( - @Valid @RequestBody ModelCommonParameterForm form + @Valid @RequestBody ModelCommonParameterInsertForm form ) { - - return Response.ok(); + commonParameterService.updateModelCommonParameter(form); + return Response.ok().setMessage("修改成功"); } diff --git a/src/main/java/com/xdap/self_development/controller/PermissionController.java b/src/main/java/com/xdap/self_development/controller/PermissionController.java index cd61632..16ae804 100644 --- a/src/main/java/com/xdap/self_development/controller/PermissionController.java +++ b/src/main/java/com/xdap/self_development/controller/PermissionController.java @@ -6,12 +6,17 @@ import com.xdap.self_development.controller.request.ModelRolesRequest; import com.xdap.self_development.pojo.ModelRolesPojo; import com.xdap.self_development.pojo.dto.PageResultDTO; import com.xdap.self_development.pojo.view.MenuListView; +import com.xdap.self_development.pojo.view.ParametersView; import com.xdap.self_development.service.ModelMenuPermissionService; import com.xdap.self_development.service.ModelRoleService; +import com.xdap.self_development.service.ParameterService; +import com.xdap.self_development.service.TemplateService; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.validation.constraints.NotBlank; import java.util.ArrayList; import java.util.List; @@ -22,6 +27,9 @@ public class PermissionController { ModelRoleService modelRoleService; @Autowired ModelMenuPermissionService modelMenuPermissionService; + @Resource + private ParameterService parameterService; + //添加角色 @PostMapping("/addRoles") Response addRoles(ModelRolesRequest request){ @@ -61,6 +69,12 @@ public class PermissionController { //参数查询 - + @GetMapping("/getAllParameters") + public Response getAllParameters( + @NotBlank String subsystem + ) { + List list = parameterService.getAllParameters(subsystem); + return Response.ok().data(list); + } } diff --git a/src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterForm.java b/src/main/java/com/xdap/self_development/controller/form/ModelCommon.java similarity index 69% rename from src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterForm.java rename to src/main/java/com/xdap/self_development/controller/form/ModelCommon.java index ded3e89..817c0b4 100644 --- a/src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterForm.java +++ b/src/main/java/com/xdap/self_development/controller/form/ModelCommon.java @@ -5,7 +5,7 @@ import lombok.Data; import java.util.List; @Data -public class ModelCommonParameterForm { - private String userId; +public class ModelCommon { + private String commonName; private List subsystems; } diff --git a/src/main/java/com/xdap/self_development/controller/form/ModelCommonItem.java b/src/main/java/com/xdap/self_development/controller/form/ModelCommonItem.java index 09462f0..041ed8a 100644 --- a/src/main/java/com/xdap/self_development/controller/form/ModelCommonItem.java +++ b/src/main/java/com/xdap/self_development/controller/form/ModelCommonItem.java @@ -1,5 +1,6 @@ package com.xdap.self_development.controller.form; +import com.xdap.self_development.pojo.view.ParametersView; import lombok.Data; import java.util.List; @@ -7,5 +8,5 @@ import java.util.List; @Data public class ModelCommonItem { private String subsystem; - List parameterId; + List parameters; } diff --git a/src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterInsertForm.java b/src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterInsertForm.java new file mode 100644 index 0000000..426edbf --- /dev/null +++ b/src/main/java/com/xdap/self_development/controller/form/ModelCommonParameterInsertForm.java @@ -0,0 +1,14 @@ +package com.xdap.self_development.controller.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ModelCommonParameterInsertForm { + @NotBlank(message = "创建者不能为空") + private String userId; + @NotNull(message = "常用不能为空") + private ModelCommon common; +} diff --git a/src/main/java/com/xdap/self_development/pojo/ModelCommonParameters.java b/src/main/java/com/xdap/self_development/pojo/ModelCommonParameters.java index de72630..362b44d 100644 --- a/src/main/java/com/xdap/self_development/pojo/ModelCommonParameters.java +++ b/src/main/java/com/xdap/self_development/pojo/ModelCommonParameters.java @@ -1,12 +1,14 @@ package com.xdap.self_development.pojo; -import com.definesys.mpaas.query.annotation.RowID; -import com.definesys.mpaas.query.annotation.RowIDType; -import com.definesys.mpaas.query.annotation.Table; +import com.definesys.mpaas.query.annotation.*; import com.definesys.mpaas.query.model.MpaasBasePojo; import lombok.Data; import lombok.EqualsAndHashCode; +@SQLQuery(value = { + @SQL(view = "getCommonById", + sql = "SELECT ymcp.*, ymp.parameter_name as 'parameterName' FROM yfsjglpt_model_common_parameters ymcp LEFT JOIN yfsjglpt_model_parameter ymp ON ymcp.parameter_id = ymp.id WHERE ymcp.user_id = #userId") +}) @EqualsAndHashCode(callSuper = true) @Data @Table("yfsjglpt_model_common_parameters") @@ -16,4 +18,9 @@ public class ModelCommonParameters extends MpaasBasePojo { private String subsystem; private String parameterId; private String userId; + // 唯一性 + private String commonName; + + @Column(type = ColumnType.CALCULATE) + private String parameterName; } 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 new file mode 100644 index 0000000..7df14a9 --- /dev/null +++ b/src/main/java/com/xdap/self_development/pojo/view/ParametersView.java @@ -0,0 +1,19 @@ +package com.xdap.self_development.pojo.view; + +import com.definesys.mpaas.query.annotation.SQL; +import com.definesys.mpaas.query.annotation.SQLQuery; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@SQLQuery(value = { + @SQL(view = "getAllParameters", + sql = "SELECT DISTINCT mp.parameter_name as 'parameterName', mp.id as 'parameterId' 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.parameter_name where mp.subsystem_name = #subsystem") +}) +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ParametersView { + private String parameterId; + private String parameterName; +} diff --git a/src/main/java/com/xdap/self_development/service/CommonParameterService.java b/src/main/java/com/xdap/self_development/service/CommonParameterService.java index cbe6512..cf0006f 100644 --- a/src/main/java/com/xdap/self_development/service/CommonParameterService.java +++ b/src/main/java/com/xdap/self_development/service/CommonParameterService.java @@ -1,10 +1,16 @@ package com.xdap.self_development.service; -import com.xdap.self_development.controller.form.ModelCommonItem; +import com.xdap.self_development.controller.form.ModelCommon; +import com.xdap.self_development.controller.form.ModelCommonParameterInsertForm; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.util.List; public interface CommonParameterService { - List getModelCommonParameter(@NotBlank String modelCommonId); + List getModelCommonParameter(@NotBlank String userId); + + void insertModelCommonParameter(@Valid ModelCommonParameterInsertForm form); + + void updateModelCommonParameter(@Valid ModelCommonParameterInsertForm form); } diff --git a/src/main/java/com/xdap/self_development/service/ParameterService.java b/src/main/java/com/xdap/self_development/service/ParameterService.java index 790ecdf..cc1dbbe 100644 --- a/src/main/java/com/xdap/self_development/service/ParameterService.java +++ b/src/main/java/com/xdap/self_development/service/ParameterService.java @@ -4,11 +4,15 @@ import com.definesys.mpaas.query.db.PageQueryResult; import com.xdap.self_development.controller.form.ParameterPageForm; import com.xdap.self_development.controller.form.UpdateParameterForm; import com.xdap.self_development.pojo.Parameter; +import com.xdap.self_development.pojo.view.ParametersView; import com.xdap.self_development.pojo.view.TemplateInfoView; +import java.util.List; + public interface ParameterService { PageQueryResult getParameterByCondition(ParameterPageForm form); TemplateInfoView maintenanceParameters(UpdateParameterForm form); + List getAllParameters(String subsystem); } 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 439fdb3..bd48157 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 @@ -1,14 +1,21 @@ package com.xdap.self_development.service.impl; import com.xdap.self_development.config.BusinessDatabase; +import com.xdap.self_development.controller.form.ModelCommon; import com.xdap.self_development.controller.form.ModelCommonItem; +import com.xdap.self_development.controller.form.ModelCommonParameterInsertForm; +import com.xdap.self_development.exception.CommonException; import com.xdap.self_development.pojo.ModelCommonParameters; +import com.xdap.self_development.pojo.view.ParametersView; import com.xdap.self_development.service.CommonParameterService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class CommonParameterServiceImpl implements CommonParameterService { @@ -16,11 +23,87 @@ public class CommonParameterServiceImpl implements CommonParameterService { private BusinessDatabase bd; @Override - public List getModelCommonParameter(String modelCommonId) { + public List getModelCommonParameter(String userId) { List modelCommonParameters = bd.getBusinessDatabase() - .eq("id", modelCommonId) + .viewQueryMode(true) + .view("getCommonById") + .setVar("userId", userId) .doQuery(ModelCommonParameters.class); - - return Collections.emptyList(); + return convertToModelCommonList(modelCommonParameters); + } + + @Override + @Transactional(rollbackFor = CommonException.class) + public void insertModelCommonParameter(ModelCommonParameterInsertForm form) { + // 检查名字是否重复 + List modelCommonParameters = convertToModelCommonParameters(form.getCommon(), form.getUserId()); + bd.getBusinessDatabase().doBatchInsert(modelCommonParameters); + } + + @Override + @Transactional(rollbackFor = CommonException.class) + public void updateModelCommonParameter(ModelCommonParameterInsertForm form) { + bd.getBusinessDatabase().eq("common_name", form.getCommon().getCommonName()).doDelete(ModelCommonParameters.class); + insertModelCommonParameter(form); + } + + /** + * 将 ModelCommonParameters 列表转换为 ModelCommon 列表 + */ + private List convertToModelCommonList(List paramsList) { + if (paramsList == null || paramsList.isEmpty()) { + return new ArrayList<>(); + } + Map> groupedByCommonName = paramsList.stream() + .collect(Collectors.groupingBy(ModelCommonParameters::getCommonName)); + List result = new ArrayList<>(); + for (Map.Entry> commonNameEntry : groupedByCommonName.entrySet()) { + ModelCommon modelCommon = new ModelCommon(); + modelCommon.setCommonName(commonNameEntry.getKey()); + Map> groupedBySubsystem = commonNameEntry.getValue().stream() + .collect(Collectors.groupingBy(ModelCommonParameters::getSubsystem)); + 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())) + .collect(Collectors.toList()); + item.setParameters(parameters); + items.add(item); + } + modelCommon.setSubsystems(items); + result.add(modelCommon); + } + return result; + } + + /** + * 将ModelCommon 转换为 ModelCommonParameters 列表 + */ + private List convertToModelCommonParameters( + ModelCommon modelCommon, String userId) { + if (modelCommon == null) { + return new ArrayList<>(); + } + List result = new ArrayList<>(); + String commonName = modelCommon.getCommonName(); + if (modelCommon.getSubsystems() != null) { + for (ModelCommonItem item : modelCommon.getSubsystems()) { + String subsystem = item.getSubsystem(); + if (item.getParameters() != null) { + for (ParametersView paramView : item.getParameters()) { + ModelCommonParameters param = new ModelCommonParameters(); + param.setSubsystem(subsystem); + param.setParameterId(paramView.getParameterId()); + param.setUserId(userId); + param.setCommonName(commonName); + param.setParameterName(paramView.getParameterName()); + result.add(param); + } + } + } + } + return result; } } 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 67eaeff..3b598c4 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 @@ -10,6 +10,7 @@ import com.xdap.self_development.pojo.Parameter; import com.xdap.self_development.pojo.RevisionRecord; import com.xdap.self_development.pojo.Template; import com.xdap.self_development.pojo.TemplateAndParameter; +import com.xdap.self_development.pojo.view.ParametersView; import com.xdap.self_development.pojo.view.TemplateInfoView; import com.xdap.self_development.service.ParameterService; import com.xdap.self_development.utils.FormulaValidator; @@ -70,7 +71,8 @@ public class ParameterServiceImpl implements ParameterService { // 获取基准模板和最新模板 TemplateBenchmark benchmark = getTemplateBenchmark(form.getTemplateRowId()); - + // todo 根据上传的部分参数更新模板 + // todo 部分维护的参数同步到最新的草稿中 Template newVersionTemplate; // 如果当前修改的模板为最新版并且为草稿状态,就不需要新建版本 if (Objects.equals(benchmark.getLastTemplate().getId(), benchmark.getBaseTemplate().getId()) @@ -105,6 +107,15 @@ public class ParameterServiceImpl implements ParameterService { return result; } + @Override + public List getAllParameters(String subsystem) { + return bd.getBusinessDatabase() + .viewQueryMode(true) + .view("getAllParameters") + .setVar("subsystem", subsystem) + .doQuery(ParametersView.class); + } + private TemplateBenchmark getTemplateBenchmark(String templateRowId) { // 基准模板(用户选择的要比较的版本) Template baseTemplate = bd.getBusinessDatabase() diff --git a/src/main/resources/sql.sql b/src/main/resources/sql.sql index 3b5a617..6bb8ab3 100644 --- a/src/main/resources/sql.sql +++ b/src/main/resources/sql.sql @@ -4,6 +4,7 @@ CREATE TABLE yfsjglpt_model_common_parameters ( `subsystem` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '子系统', `parameter_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数ID', `user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID', + `common_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '常用名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='机型参数常用参数表';