zhangherong
2025-05-27 92bc6dca274eb45dc330f63b5a3f90a01458e157
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
@@ -59,11 +59,13 @@
            t2.adapt_holder adaptHolder,
            t2.remark,
            t3.classify_id classifyNum,
            t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
            from tms_base_tools t
        left join tms_tools_config_property t1 on t1.tool_code = t.id
        left join tms_para_hole_tools t2 on t2.tool_code = t.id
        left join tms_tools_classify t3 on t3.id = t.classify_id
                 left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
        ${ew.customSqlSegment}
    </select>
    <select id="paraCommonToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaCommonToolVo">
@@ -90,10 +92,12 @@
    t1.lower_inventory lowerInventory,
    t1.highest_inventory highestInventory,
    t3.classify_id classifyNum,
    t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
    from tms_base_tools t
    left join tms_tools_config_property t1 on t1.tool_code = t.id
    left join tms_tools_classify t3 on t3.id = t.classify_id
                 left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
    ${ew.customSqlSegment}
</select>
    <select id="paraThreadingToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaThreadingToolVo">
@@ -144,12 +148,14 @@
            t2.connection_aperture connectionAperture,
            t2.connecting_keyway connectingKeyway,
            t3.classify_id classifyNum,
            t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
        FROM
            tms_base_tools t
                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
                LEFT JOIN tms_para_threading_tool t2 ON t2.tool_code = t.id
                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
                left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
            ${ew.customSqlSegment}
    </select>
    <select id="paraMillToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaMillToolVo">
@@ -209,12 +215,14 @@
            t2.pitch,
            t2.recently_diameter recentlyDiameter,
            t3.classify_id classifyNum,
            t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
        FROM
            tms_base_tools t
                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
                LEFT JOIN tms_para_mill_tool t2 ON t2.tool_code = t.id
                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
                left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
            ${ew.customSqlSegment}
    </select>
    <select id="paraTurningToolsList" resultType="org.jeecg.modules.tms.entity.vo.ParaTurningToolsVo">
@@ -278,12 +286,14 @@
            t2.blade_thickness bladeThickness,
            t2.min_diameter minDiameter,
            t3.classify_id classifyNum,
            t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
        FROM
            tms_base_tools t
                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
                LEFT JOIN tms_para_turning_tools t2 ON t2.tool_code = t.id
                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
                left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
            ${ew.customSqlSegment}
    </select>
    <select id="paraBladeList" resultType="org.jeecg.modules.tms.entity.vo.ParaBladeVo">
@@ -335,12 +345,145 @@
            t2.pitch,
            t2.min_internal_thread minInternalThread,
            t3.classify_id classifyNum,
            t3.type_name classifyName
            t3.type_name classifyName,
            t4.item_text applicationTypeName
        FROM
            tms_base_tools t
                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
                LEFT JOIN tms_para_blade t2 ON t2.tool_code = t.id
                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
                left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type
            ${ew.customSqlSegment}
    </select>
    <select id="pageWithLedgerAndConfig" resultType="org.jeecg.modules.tms.entity.vo.StocktakingPoundVo">
        SELECT
        t.id,
        t.classify_id AS classifyId,
        t.tool_code AS toolCode,
        t.foreign_language_name AS foreignLanguageName,
        t.standard_level AS standardLevel,
        t.standard_code AS standardCode,
        t.tool_model AS toolModel,
        t.parama_table_name AS paramaTableName,
        t.tool_id AS toolId,
        t1.total_count AS totalCount,
        t1.available_count AS availableCount,
        t4.position_code AS positionCode,
        t3.application_type AS applicationType,
        t3.chinese_name AS chineseName,
        t3.supplier_id AS supplierId,
        t3.storage_location AS storageLocation,
        t3.main_unit AS mainUnit,
        <!-- 动态字段选择,使用表别名(需确保表已关联) -->
        <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_base_tools t
        LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id
        LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id
        LEFT JOIN tms_tool_ledger_detail t4 ON t4.tool_code = t.id
        <!-- 动态表关联,确保所有情况都有对应的 LEFT JOIN -->
        <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>
        <where>
            <if test="ew.paramNameValuePairs.toolCode != null and ew.paramNameValuePairs.toolCode != ''">
                AND t.tool_code LIKE CONCAT('%', #{ew.paramNameValuePairs.toolCode}, '%')
            </if>
        </where>
        ORDER BY t.create_time DESC
    </select>
    <select id="pageWithSharpedAndConfig" resultType="org.jeecg.modules.tms.entity.vo.SharpeeningVo">
        SELECT
        t.id,
        t.classify_id AS classifyId,
        t.tool_code AS toolCode,
        t.foreign_language_name AS foreignLanguageName,
        t.standard_level AS standardLevel,
        t.standard_code AS standardCode,
        t.tool_model AS toolModel,
        t.parama_table_name AS paramaTableName,
        t.tool_id AS toolId,
        t1.total_count AS totalCount,
        t1.available_count AS availableCount,
        t4.position_code AS positionCode,
        t3.application_type AS applicationType,
        t3.chinese_name AS chineseName,
        t3.supplier_id AS supplierId,
        t3.storage_location AS storageLocation,
        t3.main_unit AS mainUnit,
        t4.warehouse_id AS warehouseId,
        t3.province_city AS provinceCity
        FROM tms_base_tools t
        LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id
        LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id
        LEFT JOIN tms_tool_ledger_detail t4 ON t4.tool_code = t.id
        <where>
            <if test="ew.paramNameValuePairs.toolCode != null and ew.paramNameValuePairs.toolCode != ''">
                AND t.tool_code LIKE CONCAT('%', #{ew.paramNameValuePairs.toolCode}, '%')
            </if>
        </where>
        ORDER BY t.create_time DESC
    </select>
</mapper>