折扣表 业务组 销售退货原因/退货类型 同步插件优化
| New file |
| | |
| | | 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_RealessAssistantDataEntry : 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.FID HID,a.FENTRYID HEntryID,a.FNUMBER HNumber,l.FDATAVALUE HName, |
| | | case when a.FFORBIDSTATUS='A' then 0 else 1 end as HStopflag, |
| | | l.FDESCRIPTION HRemark,a.FCREATEDATE HMakeTime, us1.FName HMakeEmp, |
| | | a.FAPPROVEDATE HCheckTime,us2.FNAME HCheckEmp,a.FMODIFYDATE HModifyTime, |
| | | us3.FNAME HModifyEmp,l.FLOCALEID HLOCALEID,a.FUSEORGID HUSEORGID, |
| | | a.FCREATEORGID HCREATEORGID,o.FNUMBER as HOrganNumber |
| | | from T_BAS_ASSISTANTDATAENTRY a with(nolock) |
| | | inner join T_BAS_ASSISTANTDATAENTRY_L l with(nolock) on a.FENTRYID=l.FENTRYID |
| | | left join T_SEC_user us1 with(nolock) on a.FCREATORID=us1.FUSERID |
| | | left join T_SEC_user us2 with(nolock) on a.FAPPROVERID=us2.FUSERID |
| | | left join T_SEC_user us3 with(nolock) on a.FMODIFIERID=us3.FUSERID |
| | | left join T_ORG_Organizations o with(nolock) on 1=o.FORGID |
| | | Where l.FLOCALEID=2052 and a.FFORBIDSTATUS='A' and a.FENTRYID='{id}' |
| | | select a.FID HID,a.FNUMBER HNumber,l.FName HName,l.FDESCRIPTION HRemark,l.FLOCALEID HLOCALEID |
| | | from T_BAS_ASSISTANTDATA a with(nolock) |
| | | inner join T_BAS_ASSISTANTDATA_L l with(nolock) on a.FID=l.FID |
| | | Where l.FLOCALEID=2052 and a.FID= |
| | | (select top 1 FID from T_BAS_ASSISTANTDATAENTRY with(nolock) where FENTRYID = '{id}' ) |
| | | "; |
| | | LogService.Write("退货类型/销售退货原因:" + sql); |
| | | // 主表 |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[1]; |
| | | // 子表 |
| | | DataTable dtSub = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count == 0) |
| | | { |
| | | LogService.Write("退货类型/销售退货原因同步异常:" + sql); |
| | | continue; |
| | | } |
| | | |
| | | //获取创建退货类型/销售退货原因的使用组织 主表没有组织字段,从子表获取 |
| | | DataTable dataTable = LogService.Get_DisPlayOrg(Context, dtSub.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(); |
| | | |
| | | // JArray array = new JArray(); |
| | | // foreach(DataRow dr in dt.Rows) |
| | | // { |
| | | // JObject fentrymodel = new JObject(); |
| | | // foreach (DataColumn column in dt.Columns) |
| | | // { |
| | | // fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | // } |
| | | // array.Add(fentrymodel); |
| | | // } |
| | | JArray array = new JArray();//明细表 |
| | | foreach (DataRow dr in dtSub.Rows) |
| | | { |
| | | JObject fentrymodel = new JObject(); |
| | | foreach (DataColumn column in dtSub.Columns) |
| | | { |
| | | fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | } |
| | | array.Add(fentrymodel); |
| | | } |
| | | // 主表 |
| | | JObject model = new JObject(); |
| | | DataRow maindr = dt.Rows[0]; |
| | | foreach (DataColumn column in dt.Columns) |
| | | { |
| | | model.Add(column.ColumnName, maindr[column.ColumnName].ToString()); |
| | | } |
| | | model.Add("FENTRY", array); |
| | | |
| | | JObject _jsonRoot = new JObject() |
| | | { |
| | | ["model"] = model |
| | | }; |
| | | LogService.Write("退货类型/销售退货原因同步" + model); |
| | | var client = new RestSharp.RestClient(http); |
| | | var requestPost = new RestRequest("Gy_AssistantDataEntry/SaveGy_AssistantDataEntryApi", 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_AssistantDataEntry/SaveGy_AssistantDataEntryApi"); |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | 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_RealessDiscount : 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.FID as HItemID,a.FNUMBER as HNumber,'' as HName,a.FNUMBER as HShortNumber, |
| | | 0 as HParentID, 1 as HLevel, 1 as HEndFlag, |
| | | case when a.FFORBIDSTATUS='A' then 0 else 1 end as HStopflag, |
| | | 'CLD-ERP导入' as HRemark, '已使用' as HUseFlag, a.FCREATORID as HMakeEmp, |
| | | a.FCREATEDATE as HMakeTime,a.FAPPROVERID as HCheckEmp,a.FAPPROVEDATE as HCheckTime, |
| | | a.FMODIFIERID as HModifyEmp,a.FMODIFYDATE as HModifyTime,a.FFORBIDERID as HStopEmp, |
| | | a.FFORBIDDATE as HStopTime,a.FCREATEORGID as HCREATEORGID,a.FUSEORGID as HUSEORGID, |
| | | a.FPURCHASEORGID as HPURCHASEORGID,a.FSUPPLIERID as HSupID,a.FCURRENCYID as HCurID, |
| | | a.FPRICELISTID as HPRICELISTID,a.FPRICETYPE as HPRICETYPE,a.FDISCOUNTOBJECT as HDISCOUNTOBJECT, |
| | | a.FDISCOUNTREASON as HDISCOUNTREASON,a.FDEFDISCOUNTLISTID as HDEFDISCOUNTLISTID, |
| | | o.FNUMBER as HOrganNumber |
| | | from T_PUR_DISCOUNTLIST a with(nolock) |
| | | left join T_ORG_Organizations o with(nolock) on a.FCREATEORGID=o.FORGID |
| | | Where a.FID={id} |
| | | "; |
| | | LogService.Write("折扣表:" + sql); |
| | | 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(); |
| | | |
| | | // JArray array = new JArray(); |
| | | // foreach(DataRow dr in dt.Rows) |
| | | // { |
| | | // JObject fentrymodel = new JObject(); |
| | | // foreach (DataColumn column in dt.Columns) |
| | | // { |
| | | // fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | // } |
| | | // array.Add(fentrymodel); |
| | | // } |
| | | // 主表 |
| | | JObject model = new JObject(); |
| | | DataRow maindr = dt.Rows[0]; |
| | | foreach (DataColumn column in dt.Columns) |
| | | { |
| | | model.Add(column.ColumnName, maindr[column.ColumnName].ToString()); |
| | | } |
| | | // model.Add("FENTRY", array); |
| | | |
| | | JObject _jsonRoot = new JObject() |
| | | { |
| | | ["model"] = model |
| | | }; |
| | | LogService.Write("折扣表同步" + model); |
| | | var client = new RestSharp.RestClient(http); |
| | | var requestPost = new RestRequest("Gy_DiscountList/SaveGy_DiscountListApi", 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_DiscountList/SaveGy_DiscountListApi"); |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | 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_RealessOperatorGroup : 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) |
| | | { |
| | | LogService.Write(billObj.ToString()); |
| | | var id = billObj["Id"].ToString(); |
| | | string sql =string.Empty; |
| | | sql = $@" |
| | | /*dialect*/ |
| | | select |
| | | b.FENTRYID HItemID, b.FNumber HNumber, c.FName Hname, b.FNumber HShortNumber, |
| | | 0 HParentID, 1 HLevel, 1 HEndFlag,0 HStopFlag, 'CLD导入' HRemark, |
| | | '' HHelpCode, |
| | | '已使用' HUseFlag, |
| | | b.FBIZORGID HUSEORGID, a.FOPERATORGROUPID HOperatorGroupID, |
| | | a.FOPERATORGROUPTYPE HOperatorGroupType, b.FISUSE HIsUse, |
| | | o.FNUMBER as HOrganNumber |
| | | from T_BD_OPERATORGROUP a |
| | | inner join T_BD_OPERATORGROUPENTRY b on a.FOPERATORGROUPID = b.FOPERATORGROUPID |
| | | inner join T_BD_OPERATORGROUPENTRY_L c on b.FENTRYID = c.FEntryID |
| | | left join T_ORG_Organizations o with(nolock) on b.FBIZORGID =o.FORGID |
| | | Where a.FOPERATORGROUPID={id} |
| | | "; |
| | | LogService.Write("业务组:" + sql); |
| | | 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(); |
| | | |
| | | JArray array = new JArray(); |
| | | foreach(DataRow dr in dt.Rows) |
| | | { |
| | | JObject fentrymodel = new JObject(); |
| | | foreach (DataColumn column in dt.Columns) |
| | | { |
| | | fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | } |
| | | array.Add(fentrymodel); |
| | | } |
| | | JObject model = new JObject(); |
| | | model.Add("FENTRY", array); |
| | | |
| | | JObject _jsonRoot = new JObject() |
| | | { |
| | | ["model"] = model |
| | | }; |
| | | LogService.Write("业务组同步" + model); |
| | | var client = new RestSharp.RestClient(http); |
| | | var requestPost = new RestRequest("Gy_OperatorGroup/SaveGy_OperatorGroupListApi", 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_OperatorGroup/SaveGy_OperatorGroupListApi"); |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <Compile Include="LogService.cs" /> |
| | | <Compile Include="OperationService\zymes_MOCHANGE.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessCurrency.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessAssistantDataEntry.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessDiscount.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessOperatorGroup.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessPurPrice.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessOperator.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessUnitConvertRate.cs" /> |