2024-07-23 09:52:00 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
< !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace= "com.bonus.aqgqj.basis.dao.ExamineMapper" >
2024-07-24 21:04:20 +08:00
<!-- 添加审核数据 -->
<insert id= "checkData" >
INSERT INTO tb_audit_history(id,exper_id,audit_time,audit_user_id,audit_user_name,audit_status,audit_remark,audit_type) VALUES
(null,#{experId},#{auditTime},#{auditUserId},#{auditUserName},#{auditStatus},#{auditRemark},#{auditType})
</insert>
2024-07-25 10:38:34 +08:00
<!-- 更新试验信息表审核状态 -->
<update id= "updateExperStatus" >
UPDATE tb_exper SET status = #{status},audit_status = #{auditStatus},audit_user_name = #{params.auditUserName},audit_time = #{params.auditTime},audit_remakr = #{params.auditRemark}
2024-07-25 13:26:00 +08:00
WHERE id = #{params.experId}
2024-07-25 10:38:34 +08:00
</update>
<!-- 更新收样信息审核的状态 -->
<update id= "updateSampleStatus" >
UPDATE tb_sample SET audti_status = #{audtiStatus},process_status = #{processStatus} WHERE id = #{params.sampleId}
</update>
2024-07-23 09:52:00 +08:00
2024-07-23 13:42:23 +08:00
<!-- 试验审查列表 -->
<select id= "getList" resultType= "com.bonus.aqgqj.basis.entity.vo.ExperimentalVo" >
SELECT ts.id,
tc.custom_name AS customName,
DATE_FORMAT(ts.sample_time, '%Y-%m-%d') AS sampleTime,
IFNULL(tsd.num,0) AS customNum,
tsd.sampleDev,
su.user_name AS sampleUserName,
su2.user_name AS dispatchUserName,
DATE_FORMAT(ts.sample_date, '%Y-%m-%d') AS sampleDate,
tt.team_name AS teamName,
2024-07-23 19:29:04 +08:00
ts.process_status AS status,
2024-07-24 15:41:57 +08:00
<if test= "roleCode == 'experimentalTeamLeader'" >
CASE WHEN process_status = 1 AND audti_status = 0 THEN '待审阅'
2024-07-23 13:42:23 +08:00
END AS audtiStatus,
</if>
<if test= "roleCode == 'technicalDirector'" >
2024-07-24 15:41:57 +08:00
CASE WHEN process_status = 2 AND audti_status = 0 THEN '待审核'
2024-07-23 13:42:23 +08:00
END AS audtiStatus,
</if>
<if test= "roleCode=='centerManager'" >
2024-07-24 15:41:57 +08:00
CASE WHEN process_status = 3 AND audti_status = 0 THEN '待审批'
2024-07-23 13:42:23 +08:00
END AS audtiStatus,
</if>
<if test= "roleCode == 'administrators'" >
CASE WHEN process_status = 1 AND audti_status = 0 THEN '待审阅'
WHEN process_status = 2 AND audti_status = 0 THEN '待审核'
WHEN process_status = 3 AND audti_status = 0 THEN '待审批'
END AS audtiStatus,
</if>
ts.remarks
FROM tb_sample ts
LEFT JOIN tb_custom tc ON ts.custom_id = tc.id
LEFT JOIN sys_user su ON ts.create_user = su.id AND su.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 (
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
) tsd ON tsd.sample_id = ts.id
WHERE ts.del_flag = 0
<if test= "keyWord != null and keyWord!=''" >
AND (
INSTR(tt.team_name,#{keyWord}) > 0 OR
INSTR(su2.user_name,#{keyWord}) > 0
)
</if>
<if test= "sampleUserName != null and sampleUserName!=''" >
AND INSTR(su.user_name,#{sampleUserName}) > 0
</if>
<if test= "startTime != null and endTime!=''" >
AND DATE_FORMAT(ts.sample_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if>
<if test= "devTypeCode != null and devTypeCode!=''" >
AND INSTR(tsd.sampleDevCode,#{devTypeCode})
</if>
/*管理员、技术负责人、中心负责人查询全部数据*/
2024-07-23 14:54:16 +08:00
<if test= "roleCode != 'administrators' and roleCode != 'technicalDirector' and roleCode != 'centerManager' and roleCode == 'experimentalTeamLeader'" >
2024-07-23 13:42:23 +08:00
/*试验班组-班组长审阅-只审阅本班组提交的审阅*/
2024-07-23 14:54:16 +08:00
<if test= "teamId != null" >
2024-07-23 13:42:23 +08:00
AND ts.team_id = #{teamId}
</if>
2024-07-23 14:54:16 +08:00
<if test= "teamId ==null" >
2024-07-23 13:42:23 +08:00
AND ts.team_id = -1
</if>
</if>
2024-07-23 19:29:04 +08:00
/*非管理员、非技术负责人、非中心负责人、非试验班组长无审查数据权限*/
<if test= "roleCode != 'administrators' and roleCode != 'technicalDirector' and roleCode != 'centerManager' and roleCode != 'experimentalTeamLeader'" >
2024-07-23 13:42:23 +08:00
AND ts.team_id = -1
</if>
/*班组长-审阅*/
2024-07-24 15:53:41 +08:00
<if test= "roleCode == 'experimentalTeamLeader'" >
2024-07-23 13:42:23 +08:00
AND process_status = 1 AND audti_status = 0
</if>
/*技术负责人-审核*/
<if test= "roleCode == 'technicalDirector'" >
AND process_status = 2 AND audti_status = 0
</if>
/*中心负责人-审批*/
<if test= "roleCode=='centerManager'" >
AND process_status = 3 AND audti_status = 0
</if>
/*管理员*/
<if test= "roleCode=='administrators'" >
AND process_status IN (1,2,3) AND audti_status = 0
</if>
2024-07-25 13:00:29 +08:00
ORDER BY FIELD(audtiStatus, '待审阅','待审核','待审批') ASC,ts.sample_date DESC
2024-07-23 13:42:23 +08:00
</select>
2024-07-23 19:29:04 +08:00
<!-- 审查详情列表 -->
<select id= "getDetailList" resultType= "com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo" >
SELECT ANY_VALUE(tsd.sample_id) AS sampleId,
ANY_VALUE(tsd.dev_type_name) AS devTypeName,
tsd.dev_type_code AS devTypeCode,
ANY_VALUE(te.id) AS experId,
COUNT(tsd.dev_type_code) AS sampleNum,
ANY_VALUE(te.audit_remakr) AS causeOfRejection,
ANY_VALUE(su2.user_name) AS experimenter,
ANY_VALUE(DATE_FORMAT(te.update_time, '%Y-%m-%d')) AS testTime,
CASE WHEN ANY_VALUE(te.status) = 0 AND ANY_VALUE(te.audit_status) = 0 THEN '待提交'
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 0 THEN '待审阅'
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 2 THEN '审阅不通过'
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 0 THEN '待审核'
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 3 THEN '审核不通过'
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 0 THEN '待审批'
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 4 THEN '审批不通过'
WHEN ANY_VALUE(te.status) = 4 AND ANY_VALUE(te.audit_status) = 1 THEN '试验完成'
ELSE '待试验'
END AS status
FROM tb_sample_device tsd
LEFT JOIN tb_exper te ON tsd.sample_id = te.sample_id AND tsd.dev_type_code = te.dev_type_code AND te.del_flag = 0
LEFT JOIN sys_user su2 ON te.update_user = su2.id AND su2.del_flag = 0
WHERE tsd.sample_id = #{id} AND tsd.del_falg = 0
<if test= "devTypeCode != null and devTypeCode!=''" >
AND INSTR(tsd.dev_type_code,#{devTypeCode})
</if>
<if test= "startTime != null and endTime!=''" >
AND DATE_FORMAT(te.update_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if>
<if test= "keyWord != null and keyWord!=''" >
AND (
INSTR(su2.user_name,#{keyWord}) > 0
)
</if>
GROUP BY tsd.dev_type_code
</select>
<!-- 查询试验设备数量 -->
<select id= "getExperDevItemsNum" resultType= "java.util.Map" >
SELECT dev_code AS devCode,
case is_hg WHEN '1' THEN '不合格'
WHEN '0' THEN '合格'
ELSE '不合格' END AS testResult
FROM tb_exper_dev
WHERE exper_id = #{experId}
</select>
2024-07-25 10:38:34 +08:00
<!-- 查询试验项是否都是通过 -->
<select id= "getExperIsPass" resultType= "java.lang.Integer" >
SELECT COUNT(*) FROM tb_exper WHERE sample_id = #{sampleId} AND del_flag = 0
UNION ALL
SELECT COUNT(*) FROM tb_exper WHERE sample_id = #{sampleId} AND del_flag = 0
<if test= "auditType == 1" >
AND status = 2 AND audit_status = 0
</if>
<if test= "auditType == 2" >
AND status = 3 AND audit_status = 0
</if>
<if test= "auditType == 3" >
AND status = 4 AND audit_status = 1
</if>
UNION ALL
SELECT COUNT(*) FROM tb_exper WHERE sample_id = #{sampleId} AND del_flag = 0
<if test= "auditType == 1" >
AND status = 1 AND audit_status = 2
</if>
<if test= "auditType == 2" >
AND status = 2 AND audit_status = 3
</if>
<if test= "auditType == 3" >
AND status = 3 AND audit_status = 4
</if>
</select>
2024-07-23 09:52:00 +08:00
</mapper>