123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?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.fjhx.mes.mapper.production.ProduceOrderMapper">
- <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderVo">
- select po.id,
- po.contract_id,
- po.code,
- po.produce_time,
- po.delivery_period,
- po.produce_status,
- po.create_user,
- po.create_time,
- po.update_user,
- po.update_time,
- po.company_id,
- c.prod_tag,
- c.prod_remark,
- po.finish_time,
- (if(IFNULL(po.finish_time, NOW()) > po.delivery_period, 1, 0)) AS isOverdue,
- po.confirm_status,
- c.contract_type,
- c.of_company_id as contractCompanyId,
- c.quality_lv,
- IFNULL(t2.lackStatus, 0) as lackStatus,
- pbc.`status` AS prod_confirm_status,
- po.begin_work_status
- from production_order po
- LEFT JOIN contract c ON po.contract_id = c.id
- LEFT JOIN (SELECT sd.prod_order_id,
- CASE
- WHEN SUM(CASE WHEN sd.`status` IN (15, 30) OR ep.arrival_status != 20 OR sw.`status` != 2 THEN 1 ELSE 0 END) >
- 0 THEN 1
- ELSE 0 END AS lackStatus
- FROM subscribe_detail sd
- LEFT JOIN ehsd_purchase_product epp ON epp.subscribe_detail_id = sd.id
- LEFT JOIN ehsd_purchase ep ON epp.purchase_id = ep.id
- AND ep.`status` IN (10, 30, 60)
- LEFT JOIN stock_wait sw ON sw.purchase_id = ep.id
- GROUP BY sd.prod_order_id) t2 ON t2.prod_order_id = po.id
- LEFT JOIN production_begin_confirm pbc ON pbc.id = po.prod_begin_confirm_id
- ${ew.customSqlSegment}
- </select>
- <select id="getSchedulingList" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderVo">
- SELECT po.id,
- po.`code`,
- GROUP_CONCAT(pi.`name` SEPARATOR ',') AS productName,
- po.create_time,
- po.produce_time,
- po.delivery_period,
- po.company_id,
- (if(IFNULL(po.finish_time, NOW()) > po.delivery_period, 1, 0)) AS isOverdue
- FROM production_order po
- LEFT JOIN production_order_detail pod ON pod.produce_order_id = po.id
- LEFT JOIN product_info pi ON pod.product_id = pi.id
- ${ew.customSqlSegment}
- </select>
- <select id="materialBalanceList" resultType="com.fjhx.mes.entity.MaterialBalanceBo">
- SELECT t1.material_id,
- t1.quantity,
- (t1.quantity - t1.receiptQuantity) AS unclaimedQuantity,
- t1.receiptQuantity AS receivedQuantity,
- (t1.receiptQuantity - t1.usedQuantity) AS workshopInventoryQuantity,
- IFNULL(t1.purchaseTransitQuantity, 0) AS purchaseTransitQuantity
- FROM (SELECT cpb.product_name,
- cpb.material_id,
- sum(cpb.quantity * cp.quantity) AS quantity,
- (SELECT sum(receipt_quantity)
- FROM stock_wait_details swd
- JOIN stock_wait sw ON swd.stock_wait_id = sw.id
- WHERE sw.business_id = po.id
- AND swd.product_id = cpb.material_id) AS receiptQuantity,
- (SELECT sum(pod.finish_quantity * cpb1.quantity)
- FROM production_order_detail pod
- JOIN contract_product_bom cpb1 ON cpb1.contract_product_id = pod.contract_detail_id
- WHERE cpb1.material_id = cpb.material_id
- AND pod.produce_order_id = po.id) AS usedQuantity,
- (SELECT sum(pp.quantity) - IFNULL(sum(swd.quantity), 0)
- FROM subscribe_detail sd
- JOIN ehsd_purchase_product pp ON pp.subscribe_detail_id = sd.id
- left join stock_wait_details swd on swd.purchase_detail_id = pp.id
- WHERE pp.product_id = cpb.material_id
- AND sd.contract_id = po.contract_id) AS purchaseTransitQuantity
- FROM production_order po
- LEFT JOIN contract_product cp ON cp.contract_id = po.contract_id
- LEFT JOIN contract_product_bom cpb ON cpb.contract_product_id = cp.id
- LEFT JOIN product_info pi ON cp.product_id = pi.id
- WHERE po.id = #{orderID}
- AND pi.company_id = po.company_id
- AND cpb.type != 3
- GROUP BY cpb.material_id) t1
- </select>
- </mapper>
|