瀏覽代碼

生产中新增订单排产时生产中的订单重新排序更新

yejian 2 年之前
父節點
當前提交
6c88f14f27

+ 6 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java

@@ -76,6 +76,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -626,12 +627,14 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             List<PlanProduct> planProductList = planProductService.list(Wraps.<PlanProduct>lbQ().in(PlanProduct::getPlanId, planIdList));
             planProductList.addAll(productionPlanProducts);
             //生成任务
+            msgUtil.redis_set(YunjianConstant.YUNJIAN_SHEDULE_FLAG,YunjianConstant.YUNJIAN_SHEDULE_FLAG);
             List<TTask> taskList = taskService.createNewTaskByPlan(orderProductList, planProductList, bomProcedureMap);
 
 //            map.put("taskBatchNo", taskBatchNo);
             map.put("planIds", planIds);
         }finally {
 //            redisTemplate.delete(RepeatCacheKey.ONETOUCHSCHEDULE_UNION_KEY+"_"+ids);
+            msgUtil.redis_del(YunjianConstant.YUNJIAN_SHEDULE_FLAG);
         }
         return R.success();
     }
@@ -976,9 +979,11 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             for(TaskNode taskNode: tasknodes){
                 if(null != taskNode.getResourceId() && hisTargetResourceId == taskNode.getResourceId()){
                     taskNode.setResourceId(task.getMachineId());
+                    taskNode.setUpdateTime(LocalDateTime.now());
                 }
                 if(null != taskNode.getTargetResourceId() && hisTargetResourceId == taskNode.getTargetResourceId()){
                     taskNode.setTargetResourceId(task.getMachineId());
+                    taskNode.setUpdateTime(LocalDateTime.now());
                 }
             }
             // end modify by yj on 20220502 for 重调度后也需更新tasknode表中的target_resoure_id
@@ -987,6 +992,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             task.setExpectEndTime(new Date(task.getFinish()));
             task.setResourceId(task.getMachineId());
             task.setExecutorId(task.getMachineId());
+            task.setUpdateTime(LocalDateTime.now());
 //            if(CollectionUtil.isNotEmpty(procedureProductionresourceList)){
 //                task.setResourceBusinessId(procedureProductionresourceList.get(0).getResourceBusinessId());
 //            }

+ 19 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -57,6 +57,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -366,8 +367,24 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         // 更新task表人工序任务的预计开始时间及结束时间
         Iterator<Map.Entry<String, TTask>> it = instance.getOperationMap().entrySet().iterator();
         ArrayList<TTask> taskList = new ArrayList<>();
+        ArrayList<TaskNode> taskNodeList = new ArrayList<>();
         while(it.hasNext()){
             TTask task = it.next().getValue();
+
+            long hisTargetResourceId = task.getResourceId();
+            // 查找刚工序对应历史加工节点数据
+            List<TaskNode> tasknodes =  taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getTaskId,task.getId()).and(wrapper-> wrapper.eq(TaskNode::getTargetResourceId,hisTargetResourceId).or().eq(TaskNode::getResourceId,hisTargetResourceId) ).orderByAsc(TaskNode::getCompleteBatchSort));
+            for(TaskNode taskNode: tasknodes){
+                if(null != taskNode.getResourceId() && hisTargetResourceId == taskNode.getResourceId()){
+                    taskNode.setResourceId(task.getMachineId());
+                    taskNode.setUpdateTime(LocalDateTime.now());
+                }
+                if(null != taskNode.getTargetResourceId() && hisTargetResourceId == taskNode.getTargetResourceId()){
+                    taskNode.setTargetResourceId(task.getMachineId());
+                    taskNode.setUpdateTime(LocalDateTime.now());
+                }
+            }
+
             List<BomProcedureProductionresource> procedureProductionresourceList = procedureProductionresourceMapper.selectList(Wraps.<BomProcedureProductionresource>lbQ().eq(BomProcedureProductionresource::getProcedureId,task.getProcedureId())
                     .eq(BomProcedureProductionresource::getResourceId,task.getMachineId()).orderByDesc(BomProcedureProductionresource::getCreateTime));
             task.setExpectStartTime(new Date(task.getStart()));
@@ -378,8 +395,10 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
                 task.setResourceBusinessId(procedureProductionresourceList.get(0).getResourceBusinessId());
             }
             taskList.add(task);
+            taskNodeList.addAll(tasknodes);
         }
         updateBatchById(taskList);
+        taskNodeService.updateBatchById(taskNodeList);
         return taskList;
     }