From 734a9d4b97a56bd478d228bddb398467c163e31c Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期三, 15 十月 2025 10:34:24 +0800
Subject: [PATCH] 增加组织机构同步

---
 zymes/OperationService/zymes_RealessMatePriceSup.cs  |   12 ++--
 zymes/OperationService/zymes_RealessORGANIZATIONS.cs |  119 +++++++++++++++++++++++++++++++++++++++
 zymes/zymes_Project.csproj                           |    1 
 3 files changed, 126 insertions(+), 6 deletions(-)

diff --git a/zymes/OperationService/zymes_RealessMatePriceSup.cs b/zymes/OperationService/zymes_RealessMatePriceSup.cs
index 6ed07d8..3f1aa91 100644
--- a/zymes/OperationService/zymes_RealessMatePriceSup.cs
+++ b/zymes/OperationService/zymes_RealessMatePriceSup.cs
@@ -18,7 +18,7 @@
 
 namespace zymes_Project.OperationService
 {
-    [Description("[閲囪喘浠锋牸-瀹℃牳]鏈嶅姟鎻掍欢]")]
+    [Description("[閲囪喘浠风洰-瀹℃牳]鏈嶅姟鎻掍欢]")]
     [HotUpdate]
     public class zymes_RealessMatePriceSup : AbstractOperationServicePlugIn
     {
@@ -66,11 +66,11 @@
                 DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                 if (dt.Rows.Count == 0)
                 {
-                    LogService.Write("閲囪喘浠锋牸鍚屾寮傚父锛�" + sql);
+                    LogService.Write("閲囪喘浠风洰鍚屾寮傚父锛�" + sql);
                     continue;
                 }
 
-                //鑾峰彇鍒涘缓閲囪喘浠锋牸鐨勪娇鐢ㄧ粍缁�
+                //鑾峰彇鍒涘缓閲囪喘浠风洰鐨勪娇鐢ㄧ粍缁�
                 DataTable dataTable = LogService.Get_DisPlayOrg(Context, dt.Rows[0]["HOrganNumber"].ToString());
                 if (dataTable.Rows.Count == 0)
                     continue;
@@ -98,9 +98,9 @@
                 var contentPost = responsePost.Content;
                 if (!contentPost.Contains("鎴愬姛"))
                 { 
-                    LogService.Write("閲囪喘浠锋牸鍚屾寮傚父,POST鏂瑰紡鑾峰彇缁撴灉," + billObj["Id"] + "," + responsePost.ErrorMessage);
-                    LogService.Write("閲囪喘浠锋牸鍚屾寮傚父,POST," +   "Gy_MatePriceSup/SaveGy_MatePriceSupListApi");
-                    LogService.Write("閲囪喘浠锋牸鍚屾寮傚父,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
+                    LogService.Write("閲囪喘浠风洰鍚屾寮傚父,POST鏂瑰紡鑾峰彇缁撴灉," + billObj["Id"] + "," + responsePost.ErrorMessage);
+                    LogService.Write("閲囪喘浠风洰鍚屾寮傚父,POST," +   "Gy_MatePriceSup/SaveGy_MatePriceSupListApi");
+                    LogService.Write("閲囪喘浠风洰鍚屾寮傚父,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
                 }
             };
 
diff --git a/zymes/OperationService/zymes_RealessORGANIZATIONS.cs b/zymes/OperationService/zymes_RealessORGANIZATIONS.cs
new file mode 100644
index 0000000..943b0d8
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessORGANIZATIONS.cs
@@ -0,0 +1,119 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+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 System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+using System.Data;
+using Newtonsoft.Json.Linq;
+using ZD.Cloud.WebApi;
+using Newtonsoft.Json;
+using Kingdee.BOS.Core.DynamicForm;
+using System.Linq;
+using RestSharp;
+using zymes_Project.Utility;
+
+namespace zymes_Project.OperationService
+{
+    [Description("[缁勭粐鏈烘瀯-瀹℃牳]鏈嶅姟鎻掍欢]")]
+    [HotUpdate]
+    public class zymes_RealessORGANIZATIONS : AbstractOperationServicePlugIn
+    {
+        Dictionary<string, string> dictionary = new Dictionary<string, string>();
+        public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e)
+        {
+            base.OnPrepareOperationServiceOption(e);
+
+            //涓轰簡鍦˙eginOperationTransaction閲屾鏌ユ暟鎹姏鍑哄紓甯告椂
+            //鍙洖婊氬綋鍓嶅崟鎹殑浜嬪姟,杩欓噷璁剧疆涓轰笉鏀寔鎵归噺浜嬪姟,杩欐牱BOS浼�
+            //寰幆涓烘瘡涓�寮犲崟鎹垱寤轰簨鍔¤皟鐢ㄦ搷浣�
+            e.SupportTransaction = true;
+            //e.SurportBatchTransaction = false;
+        }
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FEntity");
+            e.FieldKeys.Add("FEntity_FEntryID");
+        }
+        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+        {
+            base.AfterExecuteOperationTransaction(e);
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            foreach (var billObj in e.DataEntitys)
+            {
+                var id = billObj["Id"].ToString();
+                string sql = string.Empty;
+                sql = $@"
+            /*dialect*/
+            select a.FORGID HItemID,a.FNUMBER HNumber,l.FNAME Hname,a.FParentid HParentID,a.FNUMBER HOrganNumber
+            ,case when a.FFORBIDSTATUS='A' then 0 else 1 end HStopflag,'CLD瀵煎叆' HRemark,getdate() HMakeTime
+            from T_ORG_ORGANIZATIONS a with(nolock)
+            inner join T_ORG_ORGANIZATIONS_L l with(nolock) on a.FORGID=l.FORGID
+            Where l.FLOCALEID=2052 and isnull(l.FNAME,'') <> ''  and a.FORGID={id}
+            ";
+                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+                if (dt.Rows.Count == 0)
+                {
+                    LogService.Write("缁勭粐鏈烘瀯鍚屾寮傚父锛�" + sql);
+                    continue;
+                }
+
+                //鑾峰彇缁勭粐鏈烘瀯鐨勪娇鐢ㄧ粍缁�
+                DataTable dataTable = LogService.Get_DisPlayOrg(Context, dt.Rows[0]["HOrganNumber"].ToString());
+                if (dataTable.Rows.Count == 0)
+                    continue;
+
+                if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
+                    continue;
+
+                string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
+
+                DataRow dr = dt.Rows[0];
+                JObject model = new JObject();
+                foreach (DataColumn column in dt.Columns)
+                {
+                    model.Add(column.ColumnName, dr[column.ColumnName].ToString());
+                }
+                JObject _jsonRoot = new JObject()
+                {
+                    ["model"] = model
+                };
+
+                var client = new RestSharp.RestClient(http);
+                var requestPost = new RestRequest("Xt_ORGANIZATIONS/SaveXt_ORGANIZATIONSAPI", Method.POST);
+                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(_jsonRoot), ParameterType.RequestBody);
+                IRestResponse responsePost = client.Execute(requestPost);
+                var contentPost = responsePost.Content;
+                if (!contentPost.Contains("鎴愬姛"))
+                {
+                    LogService.Write("缁勭粐鏈烘瀯鍚屾寮傚父,POST鏂瑰紡鑾峰彇缁撴灉," + billObj["Id"] + "," + responsePost.ErrorMessage);
+                    LogService.Write("缁勭粐鏈烘瀯鍚屾寮傚父,POST," + "Xt_ORGANIZATIONS/SaveXt_ORGANIZATIONSAPI");
+                    LogService.Write("缁勭粐鏈烘瀯鍚屾寮傚父,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
+                }
+            };
+
+            foreach (var item in dictionary)
+            {
+                ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, item.Value);
+            }
+        }
+        public static class ResultMessage
+        {/// <summary>
+         /// 淇敼鎻愮ず淇℃伅
+         /// </summary>
+         /// <param name="operateResult"></param>
+         /// <param name="billno"></param>
+            public static void dataError(OperateResultCollection operateResult, string billno, string message)
+            {
+                OperateResult operate = operateResult.Where(n => n.Number == billno).First();
+                operate.Message = message;
+                operate.SuccessStatus = false;
+                operate.MessageType = MessageType.FatalError;
+            }
+        }
+    }
+}
diff --git a/zymes/zymes_Project.csproj b/zymes/zymes_Project.csproj
index bba0347..4d275ea 100644
--- a/zymes/zymes_Project.csproj
+++ b/zymes/zymes_Project.csproj
@@ -151,6 +151,7 @@
     <Compile Include="OperationService\zymes_RealessSupplier.cs" />
     <Compile Include="OperationService\zymes_RealessStockStatus.cs" />
     <Compile Include="OperationService\zymes_RealessStaff.cs" />
+    <Compile Include="OperationService\zymes_RealessORGANIZATIONS.cs" />
     <Compile Include="OperationService\zymes_RealessWork.cs" />
     <Compile Include="OperationService\zymes_RealessUnit.cs" />
     <Compile Include="OperationService\zymes_RealessPrdMo.cs" />

--
Gitblit v1.9.1