From 48d66a079c307356997fb400d27907ff6d363b7b Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期一, 20 一月 2025 08:35:37 +0800
Subject: [PATCH] 修改2楼分拣和1楼拆垛时获取拆垛信息接口

---
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs |  138 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 130 insertions(+), 8 deletions(-)

diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index 6de853a..67583ce 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,4 +1,5 @@
-锘縰sing DocumentFormat.OpenXml.Presentation;
+锘縰sing Dm.filter;
+using DocumentFormat.OpenXml.Presentation;
 using Elastic.Clients.Elasticsearch;
 using Furion.Logging;
 using Newtonsoft.Json;
@@ -85,7 +86,7 @@
                 result.Msg = "浠诲姟:" + models.TaskNo + ";宸插瓨鍦�!";
                 return result;
             }
-            if (models.TaskType == "0")
+            if (models.TaskType == "0" && models.TaskType == "0")
             {
                 models.Order = 1;
             }
@@ -93,11 +94,30 @@
             {
                 models.Order = 2;
             }
+            Enum type;
+            var bale = "0";
+            if (models.TaskType == "0" )
+            {
+                type = TaskTypeEnum.In;
+            }
+            else if (models.TaskType == "1")
+            {
+                type = TaskTypeEnum.Out;
+            }
+            else if (models.TaskType == "3")
+            {
+                type = TaskTypeEnum.In;
+                bale = "1";//瑁瑰寘
+            }
+            else
+            {
+                type = TaskTypeEnum.Move;
+            }
             //鏂板浠诲姟
             var taskAdd = new WcsTask()
             {
                 TaskNo = models.TaskNo,
-                TaskType = TaskTypeEnum.Out,
+                TaskType = (TaskTypeEnum?)type,
                 Status = TaskStatusEnum.Wait,
                 //IsSuccess =TaskSuccessEnum.Success,
                 Levels = 999,
@@ -107,6 +127,8 @@
                 EndLocate = models.EndLocate,
                 EndRoadway= models.EndRoadway,
                 PalletNo = models.PalletNo,
+                IsBale = bale,
+
 
                 //LotNo =models.LotNo,
                 //SkuNo=models.SkuNo,
@@ -124,7 +146,7 @@
     }
 
     /// <summary>
-    /// WCS鎺ユ敹WMS涓嬪彂鐨勫叆搴撳崟浠诲姟
+    /// WCS鎺ユ敹WMS涓嬪彂鐨勫嚭鍏ュ簱鍗曚换鍔�
     /// </summary>
     /// <param name="models"></param>
     /// <returns></returns>
@@ -137,12 +159,17 @@
         {
             foreach (var item in models)
             {
+                string str = JsonConvert.SerializeObject(models);
+                Log.Information("鎺ユ敹WMS鎺ㄩ�佺殑绠辩爜淇℃伅锛�" + str);
                 // 楠岃瘉浠诲姟鏄惁宸插瓨鍦�
                 //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()
+                //var taskid = _db.Queryable<WcsOderTask>().OrderByDescending(w=>w.CreateTime).First();
+                //int newid = (int)taskid.Id + 1;
+                var orderAdd = new WcsOderTask()
                     {
+                        
                         OrderNo = item.OrderNo,
                         TaskNo = "",
                         LotNo = item.LotNo,
@@ -151,6 +178,8 @@
                         BoxType = item.BoxType,
                         Qty = item.Qty,
                         TaskType = (TaskTypeEnum)item.TaskType,
+                        CreateTime = DateTime.Now,
+                        Status = TaskStatusEnum.Wait,
                     };
                     _db.Insertable(orderAdd).ExecuteCommand();
                //}
@@ -210,7 +239,7 @@
                 }
                 if (item.DelistList2.Count == 0)
                 {
-                    throw new Exception("鍊肩爜闆嗗悎涓嶈兘涓虹┖");
+                    throw new Exception("鏀爜闆嗗悎涓嶈兘涓虹┖");
                 }
                 //浜岀骇鐮�
                 foreach (var item2 in item.DelistList2)
@@ -227,6 +256,11 @@
                     {
                         throw new Exception("鐢熶骇鏃ユ湡鎴栧け鏁堟棩鏈熸牸寮忛敊璇�");
                     };
+                    DateTime? stortime = null;
+                    if (!string.IsNullOrWhiteSpace(models.StoreTime))
+                    {
+                        stortime = DateTime.Parse(models.StoreTime);
+                    }
 
                     var boxAdd = new WcsBoxInfo()
                     {
@@ -236,6 +270,7 @@
                         SkuName = models.SkuName,
                         Standard = models.Standard,
                         LotNo = models.LotNo,
+                        LineNo = models.LineNo,                 // 浜х嚎鍙锋垨浜х嚎鍚嶇О
                         Qty = item2.Qty,
                         FullQty = models.FullQty,
                         //SupplierLot = models.SupplierLot,
@@ -244,14 +279,14 @@
                         //InspectStatus = models.InspectStatus锛�
                         ProductionTime = proTime,
                         ExpirationTime = expTime,
-                        StoreTime = DateTime.Parse(models.StoreTime),
+                        StoreTime = stortime,
                         EndLotFlag = string.IsNullOrWhiteSpace(models.EndBatchMark) ? "0" : models.EndBatchMark,
 
                         BoxNo2 = item.BoxNo2,
                         BoxNo3 = item2.BoxNo3,
                         QtyCount = item2.QtyCount,
                         QtyOrd = item2.QtyOrd,
-
+                        
                         Status = "0",
                         Level = level,
 
@@ -276,4 +311,91 @@
         }
     }
 
+    /// <summary>
+    /// WCS鎺ュ彈璧嬬爜绯荤粺鎺ㄩ�佺殑绠辩爜绉婚櫎
+    /// </summary>
+    /// <param name="models">绠辩爜淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public ResponseFuMaModel DelgatesHttpBoxInfo(FumaBoxInfoInput models)
+    {
+
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹璧嬬爜鎺ㄩ�佺殑绠辩爜绉婚櫎锛�" + str);
+            var num = _db.Queryable<WcsBoxInfo>().Where(m => m.BoxNo == models.BoxNo && m.IsDelete == false).ToList();
+            if (num.Count > 0)
+            {
+                //WCS瀛樺湪绠辩爜淇℃伅锛屾洿鏂扮鐮佷俊鎭�(闇�鍒ゆ柇绠辩爜鏄惁宸茬粍鐩樺叆搴�)
+                var num2 = num.Count(m => m.Status != "0" || !string.IsNullOrWhiteSpace(m.PalletNo));
+                if (num2 > 0)
+                {
+                    throw new Exception("璇ョ宸茬洏鍏ュ簱锛屼笉鍙洿鏂颁俊鎭�");
+                }
+            }
+            if (num.Count == 0)
+            {
+                throw new Exception("鏈壘鍒拌绠辩爜锛岀鐮佺Щ闄ゅけ璐ワ紒");
+            }
+
+            _db.Deleteable(num).ExecuteCommand();
+            return new ResponseFuMaModel() { Success = "0", Message = "绉婚櫎绠辩爜鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseFuMaModel() { Success = "-1", Message = ex.Message };
+        }
+    }
+
+    /// <summary>
+    /// WCS鎺ュ彈璧嬬爜绯荤粺鎺ㄩ�佺殑缁撴壒鎬绘暟閲�
+    /// </summary>
+    /// <param name="models">缁撴壒鏁伴噺淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public ResponseFuMaModel HttpTotalNum(FumaJiepiModel models)
+    {
+
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹璧嬬爜鎺ㄩ�佺殑瀹屽伐缁撴壒鎬绘暟閲忥細" + str);
+            //鏌ョ湅璧嬬爜涓嬪彂鐨勪换鍔′俊鎭槸鍚︽鍦ㄥ垎鎷�
+            var num = _db.Queryable<WcsCheckTask>().Where(m => m.SkuNo == models.SkuNo &&m.LotNo == models.LotNo && m.Status == "1").ToList();
+            if (num.Count < 1)
+            {
+                return new ResponseFuMaModel() { Success = "-1", Message = "璇ユ壒娆℃湭杩涜鍒嗘嫞鎴栧凡缁撴壒" };
+            }
+
+            //鑾峰彇鍖呰鏁伴噺
+            int Fqty = int.Parse(models.FinishQty);
+            var boxinfolog = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
+            if (boxinfolog == null)
+            {
+                var boxinfo = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
+                Fqty = (int)(Fqty /boxinfo.QtyCount);
+            }
+            else
+            {
+                Fqty = (int)(Fqty / boxinfolog.QtyCount);
+            }
+            
+            //鍐欏叆璇ヤ换鍔″畬鎴愭暟閲�
+            foreach (var item in num)
+            {
+                item.FinishQty = Fqty;
+            }
+            _db.Updateable(num).ExecuteCommand();
+
+            return new ResponseFuMaModel() { Success = "0", Message = "鎺ュ彈瀹屽伐缁撴壒鏁伴噺鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseFuMaModel() { Success = "-1", Message = ex.Message };
+        }
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0