From 679fcc729a588e810b42e12409eac3bca7103b5d Mon Sep 17 00:00:00 2001 From: yusijie <ysj@hz-kingdee.com> Date: 星期三, 10 五月 2023 10:42:10 +0800 Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API --- WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs | 217 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 190 insertions(+), 27 deletions(-) diff --git a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs index 899f3c7..f48232e 100644 --- a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs +++ b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs @@ -50,7 +50,7 @@ objJsonResult.data = null; return objJsonResult; } - + DBUtility.ClsPub.CurUserName = msg4; DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); List<Model.ClsSc_ProcessExchangeBillMain> lsmain = new List<Model.ClsSc_ProcessExchangeBillMain>(); msg2 = msg2.Replace("\\", ""); @@ -61,8 +61,8 @@ UserName = oItem.HMaker; //鍒跺崟浜� oItem.HBillType = "3772"; oItem.HBillSubType = "3772"; - oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));// --鏃ユ湡 oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); + oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; @@ -373,6 +373,112 @@ //} #endregion + #region[鏂板鍗曟嵁-淇濆瓨鎸夐挳-鎵归噺澶嶅埗] + /// <summary> + /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳 + ///鍙傛暟锛歴tring sql銆� + ///杩斿洖鍊硷細object銆� + /// </summary> + [Route("Sc_ProcessExchangeBill/AddBill_Copy_pl")] + [HttpPost] + public object AddBill_Copy_pl([FromBody] JObject sMainSub) + { + var _value = sMainSub["sMainSub"].ToString(); + string msg1 = _value.ToString(); + string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); + int msg2 = int.Parse(sArray[0].ToString()); + string msg3 = sArray[1].ToString(); + string msg4 = sArray[2].ToString(); + string msg5 = sArray[3].ToString(); + + string UserName = ""; + ListModels oListModels = new ListModels(); + string sReturn = ""; + try + { + if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg4)) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "鏃犱繚瀛樻潈闄愶紒"; + objJsonResult.data = null; + return objJsonResult; + } + + DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); + DBUtility.ClsPub.HOrgID = long.Parse(msg5); + DBUtility.ClsPub.CurUserName = msg4; + oBill.ShowBill(long.Parse(msg3), ref sReturn); + + ds = oCN.RunProcReturn("select isnull(sum(HQty),0) from Sc_ProcessExchangeBillMain where HICMOBillNo='" + oBill.omodel.HICMOBillNo + "' and HInterID <>"+ oBill.omodel.HInterID, "Sc_ProcessExchangeBillMain"); + var HQty = double.Parse(ds.Tables[0].Rows[0][0].ToString()); + int num = 0; + //鍗曟嵁鏁伴噺 * 寮犳暟 + 宸茬敓鎴愪笉鍖呮嫭鏈崟鎹殑鏁伴噺 >鐢熶骇璁㈠崟鏁伴噺 + if ((oBill.omodel.HQty * msg2) + HQty > oBill.omodel.HPlanQty) + { + if (((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) % oBill.omodel.HQty) == 0) + { + num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty); + } else + { + num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty); + num += 1; + } + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "鏈�澶氬彲浠ュ鍒�" + num + "寮狅紒"; + objJsonResult.data = null; + return objJsonResult; + } + + if (num == 0) { + double HPlanQty = oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty; + for (int i = 0; i < msg2; i++) + { + oBill.omodel.HBillNo = DBUtility.ClsPub.CreateBillCode("3772", ref DBUtility.ClsPub.sExeReturnInfo, true); + oBill.omodel.HDate =DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); + oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); + oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); + oBill.omodel.HChecker = ""; + oBill.omodel.HCheckDate = ""; + oBill.omodel.HMaker = msg4; + + if (HPlanQty < oBill.omodel.HQty) + { + oBill.omodel.HQty = HPlanQty; + } + + //淇濆瓨瀹屾瘯鍚庡鐞� + bool bResult; + + bResult = oBill.AddBill(ref sReturn); + if (bResult) + { + num++; + HPlanQty -= oBill.omodel.HQty; + } + } + + } + + objJsonResult.code = "0"; + objJsonResult.count = 1; + objJsonResult.Message = "澶嶅埗浜�" + num + "寮犲崟鎹紒"; + objJsonResult.data = 1; + return objJsonResult; + + } + catch (Exception e) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString(); + objJsonResult.data = 1; + return objJsonResult; + } + } + #endregion + #region[鎵归噺鏂板鍗曟嵁-淇濆瓨鎸夐挳] /// <summary> /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳 @@ -445,6 +551,9 @@ { Main.HBillNo = ListHbillNo[i].HBillNo; Main.HQty = ListHbillNo[i].HQty; + Main.HSplitNo = ListHbillNo[i].HSplitNo; + Main.HAuxQty = 0; + Main.HAuxUnit = 0; oBill.omodel = Main; int j = 0; @@ -666,12 +775,12 @@ { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sql = string.Format(@"select 娴佹按鍙� HProcNo,HProcID,宸ュ簭浠g爜 HProcNumber,宸ュ簭鍚嶇О HProcName,鍔犲伐璇存槑 HWorkRemark,HCenterID,宸ヤ綔涓績浠g爜 HCenterNumber, - 宸ヤ綔涓績 HCenterName,HSupID,渚涘簲鍟嗕唬鐮� HSupNumber,渚涘簲鍟� HSupName,isEntrust,璁″垝鏁伴噺 HQty,鍔犲伐鍗曚环 HOutPrice, 琛ㄤ綋澶囨敞 HRemark, + 宸ヤ綔涓績 HCenterName,HSupID,渚涘簲鍟嗕唬鐮� HSupNumber,渚涘簲鍟� HSupName,isEntrust HSupFlag,璁″垝鏁伴噺 HQty,鍔犲伐鍗曚环 HOutPrice, 琛ㄤ綋澶囨敞 HRemark, 杩涚珯鍏宠仈鏁伴噺 HRelationQty_In,鍑虹珯鍏宠仈鏁伴噺 HRelationQty_Out,濮斿宸ュ崟鏁伴噺 HRelationQty_WWOrder,涓嶅悎鏍兼暟閲� HRelationQty_Bad,瓒呴姣斾緥 HOverRate, 鑹巼 HPassRate,绱鑹巼 HSumPassRate,鍥剧焊缂栧彿 HPicNum,鏈伐搴忕‘璁よ褰� HProcCheckNote,宸ヨ壓鍙傛暟 HTechnologyParameter,HDeptID, 鍔犲伐杞﹂棿浠g爜 HDeptNumber,鍔犲伐杞﹂棿 HDeptName from h_v_Sc_ProcessExchangeBillQuerySub"); - ds = oCN.RunProcReturn(sql+ " where hmainid="+ HInterID, "h_v_Sc_ProcessExchangeBillQuerySub"); + ds = oCN.RunProcReturn(sql+ " where hmainid="+ HInterID + " order by cast(娴佹按鍙� as int) ", "h_v_Sc_ProcessExchangeBillQuerySub"); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�"; @@ -900,12 +1009,26 @@ try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + + var ds1= oCN.RunProcReturn("select isnull(max(娴佹按鍙�),0) from h_v_Sc_ProcessExchangeBillQuerySub where hmainid=" + HInterID + " and 鍑虹珯鍏宠仈鏁伴噺>0 ", "h_v_Sc_ProcessExchangeBillQuerySub"); + string sql = string.Format(@"select * from h_v_Sc_ProcessExchangeBillQuerySub"); - ds = oCN.RunProcReturn(sql + " where hmainid=" + HInterID, "h_v_Sc_ProcessExchangeBillQuerySub"); - objJsonResult.code = "0"; - objJsonResult.count = 1; - objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�"; - objJsonResult.data = ds.Tables[0]; + + ds = oCN.RunProcReturn(sql + " where hmainid=" + HInterID + " and 鍑虹珯鍏宠仈鏁伴噺=0 and cast(娴佹按鍙� as int)>" + ds1 .Tables[0].Rows[0][0].ToString(), "h_v_Sc_ProcessExchangeBillQuerySub"); + + if (float.Parse(ds.Tables[0].Rows[0]["杩涚珯鍏宠仈鏁伴噺"].ToString()) > 0) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "褰撳墠鍗曟嵁:"+ ds.Tables[0].Rows[0]["宸ュ簭鍚嶇О"].ToString() + "鏈嚭绔欎笉鑳芥媶鍒�!"; + objJsonResult.data = ds.Tables[0]; + } + else { + objJsonResult.code = "0"; + objJsonResult.count = 1; + objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�"; + objJsonResult.data = ds.Tables[0]; + } } catch (Exception e) { @@ -933,6 +1056,7 @@ string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); string msg5 = sArray[3].ToString(); + string linterid = sArray[4].ToString(); string UserName = ""; ListModels oListModels = new ListModels(); @@ -953,16 +1077,11 @@ msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Sc_ProcessExchangeBillMain(msg2); + string sReturn = ""; + DBUtility.ClsPub.HOrgID = lsmain[0].HPRDORGID; + oBill.ShowBill(long.Parse(linterid), ref sReturn); foreach (Model.ClsSc_ProcessExchangeBillMain oItem in lsmain) { - oItem.HMaker = msg5; //鍒跺崟浜� - oItem.HBillType = "3772"; - oBill.HBillSubType = "Split"; - oItem.HNo = DBUtility.ClsPub.isLong(oItem.HBillNo.Split('-')[1]); - oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));// --鏃ユ湡 - oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); - oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); - oItem.HMaterID2 = oItem.HMaterID; if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; @@ -971,7 +1090,16 @@ objJsonResult.data = 1; return objJsonResult; } - oBill.omodel = oItem; + + oBill.omodel.HMaker = msg5; //鍒跺崟浜� + oBill.omodel.HNo = DBUtility.ClsPub.isLong(oItem.HBillNo.Split('-')[1]); + oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); + oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); + oBill.omodel.HDate = oItem.HDate;// 鏃ユ湡 + oBill.omodel.HPlanBeginDate = oItem.HPlanBeginDate;// 璁″垝寮�宸ユ棩鏈� + oBill.omodel.HPlanEndDate = oItem.HPlanEndDate;// 璁″垝瀹屽伐鏃ユ湡 + oBill.omodel.HQty = oItem.HQty;// 鏁伴噺 + oBill.omodel.HBillNo = oItem.HBillNo;// 鍗曟嵁鍙� } //琛ㄤ綋鏁版嵁 @@ -982,24 +1110,52 @@ //msg2 = msg2.Replace("'", "鈥�"); List<Model.ClsSc_ProcessExchangeBillSub> ls = new List<Model.ClsSc_ProcessExchangeBillSub>(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg3); - int i = 0; - foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in ls) - { + + string HEntryID = ""; - i++; - if (oItemSub.HSplitQty > oItemSub.HLeftQty) + for (int i = 0; i < oBill.DetailColl.Count; i++) + { + if (oBill.DetailColl[i].HRelationQty_Out > 0 || oBill.DetailColl[i].HRelationQty_In > 0) + { + HEntryID += i + ","; + } + } + if (HEntryID != "") + { + HEntryID = HEntryID.Substring(0, HEntryID.Length - 1); + var num = HEntryID.Split(','); + + for (int k = 0; k < num.Length; k++) + { + oBill.DetailColl.RemoveAt(int.Parse(num[k]) - k); + } + } + + int j = 0 ; + foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in oBill.DetailColl) + { + if (ls[j].HSplitQty > ls[j].HLeftQty) { objJsonResult.code = "0"; objJsonResult.count = 0; - objJsonResult.Message = "绗�"+i+ "琛岋紝鎷嗗垎鏁伴噺涓嶈兘澶т簬鍙媶鍒嗘暟閲忥紒"; + objJsonResult.Message = "绗�" + (j + 1) + "琛岋紝鎷嗗垎鏁伴噺涓嶈兘澶т簬鍙媶鍒嗘暟閲忥紒"; objJsonResult.data = null; return objJsonResult; } - oItemSub.HEntryID = i; - oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); - oBill.DetailColl.Add(oItemSub); + if (oBill.DetailColl[j].HProcNo == ls[j].HProcNo) + { + oBill.DetailColl[j].HEntryID = j+1; + oBill.DetailColl[j].HQty = ls[j].HQty; + oBill.DetailColl[j].HBackProc = ls[j].HBackProc; + oBill.DetailColl[j].HPrevSourceInterID = ls[j].HPrevSourceInterID; + oBill.DetailColl[j].HPrevSourceEntryID = ls[j].HPrevSourceEntryID; + oBill.DetailColl[j].HRemark = ls[j].HRemark; + oBill.DetailColl[j].HTechnologyParameter = ls[j].HTechnologyParameter; + j++; + } } + //淇濆瓨 //淇濆瓨瀹屾瘯鍚庡鐞� @@ -1012,6 +1168,13 @@ //{ // bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); //} + + oCN.BeginTran(); + + oCN.RunProc("update Sc_ProcessExchangeBillSub set HQty=(select HQty from Sc_ProcessExchangeBillMain where HInterID="+ oBill.DetailColl[0].HPrevSourceInterID + ") where HInterID=" + oBill.DetailColl[0].HPrevSourceInterID ); + + oCN.Commit(); + if (bResult) { objJsonResult.code = "0"; -- Gitblit v1.9.1