From dfbc0389d6b9b2bd8e92e976248b9992a03979f4 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 08 九月 2021 13:23:26 +0800
Subject: [PATCH] 提料生成送货单 下推数量 =提料计划数量 - 已生成送货单数量
---
src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs | 88 +++++++++++++++++++++++++++++++++----------
1 files changed, 67 insertions(+), 21 deletions(-)
diff --git a/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs b/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
index 8306c7d..b0b1e2e 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
@@ -16,13 +16,13 @@
namespace Demo.DynamicForm.PRD
{
/// <summary>
- /// 鎻掍欢绀轰緥锛氬紩鍏ラ攢鍞嚭搴撳崟锛屽缓绔嬩笌閿�鍞鍗曠殑鍏宠仈
+ /// 鏃ヨ鍒掔敤鏂欐竻鍗曚笅鎺ㄥ悗锛屽缓绔嬬洿鎺ヨ皟鎷ㄥ崟涓庢棩璁″垝鐢ㄦ枡娓呭崟鍏宠仈鍏崇郴
/// </summary>
/// <remarks>
/// 瑕佹眰锛�
/// 1. 闇�瑕佸紩鍏ュ崟鎹綋鐨勬簮鍗曠被鍨嬨�佹簮鍗曠紪鍙峰瓧娈�
- /// 2. 鏈彃浠舵寕鍦ㄩ攢鍞嚭搴撳崟鐨勪繚瀛樻搷浣滀笂
- /// 鍑哄簱鍏宠仈閿�鍞鍗�
+ /// 2. 鏈彃浠舵寕鍦ㄧ洿鎺ヨ皟鎷ㄥ崟鐨勪繚瀛樻搷浣滀笂
+ /// 鐩存帴璋冩嫧鍗曞叧鑱旀棩璁″垝鐢ㄦ枡娓呭崟
/// </remarks>
[Description("鏃ヨ鍒掔敤鏂欐竻鍗曚笅鎺ㄥ悗锛屽缓绔嬬洿鎺ヨ皟鎷ㄥ崟涓庣敓浜х敤鏂欐竻鍗曞叧鑱斿叧绯�")]
[HotUpdate]
@@ -42,6 +42,7 @@
e.FieldKeys.Add("FBaseJoinQty");
}
private const string POFormId = "PRD_PPBOM";
+ public List<string> FentryIdList = new List<string>();
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
base.BeforeExecuteOperationTransaction(e);
@@ -57,15 +58,18 @@
as DynamicObjectCollection;
foreach (var entryRow in entryRows)
{
+ //鐢熶骇鐢ㄦ枡娓呭崟涓虹┖鏃�
+ if (Convert.ToString(entryRow["FDayPlanBillNo"]) == "")
+ continue;
string srcFormId = "";
string srcSrcBillNo = "";
string FPPBOMFENTRYID = "";
try
{
srcFormId = "PRD_PPBOM";
- srcSrcBillNo = entryRow["FPPBOMBILLNO"].ToString();
- string FPPBOMFID = entryRow["FPPOMFID"].ToString();
- FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"].ToString();
+ srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString();
+ string FPPBOMFID = entryRow["FPPOMFID"]?.ToString();
+ FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString();
}
catch (Exception)
{
@@ -102,9 +106,9 @@
foreach (var entryRow in entryRows)
{
string srcFormId = "PRD_PPBOM";
- string srcSrcBillNo = entryRow["FPPBOMBILLNO"].ToString();
- string FPPBOMFID = entryRow["FPPOMFID"].ToString();
- string FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"].ToString();
+ string srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString();
+ string FPPBOMFID = entryRow["FPPOMFID"]?.ToString();
+ string FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString();
if (string.IsNullOrWhiteSpace(srcFormId)
|| string.IsNullOrWhiteSpace(srcSrcBillNo)
@@ -123,6 +127,10 @@
bool Ret = SourceVerification(Convert.ToString(entryRow["Id"]));
if (!Ret) continue;
+ //璁板綍婧愬崟ID 鐢ㄤ簬鏇存柊
+ if (!FentryIdList.Contains(entryRow["Id"]?.ToString()))
+ FentryIdList.Add(entryRow["Id"]?.ToString());
+
DynamicObjectCollection linkRows = linkEntry.DynamicProperty.GetValue(entryRow)
as DynamicObjectCollection;
DynamicObject linkRow = new DynamicObject(linkEntry.DynamicObjectType);
@@ -133,21 +141,55 @@
}
}
// 涓烘柊寤虹殑婧愬崟鍏宠仈淇℃伅锛岃缃唴鐮�
- IDBService dbService = ServiceHelper.GetService<IDBService>();
+ IDBService dbService = Kingdee.K3.SCM.App.ServiceHelper.GetService<IDBService>();
dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType);
}
/// <summary>
- /// 鍔犺浇鐩稿叧鐨勯攢鍞鍗曟暟鎹�
+ /// 淇濆瓨鎿嶄綔鍏宠仈鍏崇郴鍐欏叆瀹屾垚鍚� 鏇存敼婧愬崟淇℃伅
+ /// </summary>
+ /// <param name="e"></param>
+ public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+ {
+ base.AfterExecuteOperationTransaction(e);
+ //鏇存敼LK琛ㄤ俊鎭� 浠ュ強 婧愬崟鍏宠仈淇℃伅
+ List<string> sqlList = new List<string>();
+ string sql = "";
+ if (FentryIdList.Count > 0)
+ {
+ string FentryId = string.Join(",", FentryIdList.ToArray());
+ // sql = string.Format(@"/*dialect*/
+ //update a set FBASEQTY = FQTY
+ //from T_STK_STKTRANSFERINENTRY_LK a
+ //join T_STK_STKTRANSFERINENTRY b on a.FENTRYID = b.FENTRYID
+ //where
+ //--a.FSTABLENAME = 'T_PRD_PPBOMENTRY' and
+ //a.FENTRYID in ({0})", FentryId);
+ // sqlList.Add(sql);
+ sql = string.Format(@"/*dialect*/update T_STK_STKTRANSFERINENTRY_R
+ set FSrcBillTypeId = 'PRD_PPBOM',FSRCBILLNO=b.FPPBOMBILLNO
+ ,FTRANSRESERVELINK=1
+ from T_STK_STKTRANSFERINENTRY_R a
+ join T_STK_STKTRANSFERINENTRY b on a.FENTRYID=b.FENTRYID
+ where a.FENTRYID in({0})", FentryId);
+ sqlList.Add(sql);
+ DBServiceHelper.ExecuteBatch(Context, sqlList);
+ }
+
+ }
+
+
+ /// <summary>
+ /// 鍔犺浇鐩稿叧鐨勭敓浜х敤鏂欐竻鍗曚俊鎭�
/// </summary>
/// <param name="poBillNos"></param>
/// <returns></returns>
private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos)
{
- IViewService viewService = ServiceHelper.GetService<IViewService>();
+ IViewService viewService = Kingdee.K3.SCM.App.ServiceHelper.GetService<IViewService>();
string formId = "PRD_PPBOM";
- // 鎸囧畾闇�瑕佸姞杞界殑閿�鍞鍗曞瓧娈�
+ // 鎸囧畾闇�瑕佸姞杞界殑鐢ㄦ枡娓呭崟瀛楁
List<SelectorItemInfo> fields = new List<SelectorItemInfo>();
fields.Add(new SelectorItemInfo("FID")); // 鍗曟嵁涓婚敭
fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID")); // 鍗曟嵁浣撲富閿�
@@ -156,8 +198,9 @@
fields.Add(new SelectorItemInfo("FMaterialId")); // 鐗╂枡
fields.Add(new SelectorItemInfo("FMaterialID2")); // 鐗╂枡
fields.Add(new SelectorItemInfo("FBASENEEDQTY")); // 鍩烘湰鍗曚綅鏁伴噺
- fields.Add(new SelectorItemInfo("FBASEPICKEDQTY")); // 鍩烘湰鍗曚綅鍏宠仈鏁伴噺
+ fields.Add(new SelectorItemInfo("FBASEPICKEDQTY")); //
fields.Add(new SelectorItemInfo("FBFLOWID")); //
+ fields.Add(new SelectorItemInfo("FSelTranslateQty")); //
// 鎸囧畾杩囨护鏉′欢
string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos));
@@ -166,7 +209,7 @@
return objs;
}
/// <summary>
- /// 鎶婇攢鍞鍗曞崟鎹綋琛屾瀯寤轰负瀛楀吀锛欴ictionary(鍗曟嵁缂栧彿, Dictionary(鐗╂枡缂栫爜, 婧愬崟琛�));
+ /// 鎶婄敤鏂欐竻鍗曞崟鎹綋琛屾瀯寤轰负瀛楀吀锛欴ictionary(鍗曟嵁缂栧彿, Dictionary(鐗╂枡缂栫爜, 婧愬崟琛�));
/// </summary>
/// <param name="poObjs"></param>
/// <returns></returns>
@@ -191,12 +234,12 @@
return dctAllBills;
}
/// <summary>
- /// 鑾峰彇閿�鍞鍗曞叧鑱斾富瀹炰綋琛ㄦ牸缂栫爜
+ /// 鑾峰彇鐢ㄦ枡娓呭崟鍏宠仈涓诲疄浣撹〃鏍肩紪鐮�
/// </summary>
/// <returns></returns>
private string GetPOEntryTableNumber()
{
- IBusinessFlowService bfMetaService = ServiceHelper.GetService<IBusinessFlowService>();
+ IBusinessFlowService bfMetaService = Kingdee.K3.SCM.App.ServiceHelper.GetService<IBusinessFlowService>();
var tableDefine = bfMetaService.LoadTableDefine(this.Context, POFormId, "FEntity");
return tableDefine.TableNumber;
}
@@ -209,15 +252,18 @@
private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow)
{
//鍓╀綑璋冩嫧鏁伴噺
- decimal remainQty = DBServiceHelper.ExecuteScalar<decimal>(Context, $"select FMustQty -isnull(FSELTRANSLATEQTY,0) from T_PRD_PPBOMENTRY t1 left join T_PRD_PPBOMENTRY_Q t2 on t1.FENTRYID = t2.FENTRYID where t1.FENTRYID={toRow["FPPBOMFENTRYID"]?.ToString()}",0);
+ decimal remainQty = DBServiceHelper.ExecuteScalar<decimal>(Context, $"select FMustQty -isnull(FSELTRANSLATEQTY,0) from T_PRD_PPBOMENTRY t1 left join T_PRD_PPBOMENTRY_Q t2 on t1.FENTRYID = t2.FENTRYID where t1.FENTRYID={toRow["FPPBOMFENTRYID"]?.ToString()}", 0);
linkRow["FlowId"] = srcRow["BFLowId_Id"];
- linkRow["FlowLineId"] = 0;
+ linkRow["FlowLineId"] = 13;
linkRow["RuleId"] = "PRD_PPBOM-STK_TransferDirect";
linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0];
linkRow["SId"] = srcRow[0];
// 鍘熷鎼哄甫閲�
linkRow["BaseQtyOld"] = remainQty;//鍓╀綑璋冩嫧鏁伴噺
- linkRow["BaseQty"] = remainQty-Convert.ToDecimal(toRow["QTY"]); //鏈闇�瑕佽皟鎷ㄦ暟閲�
+ linkRow["BaseQty"] = toRow["QTY"]; //鏈闇�瑕佽皟鎷ㄦ暟閲�
+ linkRow["SALBASEQTY"] = toRow["QTY"]; //鏈闇�瑕佽皟鎷ㄦ暟閲�
+
+
}
/// <summary>
@@ -226,7 +272,7 @@
/// <returns></returns>
public bool SourceVerification(string FTID)
{
- string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'";
+ string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTTABLENAME = 'T_STK_STKTRANSFERINENTRY' and FTID = '{FTID}'";
int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
if (count == 0)
return true;
--
Gitblit v1.9.1