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 | 83 +++++++++++++++++++++++------------------ 1 files changed, 46 insertions(+), 37 deletions(-) diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs index 8c0b258..3e2bb42 100644 --- a/WebAPI/Controllers/POInStockController.cs +++ b/WebAPI/Controllers/POInStockController.cs @@ -512,7 +512,7 @@ //閫佽揣鍗曞垪琛� public object GetPOInStockBill([FromBody] JObject msg) { - string HSupNo = msg["HSupNo"].ToString(); string sqlWhere = msg["sqlWhere"].ToString(); + string HSupIDs = msg["HSupIDs"].ToString(); string sqlWhere = msg["sqlWhere"].ToString(); try { Stopwatch sw = new Stopwatch(); @@ -522,7 +522,7 @@ SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; //鍏朵粬杩囨护 - string sql = " Where hsupid in (select HSupID from h_v_Gy_UserSupplierList where 鐢ㄦ埛 =^^" + HSupNo.Trim() + "^^) " + sqlWhere; + string sql = " Where hsupid in (" + HSupIDs.Trim() + ")" + sqlWhere; //杞崲鐗规畩瀛楃 if (Common.SQLtoChange(sql, ref VsWhere, ref PcWhere) == false) { @@ -533,7 +533,7 @@ return objjson; } //鑾峰彇鎬昏鏁� - Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); + //Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); //鑾峰彇杩斿洖鏁版嵁 ds = oCn.RunProcReturn("exec H_p_SRM_POInStockBillList '" + PcWhere + "'", "H_p_SRM_POInStockBillList"); @@ -1622,6 +1622,7 @@ { //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(); @@ -1643,7 +1644,7 @@ objJsonResult = TestPOOrder(entryids); if (objJsonResult.code == "0") return objJsonResult; - + //if (mylist.Count != entryList.Count) //{ // objJsonResult.code = "0"; @@ -1681,13 +1682,21 @@ //鍒ゆ柇鏈叧鑱旀暟閲忔槸鍚︿负0 //瀹夌憺锛欰IS20220914133941 鐟炰笌鐞細AIS20220308151944 鏈湴锛欰IS20210811135644 澶忓疂锛歴rv_lnk.AIS20211130140219.dbo. 鍑礉锛欰IS20210820164804 娣诲悍锛欰IS20240809105013 - DataSet ds = oCn.RunProcReturn($"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 srv_lnk.AIS20211130140219.dbo.T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList"); + //DataSet ds = oCn.RunProcReturn($"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 AIS20210811135644..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList"); + + 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_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"); + DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { 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")}"; @@ -1733,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); @@ -1745,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); @@ -1770,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); @@ -1784,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); @@ -1811,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); } @@ -1824,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