From 0fcc730fb3fa804c6e38f6f980eb15ee0a84eb33 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 08 九月 2021 13:24:15 +0800
Subject: [PATCH] 送货计划保存删除 反写提料计划 服务插件

---
 src/BLL/Demo.BillView/PRD/Pro_ZJDBSH.cs |   82 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 75 insertions(+), 7 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_ZJDBSH.cs b/src/BLL/Demo.BillView/PRD/Pro_ZJDBSH.cs
index a5cbd51..1743116 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_ZJDBSH.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_ZJDBSH.cs
@@ -12,10 +12,15 @@
 using System.ComponentModel;
 using Kingdee.BOS.ServiceHelper;
 using Kingdee.K3.SCM.App;
+using System.Diagnostics;
+using ZD.Cloud.Logger;
+using System.Data;
+using Kingdee.BOS;
+using Kingdee.BOS.App.Data;
 
 namespace Demo.DynamicForm.PRD
 {
-   
+
     [Description("[鐩存帴璋冩嫧鍗�-瀹℃牳]鎸夐挳鍔熻兘]")]
     [HotUpdate]
     public class Pro_ZJDBSH : AbstractOperationServicePlugIn
@@ -34,9 +39,41 @@
             e.FieldKeys.Add("FBaseJoinQty");
             e.FieldKeys.Add("FDayPlanBillNo");
             e.FieldKeys.Add("FDayPlanFentryId");
+            e.FieldKeys.Add("FBaseQty");
         }
+        ///// <summary>
+        /////鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺
+        ///// </summary>
+        ///// <param name="e"></param>
+        //public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+        //{
+        //    base.AfterExecuteOperationTransaction(e);
+        //    Stopwatch sw = new Stopwatch();
+        //    sw.Start();//寮�濮嬭鏃�
+        //    List<string> sqlList = new List<string>();
+        //    string sql = "";
+        //    //瀹℃牳鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏璋冩嫧鏁伴噺
+        //    Entity entity = this.BusinessInfo.GetEntity("FBillEntry");//鑾峰彇鏄庣粏淇℃伅
+        //    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  FTranslateQty + = {Convert.ToDecimal(entryRow["FBaseQty"])} where FEntryID = { fentryId} ");
+        //            sqlList.Add(sql);
+        //        }
+        //    }
+        //    DBServiceHelper.ExecuteBatch(Context, sqlList);
+        //    sw.Stop();//缁撴潫璁℃椂
+        //    LogHelper.Info("鐢熸垚鏃ヨ鍒掔敤鏂欐竻鍗曡繍琛屾�绘椂闀匡細" + sw.Elapsed);
+        //}
         /// <summary>
-        ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺
+        ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺   
         /// </summary>
         /// <param name="e"></param>
         public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
@@ -44,23 +81,54 @@
             base.AfterExecuteOperationTransaction(e);
             List<string> sqlList = new List<string>();
             string sql = "";
-            //瀹℃牳鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏璋冩嫧鏁伴噺
             Entity entity = this.BusinessInfo.GetEntity("FBillEntry");//鑾峰彇鏄庣粏淇℃伅
+            //瀹℃牳鏃舵洿鏂版棩璁″垝鐢ㄦ枡娓呭崟琛ㄦ槑缁嗚皟鎷ㄦ暟閲�
             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  FTranslateQty = (select sum(FBaseQty) from T_STK_STKTRANSFERINENTRY where FDayPlanFentryId = { fentryId})where FEntryID = { fentryId} ");
+                    //if (fentryId == "0")
+                    //    continue;
+                    sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set  FTranslateQty  = FTranslateQty+{Convert.ToDecimal(entryRow["BaseQty"])} where FEntryID = { fentryId} ");
                     sqlList.Add(sql);
                 }
             }
             DBServiceHelper.ExecuteBatch(Context, sqlList);
         }
+        private void BatchUpdate()
+        {
+            // 瀹氫箟涓�涓狣ataTable锛氬瓨鍌ㄥ緟鏇存柊鐨勬暟鎹�
+            DataTable dt = new DataTable();
+            dt.TableName = "JD_t_Cust_Entry100001";
+            var idCol = dt.Columns.Add("FID");
+            idCol.DataType = typeof(long);
+            var billNoCol = dt.Columns.Add("FBillNo");
+            billNoCol.DataType = typeof(string);
+            // 鐏屽叆娴嬭瘯鏁版嵁
+            dt.BeginLoadData(); // 鎵ц姝ゆ柟娉曪紝鍙互鎻愬崌鐏屽叆鏁版嵁鎬ц兘
+            for (int i = 1; i <= 10; i++)
+            {
+                dt.LoadDataRow(new object[] { i, i.ToString() }, true);
+            }
+            dt.EndLoadData(); // 鐏屽叆鏁版嵁缁撴潫
+                              // 鍑嗗鎵归噺鏇存柊鏈嶅姟鍙傛暟
+                              // tableName : 寰呮洿鏂扮殑鐗╃悊琛ㄦ牸鍚�
+                              // dt : 寰呮洿鏂扮殑鏁版嵁
+            BatchSqlParam batchUpdateParam = new BatchSqlParam("JD_t_Cust_Entry100001", dt);
+            // 璁剧疆鍖归厤瀛楁锛氬嵆DataTable涓殑鏁版嵁锛屼笌鐗╃悊琛ㄦ牸浠ラ偅涓瓧娈佃繘琛屽尮閰�
+            // 鍖归厤瀛楁鍙互娣诲姞澶氫釜
+            // columnName: DataTable涓殑鍒楀悕
+            // fieldName : 鐗╂枡琛ㄦ牸涓尮閰嶇殑瀛楁鍚�
+            batchUpdateParam.AddWhereExpression("FID", KDDbType.Int64, "FID");
+            // 璁剧疆寰呮洿鏂扮殑瀛楁
+            // columnName: DataTable涓殑鍒楀悕
+            // fieldName : 瀵瑰簲鐨勭墿鏂欒〃鏍煎瓧娈靛悕
+            batchUpdateParam.AddSetExpression("FBillNo", KDDbType.String, "FBillNo");
+            // 鎵ц鎵归噺鏇存柊
+            DBUtils.BatchUpdate(this.Context, batchUpdateParam);
+        }
     }
 }

--
Gitblit v1.9.1