林豪 左 1 year ago
parent
commit
f9dee865b1

+ 1 - 0
ServiceCenter/Redis/RedisHub.cs

@@ -185,6 +185,7 @@ namespace ServiceCenter.Redis
             try
             try
             {
             {
                 if (redis.Exists(lockKey)) throw new Exception($"重复调用:{lockKey}");
                 if (redis.Exists(lockKey)) throw new Exception($"重复调用:{lockKey}");
+                redis.Set(lockKey, lockKey);
                 redis.Expire(lockKey, 60);
                 redis.Expire(lockKey, 60);
                 act(redis);
                 act(redis);
             }
             }

+ 16 - 16
业务工程/分拣库/WCS.Entity.Protocol/DataStructure/StationData.cs

@@ -22,37 +22,37 @@ namespace WCS.Entity.Protocol.Protocol.DataStructure
         [DataMember(Order = 5)]
         [DataMember(Order = 5)]
         public WCS_Station523 D523 { get; set; }
         public WCS_Station523 D523 { get; set; }
 
 
-        [DataMember(Order = 6)]
-        public WCS_Station90 D90 { get; set; }
+        //[DataMember(Order = 6)]
+        //public WCS_Station90 D90 { get; set; }
 
 
-        [DataMember(Order = 7)]
+        [DataMember(Order = 6)]
         public WCS_Station91 D91 { get; set; }
         public WCS_Station91 D91 { get; set; }
 
 
-        [DataMember(Order = 8)]
-        public WCS_BCR80 D80 { get; set; }
+        //[DataMember(Order = 8)]
+        //public WCS_BCR80 D80 { get; set; }
 
 
-        [DataMember(Order = 9)]
-        public WCS_BCR81 D81 { get; set; }
+        //[DataMember(Order = 9)]
+        //public WCS_BCR81 D81 { get; set; }
 
 
-        [DataMember(Order = 10)]
-        public WCS_BCR83 D83 { get; set; }
+        //[DataMember(Order = 10)]
+        //public WCS_BCR83 D83 { get; set; }
 
 
-        [DataMember(Order = 11)]
+        [DataMember(Order = 7)]
         public WCS_Station524 D524 { get; set; }
         public WCS_Station524 D524 { get; set; }
 
 
-        [DataMember(Order = 12)]
-        public WCS_Station525 D525 { get; set; }
+        //[DataMember(Order = 12)]
+        //public WCS_Station525 D525 { get; set; }
 
 
-        [DataMember(Order = 13)]
+        [DataMember(Order = 8)]
         public WCS_Truss530 D530 { get; set; }
         public WCS_Truss530 D530 { get; set; }
 
 
-        [DataMember(Order = 14)]
+        [DataMember(Order = 9)]
         public WCS_Truss531 D5531 { get; set; }
         public WCS_Truss531 D5531 { get; set; }
 
 
-        [DataMember(Order = 15)]
+        [DataMember(Order = 10)]
         public WCS_Robot530 DR530 { get; set; }
         public WCS_Robot530 DR530 { get; set; }
 
 
-        [DataMember(Order = 16)]
+        [DataMember(Order = 11)]
         public WCS_Robot531 DR531 { get; set; }
         public WCS_Robot531 DR531 { get; set; }
     }
     }
 }
 }

+ 16 - 9
业务工程/分拣库/WCS.WorkEngineering/ProtocolProxy.cs

@@ -1,6 +1,8 @@
-using WCS.Core;
+using Org.BouncyCastle.Asn1.X509.Qualified;
+using WCS.Core;
 using WCS.Entity.Protocol.DataStructure;
 using WCS.Entity.Protocol.DataStructure;
 using WCS.Entity.Protocol.Protocol.DataStructure;
 using WCS.Entity.Protocol.Protocol.DataStructure;
+using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Systems;
 using WCS.WorkEngineering.Systems;
 
 
 namespace WCS.WorkEngineering
 namespace WCS.WorkEngineering
@@ -15,13 +17,13 @@ namespace WCS.WorkEngineering
 
 
         protected override void DataChanged()
         protected override void DataChanged()
         {
         {
-            //if (Device.Code == "RGV1" && Info.DBInfo.No == 520)
-            //{
-            //    var a = Items;
-            //    //var dev=Device.Protocol(ProtocolType)
-            //    var b = a;
+            if (Device.Code == "RGV1" && Info.DBInfo.No == 520)
+            {
+                var a = Items;
+                //var dev=Device.Protocol(ProtocolType)
+                var b = a;
 
 
-            //}
+            }
 
 
             try
             try
             {
             {
@@ -50,8 +52,13 @@ namespace WCS.WorkEngineering
                 if (!datas.TryGetValue(Device.Code, out var data)) return;
                 if (!datas.TryGetValue(Device.Code, out var data)) return;
                 data.Frame = DateTime.Now;
                 data.Frame = DateTime.Now;
                 var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolDataType);
                 var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolDataType);
-                if (p == null) Console.WriteLine("类型" + data.GetType().Name + "不包含类型为" + ProtocolType.Name + "的属性");
-                else p.SetValue(data, DictionaryToEntity(ProtocolDataType, Items));
+                //var ty90 = WCS_Station90;
+                //if (p.getty is ty90 or)
+                //{
+
+                //}
+                if (p == null) return;
+                p.SetValue(data, DictionaryToEntity(ProtocolDataType, Items));
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {

+ 5 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -207,3 +207,8 @@ namespace WCS.WorkEngineering.Systems
         }
         }
     }
     }
 }
 }
+
+
+
+
+

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -60,7 +60,7 @@ namespace WCS.WorkEngineering.Systems
                 RedisHub.Monitor.Set(nameof(DeviceDataPack), pack);
                 RedisHub.Monitor.Set(nameof(DeviceDataPack), pack);
                 if (RedisHub.Monitor.LLen("Packs") > 200000)
                 if (RedisHub.Monitor.LLen("Packs") > 200000)
                 {
                 {
-                    RedisHub.Monitor.LTrim("Packs", 5000, -1);
+                    RedisHub.Monitor.LTrim("Packs", 50000, -1);
                 }
                 }
             }
             }
             catch (Exception e)
             catch (Exception e)

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/RGVSystems.cs

@@ -60,7 +60,7 @@ namespace WCS.WorkEngineering.Systems
                     case RGVCmdType.PickGoods: //单独取货任务完成,默认只有空托盘才会下发单独取货任务
                     case RGVCmdType.PickGoods: //单独取货任务完成,默认只有空托盘才会下发单独取货任务
                         //开始申请读码信息
                         //开始申请读码信息
                         var bcrCode = obj.Data3.GetBCRCode();
                         var bcrCode = obj.Data3.GetBCRCode();
-                        int taskNumber = 0;
+                        var taskNumber = 0;
                         SqlSugarHelper.Do(_db =>
                         SqlSugarHelper.Do(_db =>
                         {
                         {
                             var db = _db.Default;
                             var db = _db.Default;
@@ -68,7 +68,7 @@ namespace WCS.WorkEngineering.Systems
                             if (dev.HasFlag(DeviceFlags.拆盘机09))
                             if (dev.HasFlag(DeviceFlags.拆盘机09))
                             {
                             {
                                 //开始绑定任务,并下发新的任务信息到小车
                                 //开始绑定任务,并下发新的任务信息到小车
-                                WCS_Palletizing palletizingInfo = db.Queryable<WCS_Palletizing>().Single(x => x.Id == obj.Data2.TaskNumber);
+                                var palletizingInfo = db.Queryable<WCS_Palletizing>().Single(x => x.Id == obj.Data2.TaskNumber);
                                 if (palletizingInfo == null) return;
                                 if (palletizingInfo == null) return;
                                 palletizingInfo.PalleCode = bcrCode;
                                 palletizingInfo.PalleCode = bcrCode;
                                 db.Updateable(palletizingInfo).ExecuteCommand();
                                 db.Updateable(palletizingInfo).ExecuteCommand();

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -142,8 +142,8 @@ namespace WCS.WorkEngineering.Systems
                 // 写入信号
                 // 写入信号
                 obj.Data.OkAck = 1;
                 obj.Data.OkAck = 1;
                 //通知WMS任务完成
                 //通知WMS任务完成
-                if (taskInfo.Status == TaskStatus.Finish) WmsApi.CompleteTask(taskInfo.ID);
-                if (taskInfo is { Type: TaskType.OutDepot, Status: TaskStatus.ConveyorExecution }) WmsApi.SrmPickOutCompleted(taskInfo.ID);
+                //if (taskInfo.Status == TaskStatus.Finish) WmsApi.CompleteTask(taskInfo.ID);
+                //if (taskInfo is { Type: TaskType.OutDepot, Status: TaskStatus.ConveyorExecution }) WmsApi.SrmPickOutCompleted(taskInfo.ID);
 
 
                 World.Log($"堆垛机任务处理:结束--完成任务{obj.Data2.TaskFinishiId}", LogLevelEnum.Mid);
                 World.Log($"堆垛机任务处理:结束--完成任务{obj.Data2.TaskFinishiId}", LogLevelEnum.Mid);
             }
             }

+ 13 - 13
业务工程/分拣库/WCS.WorkEngineering/Systems/UpLoadSystems.cs

@@ -1,6 +1,5 @@
 using ServiceCenter.SqlSugars;
 using ServiceCenter.SqlSugars;
 using System.ComponentModel;
 using System.ComponentModel;
-using System.Threading.Tasks;
 using WCS.Core;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity;
 using WCS.Entity.Protocol.Station;
 using WCS.Entity.Protocol.Station;
@@ -25,13 +24,12 @@ namespace WCS.WorkEngineering.Systems
 
 
         public override void Do(Device<IStation520> obj)
         public override void Do(Device<IStation520> obj)
         {
         {
-            //更新机械臂出库完成状态
+            //更新出库放货完成状态
             SqlSugarHelper.Do(_db =>
             SqlSugarHelper.Do(_db =>
             {
             {
                 var db = _db.Default;
                 var db = _db.Default;
-                var taskList = db.Queryable<WCS_TaskInfo>().Where(x =>
-                    x.WarehouseCode.Contains("R") && x.Type == TaskType.OutDepot &&
-                    x.Status == TaskStatus.ConveyorExecution && x.Uploaded != TaskStatus.ConveyorExecution).ToList();
+                var taskList = db.Queryable<WCS_TaskInfo>().Where(x => x.Type == TaskType.OutDepot && x.Status == TaskStatus.ConveyorExecution && x.Uploaded != TaskStatus.ConveyorExecution).ToList();
+
                 foreach (var task in taskList)
                 foreach (var task in taskList)
                 {
                 {
                     var res = WmsApi.SrmPickOutCompleted(task.ID);
                     var res = WmsApi.SrmPickOutCompleted(task.ID);
@@ -40,22 +38,24 @@ namespace WCS.WorkEngineering.Systems
                         task.Uploaded = TaskStatus.ConveyorExecution;
                         task.Uploaded = TaskStatus.ConveyorExecution;
                         task.EditTime = DateTime.Now;
                         task.EditTime = DateTime.Now;
                         db.Updateable(task).ExecuteCommand();
                         db.Updateable(task).ExecuteCommand();
-                        task.AddWCS_TASK_DTL(db, "", $"同步机械臂放货完成状态同步至WMS");
+                        task.AddWCS_TASK_DTL(db, "", $"同步出库任务放货完成状态同步至WMS");
                     }
                     }
                     else
                     else
                     {
                     {
-                        World.Log($"机械臂出库放货完成状态同步失败:{task.ID}[{res.ResMsg}]");
+                        World.Log($"出库放货完成状态同步失败:{task.ID}[{res.ResMsg}]");
                     }
                     }
                 }
                 }
             });
             });
 
 
-            //更新机械臂入库完成的任务
+            //环形库组盘任务/立库入库任务 更新完成
             SqlSugarHelper.Do(_db =>
             SqlSugarHelper.Do(_db =>
             {
             {
                 var db = _db.Default;
                 var db = _db.Default;
-                var taskList = db.Queryable<WCS_TaskOld>().SplitTable(x => x.Take(2)).Where(x =>
-                    x.WarehouseCode.Contains("R") && x.Type == TaskType.SetPlate &&
-                    x.Status == TaskStatus.Finish && x.Uploaded != TaskStatus.Finish).ToList();
+                var taskList = db.Queryable<WCS_TaskOld>().SplitTable(x => x.Take(2))
+                    .Where(x => ((x.Type == TaskType.SetPlate && x.WarehouseCode.Contains("R")) || (x.Type == TaskType.EnterDepot && !x.WarehouseCode.Contains("R")))
+                                && x.Status == TaskStatus.Finish
+                                && x.Uploaded != TaskStatus.Finish).ToList();
+
                 foreach (var task in taskList)
                 foreach (var task in taskList)
                 {
                 {
                     var res = WmsApi.CompleteTask(task.Id);
                     var res = WmsApi.CompleteTask(task.Id);
@@ -64,11 +64,11 @@ namespace WCS.WorkEngineering.Systems
                         task.Uploaded = TaskStatus.Finish;
                         task.Uploaded = TaskStatus.Finish;
                         task.EditTime = DateTime.Now;
                         task.EditTime = DateTime.Now;
                         db.Updateable(task).SplitTable(x => x.Take(2)).ExecuteCommand();
                         db.Updateable(task).SplitTable(x => x.Take(2)).ExecuteCommand();
-                        task.AddWCS_TASK_DTL(db, "", $"同步机械臂入库完成状态同步至WMS");
+                        task.AddWCS_TASK_DTL(db, "", $"同步入库完成状态同步至WMS");
                     }
                     }
                     else
                     else
                     {
                     {
-                        World.Log($"机械臂组盘放货完成状态同步失败:{task.Id}[{res.ResMsg}]");
+                        World.Log($"入库完成状态同步失败:{task.Id}[{res.ResMsg}]");
                     }
                     }
                 }
                 }
             });
             });

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/WCS.WorkEngineering.csproj

@@ -22,12 +22,12 @@
   <ItemGroup>
   <ItemGroup>
     <PackageReference Include="MessagePack" Version="2.5.108" />
     <PackageReference Include="MessagePack" Version="2.5.108" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.5" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.5" />
-    <PackageReference Include="WCS.Entity.Protocol" Version="1.0.4.4" />
     <PackageReference Include="wms.sqlsugar" Version="1.0.0.4" />
     <PackageReference Include="wms.sqlsugar" Version="1.0.0.4" />
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\..\ServiceCenter\ServiceCenter.csproj" />
     <ProjectReference Include="..\..\..\ServiceCenter\ServiceCenter.csproj" />
+    <ProjectReference Include="..\WCS.Entity.Protocol\WCS.Entity.Protocol.csproj" />
   </ItemGroup>
   </ItemGroup>
 
 
 </Project>
 </Project>

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs

@@ -1076,7 +1076,7 @@ namespace WCS.WorkEngineering
                 { DeviceFlags.拆盘机09, new List<string>(){ "1606","1616","1626","1636","1646","1656" } },
                 { DeviceFlags.拆盘机09, new List<string>(){ "1606","1616","1626","1636","1646","1656" } },
                 { DeviceFlags.拆盘机非09, new List<string>(){ "1602","1612","1622","1632","1642","1652" } },
                 { DeviceFlags.拆盘机非09, new List<string>(){ "1602","1612","1622","1632","1642","1652" } },
                 { DeviceFlags.桁架码垛位, new List<string>(){ "1670", "1671", "1672", "1673", "1674", "1675","1664","1662","1663","1665","1677","1678","1679","1680","1685","1686","1687","1688","1689","1690", "1692", "1693", "1694", "1695", "1700", "1701", "1702", "1703", "1704", "1705", "1707", "1708", "1709", "1710", "1715", "1716", "1717", "1718", "1719", "1720", "1722", "1723", "1724", "1725", "1730", "1731", "1732", "1733", "1734", "1735", "1737", "1738", "1739", "1740", "1745", "1746", "1747", "1748", "1749", "1750" } },
                 { DeviceFlags.桁架码垛位, new List<string>(){ "1670", "1671", "1672", "1673", "1674", "1675","1664","1662","1663","1665","1677","1678","1679","1680","1685","1686","1687","1688","1689","1690", "1692", "1693", "1694", "1695", "1700", "1701", "1702", "1703", "1704", "1705", "1707", "1708", "1709", "1710", "1715", "1716", "1717", "1718", "1719", "1720", "1722", "1723", "1724", "1725", "1730", "1731", "1732", "1733", "1734", "1735", "1737", "1738", "1739", "1740", "1745", "1746", "1747", "1748", "1749", "1750" } },
-                { DeviceFlags.环形库码垛工位, new List<string>(){ "1666", "1661","1676","1681", "1691", "1696", "1706", "1711", "1721", "1726", "1736", "1741" } },
+                { DeviceFlags.环形库码垛工位, new List<string>(){ "1666", "1661"/*,"1676","1681", "1691", "1696", "1706", "1711", "1721", "1726", "1736", "1741"*/ } },
                 { DeviceFlags.AGV取货站台口, new List<string>(){ "2533", "2534", "2734" } },
                 { DeviceFlags.AGV取货站台口, new List<string>(){ "2533", "2534", "2734" } },
                 { DeviceFlags.Robot, new List<string>(){ "Robot1", "Robot2", "Robot3","Robot4" , "Robot5", "Robot6" } },
                 { DeviceFlags.Robot, new List<string>(){ "Robot1", "Robot2", "Robot3","Robot4" , "Robot5", "Robot6" } },
         };
         };