From e9f4de6a97a0fa7033647871011444eaa4c37824 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 19 Jul 2024 12:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E9=AA=8C=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExperimentStandardController.java | 37 +- .../basis/dao/ExperimentStandardMapper.java | 216 +++++++++++- .../aqgqj/basis/entity/dto/ParamsDto.java | 6 + .../aqgqj/basis/entity/vo/ConfigDevVo.java | 38 +++ .../aqgqj/basis/entity/vo/ConfigItemVo.java | 47 +++ .../aqgqj/basis/entity/vo/ConfigItemsVo.java | 71 ++++ .../basis/entity/vo/ConfigMainDevVo.java | 54 +++ .../aqgqj/basis/entity/vo/ExperBasisVo.java | 33 ++ .../basis/entity/vo/ExperConfigInfoVo.java | 35 ++ .../aqgqj/basis/entity/vo/ExperConfigVo.java | 113 ++++++ .../basis/entity/vo/ExperimentStandardVo.java | 68 ---- .../service/ExperimentStandardService.java | 47 ++- .../impl/ExperimentStandardServiceImpl.java | 322 +++++++++++++++++- .../com/bonus/aqgqj/webResult/Constants.java | 6 + .../basis/ExperimentStandardMapper.xml | 245 ++++++++++++- 15 files changed, 1242 insertions(+), 96 deletions(-) create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigDevVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemsVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigMainDevVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperBasisVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigInfoVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java delete mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperimentStandardVo.java diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentStandardController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentStandardController.java index ec14462..ecc3f5f 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentStandardController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentStandardController.java @@ -3,9 +3,8 @@ package com.bonus.aqgqj.basis.controller; import com.bonus.aqgqj.annotation.DecryptAndVerify; import com.bonus.aqgqj.annotation.LogAnnotation; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperimentStandardVo; +import com.bonus.aqgqj.basis.entity.vo.ExperConfigVo; import com.bonus.aqgqj.basis.service.ExperimentStandardService; -import com.bonus.aqgqj.model.Role; import com.bonus.aqgqj.system.vo.EncryptedReq; import com.bonus.aqgqj.utils.ServerResponse; import com.github.pagehelper.PageHelper; @@ -40,8 +39,38 @@ public class ExperimentStandardController { // @PreAuthorize("@pms.hasPermission('sys:experimentStandard:query')" ) public ServerResponse getList(EncryptedReq data) { PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); - List list = service.getList(data.getData()); - PageInfo pageInfo = new PageInfo<>(list); + List list = service.getList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit()); } + + @PostMapping(value = "addData") + @DecryptAndVerify(decryptedClass = ExperConfigVo.class)//加解密统一管理 + @LogAnnotation(operModul = "试验标准管理", operation = "新增试验标准", operDesc = "系统级事件",operType="新增") +// @PreAuthorize("@pms.hasPermission('sys:experimentStandard:addData')" ) + public ServerResponse addData(EncryptedReq data) { + return service.addData(data.getData()); + } + + @PostMapping(value = "editData") + @DecryptAndVerify(decryptedClass = ExperConfigVo.class)//加解密统一管理 + @LogAnnotation(operModul = "试验标准管理", operation = "修改试验标准", operDesc = "系统级事件",operType="修改") +// @PreAuthorize("@pms.hasPermission('sys:experimentStandard:editData')" ) + public ServerResponse editData(EncryptedReq data) { + return service.editData(data.getData()); + } + + @PostMapping(value = "viewData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + public ServerResponse viewData(EncryptedReq data) { + return service.viewData(data.getData()); + } + + @PostMapping(value = "delData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "试验标准管理", operation = "删除试验标准", operDesc = "系统级事件",operType="删除") +// @PreAuthorize("@pms.hasPermission('sys:experimentStandard:del')" ) + public ServerResponse delData(EncryptedReq data) { + return service.delData(data.getData()); + } } diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentStandardMapper.java b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentStandardMapper.java index f4c9b9d..7f9002d 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentStandardMapper.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentStandardMapper.java @@ -1,7 +1,7 @@ package com.bonus.aqgqj.basis.dao; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperimentStandardVo; +import com.bonus.aqgqj.basis.entity.vo.*; import org.springframework.stereotype.Repository; import java.util.List; @@ -17,10 +17,220 @@ import java.util.List; public interface ExperimentStandardMapper { /** * 试验标准列表 + * * @param dto - * @return List + * @return List * @author cwchen * @date 2024/7/18 14:00 */ - List getList(ParamsDto dto); + List getList(ParamsDto dto); + + /** + * 添加试验标准配置 + * + * @param experConfigVo + * @return void + * @author cwchen + * @date 2024/7/18 19:25 + */ + void addExperConfig(ExperConfigVo experConfigVo); + + /** + * 添加试验依据 + * + * @param basisVos + * @return void + * @author cwchen + * @date 2024/7/18 19:39 + */ + void addBasiss(List basisVos); + + /** + * 添加试验设备 + * + * @param deviceVos + * @return void + * @author cwchen + * @date 2024/7/18 19:46 + */ + void addDev(List deviceVos); + + /** + * 添加试验主要设备 + * + * @param mainDeviceVos + * @return void + * @author cwchen + * @date 2024/7/18 19:49 + */ + void addMainDev(List mainDeviceVos); + + /** + * 添加试验项信息 + * + * @param configItemsVo + * @return void + * @author cwchen + * @date 2024/7/18 19:57 + */ + void addConfigItems(ConfigItemsVo configItemsVo); + + /** + * 添加试验配置项内容 + * + * @param configInfo + * @return void + * @author cwchen + * @date 2024/7/18 20:05 + */ + void addConfigInfo(ExperConfigInfoVo configInfo); + + /** + * 添加试验配置项内容 + * + * @param itemList + * @return void + * @author cwchen + * @date 2024/7/18 20:16 + */ + void addConfigItem(List itemList); + + /** + * 验证设备类型是否存在 + * + * @param vo + * @return int + * @author cwchen + * @date 2024/7/18 20:58 + */ + int isExist(ExperConfigVo vo); + + /** + * 查询试验标准配置 + * + * @param data + * @return ExperimentStandardVo + * @author cwchen + * @date 2024/7/18 21:05 + */ + ExperConfigVo getExperConfig(ParamsDto data); + + /** + * 查询试验配置依据 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/18 21:13 + */ + List getExperBasis(Long id); + + /** + * 查询试验设备 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/18 21:15 + */ + List getConfigDev(Long id); + + /** + * 查询试验主要设备 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/19 9:10 + */ + List getConfigMainDev(Long id); + + /** + * 查询试验项信息 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/19 9:18 + */ + List getConfigItems(Long id); + + /** + * 查询试验项内容 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/19 9:23 + */ + List getConfiItem(Long id); + + /** + * 删除试验项 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/19 10:20 + */ + void delItems(List list); + + /** + * 删除试验标准配置 + * + * @param dto + * @return void + * @author cwchen + * @date 2024/7/19 10:36 + */ + void delExperConfig(ParamsDto dto); + + /** + * 删除试验依据 + * + * @param dto + * @return void + * @author cwchen + * @date 2024/7/19 10:36 + */ + void delExperBasis(ParamsDto dto); + + /** + * 删除试验设备 + * + * @param dto + * @return void + * @author cwchen + * @date 2024/7/19 10:36 + */ + void delConfigDev(ParamsDto dto); + + /** + * 删除试验主要设备 + * + * @param dto + * @return void + * @author cwchen + * @date 2024/7/19 10:37 + */ + void delConfigManDev(ParamsDto dto); + + /** + * 删除试验项内容 + * + * @param configItemsVos + * @return void + * @author cwchen + * @date 2024/7/19 10:39 + */ + void delItem(List configItemsVos); + + /** + * 修改试验标准配置 + * @param experConfigVo + * @return void + * @author cwchen + * @date 2024/7/19 10:50 + */ + void editExperConfig(ExperConfigVo experConfigVo); } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java index ad563bc..6a5d622 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java @@ -1,6 +1,7 @@ package com.bonus.aqgqj.basis.entity.dto; import com.bonus.aqgqj.base.entity.PageEntity; +import lombok.Data; /** * @className:ParamsDto @@ -9,7 +10,12 @@ import com.bonus.aqgqj.base.entity.PageEntity; * @version:1.0 * @description:params-dto */ +@Data public class ParamsDto extends PageEntity { + /** + * id + */ + private Long id; /** * 设备类型 diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigDevVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigDevVo.java new file mode 100644 index 0000000..c99c314 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigDevVo.java @@ -0,0 +1,38 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * @className:ConfigDevVo + * @author:cwchen + * @date:2024-07-18-18:51 + * @version:1.0 + * @description:试验设备配置表 + */ +@Data +public class ConfigDevVo { + + /**ID*/ + private Long id; + /**设备类型编码*/ + private String devTypeCode; + /**设备类型名称*/ + private String devTypeName; + /** 配置项id*/ + private Long configId; + /**试验设备名称*/ + @NotBlank(message = "试验设备名称不能为空", groups = {Query.class}) + @Length(max = 128, message = "试验设备名称字符长度不能超过128", groups = {Query.class}) + private String devName; + /**实验设备id*/ + private Long devId; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemVo.java new file mode 100644 index 0000000..da22af7 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemVo.java @@ -0,0 +1,47 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @className:ConfigItemsVo + * @author:cwchen + * @date:2024-07-18-15:41 + * @version:1.0 + * @description:试验内容信息-vo + */ +@Data +public class ConfigItemVo { + + /** + * 试验内容id + */ + private Long id; + + /** + * 试验项id + */ + private Long itemId; + + /** + * 试验项内容 + */ + @NotBlank(message = "试验项内容不能为空", groups = {Query.class}) + @Length(max = 128, message = "试验项内容字符长度不能超过128", groups = {Query.class}) + private String itemName; + + /** + * 试验项排序 + */ + @NotNull(message = "试验项排序不能为空", groups = {Query.class}) + private Integer itemNum; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemsVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemsVo.java new file mode 100644 index 0000000..b664e31 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigItemsVo.java @@ -0,0 +1,71 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * @className:ConfigItemsVo + * @author:cwchen + * @date:2024-07-18-15:41 + * @version:1.0 + * @description:试验项信息-vo + */ +@Data +public class ConfigItemsVo { + + /** + * 试验项id + */ + private Long id; + + /** + * 试验项类型编码 + */ + private String experTypeCode; + /** + * 实验项类型名称 + */ + @NotBlank(message = "实验项类型名称不能为空", groups = {Query.class}) + @Length(max = 128, message = "实验项类型名称字符长度不能超过128", groups = {Query.class}) + private String experTypeName; + /** + * 实验项内容数量 + */ + @NotNull(message = "实验项内容数量不能为空", groups = {Query.class}) + private Integer experNum; + /** + * 排序 + */ + @NotNull(message = "试验项排序不能为空", groups = {Query.class}) + private Integer itemsSort; + /** + * 金额 + */ + @NotBlank(message = "金额不能为空", groups = {Query.class}) + @Pattern(regexp = "[0-9]{1,8}(,[0-9]{8})*(.[0-9]{1,2})?", message = "金额格式不正确", groups = {Query.class}) + private String amount; + + /** + * 配置项 + */ + @NotBlank(message = "试验项内容不能为空", groups = {Query.class}) + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String item; + + /** + * 试验项内容信息 + */ + private List itemList; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigMainDevVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigMainDevVo.java new file mode 100644 index 0000000..37a3a5d --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ConfigMainDevVo.java @@ -0,0 +1,54 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @className:ConfigMainDevVo + * @author:cwchen + * @date:2024-07-18-18:51 + * @version:1.0 + * @description:试验主要设备配置-vo + */ +@Data +public class ConfigMainDevVo { + + /**ID*/ + private Long id; + /** 配置项id*/ + private Long configId; + /**设备类型编码*/ + private String devTypeCode; + /**设备类型名称*/ + private String devTypeName; + /**实验设备id*/ + private String experId; + + /**试验主要设备名称*/ + @NotBlank(message = "试验主要设备名称不能为空", groups = {Query.class}) + @Length(max = 64, message = "试验主要设备名称字符长度不能超过64", groups = {Query.class}) + private String experDevName; + + /**设备型号*/ + @NotBlank(message = "试验主要设备型号不能为空", groups = {Query.class}) + @Length(max = 64, message = "试验主要设备字符长度不能超过64", groups = {Query.class}) + private String experDevModule; + /**编号*/ + @NotBlank(message = "试验主要设备编号名称不能为空", groups = {Query.class}) + @Length(max = 64, message = "试验主要设备编号字符长度不能超过64", groups = {Query.class}) + private String experDevCode; + /**合同生效日期*/ + @NotBlank(message = "合同生效日期不能为空", groups = {Query.class}) + @Pattern(regexp = "\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}", message = "合同生效日期格式不正确", groups = {Query.class}) + private String devContractDate; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperBasisVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperBasisVo.java new file mode 100644 index 0000000..c51c684 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperBasisVo.java @@ -0,0 +1,33 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * @className:ExperBasisVo + * @author:cwchen + * @date:2024-07-18-18:48 + * @version:1.0 + * @description:试验依据-vo + */ +@Data +public class ExperBasisVo { + + private Long id; + + /**试验标准配置ID*/ + private Long configId; + + /**试验依据*/ + @NotBlank(message = "试验依据不能为空", groups = {Query.class}) + @Length(max = 128, message = "试验依据字符长度不能超过128", groups = {Query.class}) + private String basisName; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigInfoVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigInfoVo.java new file mode 100644 index 0000000..0ab4ef0 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigInfoVo.java @@ -0,0 +1,35 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +/** + * @className:ExperConfigInfoVo + * @author:cwchen + * @date:2024-07-18-20:02 + * @version:1.0 + * @description:试验配置项内容-vo + */ +@Data +public class ExperConfigInfoVo { + + /** + * id + */ + private Long id; + /** + * 设备类型id + */ + private String devTypeId; + /** + * 设备类型名称 + */ + private String devTypeName; + /** + * 配置id + */ + private Long configId; + /** + * 试验项id + */ + private Long itemId; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java new file mode 100644 index 0000000..430299e --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java @@ -0,0 +1,113 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import com.bonus.aqgqj.utils.UserUtil; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.util.Date; +import java.util.List; + +/** + * @className:ExperConfigVo + * @author:cwchen + * @date:2024-07-18-11:21 + * @version:1.0 + * @description:试验标准配置-vo + */ +@Data +public class ExperConfigVo { + /** + * id + */ + private Long id; + /** + * 设备类型编码 + */ + @NotBlank(message = "设备类型编码不能为空", groups = {Query.class}) + @Length(max = 32, message = "设备类型字符长度不能超过32", groups = {Query.class}) + private String devTypeCode; + /** + * 设备类型名称 + */ + @NotBlank(message = "设备类型名称不能为空", groups = {Query.class}) + @Length(max = 64, message = "设备类型名称字符长度不能超过64", groups = {Query.class}) + private String devTypeName; + /** + * 设备规格型号 + */ + @NotBlank(message = "设备规格型号不能为空", groups = {Query.class}) + @Length(max = 128, message = "设备规格型号字符长度不能超过128", groups = {Query.class}) + private String devModule; + /** + * 实验地点编码 + */ + private String experLocalCode; + /** + * 实验地点 + */ + @NotBlank(message = "实验地点不能为空", groups = {Query.class}) + @Length(max = 128, message = "实验地点字符长度不能超过128", groups = {Query.class}) + private String experLocal; + /** + * 删除状态 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Integer delFlag = 0; + /** + * 创建人 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Long createUser = UserUtil.getLoginUser().getId(); + /** + * 创建时间 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime = new Date(); + /** + * 修改人 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Long updateUser = UserUtil.getLoginUser().getId(); + /** + * 修改时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime = new Date(); + + /** + * 主要试验设备、设备、试验依据、试验项等数据 + */ + @NotBlank(message = "参数不能为空", groups = {Query.class}) + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String paramsData; + + /** + * 试验依据 + */ + private List basisVos; + + /** + * 试验设备 + */ + private List deviceVos; + + /** + * 试验主要设备 + */ + private List mainDeviceVos; + + /** + * 试验项 + */ + private List configItemsVos; + + /** + * 查询条件限制 + */ + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperimentStandardVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperimentStandardVo.java deleted file mode 100644 index de2240e..0000000 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperimentStandardVo.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.bonus.aqgqj.basis.entity.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import java.util.Date; - -/** - * @className:ExperimentStandardVo - * @author:cwchen - * @date:2024-07-18-11:21 - * @version:1.0 - * @description:试验标准-vo - */ -@Data -public class ExperimentStandardVo { - /** - * id - */ - private Long id; - /** - * 设备类型编码 - */ - private String devTypeCode; - /** - * 设备类型名称 - */ - private String devTypeName; - /** - * 设备规格型号 - */ - private String devModule; - /** - * 实验地点编码 - */ - private String experLocalCode; - /** - * 实验地点 - */ - private String experLocal; - /** - * 删除状态 - */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Integer delFlag = 0; - /** - * 创建人 - */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long createUser; - /** - * 创建时间 - */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date createTime; - /** - * 修改人 - */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long updateUser; - /** - * 修改时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date updateTime; -} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentStandardService.java b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentStandardService.java index d366891..4009cfd 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentStandardService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentStandardService.java @@ -1,7 +1,8 @@ package com.bonus.aqgqj.basis.service; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperimentStandardVo; +import com.bonus.aqgqj.basis.entity.vo.ExperConfigVo; +import com.bonus.aqgqj.utils.ServerResponse; import java.util.List; @@ -15,10 +16,50 @@ import java.util.List; public interface ExperimentStandardService { /** * 试验标准列表 + * * @param data - * @return List + * @return List * @author cwchen * @date 2024/7/18 13:58 */ - List getList(ParamsDto data); + List getList(ParamsDto data); + + /** + * 新增试验标准 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/18 14:54 + */ + ServerResponse addData(ExperConfigVo data); + + /** + * 试验标准详情 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/18 21:02 + */ + ServerResponse viewData(ParamsDto data); + + /** + * 删除试验标准 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/19 10:13 + */ + ServerResponse delData(ParamsDto data); + + /** + * 修改试验标准配置 + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/19 10:48 + */ + ServerResponse editData(ExperConfigVo data); } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java index e40a3aa..3306ce4 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java @@ -1,12 +1,22 @@ package com.bonus.aqgqj.basis.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.bonus.aqgqj.advice.ValidatorsUtils; import com.bonus.aqgqj.basis.dao.ExperimentStandardMapper; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperimentStandardVo; +import com.bonus.aqgqj.basis.entity.vo.*; import com.bonus.aqgqj.basis.service.ExperimentStandardService; +import com.bonus.aqgqj.utils.ServerResponse; +import com.bonus.aqgqj.webResult.Constants; +import com.bonus.aqgqj.webResult.HttpStatus; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; @@ -30,14 +40,318 @@ public class ExperimentStandardServiceImpl implements ExperimentStandardService private ValidatorsUtils validatorsUtils; @Override - public List getList(ParamsDto dto) { - List list = new ArrayList<>(); + public List getList(ParamsDto dto) { + List list = new ArrayList<>(); try { list = mapper.getList(dto); return list; } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return list; } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse addData(ExperConfigVo vo) { + try { + // 整体数据校验数据 + String validResult = validatorsUtils.valid(vo, ExperConfigVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); + } + // 验证设备类型是否重复添加 + int num = mapper.isExist(vo); + if(num > 0){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "设备类型已存在,请勿重复添加"); + } + String result = validatorsParams(vo.getParamsData()); + if (StringUtils.isNotBlank(result)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result); + } + ExperConfigVo experConfigVo = handleConfigItem(vo); + if (experConfigVo == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数异常"); + } + // 试验设备、试验主要设备、试验依据、试验项校验 + String result2 = singleValidators(experConfigVo); + if (StringUtils.isNotBlank(result2)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result2); + } + // 添加试验标准配置 + mapper.addExperConfig(experConfigVo); + for (ExperBasisVo basisVo : experConfigVo.getBasisVos()) { + basisVo.setConfigId(experConfigVo.getId()); + } + // 添加试验依据 + mapper.addBasiss(experConfigVo.getBasisVos()); + // 添加试验设备 + for (ConfigDevVo deviceVo : experConfigVo.getDeviceVos()) { + deviceVo.setConfigId(experConfigVo.getId()); + } + mapper.addDev(experConfigVo.getDeviceVos()); + // 添加试验主要设备 + for (ConfigMainDevVo mainDeviceVo : experConfigVo.getMainDeviceVos()) { + mainDeviceVo.setConfigId(experConfigVo.getId()); + } + mapper.addMainDev(experConfigVo.getMainDeviceVos()); + // 添加试验项信息 + for (ConfigItemsVo configItemsVo : experConfigVo.getConfigItemsVos()) { + mapper.addConfigItems(configItemsVo); + // 添加试验配置项内容 + ExperConfigInfoVo configInfo = new ExperConfigInfoVo(); + configInfo.setConfigId(experConfigVo.getId()); + configInfo.setItemId(configItemsVo.getId()); + mapper.addConfigInfo(configInfo); + for (ConfigItemVo configItemVo : configItemsVo.getItemList()) { + configItemVo.setItemId(configItemsVo.getId()); + } + // 添加试验配置项内容 + mapper.addConfigItem(configItemsVo.getItemList()); + } + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse editData(ExperConfigVo vo) { + try { + // 整体数据校验数据 + String validResult = validatorsUtils.valid(vo, ExperConfigVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); + } + // 验证设备类型是否重复添加 + int num = mapper.isExist(vo); + if(num > 0){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "设备类型已存在,请勿重复添加"); + } + String result = validatorsParams(vo.getParamsData()); + if (StringUtils.isNotBlank(result)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result); + } + ExperConfigVo experConfigVo = handleConfigItem(vo); + if (experConfigVo == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数异常"); + } + // 试验设备、试验主要设备、试验依据、试验项校验 + String result2 = singleValidators(experConfigVo); + if (StringUtils.isNotBlank(result2)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result2); + } + // 先删除试验依据、试验设备、试验主要设备、试验项、试验项内容后 在进行重新添加 + ParamsDto dto = new ParamsDto(); + dto.setId(experConfigVo.getId()); + mapper.delExperBasis(dto); + mapper.delConfigDev(dto); + mapper.delConfigManDev(dto); + List configItemsVos = mapper.getConfigItems(dto.getId()); + mapper.delItems(configItemsVos); + mapper.delItem(configItemsVos); + // 修改试验标准配置 + mapper.editExperConfig(experConfigVo); + for (ExperBasisVo basisVo : experConfigVo.getBasisVos()) { + basisVo.setConfigId(experConfigVo.getId()); + } + // 添加试验依据 + mapper.addBasiss(experConfigVo.getBasisVos()); + // 添加试验设备 + for (ConfigDevVo deviceVo : experConfigVo.getDeviceVos()) { + deviceVo.setConfigId(experConfigVo.getId()); + } + mapper.addDev(experConfigVo.getDeviceVos()); + // 添加试验主要设备 + for (ConfigMainDevVo mainDeviceVo : experConfigVo.getMainDeviceVos()) { + mainDeviceVo.setConfigId(experConfigVo.getId()); + } + mapper.addMainDev(experConfigVo.getMainDeviceVos()); + // 添加试验项信息 + for (ConfigItemsVo configItemsVo : experConfigVo.getConfigItemsVos()) { + mapper.addConfigItems(configItemsVo); + // 添加试验配置项内容 + ExperConfigInfoVo configInfo = new ExperConfigInfoVo(); + configInfo.setConfigId(experConfigVo.getId()); + configInfo.setItemId(configItemsVo.getId()); + mapper.addConfigInfo(configInfo); + for (ConfigItemVo configItemVo : configItemsVo.getItemList()) { + configItemVo.setItemId(configItemsVo.getId()); + } + // 添加试验配置项内容 + mapper.addConfigItem(configItemsVo.getItemList()); + } + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + @Override + public ServerResponse viewData(ParamsDto data) { + if(data.getId() == null){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"请求参数不完整"); + } + ExperConfigVo vo = null; + try { + vo = mapper.getExperConfig(data); + // 查询试验配置依据、试验设备、试验主要设备、试验项信息 + List basisVos= mapper.getExperBasis(vo.getId()); + List deviceVos = mapper.getConfigDev(vo.getId()); + List mainDevVos = mapper.getConfigMainDev(vo.getId()); + List configItemsVos = mapper.getConfigItems(vo.getId()); + for (ConfigItemsVo configItemsVo : configItemsVos) { + List configItemVos = mapper.getConfiItem(configItemsVo.getId()); + configItemsVo.setItemList(configItemVos); + } + vo.setBasisVos(basisVos); + vo.setDeviceVos(deviceVos); + vo.setMainDeviceVos(mainDevVos); + vo.setConfigItemsVos(configItemsVos); + return ServerResponse.createSuccess(vo); + } catch (Exception e) { + log.error(e.toString(),e); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"查询失败"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse delData(ParamsDto dto) { + try { + mapper.delExperConfig(dto); + mapper.delExperBasis(dto); + mapper.delConfigDev(dto); + mapper.delConfigManDev(dto); + List configItemsVos = mapper.getConfigItems(dto.getId()); + mapper.delItems(configItemsVos); + mapper.delItem(configItemsVos); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + /** + * 验证参数是否为空 + * + * @param value + * @return String + * @author cwchen + * @date 2024/7/18 17:22 + */ + public String validatorsParams(String value) { + try { + // 试验配置项、试验依据、试验设备、主要试验设备验证数据是否为空 + JSONObject obj = JSONObject.parseObject(value); + JSONArray itemsList = obj.getJSONArray("items"); + JSONArray yjList = obj.getJSONArray("yjList"); + JSONArray devList = obj.getJSONArray("devList"); + JSONArray mainDevList = obj.getJSONArray("mainDevList"); + if (CollectionUtils.isEmpty(devList)) { + return Constants.ERROR_1; + } + if (CollectionUtils.isEmpty(mainDevList)) { + return Constants.ERROR_2; + } + if (CollectionUtils.isEmpty(yjList)) { + return Constants.ERROR_3; + } + if (CollectionUtils.isEmpty(itemsList)) { + return Constants.ERROR_4; + } + } catch (Exception e) { + log.error(e.toString(), e); + return Constants.ERROR_5; + } + return null; + } + + /** + * 处理试验项、试验项内容、试验依据、试验设备、主要试验设备数据 + * + * @param vo + * @return List + * @author cwchen + * @date 2024/7/18 16:43 + */ + public ExperConfigVo handleConfigItem(ExperConfigVo vo) { + try { + JSONObject obj = JSONObject.parseObject(vo.getParamsData()); + JSONArray yjList = obj.getJSONArray("yjList"); + JSONArray devList = obj.getJSONArray("devList"); + JSONArray mainDevList = obj.getJSONArray("mainDevList"); + JSONArray itemsList = obj.getJSONArray("items"); + List basisVos = yjList.toJavaList(ExperBasisVo.class); + List deviceVos = devList.toJavaList(ConfigDevVo.class); + List mainDeviceVos = mainDevList.toJavaList(ConfigMainDevVo.class); + List configItemsVos = itemsList.toJavaList(ConfigItemsVo.class); + for (ConfigItemsVo configItemsVo : configItemsVos) { + JSONArray itemArr = JSONObject.parseArray(configItemsVo.getItem()); + List configItemVos = itemArr.toJavaList(ConfigItemVo.class); + configItemsVo.setItemList(configItemVos); + } + vo.setBasisVos(basisVos); + vo.setDeviceVos(deviceVos); + vo.setMainDeviceVos(mainDeviceVos); + vo.setConfigItemsVos(configItemsVos); + } catch (Exception e) { + log.error(e.toString(), e); + return null; + } + return vo; + } + + /** + * 试验项、试验项内容、试验依据、试验设备、主要试验设备数据校验 + * + * @param vo + * @return String + * @author cwchen + * @date 2024/7/18 19:17 + */ + public String singleValidators(ExperConfigVo vo) { + List deviceVos = vo.getDeviceVos(); + List mainDeviceVos = vo.getMainDeviceVos(); + List basisVos = vo.getBasisVos(); + List configItemsVos = vo.getConfigItemsVos(); + for (ConfigDevVo deviceVo : deviceVos) { + String validResult = validatorsUtils.valid(vo, ConfigDevVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + } + for (ConfigMainDevVo mainDeviceVo : mainDeviceVos) { + String validResult = validatorsUtils.valid(vo, ConfigMainDevVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + } + for (ExperBasisVo basisVo : basisVos) { + String validResult = validatorsUtils.valid(vo, ExperBasisVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + } + for (ConfigItemsVo configItemsVo : configItemsVos) { + String validResult = validatorsUtils.valid(vo, ConfigItemsVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + for (ConfigItemVo configItemVo : configItemsVo.getItemList()) { + String validResult2 = validatorsUtils.valid(vo, ConfigItemVo.Query.class); + if (StringUtils.isNotBlank(validResult2)) { + return validResult2; + } + } + } + return null; + } } diff --git a/src/main/java/com/bonus/aqgqj/webResult/Constants.java b/src/main/java/com/bonus/aqgqj/webResult/Constants.java index 3d583d5..dd334ce 100644 --- a/src/main/java/com/bonus/aqgqj/webResult/Constants.java +++ b/src/main/java/com/bonus/aqgqj/webResult/Constants.java @@ -131,4 +131,10 @@ public class Constants public static final String UN_KNOW = "unknow"; public static final String ERROR_IP = "0:0:0:0:0:0:0:1"; + + public static final String ERROR_1 = "试验设备不能为空"; + public static final String ERROR_2 = "主要试验设备不能为空"; + public static final String ERROR_3 = "试验依据不能为空"; + public static final String ERROR_4 = "试验项不能为空"; + public static final String ERROR_5 = "参数不能为空"; } diff --git a/src/main/resources/mappers/basis/ExperimentStandardMapper.xml b/src/main/resources/mappers/basis/ExperimentStandardMapper.xml index 95294ef..582dce3 100644 --- a/src/main/resources/mappers/basis/ExperimentStandardMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentStandardMapper.xml @@ -1,19 +1,236 @@ + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO tb_exper_config + + dev_type_code, + dev_type_name, + dev_module, + exper_local_code, + exper_local, + del_flag, + create_user, + create_time, + update_user, + update_time, + id + + + #{devTypeCode}, + #{devTypeName}, + #{devModule}, + #{experLocalCode}, + #{experLocal}, + 0, + #{createUser}, + #{createTime}, + #{updateUser}, + #{updateTime}, + null + + + + + INSERT INTO tb_exper_basis(id,config_id,basis_name) VALUES + + ( + null,#{item.configId},#{item.basisName} + ) + + + + + INSERT INTO tb_config_dev(id,dev_type_code,dev_type_name,config_id,dev_name,dev_id) VALUES + + ( + null,#{item.devTypeCode},#{item.devTypeName},#{item.configId},#{item.devName},#{item.devId} + ) + + + + + INSERT INTO tb_config_man_dev(id,config_id,dev_type_code,dev_type_name,exper_id,exper_dev_name,exper_dev_module,exper_dev_code,dev_contract_date) VALUES + + ( + null,#{item.configId},#{item.devTypeCode},#{item.devTypeName},#{item.experId},#{item.experDevName},#{item.experDevModule},#{item.experDevCode},#{item.devContractDate} + ) + + + + + INSERT INTO tb_config_items + + exper_type_code, + exper_type_name, + exper_num, + items_sort, + amount, + id + + + #{experTypeCode}, + #{experTypeName}, + #{experNum}, + #{itemsSort}, + #{amount}, + null + + + + + INSERT INTO tb_exper_config_info + + dev_type_id, + dev_type_name, + config_id, + item_id, + id + + + #{devTypeId}, + #{devTypeName}, + #{configId}, + #{itemId}, + null + + + + + INSERT INTO tb_config_item(id,items_id,item_name,item_num,del_flage) VALUES + + ( + null,#{item.itemId},#{item.itemName},#{item.itemNum},0 + ) + + + + + UPDATE tb_exper_config SET dev_type_code = #{devTypeCode},dev_type_name = #{devTypeName},dev_module = #{devModule}, + exper_local_code = #{experLocalCode},exper_local = #{experLocal},update_user = #{updateUser},update_time = #{updateTime} WHERE id = #{id} + + + + DELETE FROM tb_config_items + WHERE id IN + + #{item.id} + + + + + UPDATE tb_exper_config SET del_flag = 1 WHERE id = #{id} + + + + DELETE FROM tb_exper_basis WHERE config_id = #{id} + + + + DELETE FROM tb_config_dev WHERE config_id = #{id} + + + + DELETE FROM tb_config_man_dev WHERE config_id = #{id} + + + + DELETE FROM tb_config_item + WHERE items_id IN + + #{item.id} + + - - + + + + + + + + + + + + + + + +