林豪 左 3 年之前
父節點
當前提交
8e87c30a0f

+ 11 - 0
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -48,6 +48,7 @@ namespace WCS.Service.Works.SRM
                 if (obj.Data2.FinishedTask_1 != 0 || obj.Data2.FinishedTask_2 != 0)
                 {
                     obj.FinishedTaskHandle();
+                    InfoLog.INFO_SRMINFO($"[{obj.Entity.CODE}]-{obj.Data2.FinishedTask_1}-{obj.Data2.FinishedTask_2}");
                     return;
                 }
 
@@ -332,6 +333,16 @@ namespace WCS.Service.Works.SRM
                                 task.UPDATETIME = DateTime.Now;
                                 task.STATUS = WCS.Entity.TaskStatus.堆垛机执行;
                                 task.DEVICE = obj.Entity.CODE;
+                                switch (tasks.Length)
+                                {
+                                    case 1:
+                                        task.TaskGroupKey = $"{tasks[0].ID}_0";
+                                        break;
+
+                                    case 2:
+                                        task.TaskGroupKey = $"{tasks[0].ID}_{tasks[1].ID}";
+                                        break;
+                                }
                                 var fork = obj.GetFork(item, i);
                                 //获取站台及下一个地址
                                 task.GetSrmStationAndaddNext(fork);

+ 3 - 0
Projects/永冠OPP/WCS.Service/Works/Station/一楼出库.cs

@@ -19,6 +19,9 @@ namespace WCS.Service.Works.Station
                 DB.Do(db =>
                 {
                     var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == obj.Entity.CODE && v.STATUS == TaskStatus.堆垛机完成);
+                    var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
+                    if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中))
+                        throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
                     if (task == null) throw new WarnException("WCS无该任务信息");
                     if (task.SRMSTATION != obj.Entity.CODE && task.STATUS != TaskStatus.堆垛机完成) throw new WarnException("任务状态不是堆垛机完成");
                     task.STATUS = TaskStatus.执行中;