From 46ca053239e9841f4880873494bd1d58b275b6ad Mon Sep 17 00:00:00 2001
From: black-goat-me <226547893@qq.com>
Date: 星期五, 19 五月 2023 23:59:16 +0800
Subject: [PATCH] 工序流转卡维护:单据变更(实际发布)
---
WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs | 242 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 193 insertions(+), 49 deletions(-)
diff --git a/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs b/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs
index 2cc29ad..2676353 100644
--- a/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs
@@ -32,6 +32,7 @@
public string HDeptName { get; set; }//閮ㄩ棬
public string HJLStatus { get; set; }//鎷f枡鐘舵��
public string user { get; set; }//鍒跺崟浜�
+ public string Arbitrarily { get; set; }//浠绘剰鍙傛暟
}
[Route("Sc_ComplementGoods/ComplementGoodsList")]
@@ -60,9 +61,8 @@
//鍙嶅簭鍒楀寲浼犻�掔殑鍊�
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;
@@ -211,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")]
@@ -252,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;
}
@@ -268,7 +271,7 @@
{
objJsonResult.code = "0";
objJsonResult.count = 0;
- objJsonResult.Message = "閰嶉�佸け璐�!";
+ objJsonResult.Message = objJsonResult.Message;
objJsonResult.data = null;
return objJsonResult;
}
@@ -283,72 +286,213 @@
}
}
//鏂板
- 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}' and HBillStatus=1");
-
- //oCN.RunProc($"delete from JIT_SendGoodsBillSub where HInterID in (select HInterID from JIT_SendGoodsBillMain where HMainSourceInterID={SourceInterID} and HMainSourceBillNo='{SourceBillNo}' and HBillStatus=1)");
-
- ds = oCN.RunProcReturn($"select a.HMainSourceEntryID,b.HMaterID from JIT_SendGoodsBillMain a with(nolock) inner join JIT_SendGoodsBillSub b with(nolock) on a.HInterID = b.HInterID where a.HMainSourceInterID={SourceInterID} and a.HBillStatus=1", "JIT_SendGoodsBillMain");
-
+ long InterID = 0;
+ string HBillNo = "";
for (int i = 0; i < listCa.Count; i++)
{
- int a = -1;
- for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
- {
- if (ds.Tables[0].Rows[j]["HMaterID"].ToString() == listCa[i].HMaterID.ToString()&& ds.Tables[0].Rows[j]["HMainSourceEntryID"].ToString() == listCa[i].HEntryID.ToString())
+
+ if (i == 0)
{
- a = j;
- break;
+ 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}'," +
+ $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')");
}
- }
-
- //a=0 鍒欎唬琛ㄩ厤閫佸崟娌℃湁鏁版嵁 闇�瑕佹坊鍔犳暟鎹�
- if (a == -1 )
- {
- long InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo);
- string 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}'," +
- $" 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)" +
+ ",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())");
- }
- else
+ $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE(),{listCa[i].HStockOutOrgID},{listCa[i].HStockInOrgID},{listCa[i].HSCWHID})");
+
+
+ DataSet dsTable = new DataSet();
+ //鏌ヨJIT_ComplementGoodsBillSub_LK
+ dsTable = oCN.RunProcReturn($"select * from JIT_ComplementGoodsBillSub_LK where HMaterID={listCa[i].HMaterID} and HInterID={SourceInterID} and HCallQTY<>HSendQTY order by HSourceInterID ", "JIT_ComplementGoodsBillSub_LK");
+
+ var HqtyCount = double.Parse(listCa[i].鏈鎷f枡鏁伴噺.ToString());
+ for (int j = 0; j < dsTable.Tables[0].Rows.Count; j++)
{
- //淇敼閰嶉�佸崟鐨勯厤閫佹暟閲�
- oCN.RunProc($"update b set b.HQty=b.HQty+{listCa[i].鏈鎷f枡鏁伴噺} from JIT_SendGoodsBillMain a with(nolock) inner join JIT_SendGoodsBillSub b with(nolock) on a.HInterID = b.HInterID " +
- $"where HMainSourceInterID ={SourceInterID} and b.HMaterID ={listCa[i].HMaterID} and a.HBillStatus =1 ");
+ 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 < HqtyCount ? HCallQTY : HqtyCount)} where HMaterID={listCa[i].HMaterID} " +
+ $" and HSourceInterID={double.Parse(dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString())} and HInterID={SourceInterID} ");
+
+ HqtyCount -= HCallQTY;
+ if (HqtyCount <= 0)
+ {
+ break;
+ }
}
- //淇敼璋冩嫧鏁伴噺
- oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{listCa[i].鏈鎷f枡鏁伴噺} where HMaterID={listCa[i].HMaterID} " +
- $" and HSourceInterID=(select top 1 HSourceInterID from JIT_ComplementGoodsBillSub_LK " +
- $"where HMaterID={listCa[i].HMaterID} and HInterID={SourceInterID} order by HSourceInterID ) and HInterID={SourceInterID} ");
}
- 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)
{
- oCN.RollBack();
- sReturn = e.Message;
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = objJsonResult.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")
+ {
+ oCN.RollBack();
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = result;
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+ var json = new
+ {
+ Numbers = HBillNo,
+ };
+ //鎻愪氦
+ var _result = InvokeHelper.Submit("STK_TransferDirect", JsonConvert.SerializeObject(json));
+ var _saveObj = JObject.Parse(_result);
+ if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
+ {
+ LogService.Write("鏀舵枡閫氱煡鍗曟彁浜ゅけ璐sonRoot:" + jsonRoot.ToString());
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "閲戣澏鏀舵枡閫氱煡鍗曟彁浜ゅけ璐�" + _result;
+ objJsonResult.data = null;
+ return objJsonResult;
+
+ }
+ //瀹℃牳
+ _result = InvokeHelper.Audit("STK_TransferDirect", JsonConvert.SerializeObject(json));
+ _saveObj = JObject.Parse(_result);
+ if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
+ {
+ LogService.Write("鏀舵枡閫氱煡鍗曞鏍稿け璐sonRoot:" + jsonRoot.ToString());
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "閲戣澏鏀舵枡閫氱煡鍗曞鏍稿け璐sonRoot" + _result;
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鎿嶄綔鎴愬姛锛�";
+ 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 涓婃煡
--
Gitblit v1.9.1