gongchunyi
昨天 973b5221a85660b3b1e026e119256e35e95336ea
src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml
@@ -11,10 +11,7 @@
        <result property="serialNo" column="serial_no"/>
        <result property="applyNo" column="apply_no"/>
        <result property="customerName" column="customer_name"/>
        <result property="materialCode" column="material_code"/>
        <result property="productMaterialId" column="product_material_id"/>
        <result property="productName" column="product_name"/>
        <result property="productSpec" column="product_spec"/>
        <result property="productMaterialSkuId" column="product_material_sku_id"/>
        <result property="length" column="length"/>
        <result property="width" column="width"/>
        <result property="height" column="height"/>
@@ -31,35 +28,38 @@
        <result property="modifierName" column="modifier_name"/>
        <result property="formCreatedTime" column="form_created_time"/>
        <result property="formModifiedTime" column="form_modified_time"/>
        <result property="dataSyncType" column="data_sync_type"/>
        <result property="dataSourceType" column="data_source_type"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
        <result property="totalCount" column="total_count"/>
    </resultMap>
    <select id="listPage" resultType="com.ruoyi.productionPlan.dto.ProductionPlanDto">
        SELECT
        pp.*,
        pm.product_name,
        pm.specification,
        pm.material_code,
        pms.material_code AS materialCode,
        pms.specification AS specification,
        pms.material_id AS productMaterialId,
        pm.material_name AS productName,
        pm.base_unit
        FROM production_plan pp
        left join product_material pm on pp.product_material_id = pm.id
        left join product_material_sku pms on pp.product_material_sku_id = pms.id
        left join product_material pm on pms.material_id = pm.id
        WHERE 1 = 1
        <if test="c.customerName != null and c.customerName != '' ">
            AND pp.customer_name LIKE CONCAT('%',#{c.customerName},'%')
        </if>
        <if test="c.productName != null and c.productName != '' ">
            AND pm.product_name LIKE CONCAT('%',#{c.productName},'%')
        </if>
        <if test="c.specification != null and c.specification != '' ">
            AND pm.specification LIKE CONCAT('%',#{c.specification},'%')
            AND pm.material_name LIKE CONCAT('%',#{c.productName},'%')
        </if>
        <if test="c.materialCode != null and c.materialCode != '' ">
            AND pm.material_code LIKE CONCAT('%',#{c.materialCode},'%')
            AND pms.material_code LIKE CONCAT('%',#{c.materialCode},'%')
        </if>
        <if test="c.specification != null and c.specification != '' ">
            AND pms.specification LIKE CONCAT('%',#{c.specification},'%')
        </if>
        <if test="c.applyNo != null and c.applyNo != '' ">
            AND pp.apply_no LIKE CONCAT('%',#{c.applyNo},'%')
        </if>
        <if test="c.startDate != null">
            AND pp.start_date &gt;= DATE_FORMAT(#{c.startDate},'%Y-%m-%d')
@@ -67,46 +67,58 @@
        <if test="c.endDate != null">
            AND pp.end_date &lt;= DATE_FORMAT(#{c.endDate},'%Y-%m-%d')
        </if>
        ORDER BY COALESCE(pp.form_modified_time, pp.id) DESC
    </select>
    <select id="selectSummaryByProductType" resultType="com.ruoyi.productionPlan.dto.ProductionPlanSummaryDto">
        SELECT
        material_code,
        product_name,
        product_spec,
        length,
        width,
        height,
        COALESCE(SUM(quantity),0) AS quantity,
        COALESCE(SUM(volume),0) AS volume
        FROM production_plan
        sku.material_code AS materialCode,
        pm.material_name AS productName,
        sku.specification AS specification,
        pp.length,
        pp.width,
        pp.height,
        pm.base_unit AS baseUnit,
        COALESCE(SUM(pp.quantity),0) AS quantity,
        COALESCE(SUM(pp.volume),0) AS volume
        FROM production_plan pp
        LEFT JOIN product_material_sku sku
        ON pp.product_material_sku_id = sku.id
        LEFT JOIN product_material pm
        ON sku.material_id = pm.id
        <where>
            <if test="materialCode != null and materialCode != ''">
                AND material_code LIKE CONCAT('%', #{materialCode}, '%')
                AND sku.material_code LIKE CONCAT('%', #{materialCode}, '%')
            </if>
            <if test="productName != null and productName != ''">
                AND product_name LIKE CONCAT('%', #{productName}, '%')
                AND pm.material_name LIKE CONCAT('%', #{productName}, '%')
            </if>
            <if test="specification != null and specification != ''">
                AND sku.specification LIKE CONCAT('%', #{specification}, '%')
            </if>
        </where>
        GROUP BY
        material_code,
        product_name,
        product_spec,
        length,
        width,
        height
        sku.material_code,
        pm.material_name,
        sku.specification,
        pp.length,
        pp.width,
        pp.height,
        pm.base_unit
    </select>
    <select id="selectWithMaterialByIds" resultType="com.ruoyi.productionPlan.dto.ProductionPlanDto">
        SELECT
        pp.*,
        pm.product_name,
        pm.specification,
        pm.material_code,
        pms.material_code AS materialCode,
        pms.specification AS specification,
        pm.material_name AS productName,
        pm.base_unit
        FROM production_plan pp
        LEFT JOIN product_material pm ON pp.product_material_id = pm.id
        LEFT JOIN product_material_sku pms ON pp.product_material_sku_id = pms.id
        LEFT JOIN product_material pm ON pms.material_id = pm.id
        WHERE pp.id IN
        <foreach collection="ids" item="id" open="(" separator="," close=")">
            #{id}