diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java index 38e6f01..3bfb3e2 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java @@ -78,4 +78,26 @@ public class ExperimentalController { public ServerResponse addTestData(EncryptedReq data) { return service.addTestData(data.getData()); } + + @PostMapping(value = "editTestData") + @DecryptAndVerify(decryptedClass = TestVo.class)//加解密统一管理 + @LogAnnotation(operModul = "试验详情管理", operation = "修改试验数据", operDesc = "系统级事件", operType = "修改") + // @PreAuthorize("@pms.hasPermission('sys:experimentalTest:edit')") + public ServerResponse editTestData(EncryptedReq data) { + return service.editTestData(data.getData()); + } + + @PostMapping(value = "delTestData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "试验详情管理", operation = "删除试验数据", operDesc = "系统级事件", operType = "删除") + // @PreAuthorize("@pms.hasPermission('sys:experimentalTest:del')") + public ServerResponse delTestData(EncryptedReq data) { + return service.delTestData(data.getData()); + } + + @PostMapping(value = "viewTestData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + public ServerResponse viewTestData(EncryptedReq data) { + return service.viewTestData(data.getData()); + } } diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java index 8e9b384..e05ba1d 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java @@ -1,10 +1,7 @@ package com.bonus.aqgqj.basis.dao; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperBasisVo; -import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; -import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; -import com.bonus.aqgqj.basis.entity.vo.TestVo; +import com.bonus.aqgqj.basis.entity.vo.*; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -61,11 +58,264 @@ public interface ExperimentalMapper { /** * 添加试验依据信息数据 + * * @param basisVos - * @param id + * @param experId * @return void * @author cwchen * @date 2024/7/20 17:05 */ - void addConfigBasis(@Param("list") List basisVos, @Param("id") Long id); + void addConfigBasis(@Param("list") List basisVos, @Param("experId") Long experId); + + /** + * 查询收样设备-根据设备类型 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 17:01 + */ + List getSampleDeviceVos(ParamsDto dto); + + /** + * 添加试验项信息 + * + * @param configItemsVo + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 17:21 + */ + void addExperItems(@Param("params") ConfigItemsVo configItemsVo, @Param("experId") Long experId); + + /** + * 添加试验项内容 + * + * @param configItemVo + * @return void + * @author cwchen + * @date 2024/7/21 17:28 + */ + void addExperItem(@Param("params") ConfigItemVo configItemVo, @Param("experId") Long experId); + + /** + * 添加试验样品设备表 + * + * @param experDevVo + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 17:58 + */ + void addExperDev(@Param("params") ExperDevVo experDevVo, @Param("experId") Long experId); + + /** + * 添加设备试验项信息 + * + * @param experDevItemsVo + * @return void + * @author cwchen + * @date 2024/7/21 18:19 + */ + void addExperDevItems(ExperDevItemsVo experDevItemsVo); + + /** + * 添加设备试验项数据 + * + * @param experDevItemVos + * @return void + * @author cwchen + * @date 2024/7/21 19:48 + */ + void addExperDevItem(List experDevItemVos); + + /** + * 试验数据详情 + * + * @param dto + * @return TestVo + * @author cwchen + * @date 2024/7/21 22:53 + */ + TestVo viewTestData(ParamsDto dto); + + /** + * 添加试验设备数据 + * + * @param deviceVos + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 23:12 + */ + void addExperConfigDev(@Param("list") List deviceVos, @Param("experId") Long experId); + + /** + * 试验依据信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:19 + */ + List getConfigBasis(ParamsDto dto); + + /** + * 试验设备信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:22 + */ + List getExperConfigDevs(ParamsDto dto); + + /** + * 试验项信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:27 + */ + List getExperItems(ParamsDto dto); + + /** + * 试验项内容信息 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/21 23:33 + */ + List getExperItem(Long id); + + /** + * 试验样品设备 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:37 + */ + List getExperDev(ParamsDto dto); + + /** + * 修改试验信息数据 + * + * @param vo + * @return void + * @author cwchen + * @date 2024/7/22 0:02 + */ + void updateExper(TestVo vo); + + /** + * 获取试验样品设备ID + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/22 0:18 + */ + List getExperDevIds(Long id); + + /** + * 获取设备试验项信息ID + * + * @param list + * @return List + * @author cwchen + * @date 2024/7/22 0:18 + */ + List getExperDevItems(List list); + + /** + * 删除试验依据 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delConfigBasis(Long id); + + /** + * 删除试验设备 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperConfigDev(Long id); + + /** + * 删除试验样品设备 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDev(Long id); + + /** + * 删除设备试验项信息 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDevItems(List list); + + /** + * 删除设备试验项数据 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDevItem(List list); + + /** + * 删除试验信息 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:32 + */ + void delExper(Long id); + + /** + * 查询试验项ID + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/22 0:34 + */ + List getExperItemsIds(Long id); + + /** + * 删除试验项 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:36 + */ + void delExperItems(Long id); + + /** + * 删除试验项内容 + * @param experItemsIds + * @return void + * @author cwchen + * @date 2024/7/22 0:36 + */ + void delExperItem(List experItemsIds); } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java new file mode 100644 index 0000000..8d1027d --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java @@ -0,0 +1,27 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +/** + * @className:ExperDevItemVo + * @author:cwchen + * @date:2024-07-21-19:03 + * @version:1.0 + * @description:设备试验项内容数据-vo + */ +@Data +public class ExperDevItemVo { + + /**id*/ + private Long id; + /**试验项id*/ + private Long itemsId; + /**试验内容id*/ + private Long itemId; + /**实验设备id*/ + private Long devId; + /** 试验项目名称*/ + private String itemName; + /**试验项值*/ + private String itemVal; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java new file mode 100644 index 0000000..cc6ef4f --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java @@ -0,0 +1,30 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @className:ExperDevItemsVo + * @author:cwchen + * @date:2024-07-21-18:12 + * @version:1.0 + * @description:设备试验项信息-vo + */ +@Data +public class ExperDevItemsVo { + + /**id*/ + private Long id; + /**试验设备id*/ + private Long devId; + /**实验项id*/ + private Long itemsId; + /**试验项名称*/ + private String itemsName; + /**排序*/ + private Integer valSort; + + /**设备试验项内容数据 list*/ + private List experDevItemVos; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java new file mode 100644 index 0000000..b12a1e1 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java @@ -0,0 +1,59 @@ +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.Pattern; + +/** + * @className:ExperDevVo + * @author:cwchen + * @date:2024-07-21-16:46 + * @version:1.0 + * @description:试验样品设备-vo + */ +@Data +public class ExperDevVo { + + /**id*/ + private Long id; + /**试验表id */ + private Long experId; + /**编号*/ + @NotBlank(message = "编号不能为空", groups = {Query.class}) + @Length(max = 32, message = "编号字符长度不能超过32", groups = {Query.class}) + private String devCode; + /**生产厂家*/ + @NotBlank(message = "生产厂家不能为空", groups = {Query.class}) + @Length(max = 32, message = "生产厂家字符长度不能超过32", groups = {Query.class}) + private String manufacturer; + /**生产日期*/ + @NotBlank(message = "生产日期不能为空", groups = {Query.class}) + @Length(max = 32, message = "生产日期字符长度不能超过32", groups = {Query.class}) + private String manufactureDate; + /**规格型号*/ + @NotBlank(message = "规格型号不能为空", groups = {Query.class}) + @Length(max = 32, message = "规格型号字符长度不能超过32", groups = {Query.class}) + private String devModule; + /**外观状态*/ + @NotBlank(message = "外观状态不能为空", groups = {Query.class}) + @Length(max = 32, message = "外观状态字符长度不能超过32", groups = {Query.class}) + private String devStatus; + /**设备试验项值*/ + @NotBlank(message = "设备试验项值不能为空", groups = {Query.class}) + @Length(max = 2000, message = "设备试验项值字符长度不能超过200", groups = {Query.class}) + private String devData; + /**额外超出的金额默认值0*/ + @NotBlank(message = "金额不能为空", groups = {Query.class}) + @Pattern(regexp = "(0|\\d{1,8}(?:\\.\\d{1,2})?|\\d{9}(?:\\.\\d{0,2})?)", message = "金额格式不正确(0-100000000)", groups = {Query.class}) + private String amount; + /**备注*/ + @NotBlank(message = "备注不能为空", groups = {Query.class}) + @Length(max = 256, message = "备注字符长度不能超过256", groups = {Query.class}) + private String remarks; + + public interface Query { + } + +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java new file mode 100644 index 0000000..2da7c3a --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java @@ -0,0 +1,25 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +/** + * @className:SampleDeviceVo + * @author:cwchen + * @date:2024-07-21-16:57 + * @version:1.0 + * @description:收样设备详情-vo + */ +@Data +public class SampleDeviceVo { + + /**id*/ + private Long id; + /**设备类型名称*/ + private String devTypeName; + /**设备类型编码*/ + private String devTypeCode; + /**规格型号*/ + private String devModule; + /**设备编号*/ + private String devCode; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java index 057be91..d6471fe 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java @@ -32,7 +32,7 @@ public class TestVo { */ private Long configId; - @NotNull(message = "收样不能为空", groups = {Query.class}) + @NotNull(message = "收样id不能为空", groups = {Query.class}) private Long sampleId; /** @@ -191,6 +191,7 @@ public class TestVo { /** * 试验主要设备 */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private List mainDeviceVos; /** @@ -198,6 +199,16 @@ public class TestVo { */ private List configItemsVos; + /** + * 收样设备list + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private List sampleDeviceVos; + /** + * 试验样品设备list + */ + private List experDevVos; + /** * 查询条件限制 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java index 1c93cd1..6c96fa5 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java @@ -48,10 +48,40 @@ public interface ExperimentalService { /** * 新增试验数据 + * * @param data * @return ServerResponse * @author cwchen * @date 2024/7/20 15:42 */ ServerResponse addTestData(TestVo data); + + /** + * 修改试验数据 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse editTestData(TestVo data); + + /** + * 删除试验数据 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse delTestData(ParamsDto data); + + /** + * 试验数据详情 + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse viewTestData(ParamsDto 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 52ccb17..16bbd20 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 @@ -121,6 +121,9 @@ public class ExperimentStandardServiceImpl implements ExperimentStandardService @Transactional(rollbackFor = Exception.class) public ServerResponse editData(ExperConfigVo vo) { try { + if(vo.getId() == null){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); + } // 整体数据校验数据 String validResult = validatorsUtils.valid(vo, ExperConfigVo.Query.class); if (StringUtils.isNotBlank(validResult)) { diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java index d63dda1..a381d04 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java @@ -14,6 +14,7 @@ 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.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +22,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -79,7 +81,11 @@ public class ExperimentalServiceImpl implements ExperimentalService { try { // 查询收样基本信息 vo = mapper.getTestBasicInfo(dto); - // 查询试验配置依据、试验设备、试验主要设备、试验项信息 + if (vo.getConfigId() == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "未配置该设备类型的试验标准,请先配置"); + } + // 查询收样设备、试验配置依据、试验设备、试验主要设备、试验项信息 + List sampleDeviceVos = mapper.getSampleDeviceVos(dto); List basisVos = standardMapper.getExperBasis(vo.getConfigId()); List deviceVos = standardMapper.getConfigDev(vo.getConfigId()); List mainDevVos = standardMapper.getConfigMainDev(vo.getConfigId()); @@ -88,6 +94,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { List configItemVos = standardMapper.getConfiItem(configItemsVo.getId()); configItemsVo.setItemList(configItemVos); } + vo.setSampleDeviceVos(sampleDeviceVos); vo.setBasisVos(basisVos); vo.setDeviceVos(deviceVos); vo.setMainDeviceVos(mainDevVos); @@ -107,7 +114,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { if (StringUtils.isNotBlank(validResult)) { return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); } - if(validatorsDate(vo)){ + if (!validatorsDate(vo)) { return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "下次试验日期不能早于试验日期"); } String result = validatorsParams(vo.getParamsData()); @@ -125,21 +132,154 @@ public class ExperimentalServiceImpl implements ExperimentalService { } // 添加试验信息数据 mapper.addExper(vo); + // 添加试验设备数据 + mapper.addExperConfigDev(vo.getDeviceVos(), vo.getId()); // 添加试验依据信息数据 - mapper.addConfigBasis(vo.getBasisVos(),vo.getId()); - // 添加试验项数据 tb_exper_item - // 添加试验项内容数据 tb_exper_items - // 添加试验样品数据 tb_exper_dev - // 添加试验项信息数据 tb_exper_dev_items - // 添加试验项数据 tb_exper_dev_item + mapper.addConfigBasis(vo.getBasisVos(), vo.getId()); + for (int i = 0; i < vo.getExperDevVos().size(); i++) { + // 添加试验样品数据 + mapper.addExperDev(vo.getExperDevVos().get(i), vo.getId()); + if (i == 0) { + for (ConfigItemsVo configItemsVo : vo.getConfigItemsVos()) { + // 添加试验项数据 + mapper.addExperItems(configItemsVo, vo.getId()); + // 添加试验项内容数据 + for (ConfigItemVo configItemVo : configItemsVo.getItemList()) { + mapper.addExperItem(configItemVo, configItemsVo.getId()); + } + } + } + List experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo); + for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) { + // 添加设备试验项信息 + mapper.addExperDevItems(experDevItemsVo); + List experDevItemVos = setExperDevItemList(vo.getExperDevVos().get(i), vo, experDevItemsVo); + // 添加设备试验项数据 + mapper.addExperDevItem(experDevItemVos); + } + + } } 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 editTestData(TestVo vo) { + try { + if(vo.getId() == null){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); + } + // 整体数据校验数据 + String validResult = validatorsUtils.valid(vo, TestVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); + } + if (!validatorsDate(vo)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "下次试验日期不能早于试验日期"); + } + String result = validatorsParams(vo.getParamsData()); + if (StringUtils.isNotBlank(result)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result); + } + TestVo testVo = handleConfigItem(vo); + if (testVo == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数异常"); + } + // 试验设备、试验主要设备、试验依据、试验项校验 + String result2 = singleValidators(testVo); + if (StringUtils.isNotBlank(result2)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result2); + } + // 删除试验依据、试验设备、试验样品设备、设备试验项信息、设备试验项数据 + List experDevIds = mapper.getExperDevIds(vo.getId()); + List experDevItemsIds = mapper.getExperDevItems(experDevIds); + mapper.delConfigBasis(vo.getId()); + mapper.delExperConfigDev(vo.getId()); + mapper.delExperDev(vo.getId()); + mapper.delExperDevItems(experDevIds); + mapper.delExperDevItem(experDevItemsIds); + // 修改试验信息数据 + mapper.updateExper(vo); + // 添加试验设备数据 + mapper.addExperConfigDev(vo.getDeviceVos(), vo.getId()); + // 添加试验依据信息数据 + mapper.addConfigBasis(vo.getBasisVos(), vo.getId()); + for (int i = 0; i < vo.getExperDevVos().size(); i++) { + // 添加试验样品数据 + mapper.addExperDev(vo.getExperDevVos().get(i), vo.getId()); + List experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo); + for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) { + // 添加设备试验项信息 + mapper.addExperDevItems(experDevItemsVo); + List experDevItemVos = setExperDevItemList(vo.getExperDevVos().get(i), vo, experDevItemsVo); + // 添加设备试验项数据 + mapper.addExperDevItem(experDevItemVos); + } + } + } 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 delTestData(ParamsDto dto) { + try { + // 删除试验依据、试验设备、试验样品设备、设备试验项信息、设备试验项数据、试验项、试验项内容、试验信息 + List experDevIds = mapper.getExperDevIds(dto.getId()); + List experDevItemsIds = mapper.getExperDevItems(experDevIds); + List experItemsIds = mapper.getExperItemsIds(dto.getId()); + mapper.delConfigBasis(dto.getId()); + mapper.delExperConfigDev(dto.getId()); + mapper.delExperDev(dto.getId()); + mapper.delExperDevItems(experDevIds); + mapper.delExperDevItem(experDevItemsIds); + mapper.delExperItems(dto.getId()); + mapper.delExperItem(experItemsIds); + mapper.delExper(dto.getId()); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + @Override + public ServerResponse viewTestData(ParamsDto dto) { + TestVo testVo = new TestVo(); + try { + // 试验数据详情 + testVo = mapper.viewTestData(dto); + //试验依据信息、试验设备、试验项、试验项目信息、试验样品设备 + List experBasisVos = mapper.getConfigBasis(dto); + List experConfigDevs = mapper.getExperConfigDevs(dto); + List configItemsVos = mapper.getExperItems(dto); + for (ConfigItemsVo configItemsVo : configItemsVos) { + List configItemVos = mapper.getExperItem(configItemsVo.getId()); + configItemsVo.setItemList(configItemVos); + } + List experDevVos = mapper.getExperDev(dto); + testVo.setBasisVos(experBasisVos); + testVo.setDeviceVos(experConfigDevs); + testVo.setConfigItemsVos(configItemsVos); + testVo.setExperDevVos(experDevVos); + return ServerResponse.createSuccess(testVo); + } catch (Exception e) { + log.error(e.toString(), e); + return ServerResponse.createSuccess(null); + } + } + /** * 验证参数是否为空 * @@ -150,12 +290,13 @@ public class ExperimentalServiceImpl implements ExperimentalService { */ 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"); + JSONArray experDevList = obj.getJSONArray("experDevList"); if (CollectionUtils.isEmpty(devList)) { return Constants.ERROR_1; } @@ -168,6 +309,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if (CollectionUtils.isEmpty(itemsList)) { return Constants.ERROR_4; } + if (CollectionUtils.isEmpty(experDevList)) { + return Constants.ERROR_6; + } } catch (Exception e) { log.error(e.toString(), e); return Constants.ERROR_5; @@ -176,7 +320,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { } /** - * 处理试验项、试验项内容、试验依据、试验设备、主要试验设备数据 + * 处理试验项、试验项内容、试验依据、试验设备、主要试验设备、样品设备试验数据 数据 * * @param vo * @return List @@ -190,10 +334,12 @@ public class ExperimentalServiceImpl implements ExperimentalService { JSONArray devList = obj.getJSONArray("devList"); JSONArray mainDevList = obj.getJSONArray("mainDevList"); JSONArray itemsList = obj.getJSONArray("items"); + JSONArray experDevList = obj.getJSONArray("experDevList"); List basisVos = yjList.toJavaList(ExperBasisVo.class); List deviceVos = devList.toJavaList(ConfigDevVo.class); List mainDeviceVos = mainDevList.toJavaList(ConfigMainDevVo.class); List configItemsVos = itemsList.toJavaList(ConfigItemsVo.class); + List experDevVos = experDevList.toJavaList(ExperDevVo.class); for (ConfigItemsVo configItemsVo : configItemsVos) { JSONArray itemArr = JSONObject.parseArray(configItemsVo.getItem()); List configItemVos = itemArr.toJavaList(ConfigItemVo.class); @@ -209,6 +355,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { vo.setDeviceVos(deviceVos); vo.setMainDeviceVos(mainDeviceVos); vo.setConfigItemsVos(configItemsVos); + vo.setExperDevVos(experDevVos); } catch (Exception e) { log.error(e.toString(), e); return null; @@ -229,6 +376,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { List mainDeviceVos = vo.getMainDeviceVos(); List basisVos = vo.getBasisVos(); List configItemsVos = vo.getConfigItemsVos(); + List experDevVos = vo.getExperDevVos(); for (ConfigDevVo deviceVo : deviceVos) { String validResult = validatorsUtils.valid(deviceVo, ConfigDevVo.Query.class); if (StringUtils.isNotBlank(validResult)) { @@ -259,11 +407,18 @@ public class ExperimentalServiceImpl implements ExperimentalService { } } } + for (ExperDevVo experDevVo : experDevVos) { + String validResult = validatorsUtils.valid(experDevVo, ExperDevVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + } return null; } /** * 校验试验时间和下次试验时间 + * * @param vo * @return boolean * @author cwchen @@ -277,4 +432,79 @@ public class ExperimentalServiceImpl implements ExperimentalService { } return true; } + + /** + * 处理设备试验项数据 + * + * @param experDevVo + * @param vo + * @return List + * @author cwchen + * @date 2024/7/21 19:17 + */ + public List setExperDevItemsList(ExperDevVo experDevVo, TestVo vo) { + List experDevItemsList = new ArrayList<>(); + for (int i = 0; i < vo.getConfigItemsVos().size(); i++) { + ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i); + ExperDevItemsVo experDevItems = new ExperDevItemsVo(); + experDevItems.setItemsId(configItemsVo.getId()); + experDevItems.setDevId(experDevVo.getId()); + experDevItems.setItemsName(configItemsVo.getExperTypeName()); + experDevItems.setValSort(configItemsVo.getItemsSort()); + experDevItemsList.add(experDevItems); + } + return experDevItemsList; + } + + /** + * 处理设备试验项内容数据 + * + * @param experDevVo + * @param vo + * @return List + * @author cwchen + * @date 2024/7/21 19:17 + */ + public List setExperDevItemList(ExperDevVo experDevVo, TestVo vo, ExperDevItemsVo experDevItemsVo) { + List experDevItemList = new ArrayList<>(); + int index = 0; + for (int i = 0; i < vo.getConfigItemsVos().size(); i++) { + ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i); + List experDevItemVos = new ArrayList<>(); + for (int j = 0; j < configItemsVo.getItemList().size(); j++) { + ConfigItemVo configItemVo = configItemsVo.getItemList().get(j); + ExperDevItemVo experDevItemVo = new ExperDevItemVo(); + experDevItemVo.setItemsId(configItemsVo.getId()); + experDevItemVo.setItemId(configItemVo.getId()); + experDevItemVo.setDevId(experDevItemsVo.getId()); + experDevItemVo.setItemName(configItemVo.getItemName()); + index = i * configItemsVo.getItemList().size() + j; + String val = getVal(experDevVo, index); + experDevItemVo.setItemVal(val); + experDevItemList.add(experDevItemVo); + } + } + return experDevItemList; + } + + /** + * 获取设备试验项内容数据 + * + * @param experDevVo + * @param index + * @return String + * @author cwchen + * @date 2024/7/21 19:30 + */ + public String getVal(ExperDevVo experDevVo, int index) { + try { + String devData = experDevVo.getDevData(); + JSONArray jsonArray = JSONObject.parseArray(devData); + String data = (String) jsonArray.get(index); + return data; + } catch (Exception e) { + log.error(e.toString(), e); + 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 aaeab81..ffdcdcd 100644 --- a/src/main/java/com/bonus/aqgqj/webResult/Constants.java +++ b/src/main/java/com/bonus/aqgqj/webResult/Constants.java @@ -137,6 +137,7 @@ public class Constants public static final String ERROR_3 = "试验依据不能为空"; public static final String ERROR_4 = "试验项不能为空"; public static final String ERROR_5 = "参数不能为空"; + public static final String ERROR_6 = "试验不能为空"; public static final String FORMAT_STR = "yyyy-MM-dd"; diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index dcb954a..459b929 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -50,13 +50,13 @@ #{experStand}, #{experConclu}, #{remarsk}, - #{auditStatus} + #{auditStatus}, #{createTime}, #{createUser}, #{updateTime}, #{updateUser}, - #{status}, 0, + #{status}, null @@ -65,10 +65,163 @@ INSERT INTO tb_config_basis(id,exper_id,exper_basis_name) VALUES ( - null,#{id},#{item.basisName} + null,#{experId},#{item.basisName} ) + + + INSERT INTO tb_exper_items + + exper_id, + exper_type_code, + exper_type_name, + exper_num, + items_sort, + amount, + id + + + #{experId}, + #{params.experTypeCode}, + #{params.experTypeName}, + #{params.experNum}, + #{params.itemsSort}, + #{params.amount}, + null + + + + + INSERT INTO tb_exper_item + + items_id, + item_sort, + item_name, + id + + + #{experId}, + #{params.itemNum}, + #{params.itemName}, + null + + + + + INSERT INTO tb_exper_dev + + exper_id, + dev_code, + manufacturer, + manufacture_date, + dev_module, + dev_status, + dev_data, + amount, + remarks, + id + + + #{experId}, + #{params.devCode}, + #{params.manufacturer}, + #{params.manufactureDate}, + #{params.devModule}, + #{params.devStatus}, + #{params.devData}, + #{params.amount}, + #{params.remarks}, + null + + + + + INSERT INTO tb_exper_dev_items + + dev_id, + items_id, + items_name, + val_sort, + id + + + #{devId}, + #{itemsId}, + #{itemsName}, + #{valSort}, + null + + + + + INSERT INTO tb_exper_dev_item (id,items_id,item_id,dev_id,item_name,item_val) VALUES + + ( + null,#{item.itemsId},#{item.itemId},#{item.devId},#{item.itemName},#{item.itemVal} + ) + + + + + INSERT INTO tb_exper_config_dev(id,dev_type_code,dev_type_name,exper_id,dev_name,dev_id) VALUES + + ( + null,#{item.devTypeCode},#{item.devTypeName},#{experId},#{item.devName},#{item.devId} + ) + + + + + UPDATE tb_exper SET dev_type_code = #{devTypeCode},dev_type_name = #{devTypeName},dev_num = #{sampleQuantity}, + dev_module = #{devModule},sample_date = #{sampleDate},exper_time = #{experTime},next_exper_time = #{nextExperTime}, + submit_unit = #{customId},submit_location = #{experLocal},exper_dev = #{experDev},exper_module = #{experModule}, + exper_code = #{experCode},check_time = #{checkTime},update_time = #{updateTime},update_user = #{updateUser}, + exper_conclu = #{experConclu},remarsk = #{remarsk} WHERE id = #{id} + + + + DELETE FROM tb_config_basis WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_config_dev WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_dev WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_dev_items + WHERE dev_id IN + + #{item} + + + + + DELETE FROM tb_exper_dev_item + WHERE dev_id IN + + #{item} + + + + + UPDATE tb_exper SET del_flag = 1 WHERE id = #{id} + + + + DELETE FROM tb_exper_items WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_item WHERE items_id IN + + #{item} + + + + + + + + + + + + + + + + + + + + + +