From 04611220d6ec06fb328c85210b5e3d3e305cfb3d Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期一, 29 九月 2025 17:28:49 +0800
Subject: [PATCH] 结批功能修改

---
 Admin.NET/WCS.Application/PLC/PLCService.cs           |   59 ++++++++++++-------
 Admin.NET/WCS.Application/Util/HttpService.cs         |   24 -------
 Admin.NET/WCS.Application/Configuration/Database.json |    2 
 Admin.NET/WCS.Application/Model/TaskRequest.cs        |   76 +------------------------
 4 files changed, 43 insertions(+), 118 deletions(-)

diff --git a/Admin.NET/WCS.Application/Configuration/Database.json b/Admin.NET/WCS.Application/Configuration/Database.json
index a586878..4e16d32 100644
--- a/Admin.NET/WCS.Application/Configuration/Database.json
+++ b/Admin.NET/WCS.Application/Configuration/Database.json
@@ -11,7 +11,7 @@
         //"ConnectionString": "PORT=5432;DATABASE=xxx;HOST=localhost;PASSWORD=xxx;USER ID=xxx", // PostgreSQL 搴撹繛鎺ュ瓧绗︿覆
         //"ConnectionString": "Server=localhost;Database=xxx;Uid=xxx;Pwd=xxx;SslMode=None;", // MySql 搴撹繛鎺ュ瓧绗︿覆",
         //"ConnectionString": "User Id=xxx; Password=xxx; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))", // Oracle 搴撹繛鎺ュ瓧绗︿覆
-        "ConnectionString": "Server=10.18.99.10;Database=WCSnet6;User Id=sa;Password=sql2024;", // SqlServer 搴撹繛鎺ュ瓧绗︿覆
+        "ConnectionString": "Server=10.18.99.10;Database=WCSnet6;User Id=sa;Password=sql2024;MultipleActiveResultSets=True;", // SqlServer 搴撹繛鎺ュ瓧绗︿覆
         //"ConnectionString": "Server=192.168.62.200;Database=WCSnet6;User Id=sa;Password=sql2019;", // SqlServer 搴撹繛鎺ュ瓧绗︿覆
 
 
diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 6cc2dac..f7a4e93 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -87,7 +87,7 @@
     /// </summary>
     public int Order { get; set; }
 
-    
+
     public string SkuName { get; set; }
 
     public string LotNo { get; set; }
@@ -139,14 +139,6 @@
     /// </summary>
     public decimal Qty { get; set; }
     /// <summary>
-    /// 绠辨暟閲�
-    /// </summary>
-    public decimal xQty { get; set; }
-    /// <summary>
-    /// 婊$鏁伴噺
-    /// </summary>
-    public decimal FullQty { get; set; }
-    /// <summary>
     /// 鎵樼洏绫诲瀷  0鐗╂枡鎵�  1绌烘墭鐩樻墭
     /// </summary>
     public string Type { get; set; }
@@ -154,10 +146,6 @@
     /// 鐗╂枡缂栫爜
     /// </summary>
     public string SkuNo { get; set; }
-    /// <summary>
-    /// 鐗╂枡鍚嶇О
-    /// </summary>
-    public string SkuName { get; set; }
     /// <summary>
     /// 鎵规鍙�
     /// </summary>
@@ -170,47 +158,7 @@
     /// 渚涜揣鎵规
     /// </summary>
     public string SupplierLot { get; set; }
-    /// <summary>
-    /// 鐢熶骇鏃ユ湡
-    /// </summary>
-    public DateTime? ProductionTime { get; set; }
-    /// <summary>
-    /// 杩囨湡鏃堕棿
-    /// </summary>
-    public DateTime? ExpirationTime { get; set; }
-    /// <summary>
-    /// 妫�楠屾爣璁�
-    /// </summary>
-    public string InspectMark { get; set; }
-    /// <summary>
-    /// 闆剁鏍囪
-    /// </summary>
-    public string BitBoxMark { get; set; }
-    /// <summary>
-    /// 璐ㄦ鐘舵��
-    /// </summary>
-    public string InspectStatus { get; set; }
-    /// <summary>
-    /// 鐗╂枡瑙勬牸
-    /// </summary>
-    public string Standard { get; set; }
-    /// <summary>
-    /// 鍖呰瑙勬牸
-    /// </summary>
-    public string PackageStandard { get; set; }
-    /// <summary>
-    /// 鍌ㄥ瓨鏈熻嚦
-    /// </summary>
-    public DateTime? StoreTime { get; set; }
-    /// <summary>
-    /// 绗嚑浠�
-    /// </summary>
-    public int? QtyOrd { get; set; }
-    /// <summary>
-    /// 鎬讳欢鏁�
-    /// </summary>
-    public int? QtyCount { get; set; }
-    public List<BindBox> Detail { get; set; }
+    public List<WcsBoxInfo> Detail { get; set; }
 }
 //鐮佸灈绠辩爜鏄庣粏淇℃伅
 public class BoxPalletBindDetailVm
@@ -552,7 +500,7 @@
     public string Message { get; set; }
     public RequestBoxInfoCheck data { get; set; }
 
-    
+
 
 }
 public class RequestBoxInfoCheck
@@ -652,22 +600,4 @@
     /// 浠诲姟鍙�
     /// </summary>
     public string TaskNo { get; set; }
-}
-
-//鑷姩鐮佸灈缁勭洏淇℃伅鍥炰紶
-public class BindBox
-{
-    /// <summary>
-    /// 绠辩爜
-    /// </summary>
-    public string? BoxNo { get; set; }
-    /// <summary>
-    /// 鐩掔爜
-    /// </summary>
-    public string? BoxNo2 { get; set; }
-
-    /// <summary>
-    /// 鏀爜
-    /// </summary>
-    public string? BoxNo3{ get; set; }
 }
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 32d8e27..2775a0f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -29,6 +29,7 @@
     private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
 
     private static int fendao = 1;
+    
 
     public static void OnChangeEvent(object sender, EventArgs e)
     {
@@ -934,6 +935,7 @@
     private static void ConveyorLine(WcsDeviceDto modDevice)
     {
         var plcConn = modDevice.PLCUtil;
+        
         // 鑾峰彇妤煎眰鏁癱eshi
         var louCeng = PLCCommon.GetRoadwayByStationNew(modDevice.StationNum);
         if (louCeng == "") 
@@ -2519,6 +2521,7 @@
                     {
                         lock (OLock)
                         {
+                            Thread.Sleep(2000);
                             // 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙�
                             var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
                             // 鏍规嵁宸ヤ綅鍙疯幏鍙� 鎵樼洏绾胯宸ヤ綅鍙风殑閰嶇疆淇℃伅
@@ -2617,6 +2620,10 @@
                             }
                             else
                             {
+                                if (string.IsNullOrEmpty(palletNo))
+                                {
+                                    break;
+                                }
                                 // 鏍规嵁鎵樼洏鍙凤紝灏嗙粍鎵樹俊鎭彃鍏oxinfolog琛� 骞跺垹闄oxinfo琛ㄦ暟鎹�
                                 var boxInfoList = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.PalletNo == palletNo).ToList();
                                 if (boxInfoList.Count <= 0)
@@ -2627,29 +2634,30 @@
                                     var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
                                     if (retVal.IsSucceed)
                                     {
+                                        //鏇存柊浠诲姟琛ㄦ暟閲忎俊鎭�
+                                        checkTaskMedel.Qty = 0;
+                                        _db.Updateable(checkTaskMedel).ExecuteCommand();
                                         // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
                                         retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
                                     }
                                     break;
                                 }
+                                #region
                                 //鍒ゆ柇鎵樼洏涓婄殑绠辩爜鏄惁宸茬粍鐩�
-                                foreach (var item in boxInfoList)
-                                {
-                                    var groupBoxno = _db.Queryable<WcsBoxInfoLog>().Where(w => w.BoxNo == item.BoxNo).ToList();
-                                    if (groupBoxno.Count>0)
-                                    {
-                                        Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0}锛岀鐮佷俊鎭笉瀛樺湪", modDevice.StationNum));
-                                        // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
-                                        var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
-                                        if (retVal.IsSucceed)
-                                        {
-                                            // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
-                                            retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
-                                        }
-                                        break;
-                                    }
-                                }
-                                
+                                //var groupBoxno = _db.Queryable<WcsBoxInfoLog>().Where(w => w.BoxNo == item.BoxNo).ToList();
+                                //if (groupBoxno.Count>0)
+                                //{
+                                //    Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0}锛岀鐮佷俊鎭笉瀛樺湪", modDevice.StationNum));
+                                //    // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
+                                //    var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
+                                //    if (retVal.IsSucceed)
+                                //    {
+                                //        // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
+                                //        retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
+                                //    }
+                                //    break;
+                                //}
+                                #endregion
                                 // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
                                 string sqlStr = $"insert into WCSBoxInfoLog select * from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
                                 int insertCount = _db.Ado.ExecuteCommand(sqlStr);
@@ -2658,10 +2666,6 @@
                                     string sqlStr2 = $"delete from WCSBoxInfo where  IsDelete=0 and PalletNo='{palletNo}'";
                                     _db.Ado.ExecuteCommand(sqlStr2);
                                 }
-                                //缁勭洏鎴愬姛鍚庢竻绌哄垎鎷h〃褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
-                                checkTaskMedel.Qty = 0;
-                                _db.Updateable(checkTaskMedel).ExecuteCommand();
-
                                 // 鍚慦MS鐢宠宸烽亾
                                 var http = new HttpService();
                                 string TaskNo = "", EndLocate = "";
@@ -2670,10 +2674,23 @@
                                 if (strMsg.Contains("-1"))
                                 {
                                     Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0};鍘熷洜{1}", modDevice.StationNum, strMsg));
+                                    // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
+                                    var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
+                                    if (retVal.IsSucceed)
+                                    {
+                                        //鏇存柊浠诲姟琛ㄦ暟閲忎俊鎭�
+                                        checkTaskMedel.Qty = 0;
+                                        _db.Updateable(checkTaskMedel).ExecuteCommand();
+                                        // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
+                                        retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
+                                    }
                                     break;
                                 }
                                 else
                                 {
+                                    //缁勭洏鎴愬姛鍚庢竻绌哄垎鎷h〃褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
+                                    checkTaskMedel.Qty = 0;
+                                    _db.Updateable(checkTaskMedel).ExecuteCommand();
                                     //鍒ゆ柇鏄惁缁撴壒涓�
                                     var (res, jiepi) = plcConn.GetPlcDBValue(checkTaskMedel.PosType, modDevice.DbNumber, checkTaskMedel.PosLot);
                                     if (jiepi == 2)//缁撴壒涓�
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index 08c0ffe..ad11265 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -108,15 +108,6 @@
         var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo);
         if (task == null)
         {
-            var box = new BindBox();
-            List<BindBox> bindBox = new List<BindBox>();
-            foreach (var item in detail)
-            {
-                box.BoxNo = item.BoxNo;
-                box.BoxNo2 = item.BoxNo2;
-                box.BoxNo3 = item.BoxNo3;
-                bindBox.Add(box);
-            }
             var model = new BoxPalletBindVm()
             {
                 OrderCode = "",//鏆傛棤涓婃父绯荤粺缂栧彿
@@ -124,25 +115,12 @@
                 AsnDetailNo = 0,//鏆傛棤鍏ュ簱鍗曟槑缁嗙紪鍙凤紝WMS鏍规嵁鐗╂枡鎵规鏌ユ壘
                 PalletNo = palletNo,
                 Qty = qty,
-                xQty = (decimal)detail[0].Qty,
-                FullQty = (decimal)detail[0].FullQty,
                 Type = type,
                 SkuNo = skuNo,
-                SkuName = detail[0].SkuName,
                 LotNo = lotNo,
                 LotText = lotText,
                 SupplierLot = supplierLot,
-                ProductionTime = detail[0].ProductionTime,
-                ExpirationTime = detail[0].ExpirationTime,
-                InspectMark = detail[0].InsPectMark,
-                BitBoxMark = detail[0].BitBoxMark,
-                InspectStatus = "",
-                Standard = detail[0].Standard,
-                PackageStandard = detail[0].PackageStandard,
-                StoreTime = detail[0].StoreTime,
-                QtyOrd = detail[0].QtyOrd,
-                QtyCount = detail[0].QtyCount,
-                Detail = bindBox
+                Detail = detail
             };
             string url = Urls.WMSAddress + ":" + Urls.WMSPort;
             var result = (url + "/api/DownAPi/BindRequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;

--
Gitblit v1.8.0