From d93440432c13c75f798427be327cde02cfe7f301 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期日, 20 七月 2025 17:00:29 +0800
Subject: [PATCH] 增加无称重的指定货位入库流程,添加指定卸货位解绑接口备用

---
 api/ApiHelper.cs |  384 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 252 insertions(+), 132 deletions(-)

diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs
index 10aca34..6a07a60 100644
--- a/api/ApiHelper.cs
+++ b/api/ApiHelper.cs
@@ -39,7 +39,7 @@
                     .First();
 
                 if (startLoc == null) {
-                    return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.StartLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栨斁璐у尯");
+                    return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.StartLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栬揣鍖�);
                 }
 
                 //var locCntrRelOld = db.Queryable<TN_Loc_Container>()
@@ -191,6 +191,7 @@
                     S_CNTR_CODE = cntId,
                     //S_ITEM_NAME = model.ItemName,
                     S_LOC_CODE = startLoc.S_CODE, // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞
+                    N_LOCK_STATE = locCntrRel.N_LOCK_STATE,
                 };
 
                 startLoc.N_CURRENT_NUM = 1;
@@ -611,7 +612,7 @@
 
             try {
                 // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級
-                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE));
+                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE));
                 if (startLoc == null) {
                     return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�);
                 }
@@ -656,6 +657,154 @@
                     tran.CommitTran();
                     return BuildSimpleResult(0,
                         $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                }
+            }
+            catch (Exception ex) {
+                return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}");
+            }
+        }
+
+        /// <summary>
+        /// 鎸囧畾璐т綅鍏ュ簱
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        internal static SimpleResult InboundLoc(InboundLocInfo model) {
+            var taskName = TaskName.鎸囧畾璐т綅鍏ュ簱;
+            var db = new SqlHelper<object>().GetInstance();
+
+            var startAreas = Settings.Areas[AreaIndex.Q鍙栬揣鍖篯;
+            var endAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯;
+
+            try {
+                // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級
+                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE));
+                if (startLoc == null) {
+                    return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.startLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栨斁璐у尯");
+                }
+
+                //var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc);
+                //if (locCntrRel == null) {
+                //    return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡");
+                //}
+
+                var cntId = GenerateNo("瀹瑰櫒鍙�, "CN");
+                //var cgId = GenerateNo("鐗╂枡鍙�, "CG");
+                var cgId = string.IsNullOrEmpty(model.ItemCode) ? GenerateNo("鐗╂枡鍙�, "CG") : model.ItemCode;
+
+                // 棣栨鍏ュ簱锛氱粦瀹氫俊鎭紝鍏堝皢璧风偣浣嶇疆涓庡鍣ㄧ粦瀹氾紝瀹瑰櫒涓庣墿鏂欑粦瀹�+                var locCntrRel = new TN_Loc_Container() {
+                    S_LOC_CODE = startLoc.S_CODE,
+                    S_CNTR_CODE = cntId,
+                    N_LOCK_STATE = string.IsNullOrEmpty(model.ItemCode) ? 0 : 1,
+                };
+
+                var cgDetail = new TN_CG_Detail() {
+                    S_ITEM_CODE = cgId,
+                    S_CNTR_CODE = cntId,
+                    //S_ITEM_NAME = model.ItemName,
+                    S_LOC_CODE = startLoc.S_CODE, // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞
+                    N_LOCK_STATE = locCntrRel.N_LOCK_STATE,
+                };
+
+                startLoc.N_CURRENT_NUM = 1;
+
+                // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�+                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && endAreas.Contains(a.S_AREA_CODE));
+                if (endLoc == null) {
+                    return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�);
+                }
+
+                //var cntId = locCntrRel.S_CNTR_CODE;
+                var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
+                LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+                LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+
+                using (var tran = db.Ado.UseTran()) {
+                    if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new {
+                        it.N_LOCK_STATE,
+                        it.S_LOCK_STATE,
+                        it.S_LOCK_OP,
+                        it.T_MODIFY
+                    }).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}");
+                    }
+
+                    if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new {
+                        it.N_LOCK_STATE,
+                        it.S_LOCK_STATE,
+                        it.S_LOCK_OP,
+                        it.T_MODIFY
+                    }).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                    }
+
+                    if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                    }
+
+                    tran.CommitTran();
+                    return BuildSimpleResult(0,
+                        $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                }
+            }
+            catch (Exception ex) {
+                return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}");
+            }
+        }
+
+        /// <summary>
+        /// 鎸囧畾璐т綅鍏ュ簱
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        internal static SimpleResult UnbindLoc(UnbindLocInfo model) {
+            var db = new SqlHelper<object>().GetInstance();
+
+            var startAreas = Settings.Areas[AreaIndex.X鍗歌揣鍖篯;
+            //var endAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯;
+
+            try {
+                // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級
+                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE));
+                if (startLoc == null) {
+                    return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.startLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栬揣鍖�);
+                }
+
+                var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc);
+                if (locCntrRel == null) {
+                    return BuildSimpleResult(2, $"褰撳墠璐т綅{model.startLoc}娌℃湁璐т綅瀹瑰櫒缁戝畾鍏崇郴锛屾棤闇�В缁戯紒");
+                }
+
+                var cgDetail = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == locCntrRel.S_CNTR_CODE);
+                if (cgDetail != null) {
+                    return BuildSimpleResult(3, $"褰撳墠璐т綅{model.startLoc}瀹瑰櫒瀛樻斁鐨勭墿鏂欐暟閲忎笉涓�锛屾棤娉曡В缁戯紒");
+                }
+
+                startLoc.N_CURRENT_NUM = 0;
+                startLoc.T_MODIFY = DateTime.Now;
+
+                using (var tran = db.Ado.UseTran()) {
+                    if (db.Deleteable(locCntrRel).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鍒犻櫎璐т綅瀹瑰櫒缁戝畾鍏崇郴澶辫触!" + JsonConvert.SerializeObject(locCntrRel));
+                    }
+
+                    if (db.Updateable(startLoc).UpdateColumns(it => new { it.N_CURRENT_NUM, it.T_MODIFY }).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鍒犻櫎璐т綅瀹瑰櫒缁戝畾鍏崇郴澶辫触!" + JsonConvert.SerializeObject(locCntrRel));
+                    }
+
+                    tran.CommitTran();
+                    return BuildSimpleResult(0, "瑙g粦瀹瑰櫒璐у搧鍏崇郴鎴愬姛");
                 }
             }
             catch (Exception ex) {
@@ -926,7 +1075,7 @@
 
                 foreach (var transaction in model.stockTransactions) {
                     var recordOld = db.Queryable<TN_Inbound_DataRecord>()
-                        .Where(r => r.S_LOCATION_CODE == "HJQ-" + transaction.locationCode.Trim()).First();
+                        .Where(r => r.S_LOCATION_CODE == transaction.locationCode.Trim()).First();
                     if (recordOld != null) {
                         deleteRecordOldList.Add(recordOld);
                         //errList.Add(recordOld);
@@ -935,7 +1084,7 @@
 
                     // 鍐欏叆璁板綍琛�                     var record = new TN_Inbound_DataRecord {
-                        S_LOCATION_CODE = "HJQ-" + transaction.locationCode.Trim(),
+                        S_LOCATION_CODE = transaction.locationCode.Trim(),
                         S_STOCK_TRANS = transaction.stockTransactionId,
                         S_ITEM_CODE = transaction.itemCode,
                         S_ITEM_NAME = transaction.itemName,
@@ -1024,7 +1173,7 @@
                 var deleteRecordOldList = new List<TN_Outbound_DataRecord>();
                 foreach (var issue in model.materialIssues) {
                     var recordOld = db.Queryable<TN_Outbound_DataRecord>()
-                        .Where(r => r.S_LOCATION_CODE == "HJQ-" + issue.locationCode.Trim()).First();
+                        .Where(r => r.S_LOCATION_CODE == issue.locationCode.Trim()).First();
                     if (recordOld != null) {
                         deleteRecordOldList.Add(recordOld);
                         //errList.Add(recordOld);
@@ -1033,7 +1182,7 @@
 
                     // 鍐欏叆璁板綍琛�                     var record = new TN_Outbound_DataRecord {
-                        S_LOCATION_CODE = "HJQ-" + issue.locationCode.Trim(),
+                        S_LOCATION_CODE = issue.locationCode.Trim(),
                         S_ORDER_NO = issue.withdrawalOrderNo,
                         S_ITEM_CODE = issue.itemCode,
                         S_ITEM_NAME = issue.itemName,
@@ -1098,11 +1247,93 @@
             }
         }
 
-        // 鐩樼偣鍔熻兘锛堟柊锛�+        // 鐩樼偣鍔熻兘锛堟柊锛�-----------------------------------
 
+        internal static SimpleResult CheckOutboundOnce(CheckOutboundOnceInfo model) {
+            var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱;
+            var db = new SqlHelper<object>().GetInstance();
 
+            try {
+                var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_CNTR_CODE == model.cntrCode);
+                if (locCntrRel == null) {
+                    return BuildSimpleResult(3, $"瀹瑰櫒 {model.cntrCode} 娌℃湁鎵惧埌瀵瑰簲鐨勮揣浣�);
+                }
 
-        // 澶囩敤锛氱洏鐐圭浉鍏冲姛鑳斤紙鎭㈠锛�-----------------------------
+                // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級
+                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == locCntrRel.S_LOC_CODE && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && Settings.Areas[AreaIndex.H璐ф灦鍖篯.Contains(a.S_AREA_CODE));
+                if (startLoc == null) {
+                    return BuildSimpleResult(2, $"璧风偣浣嶇疆 {locCntrRel.S_LOC_CODE} 涓嶇鍚堝嚭搴撴潯浠�);
+                }
+
+                // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�+                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y");
+                if (endLoc == null) {
+                    return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�);
+                }
+
+                var countOrder = db.Queryable<TN_AG_Count_Order>().Where(o => o.S_CNTR_CODE == locCntrRel.S_CNTR_CODE).First();
+                if (countOrder == null) {
+                    return BuildSimpleResult(6, $"娌℃湁鎵惧埌瀵瑰簲瀹瑰櫒{model.cntrCode}鐨勭洏鐐瑰崟鍙�");
+                }
+                countOrder.N_B_STATE = 1;
+
+                var unFinishedCount = db.Queryable<TN_AG_Count_Order>().Where(a => a.S_CP_NO == countOrder.S_CP_NO && a.S_COUNT_NO != countOrder.S_COUNT_NO && a.N_B_STATE == 0).Count();
+
+                var cntID = locCntrRel.S_CNTR_CODE;
+                var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName);
+                LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+                LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+
+                using (var tran = db.Ado.UseTran()) {
+                    if (unFinishedCount == 0 && db.Updateable<TN_AG_Count_Plan>().SetColumns(a =>a.N_B_STATE == 1).Where(a => a.S_CP_NO == countOrder.S_CP_NO).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鏇存柊鐩樼偣璁″垝鍗曠姸鎬佷负1澶辫触锛佸崟鍙凤細{countOrder.S_CP_NO}");
+                    }
+
+                    if (db.Updateable<TN_AG_Count_Order>(countOrder).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鏇存柊鐩樼偣鍗曠姸鎬佷负1澶辫触锛�+ JsonConvert.SerializeObject(countOrder));
+                    }
+
+                    if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new {
+                        it.N_LOCK_STATE,
+                        it.S_LOCK_STATE,
+                        it.S_LOCK_OP,
+                        it.T_MODIFY
+                    }).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}");
+                    }
+
+                    if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new {
+                        it.N_LOCK_STATE,
+                        it.S_LOCK_STATE,
+                        it.S_LOCK_OP,
+                        it.T_MODIFY
+                    }).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                    }
+
+                    if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(500,
+                            $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                    }
+
+                    tran.CommitTran();
+                    return BuildSimpleResult(0,
+                        $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}");
+                }
+            }
+            catch (Exception ex) {
+                return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}");
+            }
+        }
 
         /// <summary>
         /// 鐩樼偣鐞嗚揣鍑哄簱(WMS)
@@ -1246,127 +1477,6 @@
             }
         }
 
-        //public static SimpleResult CreateCountPlan(CreateCountPlanInfo model) {
-        //    var db = new SqlHelper<object>().GetInstance();
-        //    try {
-
-        //        var countPlan = new TN_Count_Plan() {
-        //            S_CP_NO = GenerateNo("鐩樼偣璁″垝", "PDJH"), // CP =銆婸DJH
-        //            S_TYPE = model.countType,
-        //        };
-
-        //        if (model.countType == "璐т綅") {
-        //            countPlan.S_LOC_CODE = model.targetId;
-        //        }
-        //        else if (model.countType == "鐗╂枡") {
-        //            countPlan.S_ITEM_CODE = model.targetId;
-        //        }
-        //        else {
-        //            return BuildSimpleResult(2, $"鍒涘缓鐩樼偣璁″垝澶辫触锛氫笉鍚堟硶鐨勭洏鐐圭被鍨�'{model.countType}'");
-        //        }
-
-        //        if (db.Insertable<TN_Count_Plan>(countPlan).ExecuteCommand() <= 0) {
-        //            return BuildSimpleResult(2, "鍒涘缓鐩樼偣璁″垝澶辫触");
-        //        }
-
-        //        return BuildSimpleResult(0, "鍒涘缓鐩樼偣璁″垝鎴愬姛");
-
-        //    }
-        //    catch (Exception ex) {
-
-        //        return BuildSimpleResult(1, ex.Message);
-        //    }
-        //}
-
-        //public static SimpleResult CreateCountOrder(CreateCountOrderInfo model) {
-        //    var db = new SqlHelper<object>().GetInstance();
-        //    var info = "";
-        //    try {
-        //        var countPlan = db.Queryable<TN_Count_Plan>()
-        //            .Where(a => a.S_CP_NO == model.planId).First();
-
-        //        if (countPlan == null) {
-        //            return BuildSimpleResult(2, $"鐩樼偣璁″垝鍗曞彿 '{model.planId}' 涓嶅瓨鍦�);
-        //        }
-
-        //        var countOrder = new TN_Count_Order() {
-        //            S_CP_NO = model.planId,
-        //            S_COUNT_NO = GenerateNo("鐩樼偣鍗�, "PDD"), // CN =銆婸DD
-        //        };
-
-        //        var countDetailList = new List<TN_Count_CG_Detail>();
-        //        if (countPlan.S_TYPE == "璐т綅") {
-        //            var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail>
-        //                ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE)
-        //                .Where(l => l.S_CODE == countPlan.S_LOC_CODE)
-        //                .Select((l, c, d) => d).First();
-
-        //            if (cgDetail == null) {
-        //                return BuildSimpleResult(3, $"鏈壘鍒版寚瀹氳揣浣峽countPlan.S_LOC_CODE}涓婄殑鐗╂枡");
-        //            }
-
-        //            var countDetail = new TN_Count_CG_Detail {
-        //                S_COUNT_NO = countOrder.S_COUNT_NO,
-        //                S_CNTR_CODE = cgDetail.S_CNTR_CODE,
-        //                S_ITEM_CODE = cgDetail.S_ITEM_CODE,
-        //            };
-
-        //            countDetailList.Add(countDetail);
-        //        }
-        //        else if (countPlan.S_TYPE == "鐗╂枡") {
-        //            var cgDetail = db.Queryable<TN_CG_Detail>()
-        //                .Where(d => d.S_ITEM_CODE == countPlan.S_ITEM_CODE).First(); // ToList -> First
-
-        //            if (cgDetail == null) {
-        //                return BuildSimpleResult(3, $"鏈壘鍒版寚瀹氱殑鐗╂枡{countPlan.S_ITEM_CODE}");
-        //            }
-
-        //            //foreach (var cgDetail in cgDetailList) {
-        //            //    var countDetail = new TN_Count_CG_Detail {
-        //            //        S_COUNT_NO = countOrder.S_COUNT_NO,
-        //            //        S_CNTR_CODE = cgDetail.S_CNTR_CODE,
-        //            //        S_ITEM_CODE = cgDetail.S_ITEM_CODE,
-        //            //    };
-
-        //            //    countDetailList.Add(countDetail);
-        //            //}
-
-        //            var countDetail = new TN_Count_CG_Detail {
-        //                S_COUNT_NO = countOrder.S_COUNT_NO,
-        //                S_CNTR_CODE = cgDetail.S_CNTR_CODE,
-        //                S_ITEM_CODE = cgDetail.S_ITEM_CODE,
-        //            };
-
-        //            countDetailList.Add(countDetail);
-        //        }
-        //        else {
-        //            return BuildSimpleResult(3, $"璁″垝鍗�{model.planId}'鐨勭被鍨媨countPlan.S_TYPE}涓嶅悎娉�);
-        //        }
-
-        //        using (var tran = db.Ado.UseTran()) {
-        //            if (db.Insertable<TN_Count_Order>(countOrder).ExecuteCommand() <= 0) {
-        //                tran.RollbackTran();
-        //                info = "鍒涘缓鐩樼偣鍗曞け璐�;
-        //                return BuildSimpleResult(2, info);
-        //            }
-
-        //            if (db.Insertable<TN_Count_CG_Detail>(countDetailList).ExecuteCommand() <= 0) {
-        //                tran.RollbackTran();
-        //                info = "鍒涘缓鐩樼偣鍗曟槑缁嗗け璐�;
-        //                return BuildSimpleResult(3, info);
-        //            }
-
-        //            tran.CommitTran();
-        //        }
-
-        //        return BuildSimpleResult(0, "鍒涘缓鐩樼偣鍗曟垚鍔�);
-        //    }
-        //    catch (Exception ex) {
-
-        //        return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}");
-        //    }
-        //}
-
         public static SimpleResult CountProduct(CountProductInfo model) {
             var db = new SqlHelper<object>().GetInstance();
             try {
@@ -1401,16 +1511,26 @@
                     return BuildSimpleResult(4, $"褰撳墠鐗╂枡鎵�湪瀹瑰櫒{locCntrRel.S_CNTR_CODE}鐗╂枡淇℃伅娌℃湁鐢熸垚瀵瑰簲鐨勭洏鐐瑰樊寮傝〃锛�);
                 }
 
+
                 countDiff.F_QTY = cgDetail.F_QTY;
                 countDiff.F_ACTUAL_QTY = model.qty;
                 //countDiff.S_ITEM_CODE = cgDetail.S_ITEM_CODE;
-
+                cgDetail.F_QTY = model.qty;
                 //if (db.Insertable<TN_Count_Diff>(countDiff).ExecuteCommand() <= 0) {
                 //    return BuildSimpleResult(3, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�);
                 //}
+                using (var tran = db.Ado.UseTran()) {
+                    if (db.Updateable<TN_AG_Count_Diff>(countDiff).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(5, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�);
+                    }
 
-                if (db.Updateable<TN_AG_Count_Diff>(countDiff).ExecuteCommand() <= 0) {
-                    return BuildSimpleResult(5, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�);
+                    if (db.Updateable<TN_CG_Detail>(cgDetail).ExecuteCommand() <= 0) {
+                        tran.RollbackTran();
+                        return BuildSimpleResult(5, $"鏇存柊鐗╂枡淇℃伅澶辫触");
+                    }
+
+                    tran.CommitTran();
                 }
 
                 return BuildSimpleResult(0, "鐩樼偣宸紓瀹屾垚");

--
Gitblit v1.9.1