zrg
2025-10-22 aafc5135ad51375c669a60c98408b0f226978aeb
增加职员接口,优化客户接口
1个文件已添加
3个文件已修改
168 ■■■■ 已修改文件
zymes/OperationService/zymes_RealessCustomer.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessEmp.cs 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessStaff.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/zymes_Project.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessCustomer.cs
@@ -44,11 +44,7 @@
            base.AfterExecuteOperationTransaction(e);
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var forgName = Context.CurrentOrganizationInfo.Name;
                //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司"))
                //    continue;
                //var sql = $"exec zymes_RealessCustomer {billObj["Id"]} ";
            {
                var id = billObj["Id"].ToString();
                string sql = string.Empty;
                sql = $@"
@@ -91,16 +87,21 @@
                    LogService.Write("客户同步异常:" + sql);
                    continue;
                }
                //斯莫尔接口:http://183.129.231.78:8081/CeShiAPI/
                //小卫接口:http://221.224.60.42:8082/API_WW
                //获取创建客户的使用组织
                DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.Rows[0]["HOrganNumber"].ToString());
                if (dataTable.Rows.Count == 0)
                    continue;
                //因为发货通知单存的客户ID是销售组织对应的客户ID
                if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
                    continue;
                string http = "http://221.224.60.42:8082/API_WW/";
                ////获取创建客户的使用组织
                //DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.Rows[0]["HOrganNumber"].ToString());
                //if (dataTable.Rows.Count == 0)
                //    continue;
                string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
                //if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
                //    continue;
                //string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
                JArray array = new JArray();//明细表_交货地点
                foreach (DataRow dr in subdt.Rows)
zymes/OperationService/zymes_RealessEmp.cs
New file
@@ -0,0 +1,126 @@
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_RealessEmp : 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.FPERSONID AS HItemID,a.FPERSONID AS HERPItemID,
                    a.FNumber AS HNumber,l.FName AS HName,a.FNumber AS HShortNumber,0 AS HParentID,
                    1 AS HLevel,'true' AS HEndFlag,o.FNUMBER as HOrganNumber,
                    CASE WHEN a.FFORBIDSTATUS = 'A' THEN 'false' ELSE 'true' END AS HStopflag,
                    'CLD-ERP导入' AS HRemark,0 AS HDeptID,0 AS HGroupID,'已使用' AS HUseFlag,
                    GETDATE() AS HMakeTime,ep.FCREATEORGID AS HCREATEORGID,ep.FUSEORGID AS HUSEORGID
                FROM T_BD_PERSON a WITH(NOLOCK)
                INNER JOIN T_BD_PERSON_L l WITH(NOLOCK) ON a.FPERSONID = l.FPERSONID and l.FLOCALEID=2052
                INNER JOIN T_HR_EMPINFO ep WITH(NOLOCK) ON a.FPERSONID = ep.FPERSONID
                 left join T_ORG_Organizations o with(nolock) on ep.FUSEORGID=o.FORGID
                Where a.FID={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("Gy_Employee/SaveGy_EmployeeListApi", 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," + "Gy_Employee/SaveGy_EmployeeListApi");
                    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/OperationService/zymes_RealessStaff.cs
@@ -44,23 +44,19 @@
            base.AfterExecuteOperationTransaction(e);
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var forgName = Context.CurrentOrganizationInfo.Name;
                //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司"))
                //    continue;
                //var sql = $"exec zymes_RealessStaff {billObj["Id"]} ";
            {
                var id = billObj["Id"].ToString();
                string sql =string.Empty;
                sql = $@"
                /*dialect*/
                select a.FID as HItemID,a.FNUMBER as HNumber,l.FNAME as HName,'' as HHelpCode,a.FNUMBER as HShortNumber,0 as HParentID
                 select a.FPERSONID as HItemID,a.FNUMBER as HNumber,l.FNAME as HName,'' as HHelpCode,a.FNUMBER as HShortNumber,0 as HParentID
                ,1 as HLevel,'true' as HEndFlag,'false' as HStopflag,'CLD-ERP导入' as HRemark,'' as HUseFlag,a.FUSEORGID as HUSEORGID
                ,a.FCREATEORGID as HCREATEORGID,a.FPERSONID as HPERSONID,a.FPOSTID as HPOSTID,a.FFIRSTCARDID as HFIRSTCARDID
                ,0 as HDEPTID,a.FSTAFFNUMBER as HSTAFFNUMBER,o.FNUMBER as HOrganNumber
                from T_HR_EMPINFO a with(nolock)
                inner join T_HR_EMPINFO_L l with(nolock) on a.FID=l.FID and FLOCALEID=2052
                from T_BD_STAFF a with(nolock)
                inner join T_BD_PERSON_L l with(nolock) on a.FPERSONID=l.FPERSONID and l.FLOCALEID=2052
                left join T_ORG_Organizations o with(nolock) on a.FUSEORGID=o.FORGID
                Where a.FID={id}
                Where a.FEMPINFOID={id}
                ";
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                if (dt.Rows.Count == 0)
zymes/zymes_Project.csproj
@@ -135,11 +135,12 @@
    <Compile Include="OperationService\zymes_RealessOperator.cs" />
    <Compile Include="OperationService\zymes_RealessSeOutStockBack.cs" />
    <Compile Include="OperationService\zymes_RealessSellOut.cs" />
    <Compile Include="OperationService\zymes_RealessEmp.cs" />
    <Compile Include="OperationService\zymes_RealessUnitConvertRate.cs" />
    <Compile Include="OperationService\zymes_RealessPrdInStock.cs" />
    <Compile Include="OperationService\zymes_RealessPrdReceive.cs" />
    <Compile Include="OperationService\zymes_RealessPurInStock.cs" />
     <Compile Include="OperationService\zymes_RealessWW_PPBomBill.cs" />
    <Compile Include="OperationService\zymes_RealessWW_PPBomBill.cs" />
    <Compile Include="OperationService\zymes_RealessEntrustOrderBill.cs" />
    <Compile Include="OperationService\zymes_RealessRateType.cs" />
    <Compile Include="OperationService\zymes_RealessDepartment.cs" />