liyong
3 天以前 e978a226c2c1b22c9172a58539d876b298e9e2da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?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.mdm.dal.mysql.item.MdmItemMapper">
 
    <!--
        查询物料被哪些业务表引用(未删除的记录)
        返回有引用的表名和引用数量,用于删除校验
    -->
    <select id="selectItemReferenceCount" resultType="map">
        SELECT source, cnt FROM (
            <!-- 生产:工单BOM -->
            SELECT '生产-工单BOM' AS source, COUNT(*) AS cnt FROM mes_pro_work_order_bom WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 生产:报工 -->
            SELECT '生产-报工' AS source, COUNT(*) AS cnt FROM mes_pro_feedback WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 生产:生产任务 -->
            SELECT '生产-生产任务' AS source, COUNT(*) AS cnt FROM mes_pro_task WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 生产:工艺路线产品 -->
            SELECT '生产-工艺路线' AS source, COUNT(*) AS cnt FROM mes_pro_route_product WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 生产:工艺路线BOM -->
            SELECT '生产-工艺路线BOM' AS source, COUNT(*) AS cnt FROM mes_pro_route_product_bom WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 质检:IQC -->
            SELECT '质检-IQC' AS source, COUNT(*) AS cnt FROM mes_qc_iqc WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 质检:IPQC -->
            SELECT '质检-IPQC' AS source, COUNT(*) AS cnt FROM mes_qc_ipqc WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 质检:OQC -->
            SELECT '质检-OQC' AS source, COUNT(*) AS cnt FROM mes_qc_oqc WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 质检:RQC -->
            SELECT '质检-RQC' AS source, COUNT(*) AS cnt FROM mes_qc_rqc WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 采购:到货通知行 -->
            SELECT '采购-到货通知' AS source, COUNT(*) AS cnt FROM mes_wm_arrival_notice_line WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 采购:采购入库行 -->
            SELECT '采购-采购入库' AS source, COUNT(*) AS cnt FROM mes_wm_item_receipt_line WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 销售:销售通知行 -->
            SELECT '销售-销售通知' AS source, COUNT(*) AS cnt FROM mes_wm_sales_notice_line WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 销售:销售出库行 -->
            SELECT '销售-销售出库' AS source, COUNT(*) AS cnt FROM mes_wm_product_sales_line WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 销售:销售退货行 -->
            SELECT '销售-销售退货' AS source, COUNT(*) AS cnt FROM mes_wm_return_sales_line WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 库存:库存记录 -->
            SELECT '库存-库存' AS source, COUNT(*) AS cnt FROM mes_wm_material_stock WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- CRM:销售报价产品 -->
            SELECT '销售-报价单' AS source, COUNT(*) AS cnt FROM crm_sale_quotation_product WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- CRM:商机产品 -->
            SELECT '销售-商机' AS source, COUNT(*) AS cnt FROM crm_business_product WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- CRM:合同产品 -->
            SELECT '销售-合同' AS source, COUNT(*) AS cnt FROM crm_contract_product WHERE item_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- ERP:采购订单明细(product_id 引用物料) -->
            SELECT '采购-采购订单' AS source, COUNT(*) AS cnt FROM erp_purchase_order_items WHERE product_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- ERP:采购申请明细(product_id 引用物料) -->
            SELECT '采购-采购申请' AS source, COUNT(*) AS cnt FROM erp_purchase_request_items WHERE product_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- ERP:销售订单明细(product_id 引用物料) -->
            SELECT '销售-销售订单' AS source, COUNT(*) AS cnt FROM erp_sale_order_items WHERE product_id = #{itemId} AND deleted = 0
            UNION ALL
            <!-- 生产:工单产品(product_id 引用物料) -->
            SELECT '生产-生产工单' AS source, COUNT(*) AS cnt FROM mes_pro_work_order WHERE product_id = #{itemId} AND deleted = 0
        ) t
        WHERE t.cnt > 0
        ORDER BY t.source
    </select>
 
</mapper>