Kaynağa Gözat

Merge branch '分拣二次码垛' of http://120.77.11.229:3000/zuolinhao/WcsFramework into 分拣二次码垛

林豪 左 11 ay önce
ebeveyn
işleme
b63dca82ae

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/一楼扫码入库.cs

@@ -99,7 +99,7 @@ namespace WCS.WorkEngineering.Systems
 
                     if (obj.Data4.Length == 2)
                     {
-                        if (!db.Queryable<WCS_TaskInfo>().Any(v => v.BarCode == barcode && v.Type == TaskType.EnterDepot))
+                        if (!db.Queryable<WCS_TaskInfo>().Any(v => v.BarCode == barcode && v.Type == TaskType.EnterDepot && v.Status < Entity.TaskStatus.Finish))
                         {
                             var palletType = PalletType.Pallet09;
                             if (barcode.Contains("TPB")) palletType = PalletType.PalletNo09;
@@ -114,7 +114,7 @@ namespace WCS.WorkEngineering.Systems
                             if (res.ResCode == WebApi.Models.WMS.Response.ResponseStatusCodeEnum.Sucess) return;
                         }
                         //找到对应的任务
-                        var taskInfo = db.Queryable<WCS_TaskInfo>().First(v => v.BarCode == barcode && v.Type == TaskType.EnterDepot);
+                        var taskInfo = db.Queryable<WCS_TaskInfo>().First(v => v.BarCode == barcode && v.Type == TaskType.EnterDepot && v.Status < Entity.TaskStatus.Finish);
                         if (taskInfo.Status != Entity.TaskStatus.WaitingToExecute) return;
                         {
                             var tunnel = obj.Entity.Targets.FirstOrDefault(v => v.HasFlag(DeviceFlags.巷道));

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架.cs

@@ -206,6 +206,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Entity.SetFlag(warehouseCode, 0);
                 warehouseCode = warehouseCode == "N" ? "S" : "N"; //如果是北侧切换到南侧  如果是南侧切换到北侧
                 quantity = obj.Entity.GetFlag<int>(warehouseCode); //获取南库的侧执行的次数
+                obj.Entity.SetFlag<string>("warehouseCode", warehouseCode);
             }
 
             List<WCS_PalletizingRow> palletizingRowList = null;

+ 14 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架码垛工位任务结束处理.cs

@@ -46,7 +46,20 @@ namespace WCS.WorkEngineering.Systems
                 var taskCodes = taskList.Select(x => x.BarCode).ToList();
                 if (!obj.Data5.CmdType.HasFlag(TrussCmdType.End1))
                 {
-                    if (TaskNoList.Count == 0) return;
+                    if (TaskNoList.Count == 0)
+                    {
+                        var taskAny = db.Queryable<WCS_TaskInfo>().NoLock().Single(x =>  x.Type == TaskType.EnterDepot && x.Status == TaskStatus.ConveyorExecution && x.BusType == "码垛入库" && x.AddrFrom == obj.Entity.Code);
+                        //针对断电写入信号失败的情况
+                        if (taskAny != null && obj.Data.TaskNumber != taskAny.ID)
+                        {
+                            obj.Data.TaskNumber = taskAny.ID;
+                            obj.Data.GoodsStart = obj.Entity.Code.ToShort();
+                            obj.Data.GoodsEnd = taskAny.AddrNext.ToShort();
+                            obj.Data4.CmdType = TrussCmdType.End;
+                        }
+                        return;
+                    }
+                    
                     if (taskList.Count != TaskNoList.Count)
                     {
                         var taskIn = db.Queryable<WCS_TaskInfo>().NoLock().Single(x => x.BarCode == palletizing.PalleCode && x.Type == TaskType.EnterDepot && x.Status < TaskStatus.Finish);

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/码垛区域生成空托盘任务.cs

@@ -137,7 +137,7 @@ namespace WCS.WorkEngineering.Systems
                             var resData = WmsApi.ApplyPalletizingStockOut(obj.Entity.Code, obj.Entity.Sources.Single(x => x.HasFlag(DeviceFlags.Robot)).Code);
                             if (resData.ResCode != ResponseStatusCodeEnum.Sucess)
                             {
-                                World.Log(resData.ResMsg);
+                                World.Log(resData.ResMsg,ServiceCenter.Logs.LogLevelEnum.Mid);
                             }
                             return;
                         }