| | |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | int i = 1; |
| | | //创建字典 用于储存物料 + 占用数量 |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | LogHelper.Info("齐套分析准备数据完成:" + sw.Elapsed); |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | |
| | | //筛选出当日计划数据 |
| | | var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); |
| | | foreach (var _item in _BomList) |
| | |
| | | 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;//齐套数量 |
| | |
| | | string sql = string.Format(@" |
| | | /*dialect*/ |
| | | select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(FNumerator/FDenominator) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO, |
| | | t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,torg.FNUMBER as FORGNUMBER,t3.FMOID,FIssueType,FMaterialType |
| | | t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,torg.FNUMBER as FORGNUMBER,t3.FMOID,FIssueType,FMaterialType,td.FNUMBER as FWORKSHOPID |
| | | FROM Sc_WorkBillSortBillSub t1 |
| | | JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID |
| | | JOIN T_PRD_PPBOM T3 on T2.FPRDMOMAINID=t3.FMOID AND T2.FPRDMOENTYID=T3.FMOENTRYID |
| | |
| | | LEFT JOIN Sc_DayPlanPPBomBillMain T9 ON T1.FEntryID=T9.FDayPlanFID |
| | | LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID |
| | | LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID |
| | | WHERE t1.FHQTY>0 |
| | | and t9.FID not in( |
| | | select distinct FID from Sc_DayPlanPPBomBillSub WHERE FTranslateQty >0 or FPickedQty >0 |
| | | left join T_BD_DEPARTMENT td on t3.FWORKSHOPID=td.FDEPTID |
| | | WHERE t1.FEntryID not in |
| | | ( |
| | | select distinct FDAYPLANFID from Sc_DayPlanPPBomBillMain where FID IN ( |
| | | select distinct FDAYPLANFID from T_PRD_PICKMTRLDATA) |
| | | ) |
| | | and T4.FMustQty>0 |
| | | -- ( |
| | | -- select FDayPlanFID FROM Sc_DayPlanPPBomBillMain WHERE FID IN ( select distinct FID from Sc_DayPlanPPBomBillSub WHERE FTranslateQty >0 or FPickedQty >0) |
| | | -- ) |
| | | " |
| | | ); |
| | | LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | |
| | | FIssueType = dr["FIssueType"].ToString(), |
| | | FMaterialType = dr["FMaterialType"].ToString(), |
| | | FDayPlanFSEQ = dr["FDayPlanFSEQ"].ToString(), |
| | | FDayPlanFBILLNO = dr["FDayPlanFBILLNO"].ToString() |
| | | FDayPlanFBILLNO = dr["FDayPlanFBILLNO"].ToString(), |
| | | FWORKSHOPID = dr["FWORKSHOPID"].ToString() |
| | | }); |
| | | } |
| | | LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | |
| | | ModelEnty.Add("FMOID", _item.FMOID);// |
| | | ModelEnty.Add("FISSUETYPE", _item.FIssueType);// |
| | | ModelEnty.Add("FMaterialType", _item.FMaterialType);// |
| | | // ModelEnty.Add("FSEQ", FSEQ);// |
| | | ModelEnty.Add("FWORKSHOPID", new JObject() { ["Fnumber"] = _item.FWORKSHOPID });// |
| | | |
| | | Entry.Add(ModelEnty); |
| | | FSEQ++; |
| | | |
| | |
| | | var resultAA = String.Join(",", ls.ToArray()); |
| | | string resSql = string.Format(@"/*dialect*/ update Sc_WorkBillSortBillSub set Sc_WorkBillSortBillSub.FDAYPLANPPBOMBILLNO = Sc_DayPlanPPBomBillMain.FBILLNO from Sc_WorkBillSortBillSub join Sc_DayPlanPPBomBillMain on Sc_WorkBillSortBillSub.FEntryID = Sc_DayPlanPPBomBillMain.FDayPlanFID where Sc_DayPlanPPBomBillMain.FID in ({0})", resultAA); |
| | | DBServiceHelper.Execute(Context, resSql); |
| | | //JArray array = JArray.Parse(m); |
| | | //for (int mm = 0; mm < array.Count; mm++) |
| | | //{ |
| | | // JObject b = JObject.Parse(array[mm].ToString()); |
| | | // var id = b["ID"].ToString(); |
| | | //} |
| | | |
| | | } |
| | | if (saveIsSuc != "TRUE") |
| | |
| | | _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | //LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | break; |
| | | } |
| | | |
| | |
| | | //{ |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | //LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | //LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |