Administrator 3 lat temu
rodzic
commit
b2f281878d

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

@@ -12,22 +12,25 @@ namespace WCS.Service.Works.Station
     {
         protected override void Do(StationDevice obj)
         {
-            obj.WhetherToExecute(IstationRequest.堆垛机放货完成请求目标地址);
-            //找到当前站台为当前设备且任务为堆垛机完成的任务
-            DB.Do(db =>
+            obj.EX(obj =>
             {
-                var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == obj.Entity.CODE && v.STATUS == TaskStatus.堆垛机完成);
-                if (task == null) throw new WarnException("WCS无该任务信息");
-                if (task.SRMSTATION != obj.Entity.CODE && task.STATUS != TaskStatus.堆垛机完成) throw new WarnException("任务状态不是堆垛机完成");
-                task.STATUS = TaskStatus.执行中;
-                db.Default.SaveChanges();
-                task.CreateStatusLog(db, $"状态由[{TaskStatus.堆垛机完成}]变更为[{task.STATUS}]-{obj.Entity.Code}", this.GetType());
-                //开始写入目标地址
-                obj.Data.Tasknum = task.ID;
-                obj.Data.Goodsstart = obj.Entity.CODE.ToShort();
-                obj.Data.Goodsend = task.ADDRNEXT.ToShort();
-                obj.Data.CmdType = IstationCmdType.堆垛机放货完成请求目标地址;
-                obj.Data.VoucherNo++;
+                obj.WhetherToExecute(IstationRequest.堆垛机放货完成请求目标地址);
+                //找到当前站台为当前设备且任务为堆垛机完成的任务
+                DB.Do(db =>
+                {
+                    var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == obj.Entity.CODE && v.STATUS == TaskStatus.堆垛机完成);
+                    if (task == null) throw new WarnException("WCS无该任务信息");
+                    if (task.SRMSTATION != obj.Entity.CODE && task.STATUS != TaskStatus.堆垛机完成) throw new WarnException("任务状态不是堆垛机完成");
+                    task.STATUS = TaskStatus.执行中;
+                    db.Default.SaveChanges();
+                    task.CreateStatusLog(db, $"状态由[{TaskStatus.堆垛机完成}]变更为[{task.STATUS}]-{obj.Entity.Code}", this.GetType());
+                    //开始写入目标地址
+                    obj.Data.Tasknum = task.ID;
+                    obj.Data.Goodsstart = obj.Entity.CODE.ToShort();
+                    obj.Data.Goodsend = task.ADDRNEXT.ToShort();
+                    obj.Data.CmdType = IstationCmdType.堆垛机放货完成请求目标地址;
+                    obj.Data.VoucherNo++;
+                });
             });
         }
 
@@ -42,26 +45,29 @@ namespace WCS.Service.Works.Station
     {
         protected override void Do(StationDeviceGroup obj)
         {
-            //找到当前站台为当前设备且任务为堆垛机完成的任务
-            DB.Do(db =>
+            obj.EX(obj =>
             {
-                foreach (var dev in obj.Items)
+                //找到当前站台为当前设备且任务为堆垛机完成的任务
+                DB.Do(db =>
                 {
-                    //当前组有一个运行的设备就停止执行
-                    if (dev.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("设备运行中");
-                    if (dev.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new WarnException("有光电,产品未离开设备");
-                    if (dev.Data2.Tasknum < 10000) throw new WarnException("任务号错误");
-                    if (dev.Data2.Request != IstationRequest.月台出库口任务完成) throw new WarnException("无完成任务请求");
+                    foreach (var dev in obj.Items)
+                    {
+                        //当前组有一个运行的设备就停止执行
+                        if (dev.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("设备运行中");
+                        if (dev.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new WarnException("有光电,产品未离开设备");
+                        if (dev.Data2.Request != IstationRequest.月台出库口任务完成) throw new WarnException("无完成任务请求");
+                        if (dev.Data2.Tasknum < 10000) throw new WarnException("任务号错误");
 
-                    var task = db.Default.Set<WCS_TASK>().Where(v => v.ID == dev.Data2.Tasknum).FirstOrDefault();
-                    if (task.STATUS != TaskStatus.执行中)
-                        throw new WarnException($"{task.ID}任务状态错误");
-                    task.STATUS = TaskStatus.已完成;
-                    db.Default.SaveChanges();
-                    task.CreateStatusLog(db, $"状态由[{TaskStatus.执行中}]变更为[{task.STATUS}]-{dev.Entity.CODE}", this.GetType());
-                    dev.Data.CmdType = IstationCmdType.月台出库口任务完成;
-                    dev.Data.VoucherNo++;
-                }
+                        var task = db.Default.Set<WCS_TASK>().Where(v => v.ID == dev.Data2.Tasknum).FirstOrDefault();
+                        if (task.STATUS != TaskStatus.执行中)
+                            throw new WarnException($"{task.ID}任务状态错误");
+                        task.STATUS = TaskStatus.已完成;
+                        db.Default.SaveChanges();
+                        task.CreateStatusLog(db, $"状态由[{TaskStatus.执行中}]变更为[{task.STATUS}]-{dev.Entity.CODE}", this.GetType());
+                        dev.Data.CmdType = IstationCmdType.月台出库口任务完成;
+                        dev.Data.VoucherNo++;
+                    }
+                });
             });
         }