From b71144811c970ddb7296f5243f722ec6b00cf805 Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期四, 13 三月 2025 18:52:52 +0800
Subject: [PATCH] 程序修改

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

diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index b6d1173..ea89850 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,5 +1,6 @@
 锘縰sing Dm.filter;
 using DocumentFormat.OpenXml.Drawing.Charts;
+using DocumentFormat.OpenXml.Office.CustomUI;
 using DocumentFormat.OpenXml.Presentation;
 using Elastic.Clients.Elasticsearch;
 using Furion.Logging;
@@ -373,24 +374,83 @@
 
             //鑾峰彇鍖呰鏁伴噺
             int Fqty = int.Parse(models.FinishQty);
+            int bzQty = 0;
             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);
+                bzQty = (int)boxinfo.QtyCount;
             }
             else
             {
                 Fqty = (int)(Fqty / boxinfolog.QtyCount);
+                bzQty = (int)boxinfolog.QtyCount;
             }
-            
+            int Jpqty = 0;
             //鍐欏叆璇ヤ换鍔″畬鎴愭暟閲�
             foreach (var item in num)
             {
                 item.FinishQty = Fqty;
+                //鍒ゆ柇褰撳墠鍗曟嵁鐮佸灈鏁伴噺鏄惁鍜屽畬宸ユ暟閲忕浉绛夛紝鏄垯缁撴壒璇ュ崟鎹�
+                var checkNum = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.OrderCode == item.OrderNo).ToList();//缁勭洏琛ㄧ鐮佷俊鎭�
+                if (checkNum.Count>0)
+                {
+                    if (checkNum.First().Qty != 0)//鏈夋敮鐮�
+                    {
+                        foreach (var item2 in checkNum)
+                        {
+                            Jpqty = (int)(Jpqty + item2.Qty);
+                        }
+                    }
+                    else//鏃犳敮鐮�
+                    {
+                        foreach (var item2 in checkNum)
+                        {
+                            Jpqty = (int)(Jpqty + item2.QtyCount);
+                        }
+                    }
+                }
+                var checkNum2 = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.OrderCode == item.OrderNo).ToList();//绠辩爜琛ㄥ凡鐮佸灈绠辩爜淇℃伅
+                if (checkNum2.Count>0)
+                {
+                    if (checkNum2.First().Qty != 0)//鏈夋敮鐮�
+                    {
+                        foreach (var item2 in checkNum)
+                        {
+                            Jpqty = (int)(Jpqty + item2.Qty);
+                        }
+                    }
+                    else//鏃犳敮鐮�
+                    {
+                        foreach (var item2 in checkNum)
+                        {
+                            Jpqty = (int)(Jpqty + item2.QtyCount);
+                        }
+                    }
+                }
+                if (Jpqty/bzQty == Fqty)
+                {
+                    //棰勭粨鎵逛俊鍙蜂笅鍙�
+                    var modPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.Text == ("2灞傛墭鐩樿緭閫佺嚎")).First();
+                    if (modPlc == null)
+                        throw Oops.Bah("鏈壘鍒拌緭閫佺嚎PLC");
+                    PLCUtil plcConn = new PLCUtil(modPlc);
+                    //鑾峰彇宸ヤ綅鐐逛綅淇℃伅
+                    var portno = item.Port;
+                    var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno).First();
+                    var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.StationNum == portno && s.Text.Contains("2妤�")).First();
+                    var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "1");//鍐欏叆寮�濮嬬粨鎵逛俊鍙�
+                    if (ret.IsSucceed)
+                    {
+                        item.Status = "2";//缁撴壒涓�
+                    }
+                    else { throw new Exception("瀹屽伐缁撴壒淇″彿涓嬪彂缁橮LC閿欒"); }
+                }
+                _db.Updateable(item).ExecuteCommand();
+                return new ResponseFuMaModel() { Success = "0", Message = "鎺ュ彈瀹屽伐缁撴壒鏁伴噺鎴愬姛" };
             }
-            _db.Updateable(num).ExecuteCommand();
-
+            
             return new ResponseFuMaModel() { Success = "0", Message = "鎺ュ彈瀹屽伐缁撴壒鏁伴噺鎴愬姛" };
         }
         catch (Exception ex)
@@ -415,7 +475,7 @@
             string str = JsonConvert.SerializeObject(models);
             Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port+"鍏ュ簱鍙�");
 
-            var portno = "";
+            var portno = models.Port;
             var layer = "3";
             switch (models.Port)
             {
@@ -479,9 +539,9 @@
         try
         {
             string str = JsonConvert.SerializeObject(models);
-            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
+            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣璇锋眰锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
 
-            var portno = "";
+            var portno = models.Port;
             var layer = "3";
             switch (models.Port)
             {
@@ -542,9 +602,9 @@
         try
         {
             string str = JsonConvert.SerializeObject(models);
-            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
+            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣瀹屾垚锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
 
-            var portno = "";
+            var portno = models.Port;
             var layer = "3";
             switch (models.Port)
             {

--
Gitblit v1.8.0