cuilei
2025-06-13 19f324552d79aed6ec9bbc58c2f0fb9502648194
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?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="org.jeecg.modules.tms.mapper.ToolsStocktakingBoundDetailMapper">
 
    <delete id="deleteByMainId" parameterType="java.lang.String">
        DELETE
        FROM tools_stocktaking_bound_detail
        WHERE goods_shelves_id = #{mainId}
    </delete>
    <select id="getParamaTableNameByMainId" parameterType="string" resultType="string">
        SELECT t1.parama_table_name
        FROM tools_stocktaking_bound_detail t
                 LEFT JOIN tms_base_tools t1 ON t1.tool_id = t.id
        WHERE t.goods_shelves_id = #{mainId}
    </select>
 
    <select id="selectByMainId" resultType="org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail">
        SELECT
        t.*,
        t2.parama_table_name paramaTableName,
        t4.classify_id AS classifyId,
        t3.storage_location AS storageLocation,
        t3.chinese_name AS chineseName,
        t2.tool_model AS toolModel,
        t3.application_type AS applicationType,
        t3.supplier_id AS supplierId,
 
        <choose>
            <when test="ew.paramNameValuePairs.paramaTableName == '1'">
                c.tool_material AS toolMaterial,
                c.part_material AS partMaterial
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '2'">
                h.tool_material AS toolMaterial,
                h.part_material AS partMaterial
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '3'">
                th.tool_material AS toolMaterial,
                th.part_material AS partMaterial
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '4'">
                m.tool_material AS toolMaterial,
                m.part_material AS partMaterial
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '5'">
                tr.tool_material AS toolMaterial,
                tr.part_material AS partMaterial
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '6'">
                b.tool_material AS toolMaterial,
                b.part_material AS partMaterial
            </when>
            <!-- 默认情况:paramaTableName 为空或未传递时,关联 tms_para_common_tool 表 -->
            <otherwise>
                c.tool_material AS toolMaterial,
                c.part_material AS partMaterial
            </otherwise>
        </choose>
 
        FROM tms_stocktaking_bound_detail t
        left join tms_tool_ledger t1 ON  t1.tool_id= t.tool_Code
        left join tms_tool_ledger_detail t5 ON  t5.tool_Code= t.tool_id
        left join tms_tools_classify t4 on t4.id = t1.classify_id
        left join tms_base_tools t2 on t2.id = t.tool_code
        left join tms_tools_config_property t3 on t3.tool_code = t.tool_code
 
 
        <choose>
            <when test="ew.paramNameValuePairs.paramaTableName == '1'">
                LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '2'">
                LEFT JOIN tms_para_hole_tools h ON h.tool_code = t.id
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '3'">
                LEFT JOIN tms_para_threading_tool th ON th.tool_code = t.id
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '4'">
                LEFT JOIN tms_para_mill_tool m ON m.tool_code = t.id
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '5'">
                LEFT JOIN tms_para_turning_tools tr ON tr.tool_code = t.id
            </when>
            <when test="ew.paramNameValuePairs.paramaTableName == '6'">
                LEFT JOIN tms_para_blade b ON b.tool_code = t.id
            </when>
            <!-- 默认情况:添加 LEFT JOIN tms_para_common_tool c -->
            <otherwise>
                LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id
            </otherwise>
        </choose>
 
            ${ew.customSqlSegment}
 
    </select>
 
    <select id="toolsStocktakingList" resultType="map" parameterType="String">
        SELECT
            t1.id,
            t1.tool_id onlyCode,
            t1.book_quantity bookQuantity,
            t1.available_quantity availableQuantity,
            t1.practical_quantity practicalQuantity,
            t1.surplus_deficit surplusDeficit,
            t1.stocktaking_date stocktakingDate,
            t2.order_code orderCode,
            t2.stocktaking_type stocktakingType,
            t2.stocktaking_name stocktakingName,
            t3.tool_code toolCode,
            t3.chinese_name chineseName,
            t3.tool_model toolModel,
            t4.classify_id classifyNum,
            t5.item_text handler
        FROM
            tms_stocktaking_bound_detail t1
                LEFT JOIN tms_stocktaking_bound t2 ON t2.id = t1.stocktaking_bound_id
                LEFT JOIN tms_base_tools t3 ON t3.id = t1.tool_code
                LEFT JOIN tms_tools_classify t4 ON t4.id = t3.classify_id
                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'sys_user' ) t5 ON t5.item_value = t2.handler
            ${ew.customSqlSegment}
    </select>
</mapper>