Houjie
2025-05-23 c5daf9399f292e5b21deff9d5a8ac60fb4c377ab
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
@@ -343,4 +343,97 @@
                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
            ${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>
</mapper>