ProduceOrderDetailMapper.xml 5.0 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.ProduceOrderDetailMapper">
  4. <sql id="page">
  5. SELECT pod.id,
  6. pod.code,
  7. pod.produce_order_id,
  8. pod.contract_id,
  9. pod.contract_detail_id,
  10. pod.product_id,
  11. pod.quantity,
  12. pod.finish_quantity,
  13. pod.produce_status,
  14. pod.finish_time,
  15. pod.tenant_id,
  16. pod.create_user,
  17. pod.create_time,
  18. pod.update_user,
  19. pod.update_time,
  20. pod.del_flag,
  21. pod.report_lock,
  22. pod.other_prod_remark,
  23. po.code AS orderCode,
  24. po.create_time AS orderCreateTime,
  25. po.produce_time,
  26. po.delivery_period,
  27. po.company_id,
  28. po.begin_work_status,
  29. pbc.`status` AS prod_confirm_status,
  30. (if(IFNULL(po.finish_time, NOW()) > po.delivery_period, 1, 0)) AS isOverdue,
  31. pod.remark,
  32. c.prod_tag,
  33. c.prod_remark,
  34. c.create_user as saleUserId,
  35. c.contract_type,
  36. c.of_company_id as contractCompanyId,
  37. c.dept_id as contractDeptId,
  38. c.buy_corporation_id as customerId,
  39. c.belong_type as contract_belong_type,
  40. IFNULL(t2.lackStatus, 0) as lackStatus
  41. FROM production_order_detail pod
  42. LEFT JOIN production_order po ON pod.produce_order_id = po.id
  43. LEFT JOIN contract c ON pod.contract_id = c.id
  44. LEFT JOIN (SELECT sd.contract_id,
  45. CASE
  46. WHEN SUM(CASE WHEN sd.`status` IN (15, 30) OR ep.arrival_status != 20 OR sw.`status` != 2 THEN 1 ELSE 0 END) >
  47. 0 THEN 1
  48. ELSE 0 END AS lackStatus
  49. FROM subscribe_detail sd
  50. LEFT JOIN ehsd_purchase_product epp ON epp.subscribe_detail_id = sd.id
  51. LEFT JOIN ehsd_purchase ep ON epp.purchase_id = ep.id
  52. AND ep.`status` IN (10, 30, 60)
  53. LEFT JOIN stock_wait sw ON sw.purchase_id = ep.id
  54. GROUP BY sd.contract_id) t2 ON t2.contract_id = pod.contract_id
  55. LEFT JOIN production_begin_confirm pbc ON pbc.id = po.prod_begin_confirm_id
  56. </sql>
  57. <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo">
  58. <include refid="page"/>
  59. LEFT JOIN production_scheduling ps ON ps.task_id = pod.id
  60. ${ew.customSqlSegment}
  61. </select>
  62. <select id="schedulingTaskPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo">
  63. <include refid="page"/>
  64. LEFT JOIN production_task_progress ptp ON ptp.task_id = pod.id
  65. LEFT JOIN production_scheduling ps ON ps.task_id = ptp.task_id
  66. AND ps.processes_id = ptp.processes_id
  67. ${ew.customSqlSegment}
  68. </select>
  69. <select id="getProcessesSchedulingByDay"
  70. resultType="com.fjhx.mes.entity.production.vo.ProductionSchedulingVo">
  71. SELECT pp.id AS processesId,
  72. pp.`name` AS processesName,
  73. count(DISTINCT ps.id) AS quantity
  74. FROM production_processes pp
  75. LEFT JOIN production_scheduling ps ON ps.processes_id = pp.id
  76. AND ps.scheduling_date = #{dayDate}
  77. GROUP BY pp.id
  78. </select>
  79. <select id="getProcessesScheduling"
  80. resultType="com.fjhx.mes.entity.production.vo.ProductionSchedulingVo">
  81. SELECT pp.id AS processesId,
  82. pp.`name` AS processesName,
  83. count(DISTINCT ps.id) AS quantity
  84. FROM production_processes pp
  85. LEFT JOIN (select ps.id, ps.processes_id, ps.scheduling_date
  86. from production_scheduling ps
  87. LEFT JOIN production_order_detail pod ON ps.task_id = pod.id
  88. left join production_order po on pod.produce_order_id = po.id
  89. LEFT JOIN contract c on po.contract_id = c.id
  90. ${ew.customSqlSegment}) ps ON ps.processes_id = pp.id
  91. <if test="dayDate != null and dayDate != ''">
  92. AND ps.scheduling_date = #{dayDate}
  93. </if>
  94. group by pp.id
  95. </select>
  96. </mapper>