From 4fc8ed6e9749869833ac07f00904955961cd6e70 Mon Sep 17 00:00:00 2001 From: jhz <jinghz@oceic.com> Date: 星期四, 01 九月 2022 09:11:05 +0800 Subject: [PATCH] 2 --- WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs | 252 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 215 insertions(+), 37 deletions(-) diff --git a/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs b/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs index 7ce0f36..1957e66 100644 --- a/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs +++ b/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs @@ -60,9 +60,9 @@ //鍙嶅簭鍒楀寲浼犻�掔殑鍊� ComplementGoods com = JsonConvert.DeserializeObject<ComplementGoods>(sWhere.ToString()); - + ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_Query '{com.MaterialNumber}','{com.MaterialName}','{com.MaterialModel}','{com.HGD}'," + - $"'{com.HWHName}','{com.HDeptName}','{com.Organization}','{com.user}','{com.HJLStatus}','{com.HBeginDate}','{com.HEndDate}'" ,"h_p_JIT_ComplementGoodsBillList_Query"); + $"'{com.HWHName}','{com.HDeptName}','{com.Organization}','{com.user}','{com.HJLStatus}','{com.HBeginDate}','{com.HEndDate}'", "h_p_JIT_ComplementGoodsBillList_Query"); objJsonResult.code = "1"; objJsonResult.count = 1; @@ -84,7 +84,7 @@ #region 鎷f枡閰嶉�佸崟 鍒犻櫎 [Route("Sc_ComplementGoods/DelComplementGoodsList")] [HttpGet] - public object DelComplementGoodsList(string HInterID, string HEntryID,string HOrgID, string user) + public object DelComplementGoodsList(string HInterID, string HEntryID, string HOrgID, string user) { try { @@ -100,7 +100,7 @@ ds = oCN.RunProcReturn($"select HISCheck from JIT_SendGoodsBillMain where HMainSourceInterID={HInterID} ", "JIT_SendGoodsBillMain"); - if (ds.Tables[0].Rows.Count>0) + if (ds.Tables[0].Rows.Count > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; @@ -202,7 +202,8 @@ #region 浠撳簱鍙戞枡 //鍙傛暟 - public class SendGoodsBill { + public class SendGoodsBill + { public int? 鏈嫞鏂欐暟閲� = 0; public int? 鏈�澶ф嫞鏂欐暟閲� = 0; public int? 鏈鎷f枡鏁伴噺 = 0; @@ -210,6 +211,9 @@ public int? HMaterID = 0; public int? HWHID = 0; public int? HSPID = 0; + public int? HStockOutOrgID = 0; + public int? HStockInOrgID = 0; + public int? HSCWHID = 0; } [Route("Sc_ComplementGoods/JIT_SendGoodsBill")] @@ -251,15 +255,15 @@ } } - bool flag = false; - flag = AddSendGoodsBill(listCa, SourceInterID, SourceBillNo, user, ref DBUtility.ClsPub.sExeReturnInfo); + + objJsonResult = AddSendGoodsBill(listCa, SourceInterID, SourceBillNo, user); - if (flag) + if (objJsonResult.count==1) { objJsonResult.code = "1"; objJsonResult.count = 1; - objJsonResult.Message = "閰嶉�佹垚鍔�!"; + objJsonResult.Message = "璋冩嫧鍗曠敓鎴愭垚鍔�!"; objJsonResult.data = null; return objJsonResult; } @@ -267,7 +271,7 @@ { objJsonResult.code = "0"; objJsonResult.count = 0; - objJsonResult.Message = "閰嶉�佸け璐�!"; + objJsonResult.Message = objJsonResult.Message; objJsonResult.data = null; return objJsonResult; } @@ -282,61 +286,235 @@ } } //鏂板 - public bool AddSendGoodsBill(List<SendGoodsBill> listCa, string SourceInterID, string SourceBillNo, string user, ref string sReturn) + public json AddSendGoodsBill(List<SendGoodsBill> listCa, string SourceInterID, string SourceBillNo, string user) { try { oCN.BeginTran(); - oCN.RunProc($"delete from JIT_SendGoodsBillMain where HMainSourceInterID={SourceInterID} and HMainSourceBillNo='{SourceBillNo}'"); - - oCN.RunProc($"delete from JIT_SendGoodsBillSub where HInterID in (select HInterID from JIT_SendGoodsBillMain where HMainSourceInterID={SourceInterID} and HMainSourceBillNo='{SourceBillNo}')"); - + long InterID = 0; + string HBillNo = ""; for (int i = 0; i < listCa.Count; i++) { - long InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo); - string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true); + + if (i == 0) + { + InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo); + HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true); - //娣诲姞涓昏〃鏁版嵁 - oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" + - ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" + - ", HMainSourceBillNo, HMainSourceBillType)" + - $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," + - $" 0,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')"); + //娣诲姞涓昏〃鏁版嵁 + oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" + + ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" + + ", HMainSourceBillNo, HMainSourceBillType)" + + $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," + + $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')"); + } - //娣诲姞瀛愯〃鏁版嵁 - oCN.RunProc("insert into JIT_SendGoodsBillSub(HInterID,HBillNo_bak,HEntryID" + - ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate)" + - $"values({InterID},'{HBillNo}',{i}, {listCa[i].HMaterID},{listCa[i].鏈鎷f枡鏁伴噺}," + - $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE())"); + //娣诲姞瀛愯〃鏁版嵁 + oCN.RunProc("insert into JIT_SendGoodsBillSub(HInterID,HBillNo_bak,HEntryID" + + ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate,HStockOutOrgID,HStockInOrgID,HSCWHID)" + + $"values({InterID},'{HBillNo}',{i + 1}, {listCa[i].HMaterID},{listCa[i].鏈鎷f枡鏁伴噺}," + + $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE(),{listCa[i].HStockOutOrgID},{listCa[i].HStockInOrgID},{listCa[i].HSCWHID})"); + - //淇敼璋冩嫧鏁伴噺 - oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY={listCa[i].鏈鎷f枡鏁伴噺} where HMaterID={listCa[i].HMaterID} " + - $" and HSourceInterID=(select top 1 HSourceInterID from JIT_ComplementGoodsBillSub_LK " + - $"where HMaterID={listCa[i].HMaterID} order by HSourceInterID ) and HInterID={SourceInterID}"); + DataSet dsTable = new DataSet(); + //鏌ヨJIT_ComplementGoodsBillSub_LK + dsTable = oCN.RunProcReturn($"select * from JIT_ComplementGoodsBillSub_LK where HMaterID={listCa[i].HMaterID} and HInterID={SourceInterID} order by HSourceInterID ", "JIT_ComplementGoodsBillSub_LK"); + + for (int j = 0; j < dsTable.Tables[0].Rows.Count; j++) + { + if (double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString()) != double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString())) + { + if (double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString()) + listCa[i].鏈鎷f枡鏁伴噺 > double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString())) + { + var HCallQTY = double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString()) - double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString()); + //淇敼璋冩嫧鏁伴噺 瓒呭嚭閮ㄥ垎缁欎簣涓嬩竴鍒楁暟鎹� + oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{HCallQTY} where HMaterID={listCa[i].HMaterID} " + + $" and HSourceInterID={double.Parse(dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString())} and HInterID={SourceInterID} "); + + oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{(listCa[i].鏈鎷f枡鏁伴噺 - HCallQTY)} where HMaterID={listCa[i].HMaterID} " + + $" and HSourceInterID={dsTable.Tables[0].Rows[j + 1]["HSourceInterID"].ToString()} and HInterID={SourceInterID} "); + break; + } + else + { + //淇敼璋冩嫧鏁伴噺 + oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{listCa[i].鏈鎷f枡鏁伴噺} where HMaterID={listCa[i].HMaterID} " + + $" and HSourceInterID={dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString()} and HInterID={SourceInterID} "); + break; + } + } + } } - sReturn = "鏂板鍗曟嵁鎴愬姛锛�"; + //鍚屾閲戣澏鐩存帴璋冩嫧鍗� + objJsonResult = AddSendGoodsBillSynChronizAtion(HBillNo); + oCN.Commit(); - return true; + + if (objJsonResult.count == 1) + { + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = null; + objJsonResult.data = null; + return objJsonResult; + } + else + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = objJsonResult.Message; + objJsonResult.data = null; + return objJsonResult; + } } catch (Exception e) { - sReturn = e.Message; + oCN.RollBack(); + + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = e.Message; + return objJsonResult; throw (e); } + } + + //鍚屾閲戣澏鐩存帴璋冩嫧鍗� + public json AddSendGoodsBillSynChronizAtion(string HBillNo) + { + ds = oCN.RunProcReturn("exec JIT_SendGoodsBillSynChronizAtion '" + HBillNo + "'", "JIT_SendGoodsBillSynChronizAtion"); + if (ds.Tables[0].Rows.Count != 0) + { + + + foreach (DataRow dr in ds.Tables[0].Rows) + { + JObject model = new JObject(); + model.Add("FBillTypeID", new JObject() { ["Fnumber"] = dr["FBillTypeID"].ToString() }); //鍗曟嵁绫诲瀷 + model.Add("FDate", dr["FDate"].ToString()); + model.Add("FBILLNO", dr["FBILLNO"].ToString()); + model.Add("FStockOrgId", new JObject() { ["Fnumber"] = ds.Tables[1].Rows[0]["FStockOrgId"].ToString() }); + model.Add("FOwnerTypeIdHead", dr["FOwnerTypeIdHead"].ToString()); + model.Add("FTransferBizType", ds.Tables[1].Rows[0]["FTransferBizType"].ToString()); + model.Add("FOwnerTypeOutIdHead", dr["FOwnerTypeOutIdHead"].ToString()); + model.Add("FTransferDirect", dr["FTransferDirect"].ToString()); + model.Add("FStockOutOrgId", new JObject() { ["Fnumber"] = ds.Tables[1].Rows[0]["FStockOutOrgId"].ToString() }); + + JArray Fentity = new JArray(); + foreach (DataRow item in ds.Tables[1].Rows) + { + JObject FentityModel = new JObject(); + FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMaterialId"].ToString() }); + FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUnitID"].ToString() }); + FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = item["FBaseUnitId"].ToString() }); + FentityModel.Add("FOwnerTypeId", item["FOwnerTypeId"].ToString()); + FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = item["FOwnerId"].ToString() }); + FentityModel.Add("FOwnerTypeOutId", item["FOwnerTypeOutId"].ToString()); + FentityModel.Add("FOwnerOutId", new JObject() { ["Fnumber"] = item["FOwnerOutId"].ToString() }); + FentityModel.Add("FKeeperTypeId", item["FKeeperTypeId"].ToString()); + FentityModel.Add("FKeeperId", new JObject() { ["Fnumber"] = item["FKeeperId"].ToString() }); + FentityModel.Add("FKeeperTypeOutId", item["FKeeperTypeOutId"].ToString()); + FentityModel.Add("FKeeperOutId", new JObject() { ["Fnumber"] = item["FKeeperOutId"].ToString() }); + FentityModel.Add("FDestStockId", new JObject() { ["Fnumber"] = item["FDestStockId"].ToString() }); + FentityModel.Add("FSrcStockId", new JObject() { ["Fnumber"] = item["FSrcStockId"].ToString() }); + FentityModel.Add("FQty", item["FQty"].ToString()); + Fentity.Add(FentityModel); + } + model.Add("FBillEntry", Fentity); + + JObject jsonRoot = new JObject() + { + ["Creator"] = "", + ["NeedUpDateFields"] = new JArray(), + ["NeedReturnFields"] = new JArray(), + ["IsDeleteEntry"] = "false", + ["SubSystemId"] = "", + ["IsVerifyBaseDataField"] = "false", + ["Model"] = model + }; + var loginRet = InvokeHelper.Login(); + var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); + if (isSuccess < 0) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = loginRet; + objJsonResult.data = null; + return objJsonResult; + } + var result = InvokeHelper.Save("STK_TransferDirect", jsonRoot.ToString()); + if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE") + { + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = null; + objJsonResult.data = null; + return objJsonResult; + } + else + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = result; + objJsonResult.data = null; + return objJsonResult; + } + } + } + else + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "璋冩嫧鍗曞凡缁忓瓨鍦�,鏃犳硶鐢熸垚!"; + objJsonResult.data = null; + return objJsonResult; + } + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = null; + objJsonResult.data = null; + return objJsonResult; } #endregion #region 涓婃煡 [Route("Sc_ComplementGoods/ComplementGoodsList_Sc")] [HttpGet] - public object ComplementGoodsList_Sc(string HInterID,string HEntryID) + public object ComplementGoodsList_Sc(string HInterID, string HMaterID) { try { - ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_UpQuery '{HInterID}',{HEntryID}", "h_p_JIT_ComplementGoodsBillList_UpQuery"); + ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_UpQuery '{HInterID}',{HMaterID}", "h_p_JIT_ComplementGoodsBillList_UpQuery"); + + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = "Sucess锛�"; + objJsonResult.data = ds.Tables[0]; + return objJsonResult; + } + catch (Exception e) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "Exception锛�" + e.ToString(); + objJsonResult.data = null; + return objJsonResult; + } + } + #endregion + + #region 涓嬫煡 + [Route("Sc_ComplementGoods/JIT_SendGoodsBillList_Xc")] + [HttpGet] + public object JIT_SendGoodsBillList_Xc(string HInterID, string HMaterID) + { + try + { + + ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_DownQuery '{HInterID}',{HMaterID}", "h_p_JIT_ComplementGoodsBillList_DownQuery"); objJsonResult.code = "1"; objJsonResult.count = 1; -- Gitblit v1.9.1