试验管理

This commit is contained in:
cwchen 2024-07-22 16:36:12 +08:00
parent c3461adfcf
commit 5caf797220
3 changed files with 48 additions and 14 deletions

View File

@ -365,10 +365,30 @@ public interface ExperimentalMapper {
/**
* 更新试验表中数据为待审阅
*
* @param list
* @return void
* @author cwchen
* @date 2024/7/22 15:33
*/
void updateExperStatus(List<Long> list);
/**
* 获取收样中的试验项是否全部填写
*
* @param sampleId
* @return List<Integer>
* @author cwchen
* @date 2024/7/22 16:09
*/
List<Integer> isAllExper(Long sampleId);
/**
* 更新收样表中的状态为待提交
* @param id
* @return void
* @author cwchen
* @date 2024/7/22 16:24
*/
void editSampleStatus(Long id);
}

View File

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

View File

@ -176,7 +176,7 @@
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>
<!--更新收样表中的状态为待审阅-->
@ -195,6 +195,10 @@
#{item}
</foreach>
</update>
<!--更新收样表中的状态为待提交-->
<update id="editSampleStatus">
UPDATE tb_sample SET process_status = 1 WHERE id = #{id}
</update>
<!--删除试验依据-->
<delete id="delConfigBasis">
DELETE FROM tb_config_basis WHERE exper_id = #{id}
@ -268,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
@ -327,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,
@ -462,10 +467,10 @@
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)
)
</select>
<!--判断提交数据中是否存在流程数据或者存在待试验项-->
@ -484,4 +489,12 @@
(audti_status = 1 AND process_status = 4)
)
</select>
<!--获取收样中的试验项是否全部填写-->
<select id="isAllExper" resultType="java.lang.Integer">
SELECT COUNT(DISTINCT dev_type_code)
FROM tb_sample_device
WHERE sample_id = #{sampleId} AND del_falg = 0
UNION ALL
SELECT COUNT(*) FROM tb_exper WHERE sample_id = #{sampleId} AND status = 0 AND audit_status = 0 AND del_flag = 0
</select>
</mapper>