试验管理

This commit is contained in:
cwchen 2024-07-22 09:00:40 +08:00
parent 3d7becfad4
commit 5f6d615699
12 changed files with 975 additions and 23 deletions

View File

@ -78,4 +78,26 @@ public class ExperimentalController {
public ServerResponse addTestData(EncryptedReq<TestVo> 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<TestVo> 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<ParamsDto> data) {
return service.delTestData(data.getData());
}
@PostMapping(value = "viewTestData")
@DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理
public ServerResponse viewTestData(EncryptedReq<ParamsDto> data) {
return service.viewTestData(data.getData());
}
}

View File

@ -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<ExperBasisVo> basisVos, @Param("id") Long id);
void addConfigBasis(@Param("list") List<ExperBasisVo> basisVos, @Param("experId") Long experId);
/**
* 查询收样设备-根据设备类型
*
* @param dto
* @return List<SampleDeviceVo>
* @author cwchen
* @date 2024/7/21 17:01
*/
List<SampleDeviceVo> 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<ExperDevItemVo> 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<ConfigDevVo> deviceVos, @Param("experId") Long experId);
/**
* 试验依据信息
*
* @param dto
* @return List<ExperBasisVo>
* @author cwchen
* @date 2024/7/21 23:19
*/
List<ExperBasisVo> getConfigBasis(ParamsDto dto);
/**
* 试验设备信息
*
* @param dto
* @return List<ConfigDevVo>
* @author cwchen
* @date 2024/7/21 23:22
*/
List<ConfigDevVo> getExperConfigDevs(ParamsDto dto);
/**
* 试验项信息
*
* @param dto
* @return List<ConfigItemsVo>
* @author cwchen
* @date 2024/7/21 23:27
*/
List<ConfigItemsVo> getExperItems(ParamsDto dto);
/**
* 试验项内容信息
*
* @param id
* @return List<ConfigItemVo>
* @author cwchen
* @date 2024/7/21 23:33
*/
List<ConfigItemVo> getExperItem(Long id);
/**
* 试验样品设备
*
* @param dto
* @return List<ExperDevVo>
* @author cwchen
* @date 2024/7/21 23:37
*/
List<ExperDevVo> getExperDev(ParamsDto dto);
/**
* 修改试验信息数据
*
* @param vo
* @return void
* @author cwchen
* @date 2024/7/22 0:02
*/
void updateExper(TestVo vo);
/**
* 获取试验样品设备ID
*
* @param id
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:18
*/
List<Long> getExperDevIds(Long id);
/**
* 获取设备试验项信息ID
*
* @param list
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:18
*/
List<Long> getExperDevItems(List<Long> 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<Long> list);
/**
* 删除设备试验项数据
*
* @param list
* @return void
* @author cwchen
* @date 2024/7/22 0:24
*/
void delExperDevItem(List<Long> list);
/**
* 删除试验信息
*
* @param id
* @return void
* @author cwchen
* @date 2024/7/22 0:32
*/
void delExper(Long id);
/**
* 查询试验项ID
*
* @param id
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:34
*/
List<Long> 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<Long> experItemsIds);
}

View File

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

View File

@ -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<ExperDevItemVo> experDevItemVos;
}

View File

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

View File

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

View File

@ -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<ConfigMainDevVo> mainDeviceVos;
/**
@ -198,6 +199,16 @@ public class TestVo {
*/
private List<ConfigItemsVo> configItemsVos;
/**
* 收样设备list
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private List<SampleDeviceVo> sampleDeviceVos;
/**
* 试验样品设备list
*/
private List<ExperDevVo> experDevVos;
/**
* 查询条件限制
*/

View File

@ -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);
}

View File

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

View File

@ -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<SampleDeviceVo> sampleDeviceVos = mapper.getSampleDeviceVos(dto);
List<ExperBasisVo> basisVos = standardMapper.getExperBasis(vo.getConfigId());
List<ConfigDevVo> deviceVos = standardMapper.getConfigDev(vo.getConfigId());
List<ConfigMainDevVo> mainDevVos = standardMapper.getConfigMainDev(vo.getConfigId());
@ -88,6 +94,7 @@ public class ExperimentalServiceImpl implements ExperimentalService {
List<ConfigItemVo> 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<ExperDevItemsVo> experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo);
for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) {
// 添加设备试验项信息
mapper.addExperDevItems(experDevItemsVo);
List<ExperDevItemVo> 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<Long> experDevIds = mapper.getExperDevIds(vo.getId());
List<Long> 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<ExperDevItemsVo> experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo);
for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) {
// 添加设备试验项信息
mapper.addExperDevItems(experDevItemsVo);
List<ExperDevItemVo> 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<Long> experDevIds = mapper.getExperDevIds(dto.getId());
List<Long> experDevItemsIds = mapper.getExperDevItems(experDevIds);
List<Long> 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<ExperBasisVo> experBasisVos = mapper.getConfigBasis(dto);
List<ConfigDevVo> experConfigDevs = mapper.getExperConfigDevs(dto);
List<ConfigItemsVo> configItemsVos = mapper.getExperItems(dto);
for (ConfigItemsVo configItemsVo : configItemsVos) {
List<ConfigItemVo> configItemVos = mapper.getExperItem(configItemsVo.getId());
configItemsVo.setItemList(configItemVos);
}
List<ExperDevVo> 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<ConfigItemsVo>
@ -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<ExperBasisVo> basisVos = yjList.toJavaList(ExperBasisVo.class);
List<ConfigDevVo> deviceVos = devList.toJavaList(ConfigDevVo.class);
List<ConfigMainDevVo> mainDeviceVos = mainDevList.toJavaList(ConfigMainDevVo.class);
List<ConfigItemsVo> configItemsVos = itemsList.toJavaList(ConfigItemsVo.class);
List<ExperDevVo> experDevVos = experDevList.toJavaList(ExperDevVo.class);
for (ConfigItemsVo configItemsVo : configItemsVos) {
JSONArray itemArr = JSONObject.parseArray(configItemsVo.getItem());
List<ConfigItemVo> 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<ConfigMainDevVo> mainDeviceVos = vo.getMainDeviceVos();
List<ExperBasisVo> basisVos = vo.getBasisVos();
List<ConfigItemsVo> configItemsVos = vo.getConfigItemsVos();
List<ExperDevVo> 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<ExperDevItemsVo>
* @author cwchen
* @date 2024/7/21 19:17
*/
public List<ExperDevItemsVo> setExperDevItemsList(ExperDevVo experDevVo, TestVo vo) {
List<ExperDevItemsVo> 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<ExperDevItemVo>
* @author cwchen
* @date 2024/7/21 19:17
*/
public List<ExperDevItemVo> setExperDevItemList(ExperDevVo experDevVo, TestVo vo, ExperDevItemsVo experDevItemsVo) {
List<ExperDevItemVo> experDevItemList = new ArrayList<>();
int index = 0;
for (int i = 0; i < vo.getConfigItemsVos().size(); i++) {
ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i);
List<ExperDevItemVo> 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;
}
}
}

View File

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

View File

@ -50,13 +50,13 @@
<if test="experStand != null and experStand!=''">#{experStand},</if>
<if test="experConclu != null and experConclu!=''">#{experConclu},</if>
<if test="remarsk != null and remarsk!=''">#{remarsk},</if>
#{auditStatus}
#{auditStatus},
#{createTime},
#{createUser},
#{updateTime},
#{updateUser},
#{status},
0,
#{status},
null
</trim>
</insert>
@ -65,10 +65,163 @@
INSERT INTO tb_config_basis(id,exper_id,exper_basis_name) VALUES
<foreach collection="list" separator="," item="item">
(
null,#{id},#{item.basisName}
null,#{experId},#{item.basisName}
)
</foreach>
</insert>
<!--添加试验项信息-->
<insert id="addExperItems" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">exper_id,</if>
<if test="params.experTypeCode != null and params.experTypeCode != ''">exper_type_code,</if>
<if test="params.experTypeName != null and params.experTypeName != ''">exper_type_name,</if>
<if test="params.experNum != null">exper_num,</if>
<if test="params.itemsSort != null">items_sort,</if>
<if test="params.amount != null and params.amount!=''">amount,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.experTypeCode != null and params.experTypeCode != ''">#{params.experTypeCode},</if>
<if test="params.experTypeName != null and params.experTypeName != ''">#{params.experTypeName},</if>
<if test="params.experNum != null">#{params.experNum},</if>
<if test="params.itemsSort != null">#{params.itemsSort},</if>
<if test="params.amount != null and params.amount!=''">#{params.amount},</if>
null
</trim>
</insert>
<!--添加试验项内容-->
<insert id="addExperItem" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">items_id,</if>
<if test="params.itemNum != null">item_sort,</if>
<if test="params.itemName != null and params.itemName != ''">item_name,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.itemNum != null">#{params.itemNum},</if>
<if test="params.itemName != null and params.itemName != ''">#{params.itemName},</if>
null
</trim>
</insert>
<!--添加试验样品设备-->
<insert id="addExperDev" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_dev
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">exper_id,</if>
<if test="params.devCode != null and params.devCode!=''">dev_code,</if>
<if test="params.manufacturer != null and params.manufacturer != ''">manufacturer,</if>
<if test="params.manufactureDate != null and params.manufactureDate != ''">manufacture_date,</if>
<if test="params.devModule != null and params.devModule != ''">dev_module,</if>
<if test="params.devStatus != null and params.devStatus != ''">dev_status,</if>
<if test="params.devData != null and params.devData != ''">dev_data,</if>
<if test="params.amount != null and params.amount != ''">amount,</if>
<if test="params.remarks != null and params.remarks != ''">remarks,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.devCode != null and params.devCode!=''">#{params.devCode},</if>
<if test="params.manufacturer != null and params.manufacturer != ''">#{params.manufacturer},</if>
<if test="params.manufactureDate != null and params.manufactureDate != ''">#{params.manufactureDate},</if>
<if test="params.devModule != null and params.devModule != ''">#{params.devModule},</if>
<if test="params.devStatus != null and params.devStatus != ''">#{params.devStatus},</if>
<if test="params.devData != null and params.devData != ''">#{params.devData},</if>
<if test="params.amount != null and params.amount != ''">#{params.amount},</if>
<if test="params.remarks != null and params.remarks != ''">#{params.remarks},</if>
null
</trim>
</insert>
<!--添加设备试验项信息-->
<insert id="addExperDevItems" useGeneratedKeys="true" keyProperty="id">
INSERT INTO tb_exper_dev_items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="devId != null">dev_id,</if>
<if test="itemsId != null">items_id,</if>
<if test="itemsName != null and itemsName != ''">items_name,</if>
<if test="valSort != null">val_sort,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="devId != null">#{devId},</if>
<if test="itemsId != null">#{itemsId},</if>
<if test="itemsName != null and itemsName != ''">#{itemsName},</if>
<if test="valSort != null">#{valSort},</if>
null
</trim>
</insert>
<!--添加设备试验项数据-->
<insert id="addExperDevItem">
INSERT INTO tb_exper_dev_item (id,items_id,item_id,dev_id,item_name,item_val) VALUES
<foreach collection="experDevItemVos" separator="," item="item">
(
null,#{item.itemsId},#{item.itemId},#{item.devId},#{item.itemName},#{item.itemVal}
)
</foreach>
</insert>
<!--添加试验设备数据-->
<insert id="addExperConfigDev">
INSERT INTO tb_exper_config_dev(id,dev_type_code,dev_type_name,exper_id,dev_name,dev_id) VALUES
<foreach collection="list" separator="," item="item">
(
null,#{item.devTypeCode},#{item.devTypeName},#{experId},#{item.devName},#{item.devId}
)
</foreach>
</insert>
<!--修改试验信息数据-->
<update id="updateExper">
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}
</update>
<!--删除试验依据-->
<delete id="delConfigBasis">
DELETE FROM tb_config_basis WHERE exper_id = #{id}
</delete>
<!--删除试验设备-->
<delete id="delExperConfigDev">
DELETE FROM tb_exper_config_dev WHERE exper_id = #{id}
</delete>
<!--删除试验样品设备-->
<delete id="delExperDev">
DELETE FROM tb_exper_dev WHERE exper_id = #{id}
</delete>
<!--删除设备试验项信息-->
<delete id="delExperDevItems">
DELETE FROM tb_exper_dev_items
WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--删除设备试验项数据-->
<delete id="delExperDevItem">
DELETE FROM tb_exper_dev_item
WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--删除试验信息-->
<delete id="delExper">
UPDATE tb_exper SET del_flag = 1 WHERE id = #{id}
</delete>
<!--删除试验项-->
<delete id="delExperItems">
DELETE FROM tb_exper_items WHERE exper_id = #{id}
</delete>
<!--删除试验项内容-->
<delete id="delExperItem">
DELETE FROM tb_exper_item WHERE items_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--试验列表-->
<select id="getList" resultType="com.bonus.aqgqj.basis.entity.vo.ExperimentalVo">
@ -115,8 +268,8 @@
</select>
<!--试验详情列表-->
<select id="getDetailList" resultType="com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo">
SELECT sample_id AS sampleId,
dev_type_name AS devTypeName,
SELECT ANY_VALUE(sample_id) AS sampleId,
any_value(dev_type_name) AS devTypeName,
dev_type_code AS devTypeCode
FROM tb_sample_device
WHERE sample_id = #{id} AND del_falg = 0
@ -138,7 +291,13 @@
a.exper_local AS experLocal
FROM tb_sample ts
LEFT JOIN (
SELECT tsd.dev_type_code,tsc.dev_type_name,tsc.dev_module,tsc.exper_local_code,tsc.exper_local,tsc.id,tsd.sample_id
SELECT tsd.dev_type_code,
ANY_VALUE(tsc.dev_type_name) AS dev_type_name,
ANY_VALUE(tsc.dev_module) AS dev_module,
ANY_VALUE(tsc.exper_local_code) AS exper_local_code,
ANY_VALUE(tsc.exper_local) AS exper_local,
ANY_VALUE(tsc.id) AS id,
ANY_VALUE(tsd.sample_id) AS sample_id
FROM tb_sample_device tsd
LEFT JOIN tb_exper_config tsc ON tsc.dev_type_code = tsd.dev_type_code AND tsc.del_flag = 0
WHERE tsd.sample_id = #{id} AND tsd.del_falg = 0 AND tsd.dev_type_code = #{devTypeCode}
@ -146,4 +305,109 @@
) a ON a.sample_id = ts.id
WHERE ts.id = #{id} AND del_flag = 0
</select>
<!--查询收样设备-根据设备类型-->
<select id="getSampleDeviceVos" resultType="com.bonus.aqgqj.basis.entity.vo.SampleDeviceVo">
SELECT id,
dev_code AS devCode,
dev_module AS devModule,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName
FROM tb_sample_device
WHERE sample_id = #{id}
AND dev_type_code = #{devTypeCode}
AND del_falg = 0
</select>
<!--试验数据详情-->
<select id="viewTestData" resultType="com.bonus.aqgqj.basis.entity.vo.TestVo">
SELECT id,
sample_id AS sampleId,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName,
dev_num AS sampleQuantity,
dev_module AS devModule,
sample_date AS sampleDate,
DATE_FORMAT(exper_time, '%Y-%m-%d') AS experTime,
DATE_FORMAT(next_exper_time, '%Y-%m-%d') AS nextExperTime,
submit_unit AS customId,
submit_location AS experLocal,
exper_dev AS experDev,
exper_module AS experModule,
exper_code AS experCode,
DATE_FORMAT(check_time, '%Y-%m-%d') AS checkTime,
exper_stand AS experStand,
exper_conclu AS experConclu,
remarsk AS remarsk
FROM tb_exper te
WHERE te.id = #{id}
</select>
<!--试验依据信息-->
<select id="getConfigBasis" resultType="com.bonus.aqgqj.basis.entity.vo.ExperBasisVo">
SELECT id,
exper_id AS configId,
exper_basis_name AS basisName
FROM tb_config_basis WHERE exper_id = #{id}
</select>
<!--试验设备信息-->
<select id="getExperConfigDevs" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigDevVo">
SELECT id,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName,
exper_id AS configId,
dev_name AS devName,
dev_id AS devId
FROM tb_exper_config_dev
WHERE exper_id = #{id}
</select>
<!--试验项信息-->
<select id="getExperItems" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigItemsVo">
SELECT id,
exper_type_code AS experTypeCode,
exper_type_name AS experTypeName,
exper_num AS experNum,
items_sort AS itemsSort,
amount
FROM tb_exper_items
WHERE exper_id = #{id}
ORDER BY items_sort
</select>
<!--试验项内容信息-->
<select id="getExperItem" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigItemVo">
SELECT id,
items_id AS itemId,
item_sort AS itemNum,
item_name AS itemName
FROM tb_exper_item
WHERE items_id = #{id}
ORDER BY item_sort
</select>
<!--试验样品设备-->
<select id="getExperDev" resultType="com.bonus.aqgqj.basis.entity.vo.ExperDevVo">
SELECT id,
exper_id AS experId,
dev_code AS devCode,
manufacturer,
manufacture_date AS manufactureDate,
dev_module AS devModule,
dev_status AS devStatus,
dev_data AS devData,
amount,
remarks
FROM tb_exper_dev
WHERE exper_id = #{id}
</select>
<!--获取试验样品设备ID-->
<select id="getExperDevIds" resultType="java.lang.Long">
SELECT id FROM tb_exper_dev WHERE exper_id = #{id}
</select>
<!--获取试验样品设备ID-->
<select id="getExperDevItems" resultType="java.lang.Long">
SELECT id FROM tb_exper_dev_items WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<!--查询试验项ID-->
<select id="getExperItemsIds" resultType="java.lang.Long">
SELECT id FROM tb_exper_items WHERE exper_id = #{id}
</select>
</mapper>