From e3cf45c336fb5149c2cb4723fc516817ec5c6da3 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Thu, 28 Aug 2025 19:23:07 +0800 Subject: [PATCH] 1 --- NoPackageMachine/GetSingleLuoJi.cs | 94 +++++++++---------- .../Sal_Order/PushSaleBillPlugIn.cs | 9 +- .../Sal_Order/PushSaleOutBillPlugIn.cs | 26 ++++- .../Sal_Order/SalDeliveryNoticeAudit.cs | 12 ++- 4 files changed, 80 insertions(+), 61 deletions(-) diff --git a/NoPackageMachine/GetSingleLuoJi.cs b/NoPackageMachine/GetSingleLuoJi.cs index f4da524..6e59d8a 100644 --- a/NoPackageMachine/GetSingleLuoJi.cs +++ b/NoPackageMachine/GetSingleLuoJi.cs @@ -1,20 +1,17 @@ -using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.BusinessEntity.BusinessFlow; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using Kingdee.K3.SCM.Common.BusinessEntity.Sales; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; -using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; -using Kingdee.BOS.Core.Bill.PlugIn; -using Kingdee.BOS.Core.Bill.PlugIn.Args; -using static System.Net.WebRequestMethods; -using Newtonsoft.Json; -using Kingdee.BOS.ServiceHelper; -using Kingdee.BOS; namespace NoPackageMachine { @@ -25,61 +22,56 @@ namespace NoPackageMachine { base.BeforeExecuteOperationTransaction(e); var formId = this.BusinessInfo.GetForm().Id; - try + // 获取销售订单信息 + foreach (var rows in e.SelectedRows) { - // 获取销售订单信息 - foreach (var entry in e.DataEntitys) + var entry = rows.DataEntity; + var s = JsonConvert.SerializeObject(entry); + var order = JsonConvert.DeserializeObject(s); + foreach (var item in order.SaleOrderEntry) { - var s = JsonConvert.SerializeObject(entry); - var order = JsonConvert.DeserializeObject(s); - foreach (var item in order.SaleOrderEntry) + string sql = string.Format("/*dialect*/select m0.FNUMBER PMaterialCode,m.FMATERIALID,m.FNUMBER MaterialCode,t.FSPECIFICATION FModel,sum(isnull(i.FBASEQTY,0)) AS Qty from T_ENG_BOM a left jOIN T_ORG_ORGANIZATIONS O ON O.FORGID = a.FUSEORGID " + + "left join T_ENG_BOMCHILD b on a.FID=b.FID " + + "left join T_BD_MATERIAL m0 on m0.FMATERIALID=a.FMATERIALID " + + "left join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID " + + "left join T_BD_MATERIAL_L t on t.FMATERIALID=m.FMATERIALID " + + "left join T_BD_MATERIALBASE s on s.FMATERIALID=m.FMATERIALID " + + "left join t_BD_MaterialStock ms on ms.fmaterialid=m.fmaterialid " + + "left join T_STK_INVENTORY i on i.FMATERIALID=m.FMASTERID and i.fstockorgid=m0.fuseorgid " + + "left JOIN T_BD_Stock invSIC ON invSIC.FSTOCKID = i.FSTOCKID " + + "left JOIN T_BD_Stock SIC ON SIC.FSTOCKID = ms.FSTOCKID " + + "where a.FDOCUMENTSTATUS='C' and a.FFORBIDSTATUS='A' and O.fnumber='PL' and m0.FMATERIALID='{0}' and (m.fnumber like 'N.%' or m.fnumber like 'M.%') group by m0.FNUMBER,m.FNUMBER,t.FSPECIFICATION,m.FMATERIALID", item.MaterialId_Id); + var data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + if (data != null && data.Count > 0) { - string sql = string.Format("/*dialect*/select m0.FNUMBER PMaterialCode,m.FMATERIALID,m.FNUMBER MaterialCode,t.FSPECIFICATION FModel,sum(isnull(i.FBASEQTY,0)) AS Qty from T_ENG_BOM a left jOIN T_ORG_ORGANIZATIONS O ON O.FORGID = a.FUSEORGID " + - "left join T_ENG_BOMCHILD b on a.FID=b.FID " + - "left join T_BD_MATERIAL m0 on m0.FMATERIALID=a.FMATERIALID " + - "left join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID " + - "left join T_BD_MATERIAL_L t on t.FMATERIALID=m.FMATERIALID " + - "left join T_BD_MATERIALBASE s on s.FMATERIALID=m.FMATERIALID " + - "left join t_BD_MaterialStock ms on ms.fmaterialid=m.fmaterialid " + - "left join T_STK_INVENTORY i on i.FMATERIALID=m.FMASTERID and i.fstockorgid=m0.fuseorgid " + - "left JOIN T_BD_Stock invSIC ON invSIC.FSTOCKID = i.FSTOCKID " + - "left JOIN T_BD_Stock SIC ON SIC.FSTOCKID = ms.FSTOCKID " + - "where a.FDOCUMENTSTATUS='C' and a.FFORBIDSTATUS='A' and O.fnumber='PL' and m0.FMATERIALID='{0}' and (m.fnumber like 'N.%' or m.fnumber like 'M.%') group by m0.FNUMBER,m.FNUMBER,t.FSPECIFICATION,m.FMATERIALID", item.MaterialId_Id); - var data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); - if (data != null && data.Count > 0) + if (formId == "SAL_SaleOrder") { - if (formId == "SAL_SaleOrder") + if (data.Count > 1) { - if (data.Count > 1) - { - sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id); - } - else - { - sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='否',F_LJBM='{0}',F_LUOJIDESC='{1}' where FENTRYID={2}", data[0]["FMATERIALID"].ToString(), data[0]["FModel"].ToString(), item.Id); - } + sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id); } else { - if (data.Count > 1) - { - sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id); - } - else - { - sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='否',F_LJBM='{0}',F_LUOJIDESC='{1}' where FENTRYID={2}", data[0]["FMATERIALID"].ToString(), data[0]["FModel"].ToString(), item.Id); - } + sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='否',F_LUOJICODE='{0}',F_LUOJIDESC='{1}',F_LJBM='{2}' where FENTRYID={3}", data[0]["MaterialCode"].ToString(), data[0]["FModel"].ToString(), data[0]["FMATERIALID"].ToString(), item.Id); } - DBServiceHelper.Execute(this.Context, sql); } + else + { + if (data.Count > 1) + { + sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id); + } + else + { + sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='否',F_LUOJICODE='{0}',F_LUOJIDESC='{1}',F_LJBM='{2}' where FENTRYID={3}", data[0]["MaterialCode"].ToString(), data[0]["FModel"].ToString(), data[0]["FMATERIALID"].ToString(), item.Id); + } + } + DBServiceHelper.Execute(this.Context, sql); } - } + } - catch(Exception ex) - { - throw new KDBusinessException("",ex.Message); - } + } } -} +} \ No newline at end of file diff --git a/Pilot_KD_Parino/Sal_Order/PushSaleBillPlugIn.cs b/Pilot_KD_Parino/Sal_Order/PushSaleBillPlugIn.cs index ca3ad5a..deba9ca 100644 --- a/Pilot_KD_Parino/Sal_Order/PushSaleBillPlugIn.cs +++ b/Pilot_KD_Parino/Sal_Order/PushSaleBillPlugIn.cs @@ -113,16 +113,15 @@ namespace Pilot_KD_Parino.Sal_Order IOperationResult result = new OperationResult(); //获取单据转换规则 ConvertRuleElement ruleElement; - + + var ruleElementList = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).ToList(); if (target == "PUR_PurchaseOrder") { - var ruleMetaData = ConvertServiceHelper.GetConvertRule(this.Context, "d124a6be-5f97-4d1f-b5fd-e20e53e0ed2a"); - ruleElement = ruleMetaData.Rule; + ruleElement = ruleElementList.Where(t => t.OriginKey == "d124a6be-5f97-4d1f-b5fd-e20e53e0ed2a").FirstOrDefault(); } else if (target == "SAL_SaleOrder") { - var ruleMetaData = ConvertServiceHelper.GetConvertRule(this.Context, "8ee74811-5784-40a8-80c4-a94cd43eed70"); - ruleElement = ruleMetaData.Rule; + ruleElement = ruleElementList.Where(t => t.OriginKey == "8ee74811-5784-40a8-80c4-a94cd43eed70").FirstOrDefault(); } else ruleElement = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).FirstOrDefault(); diff --git a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs index 36f903e..9d31b2c 100644 --- a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs +++ b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs @@ -582,8 +582,30 @@ namespace Pilot_KD_Parino.Sal_Order { IOperationResult result = new OperationResult(); //获取单据转换规则 - ConvertRuleElement ruleElement = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).FirstOrDefault(); - + ConvertRuleElement ruleElement; + var ruleElementList = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).ToList(); + if (source == "PUR_PurchaseOrder" && target== "PUR_ReceiveBill") + { + ruleElement = ruleElementList.Where(t => t.OriginKey == "cc8862d6-9368-4f7d-bc83-38ce217b6ba1").FirstOrDefault(); + + } + else if (source == "PUR_ReceiveBill" && target == "STK_InStock") + { + ruleElement = ruleElementList.Where(t => t.OriginKey == "e51ffa3e-3a6f-4084-8868-9370f5977bcc").FirstOrDefault(); + + } + else if (source == "SAL_SaleOrder" && target == "SAL_DELIVERYNOTICE") + { + ruleElement = ruleElementList.Where(t => t.OriginKey == "9090ab67-7255-4a33-a457-a70fa2d90536").FirstOrDefault(); + + } + else if (source == "SAL_DELIVERYNOTICE" && target == "SAL_OUTSTOCK") + { + ruleElement = ruleElementList.Where(t => t.OriginKey == "59bef03a-5c03-426b-8cc3-7631d11a951b").FirstOrDefault(); + + } + else + ruleElement = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).FirstOrDefault(); //如下代码 直接通过查询数据库获取单据转换源单数据 ListSelectedRowCollection rows = new ListSelectedRowCollection(); int i = 0; diff --git a/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs b/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs index ccaf4e0..c23cda8 100644 --- a/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs +++ b/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs @@ -153,10 +153,16 @@ namespace Pilot_KD_Parino.Sal_Order try { IOperationResult result = new OperationResult(); - //获取单据转换规则 - ConvertRuleElement ruleElement = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).FirstOrDefault(); + //获取单据转换规则 + ConvertRuleElement ruleElement; + var ruleElementList = ServiceHelper.GetService().GetConvertRules(this.Context, source, target).ToList(); + var akdos = JsonHelper.ToJson(ruleElementList); + Logger.Error("获取单据转换规则", akdos, new Exception()); - //如下代码 直接通过查询数据库获取单据转换源单数据 + ruleElement = ruleElementList.Where(t => t.OriginKey == "9090ab67-7255-4a33-a457-a70fa2d90536").FirstOrDefault(); + //var ruleMetaData = ConvertServiceHelper.GetConvertRule(this.Context, "9090ab67-7255-4a33-a457-a70fa2d90536"); + //ruleElement = ruleMetaData.Rule; + //如下代码 直接通过查询数据库获取单据转换源单数据 9090ab67-7255-4a33-a457-a70fa2d90536 ListSelectedRowCollection rows = new ListSelectedRowCollection(); int i = 0; ListSelectedRow row = new ListSelectedRow(tempFid, string.Empty, i++, source);