From 085cb82a480997b718a5a9a8c825d39fb6298a11 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期五, 26 二月 2021 15:36:55 +0800
Subject: [PATCH] 日计划用料清单下推,建立生产领料单与生产用料清单关联关系 代码上传 测试成功

---
 src/BLL/Demo.BillView/Demo.BillView.csproj                       |    2 
 src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs                          |   65 ++++++++++++++++
 src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs                 |   17 ++--
 src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs |   40 ++++++----
 src/BLL/Demo.BillView/PRD/Pro_SCLLFSH.cs                         |   66 ++++++++++++++++
 5 files changed, 165 insertions(+), 25 deletions(-)

diff --git a/src/BLL/Demo.BillView/Demo.BillView.csproj b/src/BLL/Demo.BillView/Demo.BillView.csproj
index 559b555..6b484c2 100644
--- a/src/BLL/Demo.BillView/Demo.BillView.csproj
+++ b/src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -220,6 +220,8 @@
     <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" />
     <Compile Include="PRD\ProCompleteAnalysisDetails.cs" />
     <Compile Include="PRD\Pro_DayPlanCheckSelectMenu.cs" />
+    <Compile Include="PRD\Pro_SCLLFSH.cs" />
+    <Compile Include="PRD\Pro_SCLLSH.cs" />
     <Compile Include="PRD\Pro_ZJDBSH.cs" />
     <Compile Include="PRD\Pro_ZJDBFSH.cs" />
     <Compile Include="PRD\Pro_DayPlanPushZJDB2.cs" />
diff --git a/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs b/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
index 9320029..75c3257 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_DayPlanPushZJDB.cs
@@ -105,7 +105,6 @@
                             as DynamicObjectCollection;
                 foreach (var entryRow in entryRows)
                 {
-
                     string srcFormId = "PRD_PPBOM";
                     string srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString();
                     string FPPBOMFID = entryRow["FPPOMFID"]?.ToString();
@@ -159,14 +158,14 @@
             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 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
diff --git a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
index 9688acf..e6cfec4 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
@@ -16,13 +16,13 @@
 namespace Demo.DynamicForm.PRD
 {
     /// <summary>
-    /// 鎻掍欢绀轰緥锛氬紩鍏ラ攢鍞嚭搴撳崟锛屽缓绔嬩笌閿�鍞鍗曠殑鍏宠仈
+    /// 鎻掍欢绀轰緥锛氭棩璁″垝鐢ㄦ枡娓呭崟涓嬫帹鍚庯紝寤虹珛鐢熶骇棰嗘枡鍗曚笌鐢熶骇鐢ㄦ枡娓呭崟鍏宠仈鍏崇郴
     /// </summary>
     /// <remarks>
     /// 瑕佹眰锛�
     /// 1. 闇�瑕佸紩鍏ュ崟鎹綋鐨勬簮鍗曠被鍨嬨�佹簮鍗曠紪鍙峰瓧娈�
-    /// 2. 鏈彃浠舵寕鍦ㄩ攢鍞嚭搴撳崟鐨勪繚瀛樻搷浣滀笂
-    /// 鍑哄簱鍏宠仈閿�鍞鍗�
+    /// 2. 鏈彃浠舵寕鍦ㄧ敓浜ч鏂欏崟鐨勪繚瀛樻搷浣滀笂
+    /// 鐢熶骇棰嗘枡鍗曚笌鐢熶骇鐢ㄦ枡娓呭崟鍏宠仈
     /// </remarks>
     [Description("鏃ヨ鍒掔敤鏂欐竻鍗曚笅鎺ㄥ悗锛屽缓绔嬬敓浜ч鏂欏崟涓庣敓浜х敤鏂欐竻鍗曞叧鑱斿叧绯�")]
     [HotUpdate]
@@ -59,6 +59,9 @@
                             as DynamicObjectCollection;
                 foreach (var entryRow in entryRows)
                 {
+                    //鐢熶骇鐢ㄦ枡娓呭崟涓虹┖鏃�
+                    if (Convert.ToString(entryRow["FDayPlanBillNo"]) == "")
+                        continue;
                     string srcFormId = "";
                     string srcSrcBillNo = "";
                     string FPPBOMFENTRYID = "";
@@ -152,24 +155,29 @@
         public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
         {
             base.AfterExecuteOperationTransaction(e);
+            if (FentryIdList.Count == 0)
+                return;
             string FentryId = string.Join(",", FentryIdList.ToArray());
             List<string> sqlList = new List<string>();
+            //          string sql = string.Format(@"/*dialect*/
+            //update a set FBASEACTUALQTY = b.FBASEACTUALQTY
+            // from T_PRD_PICKMTRLDATA_LK a
+            // join T_PRD_PICKMTRLDATA b on a.FENTRYID = b.FENTRYID
+            // where a.FSTABLENAME = 'T_PRD_PPBOMENTRY' and a.FENTRYID in ({0})", FentryId);
+            //          sqlList.Add(sql);
             string sql = string.Format(@"/*dialect*/
-	 update a set FBASEACTUALQTY = b.FBASEACTUALQTY
-   from T_PRD_PICKMTRLDATA_LK a
-   join T_PRD_PICKMTRLDATA 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_PRD_PICKMTRLDATA set 
-	FSrcBillType = 'PRD_PPBOM',
-	FSRCENTRYID=FPPBomEntryId,
-	FSrcBillNo=FPPBOMBILLNO
-	where FENTRYID in ({0})
+update a set
+FSrcBillType='PRD_PPBOM',
+FSrcBillNo = b.FPPBOMBILLNO,
+FSRCINTERID =FHPPBomInterID,
+FSRCENTRYID = FHPPBomEntryID,
+FSRCENTRYSEQ =FPPBOMFSEQINT
+from T_PRD_PICKMTRLDATA a 
+join Sc_DayPlanPPBomBillSub b on a.FDAYPLANFENTRYID = b.FEntryID
+where a.FEntryID in ({0})
 	 ", FentryId);
             sqlList.Add(sql);
             DBServiceHelper.ExecuteBatch(Context, sqlList);
-            //DBServiceHelper.Execute(Context, sql);
         }
         /// <summary>
         /// 鍔犺浇鐩稿叧鐨勯攢鍞鍗曟暟鎹�
@@ -245,7 +253,7 @@
             //鍓╀綑棰嗘枡鏁伴噺 
             decimal remainQty = DBServiceHelper.ExecuteScalar<decimal>(Context, $"select FMustQty -isnull(FSelPickedQty,0) from  T_PRD_PPBOMENTRY t1  left join  T_PRD_PPBOMENTRY_Q t2 on t1.FENTRYID = t2.FENTRYID where t1.FENTRYID={toRow["PPBomEntryId"]?.ToString()}", 0);
             linkRow["FlowId"] = srcRow["BFLowId_Id"];
-            linkRow["FlowLineId"] = 0;
+            linkRow["FlowLineId"] = 5;
             linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL";
             linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0];
             linkRow["STableId"] = ((DynamicObject)srcRow.Parent)[0];
diff --git a/src/BLL/Demo.BillView/PRD/Pro_SCLLFSH.cs b/src/BLL/Demo.BillView/PRD/Pro_SCLLFSH.cs
new file mode 100644
index 0000000..b20422c
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/Pro_SCLLFSH.cs
@@ -0,0 +1,66 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.K3.SCM.App;
+
+namespace Demo.DynamicForm.PRD
+{
+    [Description("[鐢熶骇棰嗘枡鍗�-鍙嶅鏍竇鎸夐挳鍔熻兘]")]
+    [HotUpdate]
+    public class Pro_SCLLFSH : AbstractOperationServicePlugIn
+    {
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FSrcBillType");
+            e.FieldKeys.Add("FSrcBillNo");
+            e.FieldKeys.Add("FID");
+            e.FieldKeys.Add("FTreeEntity_FEntryID");
+            e.FieldKeys.Add("FBillNo");
+            e.FieldKeys.Add("FBFLowId");
+            e.FieldKeys.Add("FMaterialId");
+            e.FieldKeys.Add("FBaseUnitQty");
+            e.FieldKeys.Add("FBaseJoinQty");
+            e.FieldKeys.Add("FDayPlanBillNo");
+            e.FieldKeys.Add("FDayPlanFentryId");
+        }
+        /// <summary>
+        ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺
+        /// </summary>
+        /// <param name="e"></param>
+        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+        {
+            base.AfterExecuteOperationTransaction(e);
+            List<string> sqlList = new List<string>();
+            string sql = "";
+            //淇濆瓨鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏璋冩嫧鏁伴噺
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    //鐢熶骇鐢ㄦ枡娓呭崟涓虹┖鏃�
+                    if (Convert.ToString(entryRow["FDayPlanBillNo"]) == "")
+                        continue;
+                    string fentryId = entryRow["FDayPlanFentryId"].ToString();
+                    decimal FBaseQty = Convert.ToDecimal(entryRow["BaseActualQty"]);
+                    sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set  FPickedQty -= {FBaseQty} where FEntryID = { fentryId} ");
+                    sqlList.Add(sql);
+                }
+            }
+            DBServiceHelper.ExecuteBatch(Context, sqlList);
+        }
+    }
+}
diff --git a/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs b/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs
new file mode 100644
index 0000000..f78e99b
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.K3.SCM.App;
+
+namespace Demo.DynamicForm.PRD
+{
+    [Description("[鐢熶骇棰嗘枡鍗�-瀹℃牳]鎸夐挳鍔熻兘]")]
+    [HotUpdate]
+    public class Pro_SCLLSH : AbstractOperationServicePlugIn
+    {
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FSrcBillType");
+            e.FieldKeys.Add("FSrcBillNo");
+            e.FieldKeys.Add("FID");
+            e.FieldKeys.Add("FTreeEntity_FEntryID");
+            e.FieldKeys.Add("FBillNo");
+            e.FieldKeys.Add("FBFLowId");
+            e.FieldKeys.Add("FMaterialId");
+            e.FieldKeys.Add("FBaseUnitQty");
+            e.FieldKeys.Add("FBaseJoinQty");
+            e.FieldKeys.Add("FDayPlanBillNo");
+            e.FieldKeys.Add("FDayPlanFentryId");
+        }
+        /// <summary>
+        ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺
+        /// </summary>
+        /// <param name="e"></param>
+        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+        {
+            base.AfterExecuteOperationTransaction(e);
+            List<string> sqlList = new List<string>();
+            string sql = "";
+            //瀹℃牳鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏璋冩嫧鏁伴噺
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    //鐢熶骇鐢ㄦ枡娓呭崟涓虹┖鏃�
+                    if (Convert.ToString(entryRow["FDayPlanBillNo"]) == "")
+                        continue;
+                    string fentryId = entryRow["FDayPlanFentryId"].ToString();
+                    sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set  FPickedQty = (select sum(FBaseActualQty) from T_PRD_PICKMTRLDATA where FDayPlanFentryId = { fentryId})where FEntryID = { fentryId} ");
+                    sqlList.Add(sql);
+                }
+            }
+            DBServiceHelper.ExecuteBatch(Context, sqlList);
+        }
+    }
+}

--
Gitblit v1.9.1