ProduceOrderMapper.xml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.fjhx.mes.mapper.production.ProduceOrderMapper">
  4. <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderVo">
  5. select po.id,
  6. po.contract_id,
  7. po.code,
  8. po.produce_time,
  9. po.delivery_period,
  10. po.produce_status,
  11. po.create_user,
  12. po.create_time,
  13. po.update_user,
  14. po.update_time,
  15. po.company_id,
  16. c.prod_tag,
  17. c.prod_remark,
  18. po.finish_time,
  19. (if(IFNULL(po.finish_time, NOW()) > po.delivery_period, 1, 0)) AS isOverdue,
  20. po.confirm_status,
  21. c.contract_type,
  22. c.of_company_id as contractCompanyId,
  23. c.quality_lv
  24. from production_order po
  25. LEFT JOIN contract c ON po.contract_id = c.id
  26. ${ew.customSqlSegment}
  27. </select>
  28. <select id="getSchedulingList" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderVo">
  29. SELECT po.id,
  30. po.`code`,
  31. GROUP_CONCAT(pi.`name` SEPARATOR ',') AS productName,
  32. po.create_time,
  33. po.produce_time,
  34. po.delivery_period,
  35. po.company_id,
  36. (if(IFNULL(po.finish_time, NOW()) > po.delivery_period, 1, 0)) AS isOverdue
  37. FROM production_order po
  38. LEFT JOIN production_order_detail pod ON pod.produce_order_id = po.id
  39. LEFT JOIN product_info pi ON pod.product_id = pi.id
  40. ${ew.customSqlSegment}
  41. </select>
  42. <select id="materialBalanceList" resultType="com.fjhx.mes.entity.MaterialBalanceBo">
  43. SELECT t1.material_id,
  44. t1.quantity,
  45. (t1.quantity - t1.receiptQuantity) AS unclaimedQuantity,
  46. t1.receiptQuantity AS receivedQuantity,
  47. (t1.receiptQuantity - t1.usedQuantity) AS workshopInventoryQuantity,
  48. IFNULL(t1.purchaseTransitQuantity, 0) AS purchaseTransitQuantity
  49. FROM (SELECT cpb.product_name,
  50. cpb.material_id,
  51. sum(cpb.quantity * cp.quantity) AS quantity,
  52. (SELECT sum(receipt_quantity)
  53. FROM stock_wait_details swd
  54. JOIN stock_wait sw ON swd.stock_wait_id = sw.id
  55. WHERE sw.business_id = po.id
  56. AND swd.product_id = cpb.material_id) AS receiptQuantity,
  57. (SELECT sum(pod.finish_quantity * cpb1.quantity)
  58. FROM production_order_detail pod
  59. JOIN contract_product_bom cpb1 ON cpb1.contract_product_id = pod.contract_detail_id
  60. WHERE cpb1.material_id = cpb.material_id
  61. AND pod.produce_order_id = po.id) AS usedQuantity,
  62. (SELECT sum(pp.quantity) - IFNULL(sum(swd.quantity), 0)
  63. FROM subscribe_detail sd
  64. JOIN ehsd_purchase_product pp ON pp.subscribe_detail_id = sd.id
  65. left join stock_wait_details swd on swd.purchase_detail_id = pp.id
  66. WHERE pp.product_id = cpb.material_id
  67. AND sd.contract_id = po.contract_id) AS purchaseTransitQuantity
  68. FROM production_order po
  69. LEFT JOIN contract_product cp ON cp.contract_id = po.contract_id
  70. LEFT JOIN contract_product_bom cpb ON cpb.contract_product_id = cp.id
  71. LEFT JOIN product_info pi ON cp.product_id = pi.id
  72. WHERE po.id = #{orderID}
  73. AND pi.company_id = po.company_id
  74. AND cpb.type != 3
  75. GROUP BY cpb.material_id) t1
  76. </select>
  77. </mapper>