From 65b2cd7bf5fa8568eabaa8f445e186cde3f6eb50 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 15 十月 2025 15:18:38 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/simoer_jiekou
---
zymes/OperationService/zymes_RealessMatePriceSup.cs | 12 +-
zymes/OperationService/zymes_RealessStock.cs | 65 +++++++++++++++
zymes/OperationService/zymes_RealessORGANIZATIONS.cs | 119 +++++++++++++++++++++++++++++
zymes/zymes_Project.csproj | 1
4 files changed, 189 insertions(+), 8 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/OperationService/zymes_RealessStock.cs b/zymes/OperationService/zymes_RealessStock.cs
index 70039c1..e58ef95 100644
--- a/zymes/OperationService/zymes_RealessStock.cs
+++ b/zymes/OperationService/zymes_RealessStock.cs
@@ -23,6 +23,9 @@
public class zymes_RealessStock : AbstractOperationServicePlugIn
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
+ // 娣诲姞涓�涓瓧娈垫潵瀛樺偍瀛楁鍚�
+ private string _locationFieldName = "FF100001"; // 榛樿鍊�
+
public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e)
{
base.OnPrepareOperationServiceOption(e);
@@ -46,6 +49,10 @@
foreach (var billObj in e.DataEntitys)
{
var id = billObj["Id"].ToString();
+
+ // 绗竴姝ワ細鑾峰彇浠撲綅瀛楁鍚�
+ _locationFieldName = GetLocationFieldName(id);
+
string sql = string.Empty;
sql = string.Format(@"
/*dialect*/
@@ -65,10 +72,10 @@
join T_BD_STOCK st on t1.FSTOCKID = st.FSTOCKID
join T_BD_STOCK_l stl on t1.FSTOCKID = stl.FSTOCKID and stl.FLOCALEID = 2052
join T_BAS_FLEXVALUESDETAIL t2 on t1.FSTOCKLOCID = t2.FID
- join T_BAS_FLEXVALUESENTRY t3 on t2.FF100001 = t3.FENTRYID--浠撲綅鍊奸泦鍒楄〃鏄庣粏
+ join T_BAS_FLEXVALUESENTRY t3 on t2.{1} = t3.FENTRYID--浠撲綅鍊奸泦鍒楄〃鏄庣粏
join T_BAS_FLEXVALUESENTRY_L t4 on t3.FENTRYID=t4.FENTRYID
where t1.fstockid= {0}
- ", id);
+ ", id,_locationFieldName);
//鏂帿灏斾粨浣嶉泦鐨勫�兼槸 t2.FF100006
//47娴嬭瘯鍙互鐢� t2.FF100001
@@ -135,6 +142,60 @@
ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, item.Value);
}
}
+
+ // 鏂板鏂规硶锛氳幏鍙栦粨浣嶅瓧娈靛悕
+ private string GetLocationFieldName(string stockId)
+ {
+ try
+ {
+ // 棣栧厛鑾峰彇鎵�鏈夊彲鑳界殑瀛楁鍚�
+ string getColumnsSql = @"
+ /*dialect*/
+ SELECT COLUMN_NAME
+ FROM INFORMATION_SCHEMA.COLUMNS
+ WHERE TABLE_NAME = 'T_BAS_FLEXVALUESDETAIL'
+ AND COLUMN_NAME LIKE 'FF1%'
+ ORDER BY COLUMN_NAME";
+
+ DataSet columnsDs = DBServiceHelper.ExecuteDataSet(Context, getColumnsSql);
+ DataTable columnsDt = columnsDs.Tables[0];
+
+ // 鍦ㄤ唬鐮佸眰闈㈤�愪釜妫�鏌ュ瓧娈�
+ foreach (DataRow row in columnsDt.Rows)
+ {
+ string columnName = row["COLUMN_NAME"].ToString();
+
+ string checkSql = $@"
+ /*dialect*/
+ SELECT COUNT(1) as HasData
+ FROM T_BD_FLEXVALUESCOM t1
+ JOIN T_BAS_FLEXVALUESDETAIL t2 ON t1.FSTOCKLOCID = t2.FID
+ JOIN T_BAS_FLEXVALUESENTRY t3 ON t2.{columnName} = t3.FENTRYID
+ JOIN T_BAS_FLEXVALUESENTRY_L t4 ON t3.FENTRYID = t4.FENTRYID
+ WHERE t1.fstockid = {stockId}
+ AND t4.FNAME IS NOT NULL";
+
+ DataSet checkDs = DBServiceHelper.ExecuteDataSet(Context, checkSql);
+ DataTable checkDt = checkDs.Tables[0];
+
+ if (checkDt.Rows.Count > 0 && Convert.ToInt32(checkDt.Rows[0]["HasData"]) > 0)
+ {
+ LogService.Write($"鎴愬姛鑾峰彇鍒颁粨浣嶅瓧娈靛悕: {columnName} 鐢ㄤ簬浠撳簱ID: {stockId}");
+ return columnName;
+ }
+ }
+
+ LogService.Write($"鏈壘鍒颁粨搴� {stockId} 瀵瑰簲鐨勪粨浣嶅瓧娈碉紝浣跨敤榛樿鍊� FF100001");
+ return "FF100001";
+ }
+ catch (Exception ex)
+ {
+ LogService.Write($"鑾峰彇浠撲綅瀛楁鍚嶆椂鍙戠敓寮傚父: {ex.Message}锛屼娇鐢ㄩ粯璁ゅ�� FF100001");
+ return "FF100001";
+ }
+ }
+
+
public static class ResultMessage
{/// <summary>
/// 淇敼鎻愮ず淇℃伅
diff --git a/zymes/zymes_Project.csproj b/zymes/zymes_Project.csproj
index 50026dc..162de49 100644
--- a/zymes/zymes_Project.csproj
+++ b/zymes/zymes_Project.csproj
@@ -152,6 +152,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