| | |
| | | <result column="productName" property="productName" /> |
| | | <result column="model" property="model" /> |
| | | <result column="processRouteCode" property="processRouteCode" /> |
| | | <result column="returned" property="returned" /> |
| | | </resultMap> |
| | | |
| | | <sql id="ProductionOrderVoColumns"> |
| | |
| | | po.is_end_order as endOrder, |
| | | tr.process_route_code as processRouteCode, |
| | | ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus, |
| | | tb.bom_no as bomNo |
| | | tb.bom_no as bomNo, |
| | | pop_return.returned as returned |
| | | </sql> |
| | | |
| | | <sql id="ProductionOrderVoFrom"> |
| | |
| | | left join product p on pm.product_id = p.id |
| | | left join technology_routing tr on po.technology_routing_id = tr.id |
| | | left join technology_bom tb on tb.id = tr.bom_id |
| | | left join ( |
| | | select production_order_id as productionOrderId, |
| | | if(max(case when ifnull(is_returned, 0) = 1 then 1 else 0 end) = 1, true, false) as returned |
| | | from production_order_pick |
| | | group by production_order_id |
| | | ) pop_return on pop_return.productionOrderId = po.id |
| | | </sql> |
| | | |
| | | <sql id="ProductionOrderWhere"> |
| | |
| | | and ifnull(complete_quantity, 0) < quantity |
| | | </select> |
| | | |
| | | <select id="selectHomeOrderProgressPage" resultType="java.util.Map"> |
| | | select po.nps_no as orderNo, |
| | | p.product_name as productName, |
| | | ifnull(po.quantity, 0) as plannedQuantity, |
| | | ifnull(po.complete_quantity, 0) as completedQuantity, |
| | | round(ifnull(po.complete_quantity, 0) / nullif(po.quantity, 0) * 100, 2) as completionRate, |
| | | po.plan_complete_time as dueDate, |
| | | po.status as status |
| | | from production_order po |
| | | left join product_model pm on po.product_model_id = pm.id |
| | | left join product p on pm.product_id = p.id |
| | | <where> |
| | | <if test="status != null"> |
| | | and po.status = #{status} |
| | | </if> |
| | | <if test="startTime != null and endTime != null"> |
| | | and po.create_time >= #{startTime} |
| | | and po.create_time < #{endTime} |
| | | </if> |
| | | </where> |
| | | order by po.id desc |
| | | limit #{offset}, #{size} |
| | | </select> |
| | | |
| | | <select id="countHomeOrderProgress" resultType="java.lang.Long"> |
| | | select count(1) |
| | | from production_order po |
| | | <where> |
| | | <if test="status != null"> |
| | | and po.status = #{status} |
| | | </if> |
| | | <if test="startTime != null and endTime != null"> |
| | | and po.create_time >= #{startTime} |
| | | and po.create_time < #{endTime} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="countHomeOrderProgressByStatus" resultType="java.util.Map"> |
| | | select po.status as status, count(1) as cnt |
| | | from production_order po |
| | | where po.status in (1, 2, 3, 4) |
| | | <if test="startTime != null and endTime != null"> |
| | | and po.create_time >= #{startTime} |
| | | and po.create_time < #{endTime} |
| | | </if> |
| | | group by po.status |
| | | </select> |
| | | |
| | | <select id="selectHomeTodayProductionPlan" resultType="java.util.Map"> |
| | | select po.nps_no as orderNo, |
| | | p.product_name as productName, |
| | | ifnull(po.quantity, 0) as plannedQuantity, |
| | | po.plan_complete_time as dueDate, |
| | | po.status as status |
| | | from production_order po |
| | | left join product_model pm on po.product_model_id = pm.id |
| | | left join product p on pm.product_id = p.id |
| | | <where> |
| | | po.status in (1, 2) |
| | | <if test="planStart != null and planEnd != null"> |
| | | and po.plan_complete_time >= #{planStart} |
| | | and po.plan_complete_time < #{planEnd} |
| | | </if> |
| | | </where> |
| | | order by case when po.status = 2 then 0 else 1 end, po.id desc |
| | | limit #{size} |
| | | </select> |
| | | |
| | | <select id="countHomeTodayProductionPlan" resultType="java.lang.Long"> |
| | | select count(1) |
| | | from production_order po |
| | | <where> |
| | | po.status in (1, 2) |
| | | <if test="planStart != null and planEnd != null"> |
| | | and po.plan_complete_time >= #{planStart} |
| | | and po.plan_complete_time < #{planEnd} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |