yzc 2 жил өмнө
parent
commit
4c9741d953

+ 4 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailVo.java

@@ -23,6 +23,10 @@ public class ProductionTaskDetailVo extends ProductionTaskDetail {
      * 工序名称
      */
     private String productionProcessesName;
+    /**
+     * 下一工序名称
+     */
+    private String nextProductionProcessesName;
 
     /**
      * 累计耗时

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderVo.java

@@ -48,4 +48,9 @@ public class WorkOrderVo extends WorkOrder {
      */
     private BigDecimal completionRate;
 
+    /**
+     * 生产任务id
+     */
+    private Long productionTaskId;
+
 }

+ 6 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java

@@ -4,9 +4,13 @@ import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
+import com.fjhx.mes.entity.work.po.WorkOrder;
+import com.fjhx.mes.entity.work.vo.WorkOrderVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -23,4 +27,6 @@ public interface ProductionTaskDetailMapper extends BaseMapper<ProductionTaskDet
      */
     Page<ProductionTaskDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionTaskDetail> wrapper);
 
+    List<WorkOrderVo> getWorkOrderByProductionTask(@Param("ew") IWrapper<ProductionTaskDetail> wrapper);
+
 }

+ 36 - 20
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -7,20 +7,15 @@ import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDetailSelectDto;
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
+import com.fjhx.mes.entity.production.po.*;
 import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
 import com.fjhx.mes.entity.technology.po.Technology;
 import com.fjhx.mes.entity.work.po.WorkOrder;
 import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
+import com.fjhx.mes.entity.work.vo.WorkOrderVo;
 import com.fjhx.mes.mapper.production.ProductionTaskDetailMapper;
 import com.fjhx.mes.service.applicable.ApplicableProductsService;
-import com.fjhx.mes.service.production.ProductionPlanService;
-import com.fjhx.mes.service.production.ProductionTaskDetailRecordService;
-import com.fjhx.mes.service.production.ProductionTaskDetailService;
-import com.fjhx.mes.service.production.ProductionTaskService;
+import com.fjhx.mes.service.production.*;
 import com.fjhx.mes.service.technology.TechnologyService;
 import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
 import com.fjhx.mes.service.work.WorkOrderService;
@@ -39,6 +34,7 @@ import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -72,6 +68,8 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
     private StockWaitDetailsService stockWaitDetailsService;
     @Autowired
     private ProductInfoService productInfoService;
+    @Autowired
+    private ProductionProcessesService productionProcessesService;
 
     @Override
     public Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto) {
@@ -87,19 +85,37 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         });
         //赋值当前工序名 目标工序名
         List<Long> productionTaskIds = records.stream().map(ProductionTaskDetail::getProductionTaskId).collect(Collectors.toList());
-        List<Long> productionPlanIds = productionTaskService.listObject(ProductionTask::getProductionPlanId, q -> q.in(ProductionTask::getId, productionTaskIds));
-//        workOrderService.listObject()
+        IWrapper<ProductionTaskDetail> wrapper1 = IWrapper.getWrapper();
+        wrapper1.in("pt",ProductionTaskDetail::getId,productionTaskIds);
+        List<WorkOrderVo> workOrderByProductionTask = baseMapper.getWorkOrderByProductionTask(wrapper1);
+        Map<Long, WorkOrderVo> WorkOrderMap = workOrderByProductionTask.stream().collect(Collectors.toMap(WorkOrderVo::getProductionTaskId, Function.identity()));
+        List<Long> workIds = workOrderByProductionTask.stream().map(WorkOrderVo::getId).collect(Collectors.toList());
+
+        //获取工序id列表
+        List<Long> productionProcessesIds = records.stream().map(ProductionTaskDetail::getProductionProcessesId).collect(Collectors.toList());
+        productionProcessesIds.addAll(records.stream().map(ProductionTaskDetail::getNextProductionProcessesId).collect(Collectors.toList()));
+        //获取基本工序map
+        Map<Long, String> stringMap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName,
+                q -> q.in(ProductionProcesses::getId, productionProcessesIds));
+        //获取定制工序map
+        Map<Long, String> workOrderProductionPMap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId,
+                WorkOrderProductionProcesses::getName, q -> q.in(WorkOrderProductionProcesses::getWorkOrderId, workIds));
+
         for (ProductionTaskDetailVo record : records) {
-//            ProductionTask productionTask = productionTaskService.getById(record.getProductionTaskId());
-//            ProductionPlan productionPlan = productionPlanService.getById(productionTask.getId());
-//            WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-//            //如果是定制工单差定制工序
-//            if("1".equals(workOrder.getIsCustomized())){
-//                Map<Long, String> stringMap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId, WorkOrderProductionProcesses::getName, q -> q
-//                        .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
-//                        .orderByAsc(WorkOrderProductionProcesses::getSort));
-//
-//            }
+            WorkOrderVo workOrderVo = WorkOrderMap.get(record.getProductionTaskId());
+            if("1".equals(workOrderVo.getIsCustomized())){
+                //如果是定制
+                String name = workOrderProductionPMap.get(record.getProductionProcessesId());
+                String nextName = workOrderProductionPMap.get(record.getNextProductionProcessesId());
+                record.setProductionProcessesName(name);
+                record.setNextProductionProcessesName(nextName);
+            }else{
+                //不是定制
+                String name = stringMap.get(record.getProductionProcessesId());
+                String nextName = stringMap.get(record.getNextProductionProcessesId());
+                record.setProductionProcessesName(name);
+                record.setNextProductionProcessesName(nextName);
+            }
         }
         return page;
     }

+ 10 - 0
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml

@@ -21,5 +21,15 @@
         from production_task_detail ptd
             ${ew.customSqlSegment}
     </select>
+    <select id="getWorkOrderByProductionTask" resultType="com.fjhx.mes.entity.work.vo.WorkOrderVo">
+        SELECT
+            wo.*,
+            pt.id productionTaskId
+        FROM
+            work_order wo
+                LEFT JOIN production_plan pp ON pp.work_order_id = wo.id
+                LEFT JOIN production_task pt ON pt.production_plan_id = pp.id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>