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