ProductionTaskProgressMapper.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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.ProductionTaskProgressMapper">
  4. <select id="getList" resultType="com.fjhx.mes.entity.production.vo.ProductionTaskProgressVo">
  5. SELECT ptp.id,
  6. ptp.task_id,
  7. ptp.processes_id,
  8. pp.`name` AS progressName,
  9. ptp.finish_quantity,
  10. ptp.balance_quantity
  11. FROM production_task_progress ptp
  12. LEFT JOIN production_processes pp ON ptp.processes_id = pp.id
  13. ${ew.customSqlSegment}
  14. </select>
  15. <select id="workshopReport" resultType="com.fjhx.mes.entity.production.bo.WorkshopReportBo">
  16. SELECT ptp.id,
  17. pod.id AS task_id,
  18. pod.produce_order_id,
  19. pp.id AS progressId,
  20. pp.`name` AS progressName,
  21. po.`code` AS orderCode,
  22. pod.product_id,
  23. pod.quantity,
  24. ptp.finish_quantity,
  25. (pod.quantity - ptp.finish_quantity) AS residueQuantity,
  26. IFNULL((SELECT sum(quantity)
  27. FROM production_scheduling ps
  28. WHERE ps.task_id = pod.id
  29. AND ps.processes_id = ptp.processes_id
  30. AND DATEDIFF(ps.scheduling_date, now()) = - 1), 0) as yesterdaySchedulingQuantity,
  31. IFNULL((SELECT sum(finish_quantity)
  32. FROM production_scheduling ps
  33. WHERE ps.task_id = pod.id
  34. AND ps.processes_id = ptp.processes_id
  35. AND DATEDIFF(ps.scheduling_date, now()) = - 1), 0) as yesterdayFinishQuantity,
  36. IFNULL((SELECT sum(quantity)
  37. FROM production_scheduling ps
  38. WHERE ps.task_id = pod.id
  39. AND ps.processes_id = ptp.processes_id
  40. AND DATEDIFF(ps.scheduling_date, now()) = 0), 0) as todaySchedulingQuantity,
  41. IFNULL((SELECT sum(finish_quantity)
  42. FROM production_scheduling ps
  43. WHERE ps.task_id = pod.id
  44. AND ps.processes_id = ptp.processes_id
  45. AND DATEDIFF(ps.scheduling_date, now()) = 0), 0) as todayFinishQuantity,
  46. IFNULL((SELECT sum(quantity)
  47. FROM production_scheduling ps
  48. WHERE ps.task_id = pod.id
  49. AND ps.processes_id = ptp.processes_id
  50. AND DATEDIFF(ps.scheduling_date, now()) = 1), 0) as tomorrowSchedulingQuantity
  51. FROM production_task_progress ptp
  52. LEFT JOIN production_processes pp ON ptp.processes_id = pp.id
  53. LEFT JOIN production_order_detail pod ON ptp.task_id = pod.id
  54. LEFT JOIN production_order po ON pod.produce_order_id = po.id
  55. LEFT JOIN production_scheduling ps on ps.task_id = pod.id AND ps.processes_id = ptp.processes_id
  56. ${ew.customSqlSegment}
  57. </select>
  58. <select id="workshopReportStatistics"
  59. resultType="com.fjhx.mes.entity.production.vo.ProductionTaskProgressVo">
  60. SELECT ptp.processes_id,
  61. pp.`name` AS progressName,
  62. IFNULL(sum(ps.quantity), 0) AS quantity,
  63. IFNULL(sum(ps.finish_quantity), 0) AS finishQuantity
  64. FROM production_task_progress ptp
  65. LEFT JOIN production_processes pp ON ptp.processes_id = pp.id
  66. LEFT JOIN production_order_detail pod ON ptp.task_id = pod.id
  67. LEFT JOIN production_scheduling ps ON ps.task_id = pod.id
  68. AND ps.processes_id = ptp.processes_id
  69. ${ew.customSqlSegment}
  70. </select>
  71. <select id="workshopReportMaterialsUsed"
  72. resultType="com.fjhx.mes.entity.production.bo.WorkshopReportMaterialsUsedBo">
  73. SELECT production_order_detail_id,
  74. material_id,
  75. material_name,
  76. quantity,
  77. usedQuantity,
  78. lossQuantity,
  79. (quantity - usedQuantity - lossQuantity) AS surplusQuantity
  80. FROM (SELECT pod.id AS production_order_detail_id,
  81. cpb.material_id,
  82. cpb.product_name as material_name,
  83. (cpb.quantity / pod.quantity) as quantity,
  84. (cpb.quantity / pod.quantity * pod.finish_quantity) AS usedQuantity,
  85. ifnull(t1.quantity, 0) AS lossQuantity
  86. FROM contract_product_bom cpb
  87. JOIN production_order_detail pod ON pod.contract_detail_id = cpb.contract_product_id
  88. LEFT JOIN (SELECT sj.prod_order_id,
  89. sjd.product_id,
  90. sum(sjd.quantity) AS quantity
  91. FROM stock_journal_details sjd
  92. JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
  93. WHERE sj.type = 1
  94. GROUP BY sj.prod_order_id,
  95. sjd.product_id) t1 ON t1.prod_order_id = pod.produce_order_id
  96. AND t1.product_id = cpb.material_id
  97. ${ew.customSqlSegment}) t2
  98. </select>
  99. </mapper>