From c21409a7b5e4dfe355e01fe0e1748766d3032ce9 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期一, 20 十月 2025 22:35:55 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/simoer_jiekou
---
zymes/OperationService/zymes_RealessSeOutStockBack.cs | 187 ++++++++++++
zymes/OperationService/zymes_RealessWW_PPBomBill.cs | 167 +++++++++++
zymes/OperationService/zymes_RealessProperty.cs | 146 +++++++++
zymes/OperationService/zymes_RealessEntrustOrderBill.cs | 217 ++++++++++++++
zymes/OperationService/zymes_RealessSellOut.cs | 163 ++++++++++
zymes/zymes_Project.csproj | 5
6 files changed, 885 insertions(+), 0 deletions(-)
diff --git a/zymes/OperationService/zymes_RealessEntrustOrderBill.cs b/zymes/OperationService/zymes_RealessEntrustOrderBill.cs
new file mode 100644
index 0000000..cf82ec5
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessEntrustOrderBill.cs
@@ -0,0 +1,217 @@
+锘縰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_RealessEntrustOrderBill : 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");
+ e.FieldKeys.Add("OrderEntity");
+ e.FieldKeys.Add("OrderEntity_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;
+ LogService.Write("寮�濮嬪悓姝�");
+ var id = billObj["Id"].ToString();
+ LogService.Write($"id涓簕id}");
+ string sql = string.Empty;
+ sql = $@"
+ /*dialect*/
+ select a.FID HInterID,a.FENTRYID HEntryID,a.FMATERIALID HMaterID,isnull(a.FUnitID,0) HUnitID,a.FQTY HQty
+ ,0 HPrice,0 HTaxPrice,0 HDiscountRate,0 HRelTaxPrice
+ ,0 HMoney,0 HTaxRate,0 HTaxMoney,0 HLineTotal,0 HlineTotalBB,getdate() HDate,0 HInStockQty, 0 HInvoiceQty
+ ,isnull(aa.FSALEORDERNO,'') HSeOrderBillNo,isnull(aa.FSALEORDERID,0) HSeOrderInterID,isnull(aa.FSALEORDERENTRYID,0) HSeOrderEntryID
+ ,isnull(aa.FSRCBILLID,0) HSourceInterID,isnull(aa.FSRCBILLENTRYID,0) HSourceEntryID,isnull(aa.FSRCBILLNO,'') HSourceBillNo,'' HSourceBillType
+ ,0 HRelationQty,'' HBatChNo,isnull(a.FAUXPROPID,0) HAuxPropID,isnull(a.FMTONo,'') HMTONo,'' HPlanMode,'CLOUD瀵煎叆' HRemark
+ ,a.FID HERPInterID,a.FEntryID HERPEntryID,isnull(a.FBOMID,0) HBomID,isnull(a.FSTOCKID,0) HWhID,0 HSPID
+ ,isnull(aa.FPURORDERNO,'') HPOORderBillNo,isnull(aa.FPURORDERENTRYSEQ,0) HPOOrderSEQ
+ from T_SUB_REQORDERENTRY a with(nolock)
+ inner join T_SUB_REQORDERENTRY_A aa with(nolock) on a.FID=aa.FID and a.FENTRYID=aa.FENTRYID
+ where a.FID={id}
+
+ select a.FID HInterID,year(a.FDate) HYear,month(a.FDate) HPeriod,'1601' HBillType,'1601' HBillSubType,a.FDate HDate
+ ,a.FBillNo HBillNo ,case when isnull(a.FAPPROVERID,0)=0 then 1 else 2 end HBillStatus
+ ,'' HAddress,0 HSSID,a.FDATE HSSDate,0 HSupID,0 HCurID
+ ,0 HExRate,0 HEmpID,0 HManagerID,0 HDeptID,'' HExplanation,'CLOUD瀵煎叆' HRemark,a.FBillNo HInnerBillNo
+ ,isnull(us1.FNAME,'') HMaker,a.FCREATEDATE HMakeDate,isnull(us2.FNAME,'') HChecker,a.FAPPROVEDATE HCheckDate
+ ,isnull(us3.FNAME,'') HUpDater,a.FMODIFYDATE HUpDateDate,isnull(us4.FNAME,'') HDeleteMan,a.FCANCELDATE HDeleteDate
+ ,a.FID HERPInterID,isnull(a.FBILLTYPE,'') HERPBillType,isnull(a.FSUBORGID,0) HSUBORGID,oo.FNUMBER
+ from T_SUB_REQORDER a with(nolock)
+ 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_SEC_user us4 with(nolock) on a.FCANCELER=us4.FUSERID
+ left join T_ORG_Organizations oo on oo.FORGID=a.FSUBORGID
+ where a.FID={id}
+
+ select a.FID HInterID,a.FEntryID,a.FMATERIALID,a.FUnitID,a.FNEEDQTY,a.FNEEDQTY,isnull(C.FStockID,0),isnull(pl.FMEMO,'')
+ ,a.FSUBREQID HSourceInterID,a.FSUBREQENTRYID HSourceEntryID,isnull(a.FSUBREQBILLNO,'') HSourceBillNo,'' HSourceBillType
+ ,0 HICMOInterID,0 HICMOEntryID,'' HICMOBillNo
+ ,isnull(C.FCHILDSUPPLYORGID,0),isnull(C.FSUPPLYORG,0),isnull(C.FGROUPBYOWNERID,0),isnull(C.FSRCTRANSORGID,0),isnull(C.FGROUPBYOWNERID,0),isnull(C.FOWNERID,0),isnull(C.FOWNERTYPEID,'')
+ ,q.FSELPICKEDQTY-q.FSELPRCDRETURNQTY,q.FSELTRANSLATEQTY,isnull(a.FAUXPROPID,0),isnull(C.FLOT_TEXT,''),isnull(a.FMTONo,''),0,a.FID,a.FEntryID
+ ,q.FSELPICKEDQTY-q.FSELPRCDRETURNQTY
+ ,isnull(a.FPROCESSID,0),isnull(a.FBASEUNITID,0),isnull(a.FPROJECTNO,''),isnull(a.FOPERID,0),isnull(a.FSEQ,0)
+ ,isnull(c.FSTOCKSTATUSID,0),isnull(c.FRESERVETYPE,'')
+ from T_SUB_PPBOMEntry a with(nolock)
+ inner join T_SUB_PPBOMENTRY_C C with(nolock) on A.FENTRYID=C.FENTRYID
+ inner join T_SUB_PPBOMENTRY_Q Q with(nolock) on A.FENTRYID=Q.FENTRYID
+ left join T_SUB_PPBOMENTRY_L pl with(nolock) on pl.FENTRYID=a.FENTRYID and pl.FLOCALEID=2052
+ left join T_SUB_PPBOMENTRY_LK l with(nolock) on a.FENTRYID=l.FENTRYID
+ where a.FID={id}
+
+
+
+
+ select a.FID HInterID,year(a.FCREATEDate),month(a.FCREATEDate),'1604','1604',a.FCREATEDate
+ ,a.FbillNo,case when isnull(a.FAPPROVERID,0)=0 then 1 else 2 end HBillStatus,a.FSUBREQID,a.FSUBREQENTRYID,isnull(a.FSUBBILLNO,''),a.FSUBREQENTRYSEQ
+ ,a.FMATERIALID,a.FUNITID,a.FQTY,isnull(a.FSUPPLIERID,0),0 HDEPTID
+ ,isnull(us1.FNAME,''),a.FCREATEDATE,isnull(us2.FNAME,''),a.FAPPROVEDATE,isnull(us3.FNAME,''),a.FMODIFYDATE
+ ,isnull(a.FSALEORDERNO,''),isnull(a.FSALEORDERID,0),isnull(a.FSALEORDERENTRYID,0),isnull(a.FSALEORDERENTRYSEQ,0)
+ ,a.FSUBORGID,a.FSUBORGID,isnull(a.FPARENTOWNERID,0),isnull(a.FPARENTOWNERTYPEID,'')
+ ,a.FID,'WWPPBOM' HERPBillType,isnull(a.FSETTLEORGID,0),isnull(a.FREQSRC,'')
+ from T_SUB_PPBOM a with(nolock)
+ 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
+ where a.FID={id}
+";
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+ DataTable maindt = ds.Tables[1];
+ DataTable subdt = ds.Tables[0];
+ DataTable mainOrder = ds.Tables[3];//鐢ㄦ枡娓呭崟涓昏〃
+ DataTable mainOrdersub = ds.Tables[2];//鐢ㄦ枡娓呭崟瀛愯〃
+ if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0 || mainOrder.Rows.Count == 0 )
+ {
+ LogService.Write("濮斿璁㈠崟鍚屾寮傚父锛�" + sql);
+ LogService.Write($"濮斿涓昏〃{maindt.Rows.Count}锛屽澶栧瓙琛▄subdt.Rows.Count}锛岀敤鏂欎富{mainOrder.Rows.Count}锛岀敤鏂欏瓙{mainOrdersub.Rows.Count}" );
+ continue;
+ }
+ LogService.Write($"濮斿涓昏〃{maindt.Rows.Count}锛屽澶栧瓙琛▄subdt.Rows.Count}锛岀敤鏂欎富{mainOrder.Rows.Count}锛岀敤鏂欏瓙{mainOrdersub.Rows.Count}");
+ //鑾峰彇鍒涘缓濮斿璁㈠崟鐨勪娇鐢ㄧ粍缁�
+ DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.Rows[0]["FNUMBER"].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 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);
+
+
+ JArray ppbomArray = new JArray();
+ foreach (DataRow dr in mainOrdersub.Rows)
+ {
+ JObject fentrymodel = new JObject();
+ foreach (DataColumn column in mainOrdersub.Columns)
+ {
+ fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString());
+ }
+ ppbomArray.Add(fentrymodel);
+ }
+ // 鏋勫缓鐢ㄦ枡娓呭崟涓昏〃
+ JObject ppbomModel = new JObject();
+ DataRow ppbomMainDr = mainOrder.Rows[0];
+ foreach (DataColumn column in mainOrder.Columns)
+ {
+ ppbomModel.Add(column.ColumnName, ppbomMainDr[column.ColumnName].ToString());
+ }
+ ppbomModel.Add("HENTRY", ppbomArray);
+ JObject jsonRoot = new JObject()
+ {
+ ["model"] = model,
+ ["ppbomModel"] = ppbomModel
+ };
+ LogService.Write("鍙戦�佺殑JSON鏁版嵁: " + JsonConvert.SerializeObject(jsonRoot));
+ // 鏋勫缓鐢ㄦ枡娓呭崟鏄庣粏琛�
+
+
+ var client = new RestSharp.RestClient(http);
+ //鏂板
+ var requestPost = new RestRequest("WW_EntrustOrderBill/SaveWW_EntrustOrderBillListApi", 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," + "Cg_POOrderBill/Cg_POOrderBillSaveApi");
+ 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/OperationService/zymes_RealessProperty.cs b/zymes/OperationService/zymes_RealessProperty.cs
new file mode 100644
index 0000000..2c97063
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessProperty.cs
@@ -0,0 +1,146 @@
+锘縰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_RealessProperty : 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");//鑾峰彇鏄庣粏淇℃伅
+
+ LogService.Write("杩涘叆杈呭姪灞炴�т繚瀛樻柟娉�");
+ //todo 閲戣澏琛ㄤ腑娌℃湁缁勭粐瀛楁锛屽敮涓�鐨勭粍缁囧瓧娈靛湪T_BAS_ASSISTANTDATAENTRY涓紝鐒跺悗涓嶅尮閰嶏紝鐜板湪鏆傛椂瀹氱殑100038鏉ヨ幏鍙朅PI鐨勮矾寰勫湴鍧�
+ //瀛愯〃鎻掑叆
+ foreach (var billObj in e.DataEntitys)
+ {
+ var forgName = Context.CurrentOrganizationInfo.Name;
+ var id = billObj["Id"].ToString();
+ string sql = string.Empty;
+ LogService.Write($"id涓簕id}");
+ sql = $@"
+ select DISTINCT f.FID as HItemID,a.FNUMBER as HNumber,a.FNUMBER HShortNumber,b.FDATAVALUE as HName,0 as HParentID
+ ,1 as HLevel,1 as HEndFlag,case when a.FFORBIDSTATUS='A' then 0 else 1 end HStopflag,'CLD-ERP瀵煎叆' as HRemark,'宸蹭娇鐢�' HUseFlag,getdate() as HMakeTime,100038 as HUSEORGID,100038 HCREATEORGID,0 HPropertyTypeID,'' as HHelpCode,f.FID HERPItemID,oo.FORGFORMID
+ from T_BD_FLEXAUXPROPERTY p with(nolock)
+ inner join T_BAS_ASSISTANTDATAENTRY a with(nolock) on p.FVALUESOURCE=a.FID
+ inner join T_BAS_ASSISTANTDATAENTRY_L b with(nolock) on a.FENTRYID=b.FENTRYID
+ inner join (select distinct min(FID) FID,FF100002 from T_BD_FLEXSITEMDETAILV with(nolock) group by FF100002) as f on a.FENTRYID=f.FF100002
+ left join T_ORG_Organizations oo on oo.FORGID='100038'
+ left JOIN T_BD_FLEXAUXPROPERTYENTITY tb on tb.FID=f.FID
+ where b.FLOCALEID=2052
+ and a.FFORBIDSTATUS='A' and tb.FENTRYID={id}
+ select DISTINCT b.FENTRYID HItemID ,b.FENTRYID HERPItemID, f.FID HAuxpuID,a.FMATERIALID HMaterID,b.FISDEFAULT HISDefault,b.FISDISABLE HStopflag,b.FDISPLAYSEQ HSno
+ from T_BD_AUXPTYVALUE a with(nolock)
+ inner join T_BD_AUXPTYVALUEENTITY b with(nolock) on a.FAUXPTYVALUEID=b.FAUXPTYVALUEID
+ inner join T_BD_FLEXSITEMDETAILV f with(nolock) on b.FAUXPTYID=f.FF100002
+ left JOIN T_BD_FLEXAUXPROPERTYENTITY tb on tb.FID=f.FID
+ where tb.FENTRYID={id}
+ ";
+ // Where f.FID = {id} Where f.FID = {id}
+ DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+ DataTable dtDetail = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[1];
+
+ if (dt.Rows.Count == 0)
+ {
+ LogService.Write("杈呭姪灞炴�у悓姝ュ紓甯革細" + sql);
+ continue;
+ }
+
+ //鑾峰彇杈呭姪灞炴�х殑浣跨敤缁勭粐
+ //DataTable dataTable = LogService.Get_DisPlayOrg(Context, dt.Rows[0]["FORGFORMID"].ToString());
+ DataTable dataTable = LogService.Get_DisPlayOrg(Context, "101.2");
+ if (dataTable.Rows.Count == 0)
+ continue;
+
+ if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
+ continue;
+
+ if (dataTable.Rows.Count == 0 || dataTable.Rows[0]["F_RCZU_MesIp"] == null || string.IsNullOrEmpty(dataTable.Rows[0]["F_RCZU_MesIp"].ToString()))
+ {
+ LogService.Write("MES IP鍦板潃閰嶇疆涓虹┖鎴栦笉瀛樺湪");
+ continue;
+ }
+ string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
+ LogService.Write($"MES IP鍦板潃閰嶇疆: {http}");
+ LogService.Write("缁勭粐杩囨护宸茶繃");
+ 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);
+ LogService.Write("杩涘叆api");
+ var requestPost = new RestRequest("Gy_Property/SaveGy_PropertyListApi", 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_Property/SaveGy_PropertyListApi");
+ 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/OperationService/zymes_RealessSeOutStockBack.cs b/zymes/OperationService/zymes_RealessSeOutStockBack.cs
new file mode 100644
index 0000000..0ee16e9
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessSeOutStockBack.cs
@@ -0,0 +1,187 @@
+锘縰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_RealessSeOutStockBack : 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 id = billObj["Id"].ToString();
+ LogService.Write("閫�璐ч�氱煡鍗曞悓姝d锛�" + id);
+ string sql = string.Empty;
+ sql = $@"
+ /*dialect*/
+ select
+ a.FID as HInterID,year(a.FDate) as HYear,month(a.FDate) as HPeriod,
+ '1403' as HBillType,'1403' as HBillSubType,a.FDate as HDate,a.FbillNo as HBillNo,
+ case when isnull(a.FAPPROVERID,0)=0 then 1 else 2 end as HBillStatus,
+ a.FRETCUSTID as HCusID,a.FSTOCKERID as HManagerID,
+ isnull(a.FSALEDEPTID,0) as HDeptID,'CLD瀵煎叆' as HRemark,
+ a.FRECEIVEADDRESS as HAddress,0 as HSSID,0 as HCurID,0 as HWHID,1 as HExRate,
+ a.FSALESMANID as HEmpID,'' as HExplanation,'' as HInnerBillNo,a.FSALEORGID as HSALEORGID,
+ a.FRETORGID as HDELIVERYORGID,isnull(a.FOWNERID,0) as HOWNERID,isnull(a.FOWNERTYPEID,'') as HOWNERTYPEID,
+ isnull(us1.FNAME,'') as HMaker,a.FCREATEDATE as HMakeDate,
+ isnull(us2.FNAME,'') as HChecker,a.FAPPROVEDATE as HCheckDate,
+ isnull(us3.FNAME,'') as HUpDater,a.FMODIFYDATE as HUpDateDate,
+ isnull(us4.FNAME,'') as HDeleteMan,a.FCANCELDATE as HDeleteDate,
+ a.FID as HERPInterID,a.FBILLTYPEID as HERPBillType,a.FSETTLECUSID as HSETTLECUSID,
+ a.FPAYCUSID as HPAYCUSID,a.FRECEIVECUSID as HRECEIVECUSID,a.FSALEGROUPID as HSALEGROUPID,
+ a.FHEADLOCID as HHEADLOCID,a.FRECCONTACTID as HRECCONTACTID,a.FRETURNREASON as HRETURNREASON,
+ a.FRETDEPTID as HRETDEPTID,a.FDESCRIPTION as HDESCRIPTION,a.FBUSINESSTYPE as HBUSINESSTYPE,o.FNUMBER HOrganNumber
+ from T_SAL_RETURNNOTICE a with(nolock)
+ left join T_ORG_Organizations o with (nolock) on a.FSALEORGID = o.FORGID
+ 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_SEC_user us4 with(nolock) on a.FCANCELLERID=us4.FUSERID
+ where a.FID={id}
+ select
+ a.FID as HInterID,a.FEntryID as HEntryID,a.FMATERIALID as HMaterID,a.FUnitID as HUnitID,
+ a.FQty as HQty,isnull(f.FPRICE,0) as HPrice,0 as HMoney,0 as HTaxMoney,
+ isnull(f.FTAXPRICE,0) as HTaxPrice,isnull(a.FSTOCKID,0) as HWHID,'CLOUD瀵煎叆' as HRemark,
+ isnull(L.FSBILLID,0) as HSourceInterID,isnull(L.FSID,0) as HSourceEntryID,isnull(a.FSRCBILLNO,'') as HSourceBillNo,
+ a.FSRCTYPE as HSourceBillType,0 as HSeOrderInterID,a.FSOENTRYID as HSeOrderEntryID,a.FORDERNO as HSeORderBillNo,
+ a.FOWNERID as HOWNERID,a.FOWNERTYPEID as HOWNERTYPEID,isnull(fin.FSETTLEORGID,0) as HSETTLEORGID,
+ a.FJOINRETQTY as HRelationQty,a.FAUXPROPID as HAuxPropID,a.FLot_TEXT as HBatchNO,isnull(a.FMTONo,'') as HMTONo,
+ a.FID as HERPInterID,a.FEntryID as HERPEntryID,a.FSOBILLTYPEID as HSOBILLTYPEID,a.FRMTYPE as HRMTYPE,
+ a.FSTOCKUNITID as HSTOCKUNITID,a.FBASEUNITID as HBASEUNITID,a.FDELIVERYDATE as HDELIVERYDATE,
+ a.FDESCRIPTION as HDESCRIPTION,isnull(a.FMAPID,'') as HMAPID,e.FPARENTMATID as HPARENTMATID,
+ case when e.FISRETURNCHECK is null then 'false'when e.FISRETURNCHECK = 1 then 'true' else 'false' end as HISRETURNCHECK,e.FROWTYPE as HROWTYPE,e.FROWID as HROWID,e.FPARENTROWID as HPARENTROWID,
+ isnull(f.FTAXCOMBINATION,0) as HTAXCOMBINATION,isnull(f.FPRICEUNITID,0) as HPRICEUNITID,
+ isnull(f.FTaxRate,0) as HTaxRate,isnull(f.FPRICECOEFFICIENT,0) as HPRICECOEFFICIENT,
+ isnull(f.FSYSPRICE,0) as HSYSPRICE,isnull(f.FLIMITDOWNPRICE,0) as HLIMITDOWNPRICE,
+ isnull(f.FDISCOUNTRATE,0) as HDISCOUNTRATE,case when f.FISFREE is null then 'false'when f.FISFREE = 1 then 'true' else 'false' end as HISFREE,
+ isnull(fin.FSETTLETYPEID,0) as HSETTLETYPEID,isnull(fin.FCHAGECONDITION,0) as HCHAGECONDITION,
+ isnull(fin.FSETTLECURRID,0) as HSETTLECURRID,isnull(fin.FLOCALCURRID,0) as HLOCALCURRID,
+ isnull(fin.FEXCHANGETYPEID,0) as HEXCHANGETYPEID,case when fin.FISINCLUDEDTAX is null then 'false'when fin.FISINCLUDEDTAX = 1 then 'true' else 'false' end as HISINCLUDEDTAX,
+ case when fin.FISPRICEEXCLUDETAX is null then 'false'when fin.FISPRICEEXCLUDETAX = 1 then 'true' else 'false' end as HISPRICEEXCLUDETAX,isnull(tax.FTAXRATEID,0) as HTAXRATEID,
+ isnull(tax.FTAXRATE,0) as HTaxRate_TAX,isnull(tax.FTAXAMOUNT,0) as HTAXAMOUNT_TAX,
+ isnull(tax.FCOSTPERCENT,0) as HCOSTPERCENT,isnull(tax.FCOSTAMOUNT,0) as HCOSTAMOUNT,
+ case when tax.FVAT is null then 'false'when tax.FVAT = 1 then 'true' else 'false' end as HVAT,
+ case when tax.FSELLERWITHHOLDING is null then 'false'when tax.FSELLERWITHHOLDING = 1 then 'true' else 'false' end as HSELLERWITHHOLDING,
+ case when tax.FBUYERWITHHOLDING is null then 'false'when tax.FBUYERWITHHOLDING = 1 then 'true' else 'false' end as HBUYERWITHHOLDING,a.FEXPUNIT as HEXPUNIT,
+ a.FEXPPERIOD as HEXPPERIOD,isnull(a.FPRODUCEDATE,'1900-01-01 00:00:00.000') as HProduceDate,isnull(a.FEXPIRYDATE,'1900-01-01 00:00:00.000') as HExpiryDate
+ from T_SAL_RETURNNOTICEENTRY a with(nolock)
+ inner join T_SAL_RETURNNOTICEENTRY_E e with(nolock) on a.FENTRYID=e.FENTRYID
+ left join T_SAL_RETURNNOTICEENTRY_F f with(nolock) on a.FID=f.FID and a.FENTRYID=f.FENTRYID
+ left join T_SAL_RETURNNOTICEENTRY_LK L with(nolock) on a.FENTRYID=L.FENTRYID
+ left join T_SAL_RETURNNOTICEFIN fin with(nolock) on a.FENTRYID=fin.FENTRYID
+ left join T_SAL_RETURNNOTICEENTRYTAX tax with(nolock) on a.FID=tax.FDETAILID and a.FENTRYID=tax.FENTRYID
+ where a.FID={id}
+ ";
+ LogService.Write("閫�璐ч�氱煡鍗曪細" + sql);
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+ DataTable maindt = ds.Tables[0];
+ DataTable subdt = ds.Tables[1];
+ if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0)
+ {
+ LogService.Write("閫�璐ч�氱煡鍗曞悓姝ュ紓甯革細" + sql);
+ continue;
+ }
+
+ //鑾峰彇鍒涘缓閿�鍞鍗曠殑浣跨敤缁勭粐
+ DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.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 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("閫�璐ч�氱煡鍗曞悓姝ユ暟鎹細" + model);
+ var client = new RestSharp.RestClient(http);
+ //鏂板
+ var requestPost = new RestRequest("Xs_SeOutStockBackBill/SaveXs_SeOutStockBackBillApi", 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," + "Xs_SeOutStockBackBill/SaveXs_SeOutStockBackBillApi");
+ 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/OperationService/zymes_RealessSellOut.cs b/zymes/OperationService/zymes_RealessSellOut.cs
new file mode 100644
index 0000000..27fcacc
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessSellOut.cs
@@ -0,0 +1,163 @@
+锘縰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_RealessSellOut : 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 id = billObj["Id"].ToString();
+ LogService.Write("閿�鍞嚭搴撳崟鍚屾id锛�" + id);
+ string sql = string.Empty;
+ sql = $@"
+ /*dialect*/
+ select a.FID as HInterID,year(a.FDATE) as HYear,month(a.FDATE) as HPeriod,a.FBILLNO as HBillNo,'1205' as HBillType,
+ '1205' as HBillSubType,'' as HMainSourceBillType,a.FDATE as HDate,a.FCustomerID as HSupID,0 as HWHID,
+ 0 as HSCWHID,0 as HEmpID,0 as HManagerID,0 as HSecManagerID,isnull(a.FSTOCKERID, 0) as HKeeperID,
+ isnull(a.FDeliveryDeptID, 0) as HDeptID,0 as HCurID,'' as HSeOrderBillNo,'CLD瀵煎叆' as HExplanation,'' as HRemark,
+ '' as HInnerBillNo,'false' as HRedBlueFlag,case when a.FAPPROVERID = 0 then 1 else 2 end as HBillStatus,
+ isnull(us1.FNAME, '') as HMaker,a.FCREATEDATE as HMakeDate,isnull(us2.FNAME, '') as HChecker,
+ a.FAPPROVEDATE as HCheckDate,isnull(us3.FNAME, '') as HUpDater,a.FMODIFYDATE as HUpDateDate,
+ isnull(us4.FNAME, '') as HDeleteMan,a.FCANCELDATE as HDeleteDate,isnull(a.FOWNERID, 0) as HOWNERID,
+ a.FOWNERTYPEID as HOWNERTYPEID,a.FID as HERPInterID,a.FBillTypeID as HERPBillType,a.FBILLNO as HERPBillNo,
+ isnull(FSALEORGID, 0) as HPRDORGID,isnull(a.FSTOCKORGID, 0) as HSTOCKORGID,o.FNUMBER HOrganNumber
+ from T_SAL_OUTSTOCK a with(nolock)
+ left join T_ORG_Organizations o with (nolock) on a.FSALEORGID = o.FORGID
+ 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_SEC_user us4 with(nolock) on a.FCANCELLERID = us4.FUSERID
+ where a.FID ={id}
+ select
+ a.FID as HInterID,a.FEntryID as HEntryID,a.FMTONO as HMTONo,0 as HPlanMode,'' as HRemark,'' as HExpressNumber,
+ a.FMATERIALID as HMaterID,isnull(a.FUNITID, 0) as HUnitID,a.FLOT_TEXT as HBatchNo,isnull(a.FAUXPROPID, 0) as HPropertyID,
+ isnull(a.FSTOCKID, 0) as HWHID,isnull(a.FSTOCKLOCID, 0) as HSPID,0 as HSCWHID,0 as HSCSPID,
+ a.FMustQty as HQtyMust,a.FRealQty as HQty,b.FPRICE as HPrice,b.FAMOUNT as HMoney,b.FPRICE as HTaxPrice,1 as HTaxRate,
+ b.FAMOUNT as HTaxMoney,c.FReturnQty as HRelationQty,0 as HRelationMoney,0 as HSourceInterID,0 as HSourceEntryID,
+ isnull(c.FSrcBillNo, '') as HSourceBillNo,'' as HSourceBillType,a.FID as HERPInterID,a.FEntryID as HERPEntryID,
+ '' as HERPBillNo_Sub,0 as HPOOrderInterID,0 as HPOOrderEntryID,'' as HPOOrderBillNo,0 as HSeOrderInterID,
+ isnull(c.FSOEntryId, 0) as HSeOrderEntryID,'' as HSeOrderBillNo,0 as HICMOInterID,0 as HICMOEntryID,'' as HICMOBillNo,
+ 0 as HWWOrderInterID,0 as HWWOrderEntryID,'' as HWWOrderBillNo,isnull(a.FPRODUCEDATE,'1900-01-01 00:00:00.000') as HProduceDate,
+ isnull(a.FEXPIRYDATE,'1900-01-01 00:00:00.000') as HExpiryDate,isnull(a.FOWNERID, 0) as HOWNERID,isnull(a.FOWNERTYPEID, '') as HOWNERTYPEID,
+ isnull(a.FKEEPERID, 0) as HKEEPERID,isnull(a.FKEEPERTYPEID, '') as HKEEPERTYPEID
+ from T_SAL_OUTSTOCKENTRY a with(nolock)
+ left join T_SAL_OUTSTOCKENTRY_F b with(nolock) on a.FID = b.FID and a.FENTRYID = b.FENTRYID
+ left join T_SAL_OUTSTOCKENTRY_R c with(nolock) on a.FID = c.FID and a.FENTRYID = c.FENTRYID
+ where a.FID = {id}
+ ";
+ LogService.Write("閿�鍞嚭搴撳崟锛�" + sql);
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+ DataTable maindt = ds.Tables[0];
+ DataTable subdt = ds.Tables[1];
+ if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0)
+ {
+ LogService.Write("閿�鍞嚭搴撳崟鍚屾寮傚父锛�" + sql);
+ continue;
+ }
+
+ //鑾峰彇鍒涘缓閿�鍞鍗曠殑浣跨敤缁勭粐
+ DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.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 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("閿�鍞嚭搴撳崟鍚屾鏁版嵁锛�" + model);
+ var client = new RestSharp.RestClient(http);
+ //鏂板
+ var requestPost = new RestRequest("Kf_SellOutBill/SaveKf_SellOutBillApi", 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," + "Kf_SellOutBill/SaveKf_SellOutBillApi");
+ 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/OperationService/zymes_RealessWW_PPBomBill.cs b/zymes/OperationService/zymes_RealessWW_PPBomBill.cs
new file mode 100644
index 0000000..7d63b39
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessWW_PPBomBill.cs
@@ -0,0 +1,167 @@
+锘縰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_RealessWW_PPBomBill : 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");
+ e.FieldKeys.Add("OrderEntity");
+ e.FieldKeys.Add("OrderEntity_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;
+ LogService.Write("寮�濮嬪悓姝�");
+ var id = billObj["Id"].ToString();
+ LogService.Write($"id涓簕id}");
+ string sql = string.Empty;
+ sql = $@"
+ /*dialect*/
+ select a.FID HInterID,a.FEntryID,a.FMATERIALID,a.FUnitID,a.FNEEDQTY,a.FNEEDQTY,isnull(C.FStockID,0),isnull(pl.FMEMO,'')
+ ,a.FSUBREQID HSourceInterID,a.FSUBREQENTRYID HSourceEntryID,isnull(a.FSUBREQBILLNO,'') HSourceBillNo,'' HSourceBillType
+ ,0 HICMOInterID,0 HICMOEntryID,'' HICMOBillNo
+ ,isnull(C.FCHILDSUPPLYORGID,0),isnull(C.FSUPPLYORG,0),isnull(C.FGROUPBYOWNERID,0),isnull(C.FSRCTRANSORGID,0),isnull(C.FGROUPBYOWNERID,0),isnull(C.FOWNERID,0),isnull(C.FOWNERTYPEID,'')
+ ,q.FSELPICKEDQTY-q.FSELPRCDRETURNQTY,q.FSELTRANSLATEQTY,isnull(a.FAUXPROPID,0),isnull(C.FLOT_TEXT,''),isnull(a.FMTONo,''),0,a.FID,a.FEntryID
+ ,q.FSELPICKEDQTY-q.FSELPRCDRETURNQTY
+ ,isnull(a.FPROCESSID,0),isnull(a.FBASEUNITID,0),isnull(a.FPROJECTNO,''),isnull(a.FOPERID,0),isnull(a.FSEQ,0)
+ ,isnull(c.FSTOCKSTATUSID,0),isnull(c.FRESERVETYPE,'')
+ from T_SUB_PPBOMEntry a with(nolock)
+ inner join T_SUB_PPBOMENTRY_C C with(nolock) on A.FENTRYID=C.FENTRYID
+ inner join T_SUB_PPBOMENTRY_Q Q with(nolock) on A.FENTRYID=Q.FENTRYID
+ left join T_SUB_PPBOMENTRY_L pl with(nolock) on pl.FENTRYID=a.FENTRYID and pl.FLOCALEID=2052
+ left join T_SUB_PPBOMENTRY_LK l with(nolock) on a.FENTRYID=l.FENTRYID
+ where a.FID={id}
+
+
+
+
+ select a.FID HInterID,year(a.FCREATEDate),month(a.FCREATEDate),'1604','1604',a.FCREATEDate
+ ,a.FbillNo,case when isnull(a.FAPPROVERID,0)=0 then 1 else 2 end HBillStatus,a.FSUBREQID,a.FSUBREQENTRYID,isnull(a.FSUBBILLNO,''),a.FSUBREQENTRYSEQ
+ ,a.FMATERIALID,a.FUNITID,a.FQTY,isnull(a.FSUPPLIERID,0),0 HDEPTID
+ ,isnull(us1.FNAME,''),a.FCREATEDATE,isnull(us2.FNAME,''),a.FAPPROVEDATE,isnull(us3.FNAME,''),a.FMODIFYDATE
+ ,isnull(a.FSALEORDERNO,''),isnull(a.FSALEORDERID,0),isnull(a.FSALEORDERENTRYID,0),isnull(a.FSALEORDERENTRYSEQ,0)
+ ,a.FSUBORGID,a.FSUBORGID,isnull(a.FPARENTOWNERID,0),isnull(a.FPARENTOWNERTYPEID,'')
+ ,a.FID,'WWPPBOM' HERPBillType,isnull(a.FSETTLEORGID,0),isnull(a.FREQSRC,'')
+ from T_SUB_PPBOM a with(nolock)
+ 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 oo on oo.FORGID=a.FSUBORGID
+ where a.FID={id}
+
+ select oo.FNUMBER from T_SUB_PPBOM a left join T_ORG_Organizations oo on oo.FORGID=a.FSUBORGID where a.FID={id}
+";
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+ DataTable maindt = ds.Tables[1];
+ DataTable subdt = ds.Tables[0];
+ DataTable ORgdt = ds.Tables[2];
+ if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0 )
+ {
+ LogService.Write("濮斿鐢ㄦ枡娓呭崟鍚屾寮傚父锛�" + sql);
+ continue;
+ }
+
+ //鑾峰彇鍒涘缓濮斿鐢ㄦ枡娓呭崟鐨勪娇鐢ㄧ粍缁�
+ DataTable dataTable = LogService.Get_DisPlayOrg(Context, ORgdt.Rows[0]["FNUMBER"].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 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
+ };
+
+ var client = new RestSharp.RestClient(http);
+ //鏂板
+ var requestPost = new RestRequest("WW_PPBomBillController/SaveWW_PPBomBillApi", 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," + "WW_PPBomBillController/SaveWW_PPBomBillApi");
+ 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 db8296c..50dea1f 100644
--- a/zymes/zymes_Project.csproj
+++ b/zymes/zymes_Project.csproj
@@ -133,10 +133,14 @@
<Compile Include="OperationService\zymes_RealessOperatorGroup.cs" />
<Compile Include="OperationService\zymes_RealessPurPrice.cs" />
<Compile Include="OperationService\zymes_RealessOperator.cs" />
+ <Compile Include="OperationService\zymes_RealessSeOutStockBack.cs" />
+ <Compile Include="OperationService\zymes_RealessSellOut.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_RealessEntrustOrderBill.cs" />
<Compile Include="OperationService\zymes_RealessRateType.cs" />
<Compile Include="OperationService\zymes_RealessDepartment.cs" />
<Compile Include="OperationService\zymes_RealessBom.cs" />
@@ -154,6 +158,7 @@
<Compile Include="OperationService\zymes_RealessStock.cs" />
<Compile Include="OperationService\zymes_RealessCustomer.cs" />
<Compile Include="OperationService\zymes_RealessPaymentCondition.cs" />
+ <Compile Include="OperationService\zymes_RealessProperty.cs" />
<Compile Include="OperationService\zymes_RealessTaxMIX.cs" />
<Compile Include="OperationService\zymes_RealessTaxRate.cs" />
<Compile Include="OperationService\zymes_RealessSupplier.cs" />
--
Gitblit v1.9.1