Administrator 2 年 前
コミット
bfe06c94ba

BIN
DLL/PLC.Siemens.dll


+ 8 - 0
Projects/永冠/WCS.Service/Works/Stations/22车间.cs

@@ -132,6 +132,11 @@ namespace WCS.Service.Works.Stations
 
             if (!inTempDev.Data.PH_STATUS)
                 return;
+           
+            if (arr.Any(v => v.Data.TASKNUM > 10000 && v.Data.GOODSEND == 3001 ||v.Data.GOODSEND ==3060))
+                return;
+          
+            
 
             if (arr.Any(v => v.Data2.CONFIRM))
                 return;
@@ -152,6 +157,9 @@ namespace WCS.Service.Works.Stations
 
             DB.Do(db =>
             {
+                var taskAny = db.Default.Set<WCS_TASK>().Where(v => v.ADDRNEXT == "3060");
+                if (taskAny != null)
+                    throw new Exception($"出库任务正在执行");
                 var task = db.Default.Set<WCS_TASK>().Find(dev.Data.TASKNUM);
                 if (task == null)
                     throw new Exception($"任务号{dev.Data.TASKNUM}不存在");

+ 52 - 0
Projects/永冠/WCS.Service/Works/Stations/2397入库交管.cs

@@ -0,0 +1,52 @@
+using DBHelper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WCS.Core;
+using WCS.Entity;
+using WCS.Entity.Protocol;
+
+namespace WCS.Service.Works.Stations
+{
+    [WorkTitle(typeof(ProductHandler), "_2397入库交管", true)]
+    public class _2397入库交管 : DeviceWork<Device<IStation521, IStation520>>
+    {
+        protected override void Do(Device<IStation521, IStation520> dev)
+        {
+            if (Ltc.Do(dev, v => v.Data2.CONFIRM == true))
+                return;
+            if (Ltc.Do(dev, v => v.Data.TASKNUM == 0))
+                return;
+            if (Ltc.Do(dev, v => v.Data.PH_STATUS == false))
+                return;
+            if (Ltc.Do(dev, v => v.Data.GOODSEND != v.Entity.Code()))
+          
+            DB.Do(db =>
+            {
+                var task = db.Default.Set<WCS_TASK>().Find(dev.Data.TASKNUM);
+                if (task.TYPE == TaskType.入库 && task.ADDRFROM == "3001")
+                {
+                    var addrTo = "2017";
+                    int count = Device.Find("2071", "2072", "2073", "2074", "2075", "2076", "2077", "2078", "2079", "2017","2355","2353","2019","2022","2024","2029","2031","2036","2037","2039","2044","2046","2051","2053","2058")
+                    .Select(v => v.Device<IStation521, IStation520>())
+                    .Where(v=>v.Data.TASKNUM>10000).Count();
+                    if (count > 8) throw new Exception($"交通管制,有正在执行的入库任务");
+
+                    task.ADDRNEXT = addrTo;
+                    task.UPDATETIME = DateTime.Now;
+                    db.Default.SaveChanges();
+
+                    dev.Data2.GOODSEND = 2017;
+                    dev.Data2.TASKNUM = task.ID;
+                    dev.Data2.CONFIRM = true;
+                }
+            });
+        }
+        protected override bool SelectDevice(WCS_DEVICE dev)
+        {
+            return new string[] { "2397" }.Contains(dev.CODE);
+        }
+    }
+}