|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|