zrg
2025-10-15 734a9d4b97a56bd478d228bddb398467c163e31c
增加组织机构同步
1个文件已添加
2个文件已修改
132 ■■■■■ 已修改文件
zymes/OperationService/zymes_RealessMatePriceSup.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessORGANIZATIONS.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/zymes_Project.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
                }
            };
zymes/OperationService/zymes_RealessORGANIZATIONS.cs
New file
@@ -0,0 +1,119 @@
using 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);
            //为了在BeginOperationTransaction里检查数据抛出异常时
            //只回滚当前单据的事务,这里设置为不支持批量事务,这样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;
            }
        }
    }
}
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" />