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