src/BLL/Demo.BillView/Demo.BillView.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_DayPlanCheckSelectMenu.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -219,10 +219,10 @@ <Compile Include="PRD\ProTardinessDetails.cs" /> <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" /> <Compile Include="PRD\ProCompleteAnalysisDetails.cs" /> <Compile Include="PRD\Pro_DayPlanCheckSelectMenu.cs" /> <Compile Include="PRD\Pro_DayPlanSelectMenu.cs" /> <Compile Include="PRD\Pro_TlPushAudit.cs" /> <Compile Include="PRD\Pro_MaterialRequisitionAuditDayPlan.cs" /> <Compile Include="PRD\Pro_MaterialRequisitionAudit.cs" /> <Compile Include="PRD\Pro_TlPushAudit.cs" /> <Compile Include="PRD\Pro_ScDayImport.cs" /> <Compile Include="PRD\Pro_TlPlanConfigure.cs" /> <Compile Include="PRD\Pro_TlPush.cs" /> src/BLL/Demo.BillView/PRD/Pro_DayPlanCheckSelectMenu.cs
New file @@ -0,0 +1,83 @@ using Kingdee.BOS; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Demo.BillView.PRD { [Description("[日计划质量汇报单] 选单"), HotUpdate] public class Pro_DayPlanCheckSelectMenu : AbstractBillPlugIn { public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); try { if (e.BarItemKey.ToUpper() == "TBDAYPLANMENU") { // 打开单据列表界面:以打开物料F8查询列表为例 // using Kingdee.BOS.Core.List; string pageId = Guid.NewGuid().ToString(); ListShowParameter showParameter = new ListShowParameter(); showParameter.FormId = "Paez_Sc_WorkBillAutoSortBill"; showParameter.PageId = pageId; showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; showParameter.IsLookUp = true; this.View.ShowForm(showParameter); this.View.ShowForm(showParameter, delegate (FormResult result) { object returnData = result.ReturnData; if (returnData is ListSelectedRowCollection) { ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; if (listSelectedRowCollection != null) { DynamicObjectDataRow datarow = (DynamicObjectDataRow)listSelectedRowCollection[0].DataRow; this.View.Model.SetValue("FMATERIALID", datarow.DynamicObject["FHMaterID_Id"].ToString()); this.View.Model.SetValue("FPROORDERNO", datarow.DynamicObject["FSCOrderNo"].ToString()); this.View.Model.SetValue("FQty", datarow.DynamicObject["FHOrderNeedQty"].ToString()); this.View.Model.SetValue("FDayPlanFID", datarow.DynamicObject["FID"].ToString()); this.View.Model.SetValue("FDayPlanFentryID", datarow.DynamicObject["t1_FENTRYID"].ToString()); this.View.Model.SetValue("FSourceBillNo", datarow.DynamicObject["FBillNo"].ToString()); this.View.Model.SetValue("FSourceBillType", datarow.DynamicObject["FBillTypeID"].ToString()); } //ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; //if (listSelectedRowCollection != null) //{ // int Fseq = 0; // foreach (var listSelectedRow in listSelectedRowCollection) // { // this.View.Model.SetValue("FMATERIALID", listSelectedRow.DataRow["FHMaterID_Id"].ToString(), Fseq); // this.View.Model.SetValue("FQty", listSelectedRow.DataRow["FHQTY"].ToString(), Fseq); // this.View.Model.SetValue("FSCZY", listSelectedRow.DataRow["FHSourceID_Id"].ToString(), Fseq); // this.View.Model.SetValue("FProOrderNo", listSelectedRow.DataRow["FSCOrderNo"].ToString(), Fseq); // this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["FSRCBILLENTRYSEQ"].ToString(), Fseq); // this.View.Model.SetValue("FDayPlanFnumber", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq); // this.View.Model.SetValue("FDayPlanFID", listSelectedRow.DataRow["FID"].ToString(), Fseq); // this.View.Model.SetValue("FDayPlanEntryID", listSelectedRow.DataRow["t1_FENTRYID"].ToString(), Fseq); // this.View.Model.SetValue("FDayPlanEntrySeq", listSelectedRow.DataRow["t1_FSEQ"].ToString(), Fseq); // Fseq++; // } //} } }); } } catch (Exception ex) { this.View.ShowErrMessage(ex.Message.ToString()); } } } } src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs
File was deleted src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
@@ -24,9 +24,9 @@ /// 2. 本插件挂在销售出库单的保存操作上 /// 出库关联销售订单 /// </remarks> [Description("送货计划单插件关联提料计划单")] [Description("日计划用料清单下推后,建立生产领料单与生产用料清单关联关系")] [HotUpdate] public class Pro_TlPushAudit : AbstractOperationServicePlugIn public class Pro_MaterialRequisitionAuditDayPlan : AbstractOperationServicePlugIn { public override void OnPreparePropertys(PreparePropertysEventArgs e) { @@ -37,16 +37,17 @@ e.FieldKeys.Add("FTreeEntity_FEntryID"); e.FieldKeys.Add("FBillNo"); e.FieldKeys.Add("FBFLowId"); e.FieldKeys.Add("FHQty"); e.FieldKeys.Add("FHMaterID"); e.FieldKeys.Add("FMaterialId"); e.FieldKeys.Add("FBaseUnitQty"); e.FieldKeys.Add("FBaseJoinQty"); } private const string POFormId = "paez_PODemandPlan"; private const string POFormId = "PRD_PPBOM"; public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); HashSet<string> poBillNos = new HashSet<string>(); Entity entity = this.BusinessInfo.GetEntity("FDetailEntity");//获取明细信息 Entity linkEntry = this.BusinessInfo.GetEntity("FDetailEntity_Link"); Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息 Entity linkEntry = this.BusinessInfo.GetEntity("FEntity_Link"); Field fldSrcFormId = this.BusinessInfo.GetField("FSrcBillType"); Field fldSrcBillNo = this.BusinessInfo.GetField("FSrcBillNo"); // 对单据体进行循环,取关联的源单编号 @@ -60,11 +61,9 @@ string srcSrcBillNo = ""; try { srcFormId = "paez_PODemandPlan"; srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); //srcSrcBillNo = entryRow["FTLentryId"].ToString(); //srcSrcBillNo = entryRow["FTLId"].ToString(); //srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PUR_RECEIVEENTRY_LK where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); srcFormId = "PRD_PPBOM"; srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); } catch (Exception) @@ -101,9 +100,10 @@ as DynamicObjectCollection; foreach (var entryRow in entryRows) { //string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); string srcFormId = "paez_PODemandPlan"; string srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); string srcFormId = "PRD_PPBOM"; srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); if (string.IsNullOrWhiteSpace(srcFormId) || string.IsNullOrWhiteSpace(srcSrcBillNo) @@ -131,7 +131,7 @@ linkRows.Add(linkRow); allNewLinkRows.Add(linkRow); } } } // 为新建的源单关联信息,设置内码 IDBService dbService = ServiceHelper.GetService<IDBService>(); dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType); @@ -145,17 +145,19 @@ private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos) { IViewService viewService = ServiceHelper.GetService<IViewService>(); string formId = "paez_PODemandPlan"; string formId = "PRD_PPBOM"; // 指定需要加载的销售订单字段 List<SelectorItemInfo> fields = new List<SelectorItemInfo>(); fields.Add(new SelectorItemInfo("FID")); // 单据主键 fields.Add(new SelectorItemInfo("FEntity_FEntryID")); // 单据体主键 fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID")); // 单据体主键 fields.Add(new SelectorItemInfo("FBillNo")); // 单据编号 //fields.Add(new SelectorItemInfo("FBFLowId")); // 业务流程 fields.Add(new SelectorItemInfo("FHMaterID")); // 物料 fields.Add(new SelectorItemInfo("FHQty")); // 基本单位数量 //fields.Add(new SelectorItemInfo("FBFLOWID")); // fields.Add(new SelectorItemInfo("FBFLowId")); // 业务流程 fields.Add(new SelectorItemInfo("FMaterialId")); // 物料 fields.Add(new SelectorItemInfo("FMaterialID2")); // 物料 fields.Add(new SelectorItemInfo("FBASENEEDQTY")); // 基本单位数量 fields.Add(new SelectorItemInfo("FBASEPICKEDQTY")); // 基本单位关联数量 fields.Add(new SelectorItemInfo("FBFLOWID")); // // 指定过滤条件 string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos)); @@ -176,10 +178,10 @@ { string billNo = Convert.ToString(poObj["BillNo"]); Dictionary<string, DynamicObject> dctOneBill = new Dictionary<string, DynamicObject>(); DynamicObjectCollection entryRows = poObj["FEntity"] as DynamicObjectCollection; DynamicObjectCollection entryRows = poObj["PPBomEntry"] as DynamicObjectCollection; foreach (var entryRow in entryRows) { DynamicObject materialObj = entryRow["FHMaterID"] as DynamicObject; DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject; if (materialObj == null) continue; string materialNumber = Convert.ToString(materialObj["number"]); dctOneBill[materialNumber] = entryRow; @@ -206,16 +208,16 @@ /// <param name="linkRow">关联行</param> private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow) { //linkRow["FlowId"] = srcRow["BFLowId_Id"]; linkRow["FlowId"] = srcRow["BFLowId_Id"]; linkRow["FlowLineId"] = 0; linkRow["RuleId"] = Guid.NewGuid().ToString(); linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL"; linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0]; linkRow["SId"] = srcRow[0]; // 原始携带量 decimal baseUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//用料清单单位数量 decimal joinUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//用料清单单位领料数量 linkRow["BASEUNITQTY"] = baseUnitQty; linkRow["STOCKBASEQTY"] = baseUnitQty; //基本单位实发数量 decimal baseUnitQty = Convert.ToDecimal(srcRow["BaseNeedQty"]);//用料清单单位数量 decimal joinUnitQty = Convert.ToDecimal(srcRow["BasePickedQty"]);//用料清单单位领料数量 linkRow["BaseActualQtyOld"] = baseUnitQty - joinUnitQty; linkRow["BaseActualQty"] = toRow["BASEACTUALQTY"]; //基本单位实发数量 } /// <summary> @@ -224,7 +226,7 @@ /// <returns></returns> public bool SourceVerification(string FTID) { string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'Cg_PODemandPlanBillSub' and FTID = '{FTID}'"; string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'"; int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); if (count == 0) return true; src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs
@@ -24,9 +24,9 @@ /// 2. 本插件挂在销售出库单的保存操作上 /// 出库关联销售订单 /// </remarks> [Description("引入生产领料单,建立与生产订单的关联,日计划用料清单")] [Description("送货计划单插件关联提料计划单")] [HotUpdate] public class Pro_MaterialRequisitionAuditDayPlan : AbstractOperationServicePlugIn public class Pro_TlPushAudit : AbstractOperationServicePlugIn { public override void OnPreparePropertys(PreparePropertysEventArgs e) { @@ -37,17 +37,16 @@ e.FieldKeys.Add("FTreeEntity_FEntryID"); e.FieldKeys.Add("FBillNo"); e.FieldKeys.Add("FBFLowId"); e.FieldKeys.Add("FMaterialId"); e.FieldKeys.Add("FBaseUnitQty"); e.FieldKeys.Add("FBaseJoinQty"); e.FieldKeys.Add("FHQty"); e.FieldKeys.Add("FHMaterID"); } private const string POFormId = "PRD_PPBOM"; private const string POFormId = "paez_PODemandPlan"; public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); HashSet<string> poBillNos = new HashSet<string>(); Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息 Entity linkEntry = this.BusinessInfo.GetEntity("FEntity_Link"); Entity entity = this.BusinessInfo.GetEntity("FDetailEntity");//获取明细信息 Entity linkEntry = this.BusinessInfo.GetEntity("FDetailEntity_Link"); Field fldSrcFormId = this.BusinessInfo.GetField("FSrcBillType"); Field fldSrcBillNo = this.BusinessInfo.GetField("FSrcBillNo"); // 对单据体进行循环,取关联的源单编号 @@ -61,9 +60,11 @@ string srcSrcBillNo = ""; try { srcFormId = "PRD_PPBOM"; srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); srcFormId = "paez_PODemandPlan"; srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); //srcSrcBillNo = entryRow["FTLentryId"].ToString(); //srcSrcBillNo = entryRow["FTLId"].ToString(); //srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PUR_RECEIVEENTRY_LK where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); } catch (Exception) @@ -100,10 +101,9 @@ as DynamicObjectCollection; foreach (var entryRow in entryRows) { string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); string srcFormId = "PRD_PPBOM"; srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); //string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); string srcFormId = "paez_PODemandPlan"; string srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); if (string.IsNullOrWhiteSpace(srcFormId) || string.IsNullOrWhiteSpace(srcSrcBillNo) @@ -131,7 +131,7 @@ linkRows.Add(linkRow); allNewLinkRows.Add(linkRow); } } } // 为新建的源单关联信息,设置内码 IDBService dbService = ServiceHelper.GetService<IDBService>(); dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType); @@ -145,19 +145,17 @@ private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos) { IViewService viewService = ServiceHelper.GetService<IViewService>(); string formId = "PRD_PPBOM"; string formId = "paez_PODemandPlan"; // 指定需要加载的销售订单字段 List<SelectorItemInfo> fields = new List<SelectorItemInfo>(); fields.Add(new SelectorItemInfo("FID")); // 单据主键 fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID")); // 单据体主键 fields.Add(new SelectorItemInfo("FEntity_FEntryID")); // 单据体主键 fields.Add(new SelectorItemInfo("FBillNo")); // 单据编号 fields.Add(new SelectorItemInfo("FBFLowId")); // 业务流程 fields.Add(new SelectorItemInfo("FMaterialId")); // 物料 fields.Add(new SelectorItemInfo("FMaterialID2")); // 物料 fields.Add(new SelectorItemInfo("FBASENEEDQTY")); // 基本单位数量 fields.Add(new SelectorItemInfo("FBASEPICKEDQTY")); // 基本单位关联数量 fields.Add(new SelectorItemInfo("FBFLOWID")); // //fields.Add(new SelectorItemInfo("FBFLowId")); // 业务流程 fields.Add(new SelectorItemInfo("FHMaterID")); // 物料 fields.Add(new SelectorItemInfo("FHQty")); // 基本单位数量 //fields.Add(new SelectorItemInfo("FBFLOWID")); // // 指定过滤条件 string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos)); @@ -178,10 +176,10 @@ { string billNo = Convert.ToString(poObj["BillNo"]); Dictionary<string, DynamicObject> dctOneBill = new Dictionary<string, DynamicObject>(); DynamicObjectCollection entryRows = poObj["PPBomEntry"] as DynamicObjectCollection; DynamicObjectCollection entryRows = poObj["FEntity"] as DynamicObjectCollection; foreach (var entryRow in entryRows) { DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject; DynamicObject materialObj = entryRow["FHMaterID"] as DynamicObject; if (materialObj == null) continue; string materialNumber = Convert.ToString(materialObj["number"]); dctOneBill[materialNumber] = entryRow; @@ -208,16 +206,16 @@ /// <param name="linkRow">关联行</param> private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow) { linkRow["FlowId"] = srcRow["BFLowId_Id"]; //linkRow["FlowId"] = srcRow["BFLowId_Id"]; linkRow["FlowLineId"] = 0; linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL"; linkRow["RuleId"] = Guid.NewGuid().ToString(); linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0]; linkRow["SId"] = srcRow[0]; // 原始携带量 decimal baseUnitQty = Convert.ToDecimal(srcRow["BaseNeedQty"]);//用料清单单位数量 decimal joinUnitQty = Convert.ToDecimal(srcRow["BasePickedQty"]);//用料清单单位领料数量 linkRow["BaseActualQtyOld"] = baseUnitQty - joinUnitQty; linkRow["BaseActualQty"] = toRow["BASEACTUALQTY"]; //基本单位实发数量 decimal baseUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//用料清单单位数量 decimal joinUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//用料清单单位领料数量 linkRow["BASEUNITQTY"] = baseUnitQty; linkRow["STOCKBASEQTY"] = baseUnitQty; //基本单位实发数量 } /// <summary> @@ -226,7 +224,7 @@ /// <returns></returns> public bool SourceVerification(string FTID) { string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'"; string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'Cg_PODemandPlanBillSub' and FTID = '{FTID}'"; int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); if (count == 0) return true;