gkj 2 years ago
parent
commit
61a2042b33

+ 1 - 0
WCS.Entity.Protocol/BCR/WCS_BCR80.cs

@@ -6,6 +6,7 @@ namespace WCS.Entity.Protocol.BCR
     /// 读码器读取协议
     /// </summary>
     [DataContract]
+    []
     public class WCS_BCR80 : IBCR80
     {
         /// <summary>

+ 6 - 1
WCS.Service/Worker.cs

@@ -104,7 +104,12 @@ namespace WCS.Service
                             break;
 
                         case "WCSDlog"://WCSÈÕÖ¾Êý¾Ý¿â
-
+                            SqlSugarHelper.SetDefault(connectionString.Key);
+                            //_db.CodeFirst.InitTables(typeof(w));
+                            //_db.CodeFirst.InitTables(typeof(WCS_TaskInfo));
+                            //_db.CodeFirst.InitTables(typeof(WCS_TaskDtl));
+                            //_db.CodeFirst.InitTables(typeof(WCS_TaskOld));
+                            //_db.CodeFirst.InitTables(typeof(WCS_AgvTaskInfo));
                             break;
 
                         default: //ÆäËû¿â

+ 1 - 1
WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -112,7 +112,7 @@ namespace WCS.WorkEngineering.Systems
                         {
                             //向WMS获取巷道优先级
                             var res = WmsApi.GetTunnelPriorityList(task.ID);
-                            var tunnelNo = res.ResData.Split(",").Select(v => "SRM" + v).ToList();
+                            var tunnelNo = res.ResData.Split(",").Where(v => v != "2").Select(v => "SRM" + v).ToList();
 
                             //开始获取堆垛机与可用站台信息
                             SRM srm = null;

+ 14 - 4
WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -72,7 +72,18 @@ namespace WCS.WorkEngineering.Systems
                       //根据DB521任务号获取对应任务
                       var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskFinishiId) ?? throw new KnownException($"未找到任务{obj.Data2.TaskFinishiId}", LogLevelEnum.High);
                       if (task.Status != Entity.TaskStatus.StackerExecution)
-                          throw new KnownException($"任务{task.ID}状态是{task.Status.Description()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中", LogLevelEnum.High);
+                      {
+                          if (task.Type == TaskType.EmptyInit && task.Status == TaskStatus.ConveyorExecution)
+                          {
+                              var taskDtl = db.Default.Queryable<WCS_TaskDtl>().Where(v => v.ParentTaskCode == task.ID && v.Desc == "任务下发堆垛机执行").SplitTable(v => v.Take(2)).ToList();
+                              if (!taskDtl.Any()) throw new KnownException($"任务{task.ID}状态是{task.Status.Description()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中", LogLevelEnum.High);
+                          }
+                          else
+                          {
+                              throw new KnownException($"任务{task.ID}状态是{task.Status.Description()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中", LogLevelEnum.High);
+                          }
+
+                      }
                       //根据任务类型做不同的处理
                       switch (task.Type)
                       {
@@ -117,7 +128,7 @@ namespace WCS.WorkEngineering.Systems
                           case TaskType.EmptyInit:
                               task.Status = Entity.TaskStatus.Finish;
                               task.EedTime = DateTime.Now;
-                              task.AddWCS_TASK_DTL(db, task.AddrTo, "移库任务结束");
+                              task.AddWCS_TASK_DTL(db, task.AddrTo, "空轮初始化任务结束");
                               break;
                       }
 
@@ -189,8 +200,7 @@ namespace WCS.WorkEngineering.Systems
                        task.Status = Entity.TaskStatus.StackerExecution;
                        task.StartTime = DateTime.Now;
                        task.AddWCS_TASK_DTL(db, task.AddrFrom, task.Device, $"堆垛机{obj.Entity.Code}开始执行任务");
-                       db.Default.Updateable(task).AddQueue();
-                       db.Default.SaveQueues();
+                       db.Default.Updateable(task).ExecuteCommand();
                        taskInfo = task;
                    });
                 if (taskInfo == null) throw new KnownException("数据更新错误", LogLevelEnum.High);

+ 3 - 3
WCS.WorkEngineering/Systems/一楼入库工位处理系统.cs

@@ -58,9 +58,9 @@ namespace WCS.WorkEngineering.Systems
                }
 
                //获取称重
-               var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation91>(v, this.World)).FirstOrDefault();
-               task.Weight = dev91.Data.Weight;
-               if (task.Weight == 0) throw new KnownException($"称重异常", LogLevelEnum.Mid);
+               //var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation91>(v, this.World)).FirstOrDefault();
+               //task.Weight = dev91.Data.Weight;
+               //if (task.Weight == 0) throw new KnownException($"称重异常", LogLevelEnum.Mid);
 
                WmsApi.WcsUploadInfo(task.ID, (decimal)task.Weight, task.BarCode);
 

+ 5 - 3
WCS.WorkEngineering/Systems/二楼入库工位处理系统.cs

@@ -19,7 +19,7 @@ namespace WCS.WorkEngineering.Systems
     [Description("二楼入库工位处理系统")]
     public class 二楼入库工位处理系统 : DeviceSystem<Station>
     {
-        protected override bool ParallelDo => true;
+        protected override bool ParallelDo => false;
 
         protected override bool SaveLogsToFile => true;
 
@@ -44,9 +44,9 @@ namespace WCS.WorkEngineering.Systems
             WCS_TaskInfo task = null;
             SqlSugarHelper.Do(db =>
            {
-               if (obj.Entity.Code == "1025")
+               if (obj.Entity.Code == "1025" || obj.Entity.Code == "1023")
                {
-                   var taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => v.SrmStation == "1025" && v.Device == "SRM3" && v.Type == TaskType.EmptyInit && v.Status == Entity.TaskStatus.WaitingToExecute);
+                   var taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => (v.SrmStation == obj.Entity.Code && v.Device == "SRM3") || (v.SrmStation == obj.Entity.Code && v.Device == "SRM2") && v.Type == TaskType.EmptyInit && v.Status == Entity.TaskStatus.WaitingToExecute);
                    if (taskInfo != null)
                    {
                        task = taskInfo;
@@ -61,6 +61,8 @@ namespace WCS.WorkEngineering.Systems
                    if (task.Status != Entity.TaskStatus.AGVExecution) throw new KnownException($"任务:{task.ID}状态不是AGV执行中,请检查异常原因", LogLevelEnum.High);
                }
 
+               if (task.Status == Entity.TaskStatus.ConveyorExecution) return;
+
                if (obj.Entity.Code == "1025")
                {
                    //获取称重

+ 23 - 0
WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -1,10 +1,13 @@
 using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
 using ServiceCenter;
+using ServiceCenter.Redis;
 using ServiceCenter.SqlSugars;
 using System.Net.NetworkInformation;
 using System.Text;
 using WCS.Core;
 using WCS.Entity;
+using WCS.Entity.Protocol.DataStructure;
 using WCS.Entity.Protocol.SRM;
 using WCS.WorkEngineering.Systems;
 using WCS.WorkEngineering.WebApi.Models.WCS.Request;
@@ -82,6 +85,26 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             });
         }
 
+        /// <summary>
+        ///  设备信息写入接口
+        /// </summary>
+        /// <param name="deviceType">需要写入信息的设备类型</param>
+        /// <param name="devCode">设备编号</param>
+        /// <param name="protocol">设备协议类名</param>
+        /// <param name="propName">写入字段名</param>
+        /// <param name="value">值</param>
+        [HttpPost]
+        public void GetDevList()
+        {
+            var a = RedisHub.Monitor.LRange("Packs", 0, 80000);
+            List<DeviceDataPack> packs = new List<DeviceDataPack>();
+            foreach (var item in a)
+            {
+                packs.Add(JsonConvert.DeserializeObject<DeviceDataPack>(item));
+            }
+
+        }
+
         /// <summary>
         ///  获取设备配置信息接口
         /// </summary>