Merge remote-tracking branch 'origin/master'

This commit is contained in:
lSun 2024-07-22 16:50:21 +08:00
commit 2b18add1ec
3 changed files with 121 additions and 15 deletions

View File

@ -335,10 +335,60 @@ public interface ExperimentalMapper {
/** /**
* 判断是否处于审核流程中的数据 * 判断是否处于审核流程中的数据
*
* @param id * @param id
* @return int * @return int
* @author cwchen * @author cwchen
* @date 2024/7/22 14:13 * @date 2024/7/22 14:13
*/ */
int isCheck(Long id); int isCheck(Long id);
/**
* 判断提交数据中是否存在流程数据或者存在待试验项
*
* @param list
* @return int
* @author cwchen
* @date 2024/7/22 15:24
*/
int isNotEditData(List<Long> list);
/**
* 更新收样表中的状态为待审阅
*
* @param list
* @return void
* @author cwchen
* @date 2024/7/22 15:33
*/
void updateSampleStatus(List<Long> list);
/**
* 更新试验表中数据为待审阅
*
* @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 org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/** /**
* @className:ExperimentalServiceImpl * @className:ExperimentalServiceImpl
@ -172,9 +169,13 @@ public class ExperimentalServiceImpl implements ExperimentalService {
// 添加设备试验项数据 // 添加设备试验项数据
mapper.addExperDevItem(experDevItemVos); 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) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@ -193,7 +194,7 @@ public class ExperimentalServiceImpl implements ExperimentalService {
// 处于审核流程中的数据无法进行修改 // 处于审核流程中的数据无法进行修改
int isCheck = mapper.isCheck(vo.getId()); int isCheck = mapper.isCheck(vo.getId());
if(isCheck > 0){ if(isCheck > 0){
return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "处于审核流程中的数据无法进行修改"); return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "处于审核流程中的数据或者试验完成的数据无法进行修改");
} }
// 整体数据校验数据 // 整体数据校验数据
String validResult = validatorsUtils.valid(vo, TestVo.Query.class); String validResult = validatorsUtils.valid(vo, TestVo.Query.class);
@ -307,10 +308,20 @@ public class ExperimentalServiceImpl implements ExperimentalService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ServerResponse commitCheckTestData(ParamsDto dto) { public ServerResponse commitCheckTestData(ParamsDto dto) {
try { try {
// 判断是否提交空数据
if(dto.getIds() == null || dto.getIds().length == 0){ if(dto.getIds() == null || dto.getIds().length == 0){
return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"未提交审查数据"); return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"未提交审查数据");
} }
// 判断提交数据中是否存在流程数据或者存在待试验项
List<Long> 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) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

View File

@ -176,9 +176,29 @@
UPDATE tb_exper SET dev_type_code = #{devTypeCode},dev_type_name = #{devTypeName},dev_num = #{sampleQuantity}, 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}, 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}, 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} exper_conclu = #{experConclu},remarsk = #{remarsk} WHERE id = #{id}
</update> </update>
<!--更新收样表中的状态为待审阅-->
<update id="updateSampleStatus">
UPDATE tb_sample SET audti_status = 0,process_status = 1
WHERE id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<!--更新试验表中数据为待审阅-->
<update id="updateExperStatus">
UPDATE tb_exper SET status = 1,audit_status = 0
WHERE sample_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<!--更新收样表中的状态为待提交-->
<update id="editSampleStatus">
UPDATE tb_sample SET process_status = 1 WHERE id = #{id}
</update>
<!--删除试验依据--> <!--删除试验依据-->
<delete id="delConfigBasis"> <delete id="delConfigBasis">
DELETE FROM tb_config_basis WHERE exper_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 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 tb_team tt ON ts.team_id = tt.id AND tt.del_flag = 0
LEFT JOIN ( 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 FROM tb_sample_device
WHERE del_falg = 0 WHERE del_falg = 0
GROUP BY sample_id GROUP BY sample_id
@ -311,7 +331,8 @@
a.dev_type_name AS devTypeName, a.dev_type_name AS devTypeName,
a.dev_module AS devModule, a.dev_module AS devModule,
a.exper_local_code AS experLocalCode, a.exper_local_code AS experLocalCode,
a.exper_local AS experLocal a.exper_local AS experLocal,
ts.id
FROM tb_sample ts FROM tb_sample ts
LEFT JOIN ( LEFT JOIN (
SELECT tsd.dev_type_code, SELECT tsd.dev_type_code,
@ -446,10 +467,34 @@
SELECT COUNT(*) SELECT COUNT(*)
FROM tb_exper FROM tb_exper
WHERE id = #{id} AND del_flag = 0 AND ( WHERE id = #{id} AND del_flag = 0 AND (
(status = 0 AND audit_status = 0) OR (status = 1 AND audit_status = 0) OR
(status = 1 AND audit_status = 2) OR (status = 2 AND audit_status = 0) OR
(status = 2 AND audit_status = 3) OR (status = 3 AND audit_status = 0) OR
(status = 3 AND audit_status = 4) (status = 4 AND audit_status = 1)
) )
</select> </select>
<!--判断提交数据中是否存在流程数据或者存在待试验项-->
<select id="isNotEditData" resultType="java.lang.Integer">
SELECT COUNT(*) FROM tb_sample
WHERE id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
AND del_flag = 0
AND (
process_status IS NULL
(audti_status = 0 AND process_status = 1) OR
(audti_status = 0 AND process_status = 2) OR
(audti_status = 0 AND process_status = 3) OR
(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> </mapper>