From 8ad8eea3e7d876fd996130f40a17ed47d794236a Mon Sep 17 00:00:00 2001
From: jinxin <1013386558@qq.com>
Date: 星期四, 05 六月 2025 15:17:24 +0800
Subject: [PATCH] 码盘入库任务取消降量

---
 C#/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs |   48 +++++++++++++++++++++++++++++++++++++++++++++---
 C#/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs       |    1 +
 .vs/VSWorkspaceState.json                     |    2 +-
 C#/HH.WCS.Mobox3.WeiLi/api/MoboxController.cs |    2 +-
 .vs/slnx.sqlite                               |    0 
 5 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
index 392a46e..bfbce0f 100644
--- a/.vs/VSWorkspaceState.json
+++ b/.vs/VSWorkspaceState.json
@@ -2,6 +2,6 @@
   "ExpandedNodes": [
     ""
   ],
-  "SelectedNode": "\\E:\\椤圭洰\\Weili",
+  "SelectedNode": "\\E:\\椤圭洰\\Git\\閾跺窛濞佸姏浜屾湡",
   "PreviewInSolutionExplorer": false
 }
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
index 997c419..c498c9d 100644
--- a/.vs/slnx.sqlite
+++ b/.vs/slnx.sqlite
Binary files differ
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
index be3da4c..f33ec2e 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
@@ -3156,6 +3156,7 @@
                                             S_ITEM_NAME = itemName.S_ITEM_NAME,
                                             S_ITEM_CODE = a.itemCode,
                                             S_BATCH_NO = a.batchNo,
+                                            S_BS_NO=a.inWorkNo,
                                             S_OWNER = a.factoryCode,
                                             S_ERP_WH_CODE = a.stockLocation,
                                             F_QTY = a.qty,
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/api/MoboxController.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/api/MoboxController.cs"
index d9ba360..f70f79d 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/api/MoboxController.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/MoboxController.cs"
@@ -40,7 +40,7 @@
                         LocationHelper.UnLockLoc(task.S_START_LOC);
                         LocationHelper.UnLockLoc(task.S_END_LOC);
                         LocationHelper.UnLockLoc(wmsTask.S_END_LOC);
-
+                        TaskProcess.Reducequantity(wmsTask);
                         result.resultMsg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�;
                     }
                     else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
index 01ec719..70810a0 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
@@ -51,6 +51,7 @@
         /// <param name="mst"></param>
         internal static void CacheBitCancelUpdate(WCSTask mst)
         {
+            LogHelper.Info($"浠诲姟鍙栨秷 浠诲姟璋冨害绫诲瀷{mst.S_SCHEDULE_TYPE}");
             var db = new SqlHelper<object>().GetInstance();
             //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣
             if (mst.S_SCHEDULE_TYPE == "WCS")
@@ -86,12 +87,11 @@
                     //缁堢偣鏁伴噺缃�
                     db.Updateable<Location>().SetColumns(it => new Location() { N_CURRENT_NUM = 0 }).Where(a => a.S_CODE == mst.S_END_LOC).ExecuteCommand();
                 }
-                else 
+                else
                 {
                     db.Updateable<Location>().SetColumns(it => new Location() { N_CURRENT_NUM = 0 }).Where(a => a.S_CODE == mst.S_START_LOC).ExecuteCommand();
                 }
-                db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == mst.S_CNTR_CODE).ExecuteCommand();
-                db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == mst.S_CNTR_CODE).ExecuteCommand();
+               
 
                 LocationHelper.UnLockLoc(mst.S_START_LOC);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
@@ -99,12 +99,52 @@
                 if (wmsTask != null)
                 {
                     LocationHelper.UnLockLoc(wmsTask.S_END_LOC);
+                    Reducequantity(wmsTask);
                 }
+                db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == mst.S_CNTR_CODE).ExecuteCommand();
+                db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == mst.S_CNTR_CODE).ExecuteCommand();
+
             }
 
 
 
 
+        }
+
+        public static void Reducequantity(WMSTask wmsTask)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            if (wmsTask.S_OP_DEF_NAME == "鐮佺洏鍏ュ簱")
+            {
+                //闄嶅叆搴撳崟鏄庣粏鐨勫垎閰嶉噺
+                var itemlist = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ToList();
+                if (itemlist.Count > 0)
+                {
+                    LogHelper.Info($"鏌ユ壘鍒扮墿鏂欐槑缁唟itemlist.Count}鏉�);
+                    foreach (var item in itemlist)
+                    {
+                        var exp = Expressionable.Create<TN_Inbound_Detail>();
+                        exp.And(it => it.S_IO_NO == item.S_BS_NO);
+                        exp.And(it => it.N_BS_ROW_NO == item.S_WU);
+                        exp.And(it => it.S_ITEM_CODE == item.S_ITEM_CODE);
+                        exp.AndIF(!string.IsNullOrEmpty(item.S_BATCH_NO), it => it.S_BATCH_NO == item.S_BATCH_NO);
+                        exp.AndIF(!string.IsNullOrEmpty(item.S_ERP_WH_CODE), it => it.S_ERP_WH_CODE == item.S_ERP_WH_CODE);
+                        exp.AndIF(!string.IsNullOrEmpty(item.S_OWNER), it => it.S_OWNER == item.S_OWNER);
+                        exp.AndIF(!string.IsNullOrEmpty(item.S_SUPPLIER_NO), it => it.S_SUPPLIER_NO == item.S_SUPPLIER_NO);
+                        var InWorkOrder = db.Queryable<TN_Inbound_Detail>().Where(exp.ToExpression()).First();
+                        InWorkOrder.F_ACC_B_QTY = InWorkOrder.F_ACC_B_QTY - item.F_QTY;
+                        db.Updateable(InWorkOrder).UpdateColumns(it => new { it.F_ACC_B_QTY }).ExecuteCommand();
+                    }
+                }
+                else 
+                {
+                    LogHelper.Info($"鏈壘鍒版墭鐩榹wmsTask.S_CNTR_CODE}鐨勭墿鏂欐槑缁�);
+                }
+            }
+            else 
+            {
+                LogHelper.Info($"浣滀笟绫诲瀷涓簕wmsTask.S_OP_DEF_NAME} 鏃犻』闄嶉噺");
+            }
         }
 
         /// <summary>
@@ -190,6 +230,8 @@
                             mst.S_ERR_LOC = "";
                             db.Updateable(mst).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH, a.S_START_LOC, a.S_START_AREA, a.S_START_WH, a.S_ERR_LOC }).ExecuteCommand();
 
+
+                            TaskProcess.Reducequantity(wmsTask);
                             //NDCApi.ChangeOrderParam(mst.S_CODE, 1, startLoc.S_AGV_SITE);
                             //NDCApi.ChangeOrderParam(mst.S_CODE, 2, endLoc.S_AGV_SITE);
                             //NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0");

--
Gitblit v1.9.1