<?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="cn.iocoder.yudao.module.mes.dal.mysql.wm.batch.MesWmBatchMapper">
|
|
<resultMap id="BatchTraceResult" type="cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO">
|
<id property="id" column="batch_id"/>
|
<result property="code" column="batch_code"/>
|
<result property="workOrderId" column="work_order_id"/>
|
<result property="itemId" column="item_id"/>
|
</resultMap>
|
|
<!--
|
向前追溯:从某个原材料批次出发,查找它被哪些工单消耗后,产出了哪些成品批次
|
SQL 路径:库存事务(消耗 OUT) → 消耗单 → 报工记录 → 库存事务(产出 IN) → 批次
|
-->
|
<select id="selectListByForward" parameterType="String" resultMap="BatchTraceResult">
|
SELECT DISTINCT pf.work_order_id, pf.item_id, ppl.batch_id, ppl.batch_code
|
FROM mes_wm_transaction tx_consume
|
LEFT JOIN mes_wm_item_consume ic ON tx_consume.biz_id = ic.id AND tx_consume.biz_type = 123 AND ic.deleted = 0
|
LEFT JOIN mes_pro_feedback pf ON pf.id = ic.feedback_id AND pf.deleted = 0
|
LEFT JOIN mes_wm_transaction tx_produce ON tx_produce.biz_id = pf.id AND tx_produce.biz_type = 124 AND tx_produce.deleted = 0
|
LEFT JOIN mes_wm_product_produce pp ON tx_produce.biz_id = pp.id AND tx_produce.biz_type = 124 AND pp.deleted = 0
|
WHERE tx_consume.batch_code = #{batchCode}
|
AND tx_consume.biz_type = 123
|
AND tx_consume.deleted = 0
|
AND tx_produce.batch_id IS NOT NULL
|
</select>
|
|
<!--
|
向后追溯:从某个成品批次出发,查找生产它时消耗了哪些原材料批次
|
SQL 路径:库存事务(产出 IN) → 产出单 → 报工记录 → 库存事务(消耗 OUT) → 批次
|
-->
|
<select id="selectListByBackward" parameterType="String" resultMap="BatchTraceResult">
|
SELECT DISTINCT ic.work_order_id, icd.item_id, icd.batch_id, icd.batch_code
|
FROM mes_wm_transaction tx_produce
|
LEFT JOIN mes_wm_product_produce pp ON tx_produce.biz_id = pp.id AND tx_produce.biz_type = 124 AND pp.deleted = 0
|
LEFT JOIN mes_pro_feedback pf ON pf.id = pp.feedback_id AND pf.deleted = 0
|
LEFT JOIN mes_wm_transaction tx_consume ON tx_consume.biz_id = pf.id AND tx_consume.biz_type = 123 AND tx_consume.deleted = 0
|
LEFT JOIN mes_wm_item_consume ic ON tx_consume.biz_id = ic.id AND tx_consume.biz_type = 123 AND ic.deleted = 0
|
WHERE tx_produce.batch_code = #{batchCode}
|
AND tx_produce.biz_type = 124
|
AND tx_produce.deleted = 0
|
AND tx_consume.batch_id IS NOT NULL
|
</select>
|
|
</mapper>
|