From 3b87f36219202b4cec47840bd9f56fdbe53e7d04 Mon Sep 17 00:00:00 2001
From: DESKTOP-9BNTV8O <DESKTOP-9BNTV8O@163.com>
Date: 星期二, 11 三月 2025 20:49:17 +0800
Subject: [PATCH] 初版提交

---
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 213 insertions(+), 10 deletions(-)

diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index bc403f1..ee7fe90 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,4 +1,10 @@
-锘縰sing Elastic.Clients.Elasticsearch;
+锘縰sing AngleSharp.Io;
+using COSXML.Network;
+using Elastic.Clients.Elasticsearch;
+using Elastic.Clients.Elasticsearch.Inference;
+using Furion.Logging;
+using NewLife.Http;
+using Newtonsoft.Json;
 using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using System.Text;
@@ -30,7 +36,7 @@
     //}
 
     // <summary>
-    /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(鍗曟潯浠诲姟)
+    /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�
     /// </summary>
     /// <param name="models">浠诲姟淇℃伅</param>
     /// <returns>鍙嶉淇℃伅</returns>
@@ -89,19 +95,21 @@
             {
                 models.Order = 2;
             }
-            //鏂板浠诲姟
+
+            int aaa = int.Parse(models.TaskType);
             var taskAdd = new WcsTask()
             {
                 TaskNo = models.TaskNo,
-                TaskType = TaskTypeEnum.Out,
+                TaskType = (TaskTypeEnum)aaa,
                 Status = TaskStatusEnum.Wait,
                 //IsSuccess =TaskSuccessEnum.Success,
                 Origin = "WMS",
-                StartRoadway= models.StartRoadway,
+                StartRoadway = models.StartRoadway,
                 StartLocate = models.StartLocate,
                 EndLocate = models.EndLocate,
-                EndRoadway= models.EndRoadway,
+                EndRoadway = models.EndRoadway,
                 PalletNo = models.PalletNo,
+                Levels = 999
 
                 //LotNo =models.LotNo,
                 //SkuNo=models.SkuNo,
@@ -137,14 +145,15 @@
                 //{
                     var orderAdd = new WcsOderTask()
                     {
-                        OrderNo = item.OrderNo,
+                        OrderNo = item.OrderNo.Trim(),
                         TaskNo = "",
-                        LotNo = item.LotNo,
-                        SkuNo = item.SkuNo,
-                        SkuName = item.SkuName,
+                        LotNo = item.LotNo.Trim(),
+                        SkuNo = item.SkuNo.Trim(),
+                        SkuName = item.SkuName.Trim(),
                         BoxType = item.BoxType,
                         Qty = item.Qty,
                         TaskType = (TaskTypeEnum)item.TaskType,
+                        Status=TaskStatusEnum.Wait
                     };
                     _db.Insertable(orderAdd).ExecuteCommand();
                //}
@@ -157,4 +166,198 @@
         }
     }
 
+    /// <summary>
+    /// 鑾峰彇绌烘墭鐩樺灈鐢宠鍏ュ簱宸ヤ綅
+    /// </summary>
+    /// <returns></returns>
+    [AllowAnonymous]
+    [HttpPost]
+    public ResponseModel GetNullPalletRukuStation()
+    {
+        try
+        {
+            string rukuAdress = "";
+            var conveyList4 = new List<string>() { "266", "265" };//鍥涙ゼ鍏ュ簱宸ヤ綅
+            foreach (var item in conveyList4)
+            {
+                // 鏍规嵁鐩爣宸ヤ綅鍙疯幏鍙栬緭閫佺嚎閾炬帴
+                var plcCconn = PLCCommon.GetPlcIp(item);
+                // 璇诲彇鐩爣宸ヤ綅褰撳墠鐘舵��
+                var ConveyorMod = PLCTaskAction.plcDevices.First(m => m.StationNum == item && m.DeviceType == DeviceTypeEnum.Business);
+                var (result, value) = plcCconn.GetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.PlcPos);
+                if (result.IsSucceed)
+                {
+                    if (value.ToString() == "120")//绌洪棽鐘舵��
+                    {
+                        // 鍒ゆ柇璇ュ伐浣嶆槸鍚﹀瓨鍦ㄦ湭瀹屾垚鐨勫嚭搴撲换鍔�
+                        var modInTask = _db.Queryable<WcsTask>().OrderBy(m => m.Levels, OrderByType.Asc).OrderBy(m => m.CreateTime, OrderByType.Asc)
+                            .First(s => (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.Out && s.EndLocate == item);
+
+                        if (modInTask == null)
+                        {
+                            // 鑻ョ┖闂插苟娌℃湁鏈畬鎴愮殑鍑哄簱浠诲姟鎻愬墠鍗犵敤姝ゅ伐浣�
+                            var ret = plcCconn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "130");
+                            if (ret.IsSucceed)
+                            {
+                                rukuAdress = item;
+                                break;
+                            }
+                        }                        
+                    }
+                }
+            }
+            if (!string.IsNullOrEmpty(rukuAdress))
+            {
+                return new ResponseModel() { StatusCode = 0, Msg = rukuAdress };
+            }
+            else
+            {
+                return new ResponseModel() { StatusCode = -1, Msg = "鏃犵┖闂插叆搴撳伐浣�" };
+            }
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+    }
+    /// <summary>
+    /// 灏忚溅鍏ュ簱鍙f斁璐у畬鎴愶紝WMS璋冪敤WCS鏇存敼PLC
+    /// </summary>
+    /// <param name="StationNum"></param>
+    /// <returns></returns>
+    [AllowAnonymous]
+    [HttpPost]
+    public ResponseModel UpdatePlcPosAgvTaskFinsh(AgvTaskFinshModel model)
+    {
+        try
+        {
+            var conveyList4 = new List<string>() { "266", "265" };//鍥涙ゼ鍏ュ簱宸ヤ綅
+            if (!conveyList4.Contains(model.StationNum))
+            {
+                return new ResponseModel() { StatusCode = -1, Msg = "宸ヤ綅鍙锋棤鏁�" };
+            }
+            // 鏍规嵁鐩爣宸ヤ綅鍙疯幏鍙栬緭閫佺嚎閾炬帴
+            var plcCconn = PLCCommon.GetPlcIp(model.StationNum);
+            // 璇诲彇鐩爣宸ヤ綅褰撳墠鐘舵��
+            var ConveyorMod = PLCTaskAction.plcDevices.First(m => m.StationNum == model.StationNum && m.DeviceType == DeviceTypeEnum.Business);
+            var (result, value) = plcCconn.GetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.PlcPos);
+            if (result.IsSucceed)
+            {
+                if (value.ToString() != "150")//绌洪棽鐘舵��
+                {
+                    return new ResponseModel() { StatusCode = -1, Msg = "宸ヤ綅鍙稰LC鐘舵�佸紓甯�" };
+                }
+                // 鍐欏叆160锛屾斁璐у畬鎴�
+                var ret = plcCconn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "160");
+                if (ret.IsSucceed)
+                {
+                    return new ResponseModel() { StatusCode = 0, Msg = "鎴愬姛" };
+                }
+                else
+                {
+                    return new ResponseModel() { StatusCode = -1, Msg = "鍐欏叆PLC澶辫触" };
+                }
+            }
+            else
+            {
+                return new ResponseModel() { StatusCode = -1, Msg = "杩炴帴PLC澶辫触" };
+            }
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+    }
+
+    /// <summary>
+    /// WCS鎺ュ彈璧嬬爜绯荤粺鎺ㄩ�佺殑绠辩爜淇℃伅
+    /// </summary>
+    /// <param name="models">绠辩爜淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost("AddHttpBoxInfo")]
+    [AllowAnonymous]
+    public ResponseFuMaModel AddHttpBoxInfo(FumaBoxModel models)
+    {
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹璧嬬爜鎺ㄩ�佺殑绠辩爜淇℃伅锛�" + str);
+
+            var num = _db.Queryable<WcsBoxInfo>().Where(m => m.BoxNo == models.Product.BoxNo && m.IsDelete == false).ToList();
+            var type = "add";
+            if (num.Count > 0)
+            {
+                //WCS瀛樺湪绠辩爜淇℃伅锛屾洿鏂扮鐮佷俊鎭�(闇�鍒ゆ柇绠辩爜鏄惁宸茬粍鐩樺叆搴�)
+                var num2 = num.Count(m => m.Status != "0" || !string.IsNullOrWhiteSpace(m.PalletNo));
+                if (num2 > 0)
+                {
+                    throw new Exception("璇ョ宸插叆鐩樺叆搴擄紝涓嶅彲鏇存柊淇℃伅");
+                }
+                type = "edit";
+            }
+
+            if (models.Product.Barcodes.Count == 0)
+            {
+                throw new Exception("鐩掔爜闆嗗悎涓嶈兘涓虹┖");
+            }
+
+            var listBox = new List<WcsBoxInfo>();
+            foreach (var item in models.Product.Barcodes)
+            {
+                if (string.IsNullOrWhiteSpace(models.Product.ProductionTime) || string.IsNullOrWhiteSpace(models.Product.ExpirationTime))
+                {
+                    throw new Exception("鐢熶骇鏃ユ湡鎴栬繃鏈熸棩鏈熶笉鑳戒负绌�");
+                }
+                DateTime proTime;
+                DateTime expTime;
+                var isValid = DateTime.TryParse(models.Product.ProductionTime, out proTime);
+                var isValid2 = DateTime.TryParse(models.Product.ExpirationTime, out expTime);
+                if (!isValid || !isValid2)
+                {
+                    throw new Exception("鐢熶骇鏃ユ湡鎴栧け鏁堟棩鏈熸牸寮忛敊璇�");
+                };
+
+                var boxAdd = new WcsBoxInfo()
+                {
+                    SkuNo = models.Product.SkuNo,
+                    SkuName = models.Product.SkuName,                    
+                    LotNo = models.Product.LotNo,
+                    LotText = models.Product.LotText,
+                    Custom = models.Product.Custom,
+                    CustomName = models.Product.CustomName,
+                    ProductionTime = proTime,
+                    ExpirationTime = expTime,
+                    LineNo=models.Product.Line_No,
+                    Standard = models.Product.Standard,
+                    PackageStandard = models.Product.PackageStandard,
+                    PackUnit = models.Product.PackUnit,
+                    StoreTime = DateTime.Parse(models.Product.StoreTime),
+                    BitBoxMark = models.Product.BitBoxMark,
+                    BoxNo = models.Product.BoxNo,                    
+                    Qty = 1,//鏁伴噺
+                    FullQty = 0,//鏁寸鏁伴噺
+                    InsPectMark = models.Product.InsPectMark,//鎶芥鏍囪
+                    BoxNo2 = item.BoxNo2,
+                    BoxNo3 = "",
+                    Level = item.Level,
+                    EndLotFlag = string.IsNullOrWhiteSpace(models.Product.BitBoxMark) ? "0" : models.Product.BitBoxMark,//缁撴壒鏍囪瘑                     
+                    QtyCount = 0,//鎬讳欢鏁�
+                    QtyOrd = 0,//绗嚑浠�
+                    Status = "0",
+                    IsDelete = false
+                };
+                listBox.Add(boxAdd);
+            }
+            _db.Insertable(listBox).ExecuteCommand();
+            if (type == "edit")
+            {
+                _db.Deleteable(num).ExecuteCommand();               
+            }
+            return new ResponseFuMaModel() { Success = true, Message = "ok" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseFuMaModel() { Success = false, Message = ex.Message };
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0