林豪 左 преди 2 години
родител
ревизия
4d3a0270a7

+ 1 - 1
Projects/永冠/WCS.Entity.Protocol/Station/IStation520.cs

@@ -18,7 +18,7 @@ namespace WCS.Entity.Protocol
         Int32 GOODSCODE { get; set; }
 
         /// <summary>
-        /// 货物类型
+        /// 货物类型,22车间 入库1 出库2 无货时为零
         /// </summary>
 
         Int16 GOODSTYPE { get; set; }

+ 1 - 1
Projects/永冠/WCS.Entity.Protocol/Station/IStation521.cs

@@ -18,7 +18,7 @@ namespace WCS.Entity.Protocol
         Int32 GOODSCODE { get; set; }
 
         /// <summary>
-        /// 货物类型 / 码垛位:托盘类型
+        /// 货物类型 / 码垛位:托盘类型   22车间 入库1 出库2 无货时为零
         /// </summary>
 
         Int16 GOODSTYPE { get; set; }

+ 7 - 5
Projects/永冠/WCS.Service/Works/RGV/RGVWork.cs

@@ -382,10 +382,11 @@ namespace WCS.Service.Works
             {
                 short outTemp = 3060;
                 var arr = Device.Find("3006", "3060", "3001", "3005", "3004").Select(v => v.Device<IStation521, IStation520>()).ToArray();
-                if (!arr.Where(v => v.Data.GOODSEND is 3060 or 3013).Any())
+                if (!arr.Any(v => v.Data.GOODSEND is 3060 or 3013))
                 {
-                    if (arr.Where(v => v.Data.PH_STATUS && v.Data.TASKNUM == 0).Any()) throw new Exception("有光电无任务,交通管制,提升机被入库任务占用");
-                    if (arr.Where(v => !v.Data.PH_STATUS && v.Data.TASKNUM > 10000).Any()) throw new Exception("有任务无光电,请检查光电是否异常");
+                    if (arr.Any(v => v.Data.GOODSTYPE == 1)) throw new Exception("交通管制,提升机被入库任务占用");
+                    if (arr.Any(v => v.Data.PH_STATUS && v.Data.TASKNUM == 0)) throw new Exception("有光电无任务,交通管制,提升机被入库任务占用");
+                    if (arr.Any(v => !v.Data.PH_STATUS && v.Data.TASKNUM > 10000)) throw new Exception("有任务无光电,请检查光电是否异常");
 
                     DB.Do(db =>
                     {
@@ -397,11 +398,12 @@ namespace WCS.Service.Works
                         db.Default.SaveChanges();
                         //station.Data2.TASKNUM = station.Data.TASKNUM;
                         station.Data2.GOODSEND = outTemp;
+                        station.Data2.GOODSTYPE = 2;
                         station.Data2.CONFIRM = true;
                     });
                 }
-                    //throw new Exception("交通管制,提升机被入库任务占用");
-                
+                //throw new Exception("交通管制,提升机被入库任务占用");
+
             }
             if (station_3028.Data.PH_STATUS && station_3028.Data.GOODSEND == 3028 && station_3028.Data.TASKNUM > 10000)
             {

+ 5 - 2
Projects/永冠/WCS.Service/Works/Stations/22车间.cs

@@ -80,6 +80,7 @@ namespace WCS.Service.Works.Stations
                 db.Default.SaveChanges();
 
                 dev.Data2.TASKNUM = task.ID;
+                dev.Data2.GOODSTYPE = 1;
                 dev.Data2.GOODSEND = nextcode;
                 dev.Data2.CONFIRM = true;
             });
@@ -159,6 +160,7 @@ namespace WCS.Service.Works.Stations
 
                 dev.Data2.TASKNUM = dev.Data.TASKNUM;
                 dev.Data2.GOODSEND = next.Code();
+                dev.Data2.GOODSTYPE = 1;
                 dev.Data2.CONFIRM = true;
             });
         }
@@ -169,7 +171,7 @@ namespace WCS.Service.Works.Stations
         }
     }
 
-    [WorkTitle(typeof(ProductHandler), "_22车间入库缓存", true)]
+    [WorkTitle(typeof(ProductHandler), "_22车间出库放行", true)]
     public class 出库放行 : DeviceWork<Device<IStation521, IStation520>>
     {
         protected override void Do(Device<IStation521, IStation520> dev)
@@ -193,6 +195,7 @@ namespace WCS.Service.Works.Stations
                 task.ADDRNEXT = "3001";
 
                 dev.Data2.TASKNUM = dev.Data.TASKNUM;
+                dev.Data2.GOODSTYPE = 2;
                 dev.Data2.GOODSEND = 3001;
                 dev.Data2.CONFIRM = true;
                 db.Default.SaveChanges();
@@ -201,7 +204,7 @@ namespace WCS.Service.Works.Stations
 
         protected override bool SelectDevice(WCS_DEVICE dev)
         {
-            return new string[] { "3060" }.Contains(dev.CODE);
+            return new string[] { "3005" }.Contains(dev.CODE);
         }
     }
 }

+ 9 - 5
Projects/永冠/WCS.Service/Works/Stations/AGV交互.cs

@@ -253,15 +253,19 @@ namespace WCS.Service.Works.Stations
                                 if (agvTasks.Any(v => v.Status >= AGVTaskStatus.确认 && v.Status != AGVTaskStatus.执行 && v.Status < AGVTaskStatus.完成扫码 && v.Station == "3001"))
                                     throw new Exception($"同时放货任务数量最大为1");
                                 // 缓存位与取放货位没有光电 任务 去往缓存位任务   ,如果楼上没有出库任务,就不会有去往3006的任务
-                                var inTemp = Device.Find("3006", "3001", "3012","3004","3005").Select(v => v.Device<IStation521, IStation523>());
-                                if (inTemp.Any(v => v.Data.PH_STATUS == true || v.Data.TASKNUM > 0 || v.Data.GOODSEND == 3006 || v.Data2.Status.HasFlag(StationStatus.运行状态位))) return;
+                                var inTemp = Device.Find("3006", "3001", "3012", "3004", "3005").Select(v => v.Device<IStation521, IStation523>());
+                                if (inTemp.Any(v => v.Data.PH_STATUS == true
+                                                 || v.Data.TASKNUM > 0
+                                                 || v.Data.GOODSEND == 3006
+                                                 || v.Data2.Status.HasFlag(StationStatus.运行状态位)
+                                                 || v.Data.GOODSTYPE == 2)) return;
                                 if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS < TaskStatus.已完成 && v.ADDRNEXT == "3060")) return;
                                 if (db.Default.Set<WCS_AGVTask>().Any(v => v.AGVStatus >= AGVTaskStatus.确认 && v.TaskType == AGVTaskType.叫料
                                  && v.Station == "3001" && v.Status < AGVTaskStatus.完成)) return;
 
-                                //3060没有出库任务
-                                var con3060 = Device.Find("3060").Device<IStation521, IStation523>();
-                                if ((con3060.Data.PH_STATUS && con3060.Data.GOODSEND is 3001 or 0 )|| con3060.Data2.Status.HasFlag(StationStatus.运行状态位)) return;
+                                //3005没有出库任务
+                                var con3005 = Device.Find("3005").Device<IStation521, IStation523>();
+                                if ((con3005.Data.PH_STATUS && con3005.Data.GOODSEND is 3001 or 0) || con3005.Data2.Status.HasFlag(StationStatus.运行状态位)) return;
 
                                 agvtask.Status = agvtask.AGVStatus;
                                 agvtask.UpdateTime = DateTime.Now;