|
@@ -2,15 +2,59 @@
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<mapper namespace="com.fjhx.wms.mapper.contract.ContractMrpInfoMapper">
|
|
|
<select id="getPage" resultType="com.fjhx.wms.entity.contract.vo.ContractMrpInfoVo">
|
|
|
- select cmi.id,
|
|
|
- cmi.contract_id,
|
|
|
+ SELECT cmi.contract_id,
|
|
|
+ c.`code` AS orderCode,
|
|
|
cmi.material_id,
|
|
|
+ cpb1.quantity AS order_quantity,
|
|
|
+ sd.count AS demand_quantity,
|
|
|
cmi.stock_quantity,
|
|
|
- cmi.create_user,
|
|
|
- cmi.create_time,
|
|
|
- cmi.update_user,
|
|
|
- cmi.update_time
|
|
|
- from contract_mrp_info cmi
|
|
|
+ IFNULL(swd1.receipt_quantity, 0) AS prod_out_quantity,
|
|
|
+ IFNULL(epp1.transit_quantity, 0) AS transit_quantity,
|
|
|
+ (sd.count - cmi.stock_quantity - IFNULL(swd1.receipt_quantity, 0) -
|
|
|
+ IFNULL(epp1.transit_quantity, 0)) AS lack_quantity,
|
|
|
+ pi.custom_code AS product_code,
|
|
|
+ pi.name AS product_name,
|
|
|
+ pi.length AS product_length,
|
|
|
+ pi.width AS product_width,
|
|
|
+ pi.height AS product_height,
|
|
|
+ pi.color AS product_color
|
|
|
+ FROM contract_mrp_info cmi
|
|
|
+ JOIN contract c ON cmi.contract_id = c.id
|
|
|
+ LEFT JOIN product_info pi ON cmi.material_id = pi.id
|
|
|
+ JOIN (SELECT cpb.contract_id,
|
|
|
+ cpb.material_id,
|
|
|
+ sum(cpb.quantity) AS quantity
|
|
|
+ FROM contract_product_bom cpb
|
|
|
+ WHERE cpb.type != 3
|
|
|
+ GROUP BY
|
|
|
+ cpb.contract_id,
|
|
|
+ cpb.material_id) cpb1 ON cpb1.contract_id = cmi.contract_id
|
|
|
+ AND cpb1.material_id = cmi.material_id
|
|
|
+ LEFT JOIN subscribe_detail sd ON sd.contract_id = cmi.contract_id
|
|
|
+ AND sd.product_id = cmi.material_id
|
|
|
+ LEFT JOIN (SELECT sw.contract_id,
|
|
|
+ swd.product_id,
|
|
|
+ sum(swd.quantity) AS quantity,
|
|
|
+ sum(swd.receipt_quantity) AS receipt_quantity
|
|
|
+ FROM stock_wait_details swd
|
|
|
+ JOIN stock_wait sw ON swd.stock_wait_id = sw.id
|
|
|
+ WHERE sw.business_type = 9
|
|
|
+ GROUP BY sw.contract_id,
|
|
|
+ swd.product_id) swd1 ON swd1.contract_id = cmi.contract_id
|
|
|
+ AND swd1.product_id = cmi.material_id
|
|
|
+ LEFT JOIN (SELECT epp.contract_id,
|
|
|
+ epp.product_id,
|
|
|
+ sum(
|
|
|
+ epp.quantity - IFNULL(swd.receipt_quantity, 0)) AS transit_quantity
|
|
|
+ FROM ehsd_purchase_product epp
|
|
|
+ JOIN ehsd_purchase ep ON epp.purchase_id = ep.id
|
|
|
+ LEFT JOIN stock_wait_details swd ON swd.purchase_detail_id = epp.id
|
|
|
+ LEFT JOIN stock_wait sw ON swd.stock_wait_id = sw.id
|
|
|
+ AND sw.business_type = 104
|
|
|
+ WHERE ep.`status` IN (30, 60)
|
|
|
+ GROUP BY epp.contract_id,
|
|
|
+ epp.product_id) epp1 ON epp1.contract_id = cmi.contract_id
|
|
|
+ AND epp1.product_id = cmi.material_id
|
|
|
${ew.customSqlSegment}
|
|
|
</select>
|
|
|
|