From cd1c62ccfd8cf9c582686b6aec02d394a9f4528e Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期日, 29 六月 2025 19:00:15 +0800
Subject: [PATCH] 保存送货单方法外取消事务;生成送货单前校验完善实物回滚;验证采购订单方法添加防死锁;采购订单列表分页查询;物料标准包装模块;

---
 WebAPI/Controllers/POInStockController.cs |  100 +++++++++++++++++++++++++------------------------
 1 files changed, 51 insertions(+), 49 deletions(-)

diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs
index b07f51d..3e2bb42 100644
--- a/WebAPI/Controllers/POInStockController.cs
+++ b/WebAPI/Controllers/POInStockController.cs
@@ -457,7 +457,7 @@
                 //淇濆瓨瀹屾瘯鍚庡鐞�
                 bool bResult;
 
-                oCn.BeginTran(); //寮�濮嬩簨鐗�
+                //oCn.BeginTran(); //寮�濮嬩簨鐗�
 
                 if (HOpType.ToString() == "edit"/*oBill.omodel.HInterID != 0 && oBill.omodel.HInterID.ToString() != null && oBill.omodel.HInterID.ToString() != "undefined"*/)
                 {
@@ -469,7 +469,7 @@
                 }
                 if (bResult)
                 {
-                    oCn.Commit(); //鎻愪氦浜嬬墿
+                    //oCn.Commit(); //鎻愪氦浜嬬墿
 
                     objJsonResult.code = "0";
                     objJsonResult.count = 1;
@@ -480,7 +480,7 @@
                 }
                 else
                 {
-                    oCn.RollBack(); //鍥炴粴浜嬬墿
+                    //oCn.RollBack(); //鍥炴粴浜嬬墿
 
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -491,7 +491,7 @@
             }
             catch (Exception e)
             {
-                oCn.RollBack(); //鍥炴粴浜嬬墿
+                //oCn.RollBack(); //鍥炴粴浜嬬墿
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
@@ -1620,10 +1620,11 @@
         /// <returns></returns>
         public object TestSaverPOInStock(string ids, string entryids)
         {
-            List<string> mylist = new List<string>(ids.Split(','));//.Distinct()
-            List<string> entryList = new List<string>(entryids.Split(','));//.Distinct()
-            //List<string> mylist = new List<string>(ids.Split(',').Distinct());
-            //List<string> entryList = new List<string>(entryids.Split(',').Distinct());
+            //List<string> mylist = new List<string>(ids.Split(','));//.Distinct()
+            //List<string> entryList = new List<string>(entryids.Split(','));//.Distinct()
+
+            List<string> mylist = new List<string>(ids.Split(',').Distinct());
+            List<string> entryList = new List<string>(entryids.Split(',').Distinct());
             SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
             string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
             if (FCusName == "澶忓疂鐢靛櫒" && mylist.Count > 1)
@@ -1644,14 +1645,14 @@
                 if (objJsonResult.code == "0")
                     return objJsonResult;
 
-                if (mylist.Count != entryList.Count)
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
+                //if (mylist.Count != entryList.Count)
+                //{
+                //    objJsonResult.code = "0";
+                //    objJsonResult.count = 0;
+                //    objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
                 for (int i = 0;i < mylist.Count;i++)
                 {
                     //閲囪喘璁㈠崟涓嬫帹鐢熸垚閫佽揣鍗曞墠鎺у埗
@@ -1685,7 +1686,7 @@
 
                 var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName");
 
-                string sql2 = string.Format(@"select T1.hqty - T1.hrelationqty + q.FMRBQTY as hqty, q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺, T1.hrelationqty as 宸插彂璐ф暟閲�, T1.hqty as 璁㈠崟鏁伴噺, 鍗曟嵁鍙�, 鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList t1 left join {0}..T_PUR_POORDERENTRY_R q on q.FENTRYID = t1.HEntryID  where hentryid in ({1})", kdTbaleName, string.Join(", ", entryList));
+                string sql2 = string.Format(@"select T1.hqty - T1.hrelationqty + q.FMRBQTY as hqty, q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺, T1.hrelationqty as 宸插彂璐ф暟閲�, T1.hqty as 璁㈠崟鏁伴噺, 鍗曟嵁鍙�, 鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList_JY t1 left join {0}.T_PUR_POORDERENTRY_R q with(nolock) on q.FENTRYID = t1.HEntryID  where hentryid in ({1})", kdTbaleName, string.Join(", ", entryList));
 
                 DataSet ds = oCn.RunProcReturn(sql2, "H_v_SRM_POOrderBillList");
 
@@ -1695,6 +1696,7 @@
                     DataRow[] dr = dt.Select("hqty  <=" + 0);
                     if (dr.Count() > 0)
                     {
+                        oCn.RollBack();//鍥炴粴浜嬪姟
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
                         objJsonResult.Message = $"璇锋鏌ユ暟鎹紝鍗曟嵁鍙凤細{dr[0]["鍗曟嵁鍙�"]},鐗╂枡缂栫爜锛歿dr[0]["鐗╂枡缂栫爜"]},鍙互鍙戣揣鏁伴噺涓�0锛屽凡鍏ㄩ儴鐢熸垚閫佽揣鍗曪紒,璁㈠崟鏁伴噺锛歿Convert.ToDouble(dr[0]["璁㈠崟鏁伴噺"]).ToString("f2")},宸插彂璐ф暟閲忥細{Convert.ToDouble(dr[0]["宸插彂璐ф暟閲�"]).ToString("f2")},鍓╀綑鏀舵枡鏁伴噺锛歿Convert.ToDouble(dr[0]["鍓╀綑鏀舵枡鏁伴噺"]).ToString("f2")}";
@@ -1740,10 +1742,10 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName 
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    LEFT JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    FROM Cg_POOrderBillSub B with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    LEFT JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
                     WHERE ISNULL(C.FENTRYID,0) = 0
                     AND B.HEntryID in ({0})"
                             , entryids, kdTbaleName);
@@ -1752,10 +1754,10 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName 
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    LEFT JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    FROM Cg_POOrderBillSub B with(nolock) 
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    LEFT JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
                     WHERE ISNULL(C.FENTRYID,0) = 0
                     AND B.HEntryID in ({0})"
                             , entryids, kdTbaleName);
@@ -1777,12 +1779,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}.T_PUR_POCHANGEENTRY D ON C.FENTRYID = D.FOFENTRYID
-                    LEFT join {1}.T_PUR_POCHANGE F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}.T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID
+                    LEFT join {1}.T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID   
                     where b.HEntryID in ({0}) 
                     and F.FDOCUMENTSTATUS <> 'C'"
                             , entryids, kdTbaleName);
@@ -1791,12 +1793,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}..T_PUR_POCHANGEENTRY D ON C.FENTRYID = D.FOFENTRYID
-                    LEFT join {1}..T_PUR_POCHANGE F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B with(nolock) 
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}..T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID
+                    LEFT join {1}..T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID   
                     where b.HEntryID in ({0}) 
                     and F.FDOCUMENTSTATUS <> 'C'"
                             , entryids, kdTbaleName);
@@ -1818,12 +1820,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}.t_PUR_XPOOrderENTRY D ON C.FENTRYID = D.FPKIDX
-                    LEFT join {1}.t_PUR_XPOOrder F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B  with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}.t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX
+                    LEFT join {1}.t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID   
                     where F.FDOCUMENTSTATUS <> 'C' and  b.HEntryID in ({0}) "
                            , entryids, kdTbaleName);
                 }
@@ -1831,12 +1833,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}..t_PUR_XPOOrderENTRY D ON C.FENTRYID = D.FPKIDX
-                    LEFT join {1}..t_PUR_XPOOrder F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B  with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}..t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX
+                    LEFT join {1}..t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID   
                     where F.FDOCUMENTSTATUS <> 'C' and  b.HEntryID in ({0}) "
                            , entryids, kdTbaleName);
                 }

--
Gitblit v1.9.1