Files
smart_management_dev/src/main/resources/mybatis/wisdom/RkBillMapper.xml

224 lines
8.2 KiB
XML
Raw Normal View History

2025-06-09 15:16:00 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
2025-06-09 15:16:00 +08:00
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zg.project.wisdom.mapper.RkBillMapper">
<!-- ==================== ResultMap ==================== -->
<resultMap type="RkBill" id="RkBillResult">
<result property="id" column="id"/>
<result property="wlType" column="wl_type"/>
<result property="wlTypeName" column="wl_type_name"/>
2025-06-09 15:16:00 +08:00
<result property="cangku" column="cangku"/>
<result property="warehouseName" column="warehouse_name"/>
<result property="parentWarehouseName" column="parent_warehouse_name"/>
2025-06-10 09:37:37 +08:00
<result property="billNo" column="bill_no"/>
2025-06-09 15:16:00 +08:00
<result property="operationType" column="operation_type"/>
<result property="operationTypeName" column="operation_type_name"/>
2025-06-10 09:37:37 +08:00
<result property="bizType" column="biz_type"/>
<result property="operationTime" column="operation_time"/>
<result property="execStatus" column="exec_status"/>
2025-06-10 09:37:37 +08:00
<result property="operator" column="operator"/>
<result property="operatorName" column="operator_name"/>
2025-06-10 09:37:37 +08:00
<result property="teamCode" column="team_code"/>
<result property="remark" column="remark"/>
<result property="isDelivery" column="is_delivery"/>
<result property="isDelete" column="is_delete"/>
</resultMap>
<!-- ==================== Base Select ==================== -->
<sql id="selectRkBillVo">
SELECT
rb.id,
rb.wl_type,
rb.cangku,
rb.bill_no,
rb.operation_type,
rb.biz_type,
rb.operation_time,
rb.exec_status,
rb.operator,
rb.team_code,
rb.remark,
rb.is_delivery,
rb.is_delete,
-- 物资类型
mt.type_name AS wl_type_name,
-- 出 / 入库类型名称
COALESCE(sit.type_name, sot.type_name) AS operation_type_name,
-- 操作人
su.nick_name AS operator_name,
-- 小仓
wh.warehouse_name AS warehouse_name,
-- 大仓(冗余字段)
wh.parent_warehouse_name AS parent_warehouse_name
2025-06-10 09:37:37 +08:00
FROM rk_bill rb
-- 仓库(小仓)
LEFT JOIN warehouse_info wh
ON rb.cangku = wh.warehouse_code
AND wh.status = 1
-- 物资类型
LEFT JOIN material_type mt
ON rb.wl_type = mt.type_code
AND mt.status = 1
-- 入库类型
LEFT JOIN stock_in_type sit
ON rb.operation_type = sit.type_code
AND sit.status = 1
-- 出库类型
LEFT JOIN stock_out_type sot
ON rb.operation_type = sot.type_code
AND (sot.is_delete = '0' OR sot.is_delete IS NULL)
-- 操作人
LEFT JOIN sys_user su
ON rb.operator = su.user_id
</sql>
<!-- ==================== List ==================== -->
<select id="selectRkBillList" parameterType="RkBill" resultMap="RkBillResult">
<include refid="selectRkBillVo"/>
<where>
<if test="wlType != null">AND rb.wl_type = #{wlType}</if>
<if test="cangku != null and cangku != ''">AND rb.cangku = #{cangku}</if>
<if test="billNo != null and billNo != ''">AND rb.bill_no = #{billNo}</if>
<if test="operationType != null">AND rb.operation_type = #{operationType}</if>
<if test="bizType != null">AND rb.biz_type = #{bizType}</if>
<if test="operationTime != null">AND rb.operation_time = #{operationTime}</if>
<!-- 时间区间(新增) -->
<if test="startDate != null">
AND rb.operation_time &gt;= #{startDate}
</if>
<if test="endDate != null">
AND rb.operation_time &lt;= #{endDate}
</if>
<if test="execStatus != null">AND rb.exec_status = #{execStatus}</if>
<if test="operator != null">AND rb.operator = #{operator}</if>
<if test="teamCode != null and teamCode != ''">AND rb.team_code = #{teamCode}</if>
<if test="isDelivery != null">AND rb.is_delivery = #{isDelivery}</if>
<if test="isDelete != null">AND rb.is_delete = #{isDelete}</if>
</where>
ORDER BY rb.exec_status ASC, rb.operation_time DESC
2025-06-09 15:16:00 +08:00
</select>
<!-- ==================== Detail ==================== -->
<select id="selectRkBillById" parameterType="Long" resultMap="RkBillResult">
<include refid="selectRkBillVo"/>
WHERE rb.id = #{id}
</select>
2025-06-10 09:37:37 +08:00
<select id="selectByBillNo"
parameterType="String"
resultMap="RkBillResult">
SELECT
id,
wl_type,
cangku,
bill_no,
operation_type,
biz_type,
operation_time,
exec_status,
operator,
team_code,
is_delivery,
remark,
create_by,
create_time,
update_by,
update_time,
is_delete
FROM rk_bill
WHERE bill_no = #{billNo}
AND (is_delete = '0' OR is_delete IS NULL)
LIMIT 1
</select>
2025-06-10 09:37:37 +08:00
<!-- ==================== Insert ==================== -->
<insert id="insertRkBill"
parameterType="com.zg.project.wisdom.domain.RkBill"
useGeneratedKeys="true"
keyProperty="id">
INSERT INTO rk_bill (
bill_no,
biz_type,
wl_type,
cangku,
operation_type,
operation_time,
operator,
exec_status,
is_delivery,
remark,
create_by,
create_time,
is_delete
) VALUES (
#{billNo},
#{bizType},
#{wlType},
#{cangku},
#{operationType},
#{operationTime},
#{operator},
#{execStatus},
#{isDelivery},
#{remark},
#{createBy},
#{createTime},
#{isDelete}
)
</insert>
2025-06-09 15:16:00 +08:00
<!-- ==================== Update ==================== -->
<update id="updateRkBill" parameterType="RkBill">
2025-06-09 15:16:00 +08:00
UPDATE rk_bill
<trim prefix="SET" suffixOverrides=",">
2025-06-10 09:37:37 +08:00
<if test="wlType != null">wl_type = #{wlType},</if>
<if test="cangku != null">cangku = #{cangku},</if>
<if test="billNo != null and billNo != ''">bill_no = #{billNo},</if>
<if test="operationType != null">operation_type = #{operationType},</if>
<if test="bizType != null">biz_type = #{bizType},</if>
<if test="operationTime != null">operation_time = #{operationTime},</if>
<if test="execStatus != null">exec_status = #{execStatus},</if>
<if test="operator != null">operator = #{operator},</if>
2025-06-10 09:37:37 +08:00
<if test="teamCode != null">team_code = #{teamCode},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDelivery != null">is_delivery = #{isDelivery},</if>
<if test="isDelete != null">is_delete = #{isDelete},</if>
</trim>
2025-06-09 15:16:00 +08:00
WHERE id = #{id}
</update>
<!-- ==================== Delete ==================== -->
<delete id="deleteRkBillById" parameterType="Long">
DELETE FROM rk_bill WHERE id = #{id}
</delete>
<delete id="deleteRkBillByIds">
DELETE FROM rk_bill
2025-06-09 15:16:00 +08:00
WHERE id IN
<foreach item="id" collection="array" open="(" separator="," close=")">
2025-06-09 15:16:00 +08:00
#{id}
</foreach>
</delete>
2025-06-09 15:16:00 +08:00
</mapper>