Explorar o código

生产排程问题处理

yzc hai 1 ano
pai
achega
6fb7ab6642

+ 2 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProduceOrderDetailMapper.java

@@ -23,4 +23,6 @@ public interface ProduceOrderDetailMapper extends BaseMapper<ProductionOrderDeta
      */
     Page<ProductionOrderDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionOrderDetail> wrapper);
 
+    Page<ProductionOrderDetailVo> schedulingTaskPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionOrderDetail> wrapper);
+
 }

+ 19 - 8
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderDetailServiceImpl.java

@@ -68,26 +68,33 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
 
     @Override
     public Page<ProductionOrderDetailVo> getPage(ProduceOrderDetailSelectDto dto) {
-        IWrapper<ProductionOrderDetail> wrapper = getWrapper();
+        IWrapper<ProductionOrderDetail> wrapper = getPageCommWrapper(dto);
+
+        Page<ProductionOrderDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
-        return commPage(dto, wrapper);
+        return commPage(page);
     }
 
     @Override
     public Page<ProductionOrderDetailVo> schedulingTaskPage(ProduceOrderDetailSelectDto dto) {
-        IWrapper<ProductionOrderDetail> wrapper = getWrapper();
+        IWrapper<ProductionOrderDetail> wrapper = getPageCommWrapper(dto);
 
         //显示当前工序,未排程完的任务
-        wrapper.eq("ps.processes_id", dto.getProcessesId());
+        wrapper.eq("ptp.processes_id", dto.getProcessesId());
+        wrapper.groupBy("pod.id");
         wrapper.having("IFNULL(SUM( ps.quantity ),0)<pod.quantity");
 
-        return commPage(dto, wrapper);
+        Page<ProductionOrderDetailVo> page = this.baseMapper.schedulingTaskPage(dto.getPage(), wrapper);
+
+        return commPage(page);
     }
 
-    private Page<ProductionOrderDetailVo> commPage(ProduceOrderDetailSelectDto dto, IWrapper<ProductionOrderDetail> wrapper) {
+    private IWrapper<ProductionOrderDetail> getPageCommWrapper(ProduceOrderDetailSelectDto dto) {
+        IWrapper<ProductionOrderDetail> wrapper = getWrapper();
+
         //只显示投产的数据
         wrapper.isNotNull("po.produce_time");
-        wrapper.groupBy("pod.id");
+
 
         //生产状态
         wrapper.eq("pod", ProductionOrderDetail::getProduceStatus, dto.getProduceStatus());
@@ -127,8 +134,12 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
         if (ObjectUtil.isNotEmpty(dto.getContractType())) {
             wrapper.eq("c.contract_type", dto.getContractType());
         }
+        return wrapper;
+    }
+
+    private Page<ProductionOrderDetailVo> commPage(Page<ProductionOrderDetailVo> page) {
+
 
-        Page<ProductionOrderDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionOrderDetailVo> records = page.getRecords();
         if (ObjectUtil.isEmpty(records)) {
             return page;

+ 16 - 4
hx-mes/src/main/resources/mapper/production/ProduceOrderDetailMapper.xml

@@ -1,8 +1,9 @@
 <?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.ProduceOrderDetailMapper">
-	<select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo">
-		SELECT pod.id,
+
+    <sql id="page">
+        SELECT pod.id,
                pod.produce_order_id,
                pod.contract_id,
                pod.contract_detail_id,
@@ -32,7 +33,18 @@
         FROM production_order_detail pod
                  LEFT JOIN production_order po ON pod.produce_order_id = po.id
                  LEFT JOIN contract c ON pod.contract_id = c.id
-                 LEFT JOIN production_scheduling ps ON ps.task_id = pod.id
-            ${ew.customSqlSegment}
+    </sql>
+
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo">
+        <include refid="page"/>
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="schedulingTaskPage" resultType="com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo">
+        <include refid="page"/>
+        LEFT JOIN production_task_progress ptp ON ptp.task_id = pod.id
+        LEFT JOIN production_scheduling ps ON ps.task_id = ptp.task_id
+        AND ps.processes_id = ptp.processes_id
+        ${ew.customSqlSegment}
     </select>
 </mapper>