Files
smart_management/src/main/resources/mybatis/wisdom/AuditSignatureMapper.xml

311 lines
14 KiB
XML
Raw Normal View History

2025-07-14 09:28:10 +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.zg.project.wisdom.mapper.AuditSignatureMapper">
2025-07-16 11:03:25 +08:00
<!-- 主记录映射 -->
<resultMap type="com.zg.project.wisdom.domain.AuditSignature" id="AuditSignatureResult">
<result property="id" column="id" />
<result property="billNo" column="bill_no" />
<result property="rkId" column="rk_id" />
<result property="billType" column="bill_type" />
<result property="signerId" column="signer_id" />
<result property="signerRole" column="signer_role" />
<result property="signUrl" column="sign_url" />
<result property="signTime" column="sign_time" />
<result property="pcode" column="pcode" />
<result property="trayCode" column="tray_code" />
<result property="approverId" column="approver_id" />
<result property="approverSignUrl" column="approver_sign_url" />
<result property="auditResult" column="audit_result" />
<result property="imageType" column="image_type" />
<result property="isCurrent" column="is_current" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="isDelete" column="is_delete" />
</resultMap>
<!-- VO对象映射带扩展字段 -->
<resultMap id="AuditSignatureVoResult"
type="com.zg.project.wisdom.domain.vo.AuditSignatureVo"
extends="AuditSignatureResult">
<result column="xmNo" property="xmNo"/>
<result column="xmMs" property="xmMs"/>
<result column="wlMs" property="wlMs"/>
<result column="gysMc" property="gysMc"/>
<result column="wlNo" property="wlNo"/>
<result column="realQty" property="realQty"/>
<result column="dw" property="dw"/>
<result column="pcode" property="pcode"/>
<result column="rkRemark" property="rkRemark"/>
2025-07-14 09:28:10 +08:00
</resultMap>
<sql id="selectAuditSignatureVo">
select id, bill_no, bill_type, signer_id, signer_role, sign_url, sign_time, pcode, tray_code, approver_id, approver_sign_url, audit_result, image_type, is_current, remark, create_by, create_time, update_by, update_time, is_delete from audit_signature
</sql>
<select id="selectAuditSignatureList" parameterType="AuditSignature" resultMap="AuditSignatureResult">
<include refid="selectAuditSignatureVo"/>
<where>
<if test="billNo != null and billNo != ''"> and bill_no = #{billNo}</if>
<if test="billType != null and billType != ''"> and bill_type = #{billType}</if>
<if test="signerId != null and signerId != ''"> and signer_id = #{signerId}</if>
<if test="signerRole != null and signerRole != ''"> and signer_role = #{signerRole}</if>
<if test="signUrl != null and signUrl != ''"> and sign_url = #{signUrl}</if>
<if test="signTime != null "> and sign_time = #{signTime}</if>
<if test="pcode != null and pcode != ''"> and pcode = #{pcode}</if>
<if test="trayCode != null and trayCode != ''"> and tray_code = #{trayCode}</if>
<if test="approverId != null and approverId != ''"> and approver_id = #{approverId}</if>
<if test="approverSignUrl != null and approverSignUrl != ''"> and approver_sign_url = #{approverSignUrl}</if>
<if test="auditResult != null and auditResult != ''"> and audit_result = #{auditResult}</if>
<if test="imageType != null and imageType != ''"> and image_type = #{imageType}</if>
<if test="isCurrent != null and isCurrent != ''"> and is_current = #{isCurrent}</if>
<if test="isDelete != null and isDelete != ''"> and is_delete = #{isDelete}</if>
</where>
</select>
<select id="selectAuditSignatureById" parameterType="Long" resultMap="AuditSignatureResult">
<include refid="selectAuditSignatureVo"/>
where id = #{id}
</select>
<select id="selectPendingByUser" resultMap="AuditSignatureResult">
SELECT
id, bill_no, bill_type, signer_id, signer_role, sign_url, sign_time,
pcode, tray_code, approver_id, approver_sign_url, audit_result,
image_type, is_current, remark, create_by, create_time, update_by,
update_time, is_delete
FROM audit_signature
WHERE is_delete = '0'
AND approver_id = #{userId}
AND audit_result IS NULL
</select>
<select id="existsCurrentSigner" resultType="boolean">
SELECT COUNT(1)
FROM audit_signature
WHERE bill_no = #{billNo}
AND signer_role = #{signerRole}
AND is_current = '1'
AND is_delete = '0'
</select>
2025-07-16 11:03:25 +08:00
<select id="selectPhotoUrlByRkId"
resultMap="AuditSignatureResult"
parameterType="java.lang.Long">
SELECT sign_url, audit_result
FROM audit_signature
WHERE is_delete = '0'
AND rk_id = #{rkId}
AND image_type = '1'
ORDER BY create_time DESC
LIMIT 1
</select>
<!-- 查询主记录列表(审批记录) signer_role=1 image_type=0 -->
<select id="selectAuditMainList" parameterType="com.zg.project.wisdom.domain.AuditSignature" resultMap="AuditSignatureResult">
SELECT * FROM audit_signature
<where>
AND signer_role = '0'
AND image_type = '0'
<if test="billNo != null and billNo != ''">AND bill_no = #{billNo}</if>
<if test="billType != null and billType != ''">AND bill_type = #{billType}</if>
<if test="auditResult != null and auditResult != ''">AND audit_result = #{auditResult}</if>
<if test="approverId != null and approverId != ''">AND approver_id = #{approverId}</if>
<if test="isDelete != null and isDelete != ''">AND is_delete = #{isDelete}</if>
</where>
</select>
<!-- 查询关联入库信息的现场照片 -->
<select id="selectScenePhotosWithGoodsByBillNo"
parameterType="String"
resultMap="AuditSignatureVoResult">
SELECT
a.id,
a.rk_id,
a.bill_no,
a.sign_url,
a.sign_time,
a.signer_role,
a.image_type,
a.tray_code,
a.is_delete,
a.remark AS remark,
r.xm_no AS xmNo,
r.xm_ms AS xmMs,
r.wl_ms AS wlMs,
r.gys_mc AS gysMc,
r.wl_no AS wlNo,
r.real_qty AS realQty,
r.dw AS dw,
r.pcode AS pcode,
r.remark AS rkRemark
FROM audit_signature a
LEFT JOIN rk_info r ON a.rk_id = r.id
WHERE a.bill_no = #{billNo}
AND a.signer_role = '2'
AND a.image_type = '1'
AND a.is_delete = '0'
</select>
<select id="selectAuditMainListBySubmitter" parameterType="AuditSignature" resultMap="AuditSignatureResult">
<include refid="selectAuditSignatureVo"/>
<where>
and signer_id = #{signerId}
and signer_role in ('0', '2')
and image_type = '0'
and is_delete = '0'
<if test="billNo != null and billNo != ''"> and bill_no = #{billNo}</if>
<if test="billType != null and billType != ''"> and bill_type = #{billType}</if>
</where>
</select>
2025-07-14 09:28:10 +08:00
<insert id="insertAuditSignature" parameterType="AuditSignature" useGeneratedKeys="true" keyProperty="id">
insert into audit_signature
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="billNo != null and billNo != ''">bill_no,</if>
<if test="billType != null and billType != ''">bill_type,</if>
<if test="signerId != null">signer_id,</if>
<if test="signerRole != null">signer_role,</if>
<if test="signUrl != null">sign_url,</if>
<if test="signTime != null">sign_time,</if>
<if test="pcode != null">pcode,</if>
<if test="trayCode != null">tray_code,</if>
<if test="approverId != null">approver_id,</if>
<if test="approverSignUrl != null">approver_sign_url,</if>
<if test="auditResult != null">audit_result,</if>
<if test="imageType != null">image_type,</if>
<if test="isCurrent != null">is_current,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="isDelete != null">is_delete,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="billNo != null and billNo != ''">#{billNo},</if>
<if test="billType != null and billType != ''">#{billType},</if>
<if test="signerId != null">#{signerId},</if>
<if test="signerRole != null">#{signerRole},</if>
<if test="signUrl != null">#{signUrl},</if>
<if test="signTime != null">#{signTime},</if>
<if test="pcode != null">#{pcode},</if>
<if test="trayCode != null">#{trayCode},</if>
<if test="approverId != null">#{approverId},</if>
<if test="approverSignUrl != null">#{approverSignUrl},</if>
<if test="auditResult != null">#{auditResult},</if>
<if test="imageType != null">#{imageType},</if>
<if test="isCurrent != null">#{isCurrent},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="isDelete != null">#{isDelete},</if>
</trim>
</insert>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO audit_signature (
bill_no,
bill_type,
signer_id,
signer_role,
sign_url,
sign_time,
image_type,
approver_id,
is_current,
is_delete,
create_by,
2025-07-16 11:03:25 +08:00
create_time,
rk_id
2025-07-14 09:28:10 +08:00
)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.billNo},
#{item.billType},
#{item.signerId},
#{item.signerRole},
#{item.signUrl},
#{item.signTime},
#{item.imageType},
#{item.approverId},
#{item.isCurrent},
#{item.isDelete},
#{item.createBy},
2025-07-16 11:03:25 +08:00
#{item.createTime},
#{item.rkId}
2025-07-14 09:28:10 +08:00
)
</foreach>
</insert>
<update id="updateAuditSignature" parameterType="AuditSignature">
update audit_signature
<trim prefix="SET" suffixOverrides=",">
<if test="billNo != null and billNo != ''">bill_no = #{billNo},</if>
<if test="billType != null and billType != ''">bill_type = #{billType},</if>
<if test="signerId != null">signer_id = #{signerId},</if>
<if test="signerRole != null">signer_role = #{signerRole},</if>
<if test="signUrl != null">sign_url = #{signUrl},</if>
<if test="signTime != null">sign_time = #{signTime},</if>
<if test="pcode != null">pcode = #{pcode},</if>
<if test="trayCode != null">tray_code = #{trayCode},</if>
<if test="approverId != null">approver_id = #{approverId},</if>
<if test="approverSignUrl != null">approver_sign_url = #{approverSignUrl},</if>
<if test="auditResult != null">audit_result = #{auditResult},</if>
<if test="imageType != null">image_type = #{imageType},</if>
<if test="isCurrent != null">is_current = #{isCurrent},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="isDelete != null">is_delete = #{isDelete},</if>
</trim>
where id = #{id}
</update>
<update id="updateIsCurrentToZero">
UPDATE audit_signature
SET is_current = '0',
update_time = NOW()
WHERE bill_no = #{billNo}
AND signer_role = #{signerRole}
AND is_current = '1'
AND is_delete = '0'
</update>
2025-07-16 11:03:25 +08:00
<update id="approveAuditByBillNo" parameterType="AuditSignature">
UPDATE audit_signature
<set>
<if test="auditResult != null"> audit_result = #{auditResult},</if>
<if test="approverSignUrl != null"> approver_sign_url = #{approverSignUrl},</if>
<if test="remark != null"> remark = #{remark},</if>
<if test="updateBy != null"> update_by = #{updateBy},</if>
<if test="updateTime != null"> update_time = #{updateTime},</if>
</set>
WHERE bill_no = #{billNo}
AND signer_role = '1'
AND is_delete = '0'
AND is_current = '1'
</update>
2025-07-14 09:28:10 +08:00
<delete id="deleteAuditSignatureById" parameterType="Long">
delete from audit_signature where id = #{id}
</delete>
<delete id="deleteAuditSignatureByIds" parameterType="String">
delete from audit_signature where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>