gongchunyi
7 小时以前 7ea8883ca6b47ec014a32ed57c3bea64544e893e
src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -15,23 +15,45 @@
    </resultMap>
    <select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
        select po.*,
        ppr.process_route_code,
        ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus
        from product_order po
        left join product_process_route ppr on po.id = ppr.product_order_id
        SELECT
        po.id,
        po.nps_no,
        po.tenant_id,
        po.create_time,
        po.update_time,
        po.route_id,
        po.quantity,
        po.complete_quantity,
        po.start_time,
        po.end_time,
        po.plan_complete_time,
        po.status,
        pm.product_name,
        po.strength AS strength,
        pr.process_route_code AS processRouteCode,
        pr.description,
        pb.id AS bomId,
        pb.bom_no AS bomNo,
        ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
        pms.model,
        pms.material_code AS materialCode
        FROM product_order po
        LEFT JOIN process_route pr ON po.route_id = pr.id
        LEFT JOIN product_bom pb ON pr.bom_id = pb.id
        LEFT JOIN product_order_plan 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
        LEFT JOIN product_material pm ON pm.id = pms.product_id
        <where>
            <if test="c.npsNo != null and c.npsNo != ''">
                and po.nps_no like concat('%',#{c.npsNo},'%')
            </if>
            <if test="c.customerName != null and c.customerName != ''">
                and sl.customer_name like concat('%',#{c.customerName},'%')
                AND po.nps_no LIKE CONCAT('%', #{c.npsNo}, '%')
            </if>
            <if test="c.startTime != null and c.endTime != null">
                and po.create_time between #{c.startTime} and #{c.endTime}
                AND po.create_time BETWEEN #{c.startTime} AND #{c.endTime}
            </if>
        </where>
    </select>
    <select id="listProcessRoute" resultType="com.ruoyi.production.pojo.ProcessRoute">
        select pr.*
        from process_route pr
@@ -49,8 +71,7 @@
               pp.name as  process_name,
               pm.product_id,
               pm.model
        from
            product_structure ps
        from product_structure ps
                left join product_model pm on ps.product_model_id = pm.id
                left join product p on pm.product_id = p.id
                left join product_process pp on ps.process_id = pp.id
@@ -62,19 +83,25 @@
    <select id="countCreated" resultType="java.lang.Integer">
        SELECT count(1) FROM product_order
        WHERE create_time &gt;= #{startDate} AND create_time &lt;= #{endDate}
        SELECT count(1)
        FROM product_order
        WHERE create_time &gt;= #{startDate}
          AND create_time &lt;= #{endDate}
    </select>
    <select id="countCompleted" resultType="java.lang.Integer">
        SELECT count(1) FROM product_order
        WHERE end_time &gt;= #{startDate} AND end_time &lt;= #{endDate}
        SELECT count(1)
        FROM product_order
        WHERE end_time &gt;= #{startDate}
          AND end_time &lt;= #{endDate}
          AND complete_quantity &gt;= quantity
    </select>
    <select id="countPending" resultType="java.lang.Integer">
        SELECT count(1) FROM product_order
        WHERE create_time &gt;= #{startDate} AND create_time &lt;= #{endDate}
        SELECT count(1)
        FROM product_order
        WHERE create_time &gt;= #{startDate}
          AND create_time &lt;= #{endDate}
          AND complete_quantity &lt; quantity
    </select>
</mapper>