From 002dbe140bd557542fd3c840a91c045959b901ec Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期四, 09 三月 2023 18:24:33 +0800
Subject: [PATCH] 发货通知单,收货方联系人 审核同步插件
---
zymes/OperationService/zymes_RealessCustomer.cs | 24 +++++
zymes/OperationService/zymes_RealessSalSeOutStock.cs | 156 +++++++++++++++++++++++++++++++++++++++
zymes/zymes_Project.csproj | 1
3 files changed, 180 insertions(+), 1 deletions(-)
diff --git a/zymes/OperationService/zymes_RealessCustomer.cs b/zymes/OperationService/zymes_RealessCustomer.cs
index ec16b67..c530b50 100644
--- a/zymes/OperationService/zymes_RealessCustomer.cs
+++ b/zymes/OperationService/zymes_RealessCustomer.cs
@@ -65,16 +65,27 @@
from T_BD_CUSTLOCATION a with(nolock)
--inner join T_BD_CUSTLOCATION_L l with(nolock) on a.FID=l.FID and FLOCALEID=2052
Where a.FCUSTID= {id}
+
+select a.FCONTACTID as HItemID, a.FNUMBER as HNumber, l.FNAME as HName, a.FNUMBER as HShortNumber, 0 as HParentID,
+1 as HLevel, 'true' as HEndFlag, case when a.FFORBIDSTATUS='A' then 'false' else 'true' end as HStopflag,
+'CLD-ERP瀵煎叆' as HRemark, '' as HHelpCode, '鏈娴�' as HUseFlag, a.FCREATEDATE as HMakeTime, a.FCREATORID as HMakeEmp,
+'' as HCheckEmp, getdate() as HCheckTime, a.FMODIFIERID as HModifyEmp, a.FMODIFYDATE as HModifyTime, '' as HStopEmp,
+getdate() as HStopTime, 0 as HUSEORGID, 0 as HCREATEORGID
+from T_BD_COMMONCONTACT a with(nolock)
+inner join T_BD_COMMONCONTACT_L l with(nolock) on a.FCONTACTID = l.FCONTACTID and l.FLOCALEID = 2052
+where a.FCUSTID = {id}
";
DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
DataTable maindt = ds.Tables[0];//瀹㈡埛淇℃伅
DataTable subdt = ds.Tables[1];//瀹㈡埛_浜よ揣鍦扮偣
+ DataTable subcontact = ds.Tables[2];//瀹㈡埛_鏀惰揣鏂硅仈绯讳汉
+
if (maindt.Rows.Count == 0)
{
LogService.Write("瀹㈡埛鍚屾寮傚父锛�" + sql);
continue;
}
- JArray array = new JArray();//鏄庣粏琛�
+ JArray array = new JArray();//鏄庣粏琛╛浜よ揣鍦扮偣
foreach (DataRow dr in subdt.Rows)
{
JObject fentrymodel = new JObject();
@@ -84,6 +95,16 @@
}
array.Add(fentrymodel);
}
+ JArray arrcontact = new JArray();//鏄庣粏琛╛鏀惰揣鏂硅仈绯讳汉
+ foreach (DataRow dr in subcontact.Rows)
+ {
+ JObject fentrycontact = new JObject();
+ foreach (DataColumn column in subcontact.Columns)
+ {
+ fentrycontact.Add(column.ColumnName, dr[column.ColumnName].ToString());
+ }
+ array.Add(fentrycontact);
+ }
JObject model = new JObject();//涓昏〃
DataRow maindr = maindt.Rows[0];
foreach (DataColumn column in maindt.Columns)
@@ -91,6 +112,7 @@
model.Add(column.ColumnName, maindr[column.ColumnName].ToString());
}
model.Add("HCustLocationEntry", array);
+ model.Add("HCustContactEntry", arrcontact);
JObject jsonRoot = new JObject()
{
["model"] = model
diff --git a/zymes/OperationService/zymes_RealessSalSeOutStock.cs b/zymes/OperationService/zymes_RealessSalSeOutStock.cs
new file mode 100644
index 0000000..5f29710
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessSalSeOutStock.cs
@@ -0,0 +1,156 @@
+锘縰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_RealessSalSeOutStock : 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 forgName = Context.CurrentOrganizationInfo.Name;
+ //if (!forgName.Contains("鏉窞鏂帿灏旂鎬ф潗鏂欐湁闄愬叕鍙�"))
+ // continue;
+ //var sql = $"exec zymes_RealessPurPoorder {billObj["Id"]} ";
+ var id = billObj["Id"].ToString();
+ string sql = string.Empty;
+ sql = $@"
+/*dialect*/
+select a.FID HInterID, a.FENTRYID HEntryID, a.FMATERIALID HMaterID, a.FUNITID HUnitID,
+a.FQTY HQty, isnull(f.FPRICE,0) HPrice, isnull(f.FAMOUNT,0) HMoney, 0 HWHID, 0 HSPID,
+a.FNOTE HRemark, 0 HSourceInterID, 0 HSourceEntryID, '' HSourceBillNo, '' HSourceBillType,
+0 HSeOrderInterID, 0 HSeOrderEntryID, '' HSeOrderBillNo, e.FOWNERID HOWNERID, e.FOWNERTYPEID HOWNERTYPEID,
+fin.FSETTLEORGID HSETTLEORGID, a.FSUMOUTQTY HMoveStockQty, a.FJOINOUTQTY HRelationQty, a.FAUXPROPID HAuxPropID,
+'' HBatchNO, a.FMTONO HMTONo, a.FID HERPInterID, a.FEntryID HERPEntryID, a.FCUSTMATID HCUSTMATID,
+a.FBASEUNITID HBASEUNITID, a.FBFLOWID HBFLOWID, a.FOUTCONTROL HOUTCONTROL, 0 HSTOCKUNITID,
+e.FROWID HROWTYPE, e.FROWID HROWID, e.FPARENTROWID HPARENTROWID, isnull(e.FPARENTMATID,0) HPARENTMATID,
+isnull(f.FTAXCOMBINATION,0) HTAXCOMBINATION, isnull(f.FPRICECOEFFICIENT,0) HPRICECOEFFICIENT, isnull(f.FSYSPRICE,0) HSYSPRICE,
+isnull(f.FLIMITDOWNPRICE,0) HLIMITDOWNPRICE, isnull(f.FPRICEUNITID,0) HPRICEUNITID, isnull(f.FTAXPRICE,0) HTAXPRICE,
+isnull(f.FTAXRATE,0) HTAXRATE, isnull(f.FTAXNETPRICE,0) HTAXNETPRICE, isnull(f.FDISCOUNTRATE,0) HDISCOUNTRATE,
+isnull(f.FISFREE,0) HISFREE, isnull(fin.FLOCALCURRID,0) HLOCALCURRID, isnull(fin.FSETTLECURRID,0) HSETTLECURRID,
+isnull(fin.FEXCHANGETYPEID,0) HEXCHANGETYPEID, isnull(fin.FSETTLETYPEID,0) HSETTLETYPEID, isnull(fin.FRECEIPTCONDITIONID,0) HRECEIPTCONDITIONID,
+isnull(fin.FEXCHANGERATE,0) HEXCHANGERATE, isnull(fin.FISINCLUDEDTAX,0) HISINCLUDEDTAX, isnull(fin.FISPRICEEXCLUDETAX,0) HISPRICEEXCLUDETAX,
+isnull(tax.FTAXRATEID,0) HTAXRATEID, 0 HTaxRate_TAX, isnull(tax.FCOSTPERCENT,0) HCOSTPERCENT, isnull(tax.FVAT,0) HVAT,
+isnull(tax.FSELLERWITHHOLDING,0) HSELLERWITHHOLDING, isnull(tax.FBUYERWITHHOLDING,0) HBUYERWITHHOLDING
+from T_SAL_DELIVERYNOTICEENTRY a with(nolock)
+left join T_SAL_DELIVERYNOTICEENTRY_F f with(nolock) on a.FENTRYID = f.FENTRYID
+left join T_SAL_DELIVERYNOTICEENTRY_E e with(nolock) on a.FENTRYID = e.FENTRYID
+left join T_SAL_DELIVERYNOTICEFIN fin with(nolock) on a.FENTRYID = fin.FENTRYID
+left join T_SAL_DELIVERYNOTICEENTRYTAX tax with(nolock) on a.FENTRYID = tax.FENTRYID
+Where a.FID={id}
+select FID as HInterID, YEAR(FDATE) as HYear, MONTH(FDATE) as HPeriod, '1402' HBillType, '1402' HBillSubType,
+FDATE as HDate, FBILLNO as HBillNo, case when FAPPROVERID=0 then 1 else 2 end HBillStatus, FCUSTOMERID as HCusID,
+0 HManagerID, FSALEDEPTID as HDeptID, 'CLOUD瀵煎叆' as HRemark, FRECEIVEADDRESS as HAddress, 0 HSSID, 0 HCurID,
+0 HWHID, 0 HExRate, 0 HEmpID, 'CLOUD瀵煎叆' as HExplanation, FBILLNO as HInnerBillNo, FSALEORGID as HSALEORGID,
+FDELIVERYORGID as HDELIVERYORGID, FOWNERID as HOWNERID, FOWNERTYPEID as HOWNERTYPEID, FID as HERPInterID,
+FBILLTYPEID as HERPBillType, FCREATORID as HMaker, FCREATEDATE as HMakeDate, FAPPROVERID as HChecker,
+FAPPROVEDATE as HCheckDate, FCLOSERID as HCloseMan, FCLOSEDATE as HCloseDate, FSTOCKERGROUPID as HSTOCKERGROUPID,
+FSALEGROUPID as HSALEGROUPID, FSALEDEPTID as HSALEDEPTID, FBUSINESSTYPE as HBUSINESSTYPE, FCARRIERID as HCARRIERID,
+FRECEIVERID as HRECEIVERID, FSETTLEID as HSETTLEID, FPAYERID as HPAYERID,FHEADLOCID as HHEADLOCID, FRECCONTACTID as HRECCONTACTID,
+FRECEIPTCONDITIONID as HRECEIPTCONDITIONID, FCORRESPONDORGID as HCORRESPONDORGID, FCARRIAGENO as HCARRIAGENO
+from T_SAL_DELIVERYNOTICE with(nolock)
+Where FID={id}
+";
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+ DataTable maindt = ds.Tables[1];
+ DataTable subdt = ds.Tables[0];
+ if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0)
+ {
+ LogService.Write("鍙戣揣閫氱煡鍗曞悓姝ュ紓甯革細" + sql);
+ continue;
+ }
+ JArray array = new JArray();//鏄庣粏琛�
+ foreach (DataRow dr in subdt.Rows)
+ {
+ JObject fentrymodel = new JObject();
+ foreach (DataColumn column in subdt.Columns)
+ {
+ fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString());
+ }
+ array.Add(fentrymodel);
+ }
+ JObject model = new JObject();//涓昏〃
+ DataRow maindr = maindt.Rows[0];
+ foreach (DataColumn column in maindt.Columns)
+ {
+ model.Add(column.ColumnName, maindr[column.ColumnName].ToString());
+ }
+ model.Add("HENTRY", array);
+ JObject jsonRoot = new JObject()
+ {
+ ["model"] = model
+ };
+ LogService.Write("鍙戣揣閫氱煡鍗曞悓姝ョず渚�" + JsonConvert.SerializeObject(jsonRoot));
+ string clientUrl = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "ClientUrl");//K/3 Cloud 涓氬姟绔欑偣鍦板潃
+ var client = new RestSharp.RestClient(clientUrl);
+ //鏂板
+ var requestPost = new RestRequest("Xs_SeOutStockBill/Xs_SeOutStockBillSaveApi", 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"] + "," + contentPost);
+ LogService.Write("鍙戣揣閫氱煡鍗曞悓姝ュ紓甯�,POST," + clientUrl + "Xs_SeOutStockBill/Xs_SeOutStockBillSaveApi");
+ 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 b717a36..b8bddbb 100644
--- a/zymes/zymes_Project.csproj
+++ b/zymes/zymes_Project.csproj
@@ -137,6 +137,7 @@
<Compile Include="OperationService\zymes_RealessPrdPpbom.cs" />
<Compile Include="OperationService\zymes_RealessBillType.cs" />
<Compile Include="OperationService\zymes_RealessMatePriceSup.cs" />
+ <Compile Include="OperationService\zymes_RealessSalSeOutStock.cs" />
<Compile Include="OperationService\zymes_RealessSettleStyle.cs" />
<Compile Include="OperationService\zymes_RealessRecCondition.cs" />
<Compile Include="OperationService\zymes_RealessStock.cs" />
--
Gitblit v1.9.1