Files
klp-oa/klp-erp/src/main/resources/mapper/erp/ErpPurchasePlanMapper.xml
2026-06-27 10:40:54 +08:00

92 lines
4.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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="com.klp.erp.mapper.ErpPurchasePlanMapper">
<select id="selectOrderCodes" resultType="java.lang.String">
SELECT order_code FROM crm_order
WHERE del_flag = 0 AND order_id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 选合同自动带出明细crm_order_item -> 采购计划明细VO公差空值给 '0' -->
<select id="selectItemsByOrderIds" resultType="com.klp.erp.domain.vo.ErpPurchasePlanItemVo">
SELECT
product_type AS productType,
material AS material,
grade AS grade,
width AS width,
thickness AS thickness,
COALESCE(NULLIF(TRIM(width_tolerance), ''), '0') AS widthTolerance,
COALESCE(NULLIF(TRIM(thickness_tolerance), ''), '0') AS thicknessTolerance,
weight AS weight,
product_num AS quantity
FROM crm_order_item
WHERE del_flag = 0 AND order_id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY order_id, item_id
</select>
<!-- 合同列表 + 该合同已挂接的采购计划数 -->
<select id="selectContractPage" resultType="com.klp.erp.domain.vo.ErpContractOptionVo">
SELECT
o.order_id AS orderId,
o.order_code AS orderCode,
o.contract_code AS contractCode,
o.contract_name AS contractName,
o.customer AS customer,
o.supplier AS supplier,
o.order_amount AS orderAmount,
o.salesman AS salesman,
(SELECT COUNT(*) FROM erp_purchase_plan_contract_rel r
JOIN erp_purchase_plan p ON p.plan_id = r.plan_id AND p.del_flag = '0'
WHERE r.del_flag = '0' AND r.order_id = o.order_id) AS planCount
FROM crm_order o
WHERE o.del_flag = 0
<if test="kw != null and kw != ''">
AND (o.order_code LIKE CONCAT('%', #{kw}, '%')
OR o.contract_name LIKE CONCAT('%', #{kw}, '%')
OR o.contract_code LIKE CONCAT('%', #{kw}, '%')
OR o.customer LIKE CONCAT('%', #{kw}, '%'))
</if>
ORDER BY o.is_top DESC, o.order_id DESC
</select>
<!-- 某合同下的所有采购计划 -->
<select id="selectPlansByContract" resultType="com.klp.erp.domain.vo.ErpPurchasePlanVo">
SELECT p.*
FROM erp_purchase_plan p
JOIN erp_purchase_plan_contract_rel r ON r.plan_id = p.plan_id AND r.del_flag = '0'
WHERE p.del_flag = '0' AND r.order_id = #{orderId}
ORDER BY p.plan_id DESC
</select>
<!-- WMS 钢卷表中已存在(非占位 data_type<>10)的厂家卷号,用于到货卷号校验 -->
<select id="selectExistingSupplierCoilNos" resultType="java.lang.String">
SELECT DISTINCT supplier_coil_no
FROM wms_material_coil
WHERE del_flag = 0 AND data_type &lt;&gt; 10
AND supplier_coil_no IN
<foreach collection="coilNos" item="c" open="(" separator="," close=")">
#{c}
</foreach>
</select>
<!-- 按合同关键字查关联的采购计划ID订单编号/合同号/合同名称) -->
<select id="selectPlanIdsByContractKeyword" resultType="java.lang.Long">
SELECT DISTINCT r.plan_id
FROM erp_purchase_plan_contract_rel r
JOIN crm_order o ON o.order_id = r.order_id AND o.del_flag = 0
WHERE r.del_flag = '0'
AND (o.order_code LIKE CONCAT('%', #{kw}, '%')
OR o.contract_code LIKE CONCAT('%', #{kw}, '%')
OR o.contract_name LIKE CONCAT('%', #{kw}, '%'))
</select>
</mapper>