| | |
| | | <ItemGroup> |
| | | <Compile Include="PRD\LogService.cs" /> |
| | | <Compile Include="PRD\PODemandPlanListLoad.cs" /> |
| | | <Compile Include="PRD\ProTardinessDetails.cs" /> |
| | | <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" /> |
| | | <Compile Include="PRD\ProCompleteAnalysisDetails.cs" /> |
| | | <Compile Include="PRD\Pro_ScDayImport.cs" /> |
| | |
| | | public override void OnFormatRowConditions(Kingdee.BOS.Core.List.PlugIn.Args.ListFormatConditionArgs args) |
| | | { |
| | | base.OnFormatRowConditions(args); |
| | | |
| | | |
| | | //1.人员产能不足 红色 |
| | | //2.模具设备影响 |
| | | //3.原料备货延期 橙色 |
| | |
| | | //5.设计变更因素影响 黄色 |
| | | //6.快递物流原因 |
| | | //7.不可抗力因素 蓝色 |
| | | |
| | | |
| | | FormatCondition fc = new FormatCondition(); |
| | | fc.ApplayRow = true; |
| | | |
| | |
| | | using Kingdee.BOS.App.Data; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.Util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Threading.Tasks; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; |
| | | |
| | | namespace Demo.BillView |
| | | { |
| | |
| | | this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缺料数量 |
| | | this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//可用数量 |
| | | this.Model.SetValue("FMateralCount", dt.Rows[i]["FHStockQty"].ToString(), i);//物料数量 |
| | | this.Model.SetValue("FOccupyCount", dt.Rows[i]["FOccupyCount"].ToString(), i);//占用数量 |
| | | this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//是否齐套 |
| | | this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//生产订单内码 |
| | | this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"].ToString(), i);//生产订单内码 |
| | |
| | | did = true; |
| | | } |
| | | } |
| | | public override void AfterBindData(EventArgs e) |
| | | { |
| | | base.AfterBindData(e); |
| | | //获取单据体信息 |
| | | //Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | ////单据体信息转换为列表集合 |
| | | //DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | //EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity"); |
| | | //int i = 0; |
| | | //foreach (DynamicObject current in entityDataObjoct) |
| | | //{ |
| | | // if (Convert.ToString(current["FCompleteDetailStatus"]) == "未齐套") |
| | | // { |
| | | // grid.SetBackcolor("FEntity", "#FF0000", i); |
| | | // } |
| | | // i++; |
| | | //} |
| | | //this.View.UpdateView(); |
| | | } |
| | | |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.BarItemClick(e); |
New file |
| | |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.Util; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | |
| | | namespace Demo.BillView |
| | | { |
| | | [Description("生产计划平台拖期明细")] |
| | | [HotUpdate] |
| | | public class ProTardinessDetails : AbstractDynamicFormPlugIn |
| | | { |
| | | bool did = false; |
| | | string FID = ""; |
| | | public override void OnLoad(EventArgs e) |
| | | { |
| | | base.OnLoad(e); |
| | | if (this.View.OpenParameter.GetCustomParameter("FID") == null) |
| | | { |
| | | SearchList(); |
| | | } |
| | | else |
| | | { |
| | | if (did) |
| | | return; |
| | | FID = this.View.OpenParameter.GetCustomParameter("FID").ToString(); |
| | | string sql = string.Format(@" |
| | | /*dialect*/ |
| | | select a.*,b.FHMASTERDATE,b.FHQTY,b.FNOTPRODUCTNUM,FHCloseManSub from SC_WORKBILLSORTBILLMain a |
| | | join SC_WORKBILLSORTBILLSub b on a.FID=b.FID |
| | | where DATEDIFF(D,FHMASTERDATE,GETDATE())>0 and isnull(FHCloseManSub,'')='' |
| | | and FNOTPRODUCTNUM>0 |
| | | and a.FID='{0}' |
| | | ", FID); |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | for (int i = 0; i < dt.Rows.Count; i++) |
| | | { |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.Model.SetValue("FSEQ", i + 1, i);//序号 |
| | | //this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHSeOrderBillNo"].ToString(), i);//销售订单数量 |
| | | this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号 |
| | | this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位 |
| | | this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织 |
| | | this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码 |
| | | this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期 |
| | | this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级 |
| | | this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号 |
| | | this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号 |
| | | this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//编制日期 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID |
| | | this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID |
| | | this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID |
| | | this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源 |
| | | this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间 |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", dt.Rows[i]["FHQTY"].ToString(), i);//日计划数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | this.Model.SetValue("FPlanDate", dt.Rows[i]["FHMASTERDATE"].ToString(), i);//拖期数量 |
| | | |
| | | } |
| | | } |
| | | did = true; |
| | | } |
| | | } |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.BarItemClick(e); |
| | | if (e.BarItemKey.ToUpper() == "TBFILTER") |
| | | { |
| | | SearchList(); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 查询事件 |
| | | /// </summary> |
| | | public void SearchList() |
| | | { |
| | | string sqlwhere = "AND a.FID ='" + FID + "'"; |
| | | //日计划日期 |
| | | string FPlanDate = Convert.ToString(this.Model.GetValue("FDate")); |
| | | if (!string.IsNullOrEmpty(FPlanDate)) |
| | | sqlwhere += $" and FHMASTERDATE='{FPlanDate}'"; |
| | | |
| | | string sql = string.Format(@" |
| | | /*dialect*/ |
| | | select a.*,b.FHMASTERDATE,b.FHQTY,b.FNOTPRODUCTNUM,FHCloseManSub from SC_WORKBILLSORTBILLMain a |
| | | join SC_WORKBILLSORTBILLSub b on a.FID=b.FID |
| | | where DATEDIFF(D,FHMASTERDATE,GETDATE())>0 and isnull(FHCloseManSub,'')='' |
| | | and FNOTPRODUCTNUM>0 |
| | | "); |
| | | sql += sqlwhere; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; |
| | | this.Model.DeleteEntryData("FEntity"); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | for (int i = 0; i < dt.Rows.Count; i++) |
| | | { |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.Model.SetValue("FSEQ", i + 1, i);//序号 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHSeOrderBillNo"].ToString(), i);//销售订单数量 |
| | | this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号 |
| | | this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位 |
| | | this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织 |
| | | this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码 |
| | | this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期 |
| | | this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级 |
| | | this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号 |
| | | this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号 |
| | | this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//编制日期 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID |
| | | this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID |
| | | this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID |
| | | this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源 |
| | | this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间 |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", dt.Rows[i]["FHQTY"].ToString(), i);//日计划数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | this.Model.SetValue("FPlanDate", dt.Rows[i]["FHQTY"].ToString(), i);//拖期数量 |
| | | } |
| | | } |
| | | this.View.UpdateView(); |
| | | did = true; |
| | | } |
| | | } |
| | | } |
| | |
| | | jsonFPOOrderEntry.Add("FColumn", "FT" + "" + i + ""); ;//对应的列头 |
| | | Entry.Add(jsonFPOOrderEntry); |
| | | } |
| | | } |
| | | jsonModel.Add("FEntity", Entry); |
| | | //日计划工单不为空时update |
| | | if (Convert.ToString(current["FDayPlanID"]) != "0") |
| | | { |
| | | jsonModel.Add("FID", Convert.ToString(current["FDayPlanID"])); ;//源单编号 |
| | | jsonRoot.Add("Model", jsonModel); |
| | | CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/"); |
| | | var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | |
| | | { |
| | | string FDayPlanBillNo = saveObj["Result"]["Number"].ToString(); |
| | | string FDayPlanID = saveObj["Result"]["Id"].ToString(); |
| | | this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | this.View.ShowMessage("导入成功"); |
| | | } |
| | | else |
| | | { |
| | | //LogService.WriteAsync(saveIsSuc); |
| | | LogService.WriteAsync(jsonRoot); |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | this.View.ShowErrMessage(jsonRoot.ToString()); |
| | |
| | | } |
| | | else |
| | | { |
| | | for (int i = 0; i <= 60; i++) |
| | | { |
| | | JObject jsonFPOOrderEntry = new JObject(); |
| | | jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期 |
| | | jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量 |
| | | jsonFPOOrderEntry.Add("FColumn", "FT" + "" + i + ""); ;//对应的列头 |
| | | Entry.Add(jsonFPOOrderEntry); |
| | | } |
| | | jsonModel.Add("FEntity", Entry); |
| | | jsonRoot.Add("Model", jsonModel); |
| | | CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/"); |
| | | var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | |
| | | { |
| | | string FDayPlanBillNo = saveObj["Result"]["Number"].ToString(); |
| | | string FDayPlanID = saveObj["Result"]["Id"].ToString(); |
| | | |
| | | this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | this.View.ShowMessage("导入成功"); |
| | | |
| | | } |
| | | else |
| | | { |
| | | // LogService.WriteAsync(saveIsSuc); |
| | | LogService.WriteAsync(jsonRoot); |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | |
| | | this.View.ShowErrMessage(jsonRoot.ToString()); |
| | | |
| | | |
| | | } |
| | | } |
| | | this.View.UpdateView(); |
| | |
| | | public override void EntryBarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.EntryBarItemClick(e); |
| | | |
| | | if (e.BarItemKey.ToUpper() == "TBEDIT") |
| | | { |
| | | SearchListEdit(); |
| | |
| | | /// <param name="e"></param> |
| | | public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e) |
| | | { |
| | | var m = e.Row; |
| | | var n = e.Key; |
| | | base.EntityRowClick(e); |
| | | |
| | | DynamicFormShowParameter formPa = new DynamicFormShowParameter(); |
| | | |
| | | if (e.ColKey == "FDELAYLNUM") |
| | | { |
| | | //生产计划平台拖期明细跳转 |
| | | formPa.FormId = "paez_TardinessDetails"; |
| | | formPa.CustomParams.Add("FID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString())); |
| | | } |
| | | else |
| | | { |
| | | //齐套分析明细列表跳转 |
| | | formPa.FormId = "paez_CompleteAnalysisDetail"; |
| | | |
| | | /* jsonModel.Add("FHMainICMOInterID", FMainInterID);//主生产订单主内码 |
| | | jsonModel.Add("FHMainICMOEntryID", FMainEntryID);//主生产订单子内码 |
| | | jsonModel.Add("FHICMOInterID", FDayPlanWorkID);//日计划订单主内码 |
| | | current["FMatrailId_Id"].ToString(), current["FHMainSourceInterID"].ToString(), current["FHMainSourceEntryID"].ToString(), current["FDayPlanWorkID"].ToString()) |
| | | |
| | | */ |
| | | |
| | | formPa.CustomParams.Add("FHMainICMOInterID", Convert.ToString(this.View.Model.GetValue("FHMainSourceInterID", e.Row).ToString())); |
| | | formPa.CustomParams.Add("FHMainICMOEntryID", Convert.ToString(this.View.Model.GetValue("FHMainSourceEntryID", e.Row).ToString())); |
| | | formPa.CustomParams.Add("FHICMOInterID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString())); |
| | | formPa.CustomParams.Add("FMatrailId_Id", Convert.ToString((this.View.Model.GetValue("FMatrailId", e.Row) as DynamicObject)["Id"].ToString())); |
| | | } |
| | | this.View.ShowForm(formPa); |
| | | } |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public void CompleteSetAnalysis() |
| | | { |
| | | |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | |
| | | string sql = @" |
| | | /*dialect*/ |
| | | select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty, |
| | | T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,FHQTY*(FNeedQty/FQty) PlanCount from SC_WORKBILLSORTBILLMAIN a |
| | | T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount from SC_WORKBILLSORTBILLMAIN a |
| | | join SC_WORKBILLSORTBILLSub b on a.FID = b.FID |
| | | join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID |
| | | LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_PPBOMENTRY |
| | |
| | | --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID |
| | | JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID |
| | | JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID |
| | | --where FPRDMOMAINID = 100010 |
| | | --where t4.FMATERIALID in (105773 |
| | | --) |
| | | ORDER BY b.FHMASTERDATE,a.FHOrderLev "; |
| | | --条件为今天往后的日计划 + 今天之前未关闭的日计划 |
| | | where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 |
| | | ORDER BY b.FHMASTERDATE,a.FHOrderLev |
| | | "; |
| | | ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>(); |
| | | //日计划+生产订单子表编码ID |
| | |
| | | //CompleteAnalysisTempModel 用于存储临时需要插入数据 |
| | | List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>(); |
| | | int i = 1; |
| | | //创建字典 用于储存物料 + 占用数量 |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32((decimal)(1.0 / DatePlanList.Count)); |
| | | |
| | | //筛选出当日计划数据 |
| | | var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); |
| | | foreach (var _item in _BomList) |
| | | { |
| | | //该日计划物料需要数 |
| | | decimal need = _item.PlanCount; |
| | | //实际总库存 |
| | | decimal sjkc = 0; |
| | | var sjkcList = ListInventoryByStockOrgId.Where(x => x.FMATERIALID == _item.FMATERIALID2 && x.FStockOrgId == _item.FStockOrgId).FirstOrDefault(); |
| | | //真正需要取计算的数量(拆分货主) |
| | | //货主匹配 |
| | |
| | | decimal _fLackCount = _item.PlanCount > sjkcList.FBASEQTY ? (_item.PlanCount - sjkcList.FBASEQTY) : 0;//缺料数量 |
| | | foreach (var Inventory in _ListInventory) |
| | | { |
| | | |
| | | if (need == 0) |
| | | break; |
| | | decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need;//齐套数量 |
| | | //总计划数量 和 总库存数量比对 |
| | | decimal occupyMaterial = 0; |
| | | if (!occupyDic.ContainsKey(_item.FMATERIALID2)) |
| | | { |
| | | occupyDic.Add(_item.FMATERIALID2, fCompleteCount); |
| | | } |
| | | else |
| | | { |
| | | occupyMaterial = occupyDic[_item.FMATERIALID2]; |
| | | occupyDic[_item.FMATERIALID2] = occupyMaterial + fCompleteCount; |
| | | } |
| | | completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.FPRDMOMAINID, |
| | |
| | | FLackCount = _fLackCount,//缺料数量 |
| | | FHStockQty = sjkcList.FBASEQTY,//即时库存 |
| | | FHLeftQty = Inventory.FBASEQTY,//可用数量 |
| | | FOccupyCount = occupyMaterial,//占用数量 |
| | | FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "齐套" : "未齐套", |
| | | FPlanDate = item.FHMASTERDATE // 日计划日期 |
| | | }); |
| | |
| | | } |
| | | else |
| | | { |
| | | decimal occupyMaterial = 0; |
| | | if (occupyDic.ContainsKey(_item.FMATERIALID2)) |
| | | occupyMaterial = occupyDic[_item.FMATERIALID2]; |
| | | completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.FPRDMOMAINID, |
| | |
| | | FLackCount = _item.PlanCount,//缺料数量 |
| | | FHStockQty = 0,//即时库存 |
| | | FHLeftQty = 0,//可用数量 |
| | | FOccupyCount = occupyMaterial,//占用数量 |
| | | FComPlete = "未齐套", |
| | | FPlanDate = item.FHMASTERDATE // 日计划日期 |
| | | }); |
| | | } |
| | | } |
| | | Thread.Sleep(100); |
| | | //Thread.Sleep(100); |
| | | this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(40) / DatePlanList.Count) * i); |
| | | i++; |
| | | |
| | |
| | | jsonModel.Add("FOwnerTypeId", item.FOwnerTypeId); |
| | | jsonModel.Add("FComPlete", item.FComPlete); |
| | | jsonModel.Add("FLackCount", item.FLackCount); |
| | | jsonModel.Add("FOccupyCount", item.FOccupyCount); |
| | | jsonModel.Add("FPlanDate", item.FPlanDate); |
| | | if (item.FOwnerId != null) |
| | | jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); |
| | |
| | | sqlwhere += $" and FPreparatDate='{FPreparatDate}'"; |
| | | try |
| | | { |
| | | string sql = @"/*dialect*/select t1.* from Sc_WorkBillSortBillMain t1 |
| | | string sql = @"/*dialect*/ select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum from Sc_WorkBillSortBillMain t1 |
| | | left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID |
| | | " + sqlwhere; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", dt.Rows[i]["FDayPlanQuantity"].ToString(), i);//日计划数量 |
| | | this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | | { |
| | | /* |
| | | this.Model.SetValue(dr["FColumn"].ToString(), dr["FHQTY"].ToString(), i);//日计划工单FID |
| | | if (dr["FHLockedSub"].ToString() == "1") |
| | | this.View.GetFieldEditor(dr["FColumn"].ToString(), i).Enabled = false; //单据体行锁定字段 |
| | | */ |
| | | DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); |
| | | DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); |
| | | TimeSpan getDay = end.Subtract(start); |
| | |
| | | sqlwhere += $" and FPreparatDate='{FPreparatDate}'"; |
| | | try |
| | | { |
| | | string sql = @"/*dialect*/select t1.* from Sc_WorkBillSortBillMain t1 |
| | | string sql = @"/*dialect*/ select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum from Sc_WorkBillSortBillMain t1 |
| | | left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID |
| | | " + sqlwhere; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", dt.Rows[i]["FDayPlanQuantity"].ToString(), i);//日计划数量 |
| | | this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | |
| | | /// 缺料数量 |
| | | /// </summary> |
| | | public decimal FLackCount { get; set; } |
| | | /// <summary> |
| | | /// 占用数量 |
| | | /// </summary> |
| | | public decimal FOccupyCount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 单位用量:FUnitDosage |