gongchunyi
6 小时以前 5224b79436b16039d07a981029e330f48b3c7708
src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -14,6 +14,19 @@
        <result property="status" column="status"/>
    </resultMap>
    <resultMap id="ProductOrderSourceMap" type="com.ruoyi.production.dto.ProductOrderSourceDto">
        <id property="applyNo" column="apply_no"/>
        <result property="applyNo" column="apply_no"/>
        <collection property="productPlans" ofType="com.ruoyi.productionPlan.dto.ProductionPlanDto" autoMapping="true">
            <id property="id" column="plan_id"/>
            <result property="materialCode" column="material_code"/>
            <result property="productName" column="product_name"/>
            <result property="model" column="model"/>
            <result property="unit" column="unit"/>
            <result property="totalAssignedQuantity" column="total_assigned_quantity"/>
        </collection>
    </resultMap>
    <select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
        SELECT
        po.id,
@@ -41,9 +54,9 @@
        LEFT JOIN process_route pr ON po.route_id = pr.id
        LEFT JOIN product_bom pb ON pr.bom_id = pb.id
        LEFT JOIN (
            SELECT product_order_id, MIN(production_plan_id) AS production_plan_id
            FROM product_order_plan
            GROUP BY product_order_id
        SELECT product_order_id, MIN(production_plan_id) AS production_plan_id
        FROM product_order_plan
        GROUP BY product_order_id
        ) pop ON po.id = pop.product_order_id
        LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
        LEFT JOIN product_material_sku pms ON pms.id = pp.product_material_sku_id
@@ -55,9 +68,23 @@
            <if test="c.startTime != null and c.endTime != null">
                AND po.create_time BETWEEN #{c.startTime} AND #{c.endTime}
            </if>
            <if test="c.status != null">
                AND po.status = #{c.status}
            </if>
            <if test="c.productName != null and c.productName != ''">
                AND pm.product_name LIKE CONCAT('%', #{c.productName}, '%')
            </if>
            <if test="c.materialCode != null and c.materialCode != ''">
                AND pms.material_code LIKE CONCAT('%', #{c.materialCode}, '%')
            </if>
            <if test="c.model != null and c.model != ''">
                AND pms.model LIKE CONCAT('%', #{c.model}, '%')
            </if>
            <if test="c.strength != null and c.strength != ''">
                AND po.strength = #{c.strength}
            </if>
        </where>
    </select>
    <select id="listProcessRoute" resultType="com.ruoyi.production.pojo.ProcessRoute">
        select pr.*
        from process_route pr
@@ -108,4 +135,25 @@
          AND create_time &lt;= #{endDate}
          AND complete_quantity &lt; quantity
    </select>
    <select id="productOrderSource" resultMap="ProductOrderSourceMap"
            parameterType="java.lang.Long">
        SELECT pp.id                 AS plan_id,
               pp.apply_no,
               pp.*,
               pop.assigned_quantity AS total_assigned_quantity,
               sku.material_code,
               sku.model,
               pm.product_name,
               pm.unit
        FROM product_order_plan pop
                 LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
                 LEFT JOIN product_material_sku sku ON pp.product_material_sku_id = sku.id
                 LEFT JOIN product_material pm ON sku.product_id = pm.id
        WHERE pop.product_order_id = #{orderId}
        ORDER BY pp.apply_no
    </select>
</mapper>