From 06d50c0f77ccf01ebe751a819e9ad06b871d8e90 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 26 九月 2024 14:59:15 +0800
Subject: [PATCH] 增加WCS接收WMS下发的入库单任务;修改分拣码垛绑定和结批功能

---
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs                      |   45 ++++++++++++++
 Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs |   61 ++++++++++++++------
 Admin.NET/WCS.Application/Model/TaskRequest.cs                        |   44 ++++++++++++++
 3 files changed, 130 insertions(+), 20 deletions(-)

diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 0fb9341..0f41063 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -233,3 +233,47 @@
 }
 
 
+public class ResponseOrderTaskModel
+{
+    /// <summary>
+    /// WMS涓嬪彂鍗曞彿
+    /// </summary>
+    public string? OrderNo { get; set; }
+
+    /// <summary>
+    /// 浠诲姟鍙�
+    /// </summary>
+    public string? TaskNo { get; set; }
+
+    /// <summary>
+    /// 鎵规鍙�
+    /// </summary>
+    public string? LotNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡缂栫爜
+    /// </summary>
+    public string? SkuNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡鍚嶇О
+    /// </summary>
+    public string? SkuName { get; set; }
+
+    /// <summary>
+    /// 瑙勬牸
+    /// </summary>
+    public string? BoxType { get; set; }
+
+    /// <summary>
+    /// 鎬荤鏁�/璁″垝绠辨暟/棰勪及绠辨暟
+    /// </summary>
+    public int? Qty { get; set; }
+
+    /// <summary>
+    /// 浠诲姟绫诲瀷
+    /// </summary>
+    public int TaskType { get; set; }
+}
+
+
diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index b423607..bc403f1 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,5 +1,8 @@
-锘縰sing System.Diagnostics.CodeAnalysis;
+锘縰sing Elastic.Clients.Elasticsearch;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
 using System.Text;
+using WCS.Application.Entity;
 
 namespace WCS.Application;
 
@@ -114,4 +117,44 @@
             return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
         }
     }
+
+    /// <summary>
+    /// WCS鎺ユ敹WMS涓嬪彂鐨勫叆搴撳崟浠诲姟
+    /// </summary>
+    /// <param name="models"></param>
+    /// <returns></returns>
+    [AllowAnonymous]
+    public ResponseModel AddOrderTask(List<ResponseOrderTaskModel> models)
+    {
+        ResponseModel result = new ResponseModel();
+        try
+        {
+            foreach (var item in models)
+            {
+                // 楠岃瘉浠诲姟鏄惁宸插瓨鍦�
+                //var taskInfo = _db.Queryable<WcsOderTask>().First(w => w.OrderNo == item.OrderNo && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
+                //if (taskInfo == null)
+                //{
+                    var orderAdd = new WcsOderTask()
+                    {
+                        OrderNo = item.OrderNo,
+                        TaskNo = "",
+                        LotNo = item.LotNo,
+                        SkuNo = item.SkuNo,
+                        SkuName = item.SkuName,
+                        BoxType = item.BoxType,
+                        Qty = item.Qty,
+                        TaskType = (TaskTypeEnum)item.TaskType,
+                    };
+                    _db.Insertable(orderAdd).ExecuteCommand();
+               //}
+            }
+            return new ResponseModel() { StatusCode = 0, Msg = "鎻掑叆鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs b/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs
index 154209a..2033a79 100644
--- a/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsCheckTask/WcsCheckTaskService.cs
@@ -203,11 +203,22 @@
             throw Oops.Bah("鎵句笉鍒癙LC淇℃伅");
         }
         PLCUtil modUtil = new PLCUtil(modPlc);
-        var ret= modUtil.SetPlcDBValue(checkTaskInfo.PosType, checkTaskInfo.DbNumber, checkTaskInfo.PlcPos, checkTaskInfo.PZNo);
-        if (ret.IsSucceed)
+        if (modUtil.Connected)
         {
-            //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
-            await _wcsCheckTaskRep.AsUpdateable(checkTaskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+            var ret = modUtil.SetPlcDBValue(checkTaskInfo.PosType, checkTaskInfo.DbNumber, checkTaskInfo.PlcPos, checkTaskInfo.PZNo);
+            if (ret.IsSucceed)
+            {
+                //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+                await _wcsCheckTaskRep.AsUpdateable(checkTaskInfo).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+            }
+            else
+            {
+                throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粦瀹氬け璐ワ紒");
+            }
+        }
+        else
+        {
+            throw Oops.Bah("PCL鏈繛鎺ワ紝缁戝畾澶辫触锛�");
         }
         #endregion
     }
@@ -242,23 +253,35 @@
                 throw Oops.Bah($"鎵句笉鍒板伐浣嶅彿锛歿item.Port} 鐨勮澶囦俊鎭�");
             }
             PLCUtil modUtil = new PLCUtil(modPlc);
-            var ret = modUtil.SetPlcDBValue(item.PosType, item.DbNumber, item.PlcPos, item.PZNo);
-            if (ret.IsSucceed)
+            if (modUtil.Connected)
             {
-                //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
-                item.OrderNo = "";
-                item.TaskNo = "";
-                item.LotNo = "";
-                item.SkuNo = "";
-                item.SkuName = "";
-                item.BoxType = "";
-                item.Qty = 0;
-                item.PZNo = "";
-                item.Status = "0";//鏈粦瀹� 
+                var ret = modUtil.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, "1");
+                if (ret.IsSucceed)
+                {
+                    //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+                    item.OrderNo = "";
+                    item.TaskNo = "";
+                    item.LotNo = "";
+                    item.SkuNo = "";
+                    item.SkuName = "";
+                    item.BoxType = "";
+                    item.Qty = 0;
+                    item.PZNo = "";
+                    item.Status = "0";//鏈粦瀹� 
 
-                //鏇存柊鍒嗘嫞浠诲姟
-                await _wcsCheckTaskRep.AsUpdateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+                    //鏇存柊鍒嗘嫞浠诲姟
+                    await _wcsCheckTaskRep.AsUpdateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+                }
+                else
+                {
+                    throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粨鎵瑰け璐ワ紒");
+                }
             }
+            else
+            {
+                throw Oops.Bah("PCL鏈繛鎺ワ紝缁撴壒澶辫触锛�");
+            }
+
 
             //Service.WcsDevice.Dto.WcsDeviceTaskOrderDto order=  await _wcsDeviceRep.Context.Queryable<WcsDevice>()
             //    .InnerJoin<WcsPlc>((device, plc) => device.PlcId == plc.Id)
@@ -284,7 +307,7 @@
             ////涓嬪彂鍒嗘嫞浠诲姟
             //HubUtil.PublicCheckTask(order.Adapt<Service.WcsDevice.Dto.WcsDeviceTaskOrderDto>());
 
-            #endregion                      
+            #endregion
         }  
     }
 }

--
Gitblit v1.8.0