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 33e01ae..8d0fe4e 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java @@ -335,10 +335,60 @@ public interface ExperimentalMapper { /** * 判断是否处于审核流程中的数据 + * * @param id * @return int * @author cwchen * @date 2024/7/22 14:13 */ int isCheck(Long id); + + /** + * 判断提交数据中是否存在流程数据或者存在待试验项 + * + * @param list + * @return int + * @author cwchen + * @date 2024/7/22 15:24 + */ + int isNotEditData(List list); + + /** + * 更新收样表中的状态为待审阅 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 15:33 + */ + void updateSampleStatus(List list); + + /** + * 更新试验表中数据为待审阅 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 15:33 + */ + void updateExperStatus(List list); + + /** + * 获取收样中的试验项是否全部填写 + * + * @param sampleId + * @return List + * @author cwchen + * @date 2024/7/22 16:09 + */ + List isAllExper(Long sampleId); + + /** + * 更新收样表中的状态为待提交 + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 16:24 + */ + void editSampleStatus(Long id); } 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 0b94c9d..6ac7b20 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 @@ -20,10 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @className:ExperimentalServiceImpl @@ -172,9 +169,13 @@ public class ExperimentalServiceImpl implements ExperimentalService { // 添加设备试验项数据 mapper.addExperDevItem(experDevItemVos); } - } - + // 获取收样中的试验项是否全部填写 + List resultList = mapper.isAllExper(vo.getSampleId()); + if(Objects.equals(resultList.get(0),resultList.get(1))){ + // 更新收样表中的状态为待提交 + mapper.editSampleStatus(vo.getId()); + } } catch (Exception e) { log.error(e.toString(), e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -193,7 +194,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { // 处于审核流程中的数据无法进行修改 int isCheck = mapper.isCheck(vo.getId()); if(isCheck > 0){ - return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "处于审核流程中的数据无法进行修改"); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "处于审核流程中的数据或者试验完成的数据无法进行修改"); } // 整体数据校验数据 String validResult = validatorsUtils.valid(vo, TestVo.Query.class); @@ -307,10 +308,20 @@ public class ExperimentalServiceImpl implements ExperimentalService { @Transactional(rollbackFor = Exception.class) public ServerResponse commitCheckTestData(ParamsDto dto) { try { + // 判断是否提交空数据 if(dto.getIds() == null || dto.getIds().length == 0){ return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"未提交审查数据"); } - + // 判断提交数据中是否存在流程数据或者存在待试验项 + List list = Arrays.asList(dto.getIds()); + int result = mapper.isNotEditData(list); + if(result > 0){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"提交数据中存在待试验项或处于审核流程或已试验结束"); + } + // 更新收样表中的状态为待审阅 + mapper.updateSampleStatus(list); + // 更新试验表中数据为待审阅 + mapper.updateExperStatus(list); } catch (Exception e) { log.error(e.toString(), e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index c5a792d..e89ee7c 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -176,9 +176,29 @@ 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_code = #{experCode},check_time = #{checkTime},update_time = #{updateTime},update_user = #{updateUser},exper_stand = #{experStand}, exper_conclu = #{experConclu},remarsk = #{remarsk} WHERE id = #{id} + + + UPDATE tb_sample SET audti_status = 0,process_status = 1 + WHERE id IN + + #{item} + + + + + UPDATE tb_exper SET status = 1,audit_status = 0 + WHERE sample_id IN + + #{item} + + + + + UPDATE tb_sample SET process_status = 1 WHERE id = #{id} + DELETE FROM tb_config_basis WHERE exper_id = #{id} @@ -252,7 +272,7 @@ LEFT JOIN sys_user su2 ON ts.update_user = su2.id AND su2.del_flag = 0 LEFT JOIN tb_team tt ON ts.team_id = tt.id AND tt.del_flag = 0 LEFT JOIN ( - SELECT sample_id,COUNT(sample_id) AS num,GROUP_CONCAT(DISTINCT dev_type_name) AS sampleDev,GROUP_CONCAT(DISTINCT dev_type_code) AS sampleDevCode + SELECT sample_id,COUNT(sample_id) AS num,ANY_VALUE(GROUP_CONCAT(DISTINCT dev_type_name)) AS sampleDev,ANY_VALUE(GROUP_CONCAT(DISTINCT dev_type_code)) AS sampleDevCode FROM tb_sample_device WHERE del_falg = 0 GROUP BY sample_id @@ -311,7 +331,8 @@ a.dev_type_name AS devTypeName, a.dev_module AS devModule, a.exper_local_code AS experLocalCode, - a.exper_local AS experLocal + a.exper_local AS experLocal, + ts.id FROM tb_sample ts LEFT JOIN ( SELECT tsd.dev_type_code, @@ -446,10 +467,34 @@ SELECT COUNT(*) FROM tb_exper WHERE id = #{id} AND del_flag = 0 AND ( - (status = 0 AND audit_status = 0) OR - (status = 1 AND audit_status = 2) OR - (status = 2 AND audit_status = 3) OR - (status = 3 AND audit_status = 4) + (status = 1 AND audit_status = 0) OR + (status = 2 AND audit_status = 0) OR + (status = 3 AND audit_status = 0) OR + (status = 4 AND audit_status = 1) ) + + + +