<?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.zy.asrs.mapper.MonthlySettleMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.zy.asrs.entity.MonthlySettle">
|
<id column="id" property="id" />
|
<result column="settle_no" property="settleNo" />
|
<result column="start_date" property="startDate" />
|
<result column="end_date" property="endDate" />
|
<result column="status" property="status" />
|
<result column="total_in_qty" property="totalInQty" />
|
<result column="total_out_qty" property="totalOutQty" />
|
<result column="total_materials" property="totalMaterials" />
|
<result column="memo" property="memo" />
|
<result column="create_by" property="createBy" />
|
<result column="create_time" property="createTime" />
|
<result column="update_by" property="updateBy" />
|
<result column="update_time" property="updateTime" />
|
<result column="is_deleted" property="isDeleted" />
|
</resultMap>
|
|
<!-- 获取最近的月结记录 -->
|
<select id="selectLatestSettle" resultMap="BaseResultMap">
|
SELECT TOP 1 * FROM man_monthly_settle
|
WHERE is_deleted = 0
|
ORDER BY end_date DESC
|
</select>
|
|
<!-- 统计月结时间范围内未完成的入库订单数量 -->
|
<select id="countUnfinishedOrdersInRangePakin" resultType="int">
|
SELECT COUNT(1) FROM man_order_log_pakin molpi
|
WHERE molpi.status = 1
|
AND molpi.order_time >= #{startDate}
|
AND molpi.order_time <= #{endDate}
|
AND (molpi.settle IS NULL OR molpi.settle != 6)
|
AND (molpi.monthly_settle_id IS NULL OR molpi.monthly_settle_id = 0)
|
AND EXISTS (
|
SELECT 1 FROM man_order_detl_log_pakin modlpi
|
WHERE modlpi.order_id = molpi.id
|
AND (modlpi.anfme > modlpi.qty OR modlpi.qty IS NULL)
|
)
|
</select>
|
|
<!-- 统计月结时间范围内未完成的出库订单数量 -->
|
<select id="countUnfinishedOrdersInRangePakout" resultType="int">
|
SELECT COUNT(1) FROM man_order_log_pakout molpo
|
WHERE molpo.status = 1
|
AND molpo.order_time >= #{startDate}
|
AND molpo.order_time <= #{endDate}
|
AND (molpo.settle IS NULL OR molpo.settle != 6)
|
AND (molpo.monthly_settle_id IS NULL OR molpo.monthly_settle_id = 0)
|
AND EXISTS (
|
SELECT 1 FROM man_order_detl_log_pakout modlpo
|
WHERE modlpo.order_id = molpo.id
|
AND (modlpo.anfme > modlpo.qty OR modlpo.qty IS NULL)
|
)
|
</select>
|
|
<!-- 统计月结时间范围内的物料出入库数量(从入库表查询) -->
|
<select id="statisticsMaterialInOutFromPakin" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
|
SELECT
|
modlpi.matnr,
|
modlpi.maktx,
|
modlpi.batch,
|
modlpi.brand,
|
SUM(modlpi.qty) as qty,
|
COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status) as pakinPakoutStatus
|
FROM man_order_log_pakin molpi
|
INNER JOIN man_order_detl_log_pakin modlpi ON molpi.id = modlpi.order_id
|
WHERE molpi.status = 1
|
AND molpi.order_time >= #{startDate}
|
AND molpi.order_time <= #{endDate}
|
AND molpi.settle = 6
|
AND (molpi.monthly_settle_id IS NULL OR molpi.monthly_settle_id = 0)
|
AND COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status) IN (1, 2)
|
GROUP BY modlpi.matnr, modlpi.maktx, modlpi.batch, modlpi.brand, COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status)
|
</select>
|
|
<!-- 统计月结时间范围内的物料出入库数量(从出库表查询) -->
|
<select id="statisticsMaterialInOutFromPakout" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
|
SELECT
|
modlpo.matnr,
|
modlpo.maktx,
|
modlpo.batch,
|
modlpo.brand,
|
SUM(modlpo.qty) as qty,
|
COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status) as pakinPakoutStatus
|
FROM man_order_log_pakout molpo
|
INNER JOIN man_order_detl_log_pakout modlpo ON molpo.id = modlpo.order_id
|
WHERE molpo.status = 1
|
AND molpo.order_time >= #{startDate}
|
AND molpo.order_time <= #{endDate}
|
AND molpo.settle = 6
|
AND (molpo.monthly_settle_id IS NULL OR molpo.monthly_settle_id = 0)
|
AND COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status) IN (1, 2)
|
GROUP BY modlpo.matnr, modlpo.maktx, modlpo.batch, modlpo.brand, COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status)
|
</select>
|
|
<!-- 获取上一个月结的物料期末库存 -->
|
<select id="getPreviousSettleEndingQty" resultType="com.zy.asrs.entity.result.PreviousSettleEndingQtyDTO">
|
SELECT
|
matnr,
|
ISNULL(batch, '') as batch,
|
ISNULL(brand, '') as brand,
|
ISNULL(maktx, '') as maktx,
|
ending_qty as endingQty
|
FROM man_monthly_settle_detail
|
WHERE settle_id = #{previousSettleId}
|
AND is_deleted = 0
|
</select>
|
|
<!-- 更新入库订单的月结信息 -->
|
<update id="updateOrderSettleInfo">
|
UPDATE man_order_log_pakin
|
SET monthly_settle_id = #{settleId},
|
monthly_settle_no = #{settleNo}
|
WHERE status = 1
|
AND order_time >= #{startDate}
|
AND order_time <= #{endDate}
|
AND settle = 6
|
AND (monthly_settle_id IS NULL OR monthly_settle_id = 0)
|
</update>
|
|
<!-- 更新出库订单的月结信息 -->
|
<update id="updateOrderSettleInfoPakout">
|
UPDATE man_order_log_pakout
|
SET monthly_settle_id = #{settleId},
|
monthly_settle_no = #{settleNo}
|
WHERE status = 1
|
AND order_time >= #{startDate}
|
AND order_time <= #{endDate}
|
AND settle = 6
|
AND (monthly_settle_id IS NULL OR monthly_settle_id = 0)
|
</update>
|
|
<!-- 清除入库订单的月结信息 -->
|
<update id="clearOrderSettleInfo">
|
UPDATE man_order_log_pakin
|
SET monthly_settle_id = NULL,
|
monthly_settle_no = NULL
|
WHERE monthly_settle_id = #{settleId}
|
</update>
|
|
<!-- 清除出库订单的月结信息 -->
|
<update id="clearOrderSettleInfoPakout">
|
UPDATE man_order_log_pakout
|
SET monthly_settle_id = NULL,
|
monthly_settle_no = NULL
|
WHERE monthly_settle_id = #{settleId}
|
</update>
|
|
</mapper>
|