林豪 左 1 年之前
父节点
当前提交
76c60189f3

+ 3 - 3
WCS.Service/Worker.cs

@@ -56,9 +56,9 @@ namespace WCS.Service
             Configs.ProtocolProxyBaseType = typeof(ProtocolProxy);
             Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
             Configs.StringEncoding = Encoding.UTF8;
-            var warehouseName = RedisHub.Default.Check("WarehouseName") ?? throw new Exception("请在Redis中配置仓库名称");
-            if (string.IsNullOrEmpty(warehouseName)) throw new Exception("请在Redis中配置仓库名称");
-            ServiceHub.SetWarehouseName(warehouseName);
+            //var warehouseName = RedisHub.Default.Check("WarehouseName") ?? throw new Exception("请在Redis中配置仓库名称");
+            //if (string.IsNullOrEmpty(warehouseName)) throw new Exception("请在Redis中配置仓库名称");
+            //ServiceHub.SetWarehouseName(warehouseName);
 
             #region 初始化数据库连接
 

+ 1 - 1
WCS.Service/appsettings.json

@@ -7,6 +7,6 @@
     }
   },
   "ConnectionStrings": {
-    "Redis": "127.0.0.1,database=0,prefix=Sorting:"
+    "Redis": "10.30.37.1,database=0,prefix=Sorting:"
   }
 }

+ 1 - 1
WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -58,7 +58,7 @@ namespace WCS.WorkEngineering.Extensions
                         Port = 102,
                         Rack = 0,
                         Slot = 1,
-                        //Type = PLCType.Siemens
+                        Type = PLCType.Siemens
                     }
                 }
             };

+ 1 - 1
WCS.WorkEngineering/Extensions/TaskExtension.cs

@@ -134,7 +134,7 @@ namespace WCS.WorkEngineering.Extensions
         /// <param name="task">任务信息</param>
         public static void updateRedisHash(this WCS_TaskInfo task)
         {
-            RedisHub.Default.HSet($"Hash:{task.ID}", task.ToDic());
+            RedisHub.Default.HMSet($"Hash:{task.ID}", task.ToDic());
         }
 
         public static Dictionary<string, string> ToDic<T>(this T obj) where T : class

+ 1 - 1
WCS.WorkEngineering/Protocol/Station/StationEnum.cs

@@ -38,7 +38,7 @@ namespace WCS.WorkEngineering.Protocol.Station
     /// 输送机状态
     /// </summary>
     [Flags]
-    public enum StationStatus : uint
+    public enum StationStatus : UInt32
     {
         /// <summary>
         /// 自动

+ 15 - 0
WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -10,6 +10,7 @@ using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.Protocol.Station;
 using WCS.WorkEngineering.WebApi.Controllers;
 using WCS.WorkEngineering.Worlds;
+using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
 using KnownException = ServiceCenter.Logs.KnownException;
 using TaskStatus = WCS.Entity.TaskStatus;
 
@@ -34,6 +35,19 @@ namespace WCS.WorkEngineering.Systems
 
         public SrmSystems()
         {
+            //获取所有的巷道集合
+            var devices = Device.All.Where(v => v.HasFlag(DeviceFlags.巷道));
+
+            //开始分配
+            foreach (var item in devices)
+            {
+                //取货设备
+                var srm = item.Targets.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
+                PickUpDevices.Add(srm.Code, item.Targets.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
+                //放货设备
+                srm = item.Sources.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
+                PutDevices.Add(srm.Code, item.Sources.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
+            }
         }
 
         protected override bool ParallelDo => true;
@@ -274,6 +288,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.SLayer = 0;
                 obj.Data.ELine = addrTo[0].ToShort();
                 obj.Data.ECol = addrTo[1].ToShort();
+
                 obj.Data.ELayer = addrTo[2].ToShort();
                 obj.Data.VoucherNo++;
                 World.Log($"堆垛机任务处理:结束---下发入库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);

+ 10 - 2
WCS.WorkEngineering/Systems/一楼扫码入库.cs

@@ -29,8 +29,8 @@ namespace WCS.WorkEngineering.Systems
 
         public override void Do(Device<IStation520, IStation521, IStation523, IStation91, IBCR81> obj)
         {
-            //obj.入库站点是否被禁止();
-            //obj.入库站点是否满足执行条件();
+            obj.入库站点是否被禁止();
+            obj.入库站点是否满足执行条件();
 
             WCS_TaskInfo task = null;//处理完成的任务
             try
@@ -54,10 +54,18 @@ namespace WCS.WorkEngineering.Systems
                     task = db.Queryable<WCS_TaskInfo>().First(v => v.BarCode == barcode);
                     if (task.Status == Entity.TaskStatus.NewBuild)
                     {
+                        var tunnel = obj.Entity.Targets.Where(v => v.HasFlag(Extensions.DeviceFlags.巷道)).FirstOrDefault();
                         //开始对任务进行处理
                         task.Status = Entity.TaskStatus.ConveyorExecution;
                         task.StartTime = DateTime.Now;
                         task.SrmStation = task.AddrFrom;
+                        task.LastInteractionPoint = obj.Entity.Code;
+                        task.Tunnel = tunnel.Code;
+                        switch (obj.Entity.Code)
+                        {
+                            case "2532": task.Device = "SRM1"; break;
+                            case "2732": task.Device = "SRM2"; break;
+                        };
                         task.AddWCS_TASK_DTL(_db, obj.Entity.Code, "开始执行入库任务");
                         db.Updateable(task).ExecuteCommand();
                         task.updateRedisHash();

+ 1 - 1
WCS.WorkEngineering/WebApi/Controllers/WmsApi.cs

@@ -108,7 +108,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <exception cref="Exception"></exception>
         public static SRes<ApplyStockInLocResponse> GetLocalIn(int wcsTaskNum, string tunnel, string device)
         {
-            var res = APICaller.CallApi2<SRes<ApplyStockInLocResponse>>(WMSUrl + "/api/Hj/ApplyStockInLoc", new ApplyStockInLocRequest
+            var res = APICaller.CallApi2<SRes<ApplyStockInLocResponse>>(WMSUrl + "/api/FJ/ApplyStockInLoc", new ApplyStockInLocRequest
             {
                 TaskNum = wcsTaskNum,
                 TunnelNum = tunnel.GetLastDigit(),

+ 4 - 4
WCS.WorkEngineering/WorkStart.cs

@@ -107,8 +107,8 @@ namespace WCS.WorkEngineering
             //Item1表示线体号集合,Item2表示IP,Item3表示设备标识
             var list = new List<Tuple<List<int>, string, DeviceFlags>>()
             {
-                //new Tuple<List<int>, string,DeviceFlags>(new List<int>(){1 },"10.30.37.166",DeviceFlags.满轮主线第一次扫码),
-                //new Tuple<List<int>, string,DeviceFlags>(new List<int>(){22, 41, 61 },"10.30.37.166",DeviceFlags.主线分流点),
+                new Tuple<List<int>, string,DeviceFlags>(new List<int>(){1 },"10.30.37.166",DeviceFlags.满轮主线第一次扫码),
+                new Tuple<List<int>, string,DeviceFlags>(new List<int>(){22, 41, 61 },"10.30.37.166",DeviceFlags.主线分流点),
                 //new Tuple<List<int>, string,DeviceFlags>(new List<int>(){418, },"10.30.37.166",DeviceFlags.主线分流点)
             };
 
@@ -129,8 +129,8 @@ namespace WCS.WorkEngineering
 
             var list1 = new List<Tuple<List<int>, string>>()
             {
-                //new Tuple<List<int>, string>(new List<int>(){1 },"10.30.37.166"),
-                //new Tuple<List<int>, string>(new List<int>(){22, 41, 61 },"10.30.37.166")
+                new Tuple<List<int>, string>(new List<int>(){1 },"10.30.37.166"),
+                new Tuple<List<int>, string>(new List<int>(){22, 41, 61 },"10.30.37.166")
             };
             foreach (var item in list1)
             {