| | |
| | | //ååºåæ°é FMustQty ä¸è¦åå¼éæ±æ°éFNeedQty é¢ææ°æ® |
| | | string LLsql = string.Format(@"exec h_p_jit_PPBOMList '{0}'", fDayPlanFids); |
| | | List<DayPlanPickedModel> DayPlanPickedModel = new List<DayPlanPickedModel>(); |
| | | LogService.Write("LLsql:" + LLsql); |
| | | ds = oCN.RunProcReturn(LLsql, "SC_WORKBILLSORTBILLMAIN"); |
| | | LogService.Write(JsonConvert.SerializeObject(ds)); |
| | | DayPlanPickedModel = ds.ToModelList<DayPlanPickedModel>(); |
| | | LogService.Write(JsonConvert.SerializeObject(DayPlanPickedModel)); |
| | | //CompleteAnalysisTempModel ç¨äºåå¨ä¸´æ¶éè¦æå
¥æ°æ® |
| | | List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>(); |
| | | //å建åå
¸ ç¨äºå¨åç©æ + å ç¨æ°é |
| | |
| | | LogService.Write($"é½å¥åæï¼æ°æ®åå¤é¶æ®µï¼ç¨æ¶" + sw.Elapsed + "æ»éè¦å¾ªç¯çbomæ°éï¼" + DatePlanList.Count); |
| | | |
| | | //第ä¸ä¸ªå¾ªç¯ æ¥è®¡åå·¥åæç» ä¸å¤©+ä¸ä¸ªå·¥å ä¸ä¸ªå¾ªç¯ |
| | | int o = 0; |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | o++; |
| | | LogService.Write("循ç¯:" + o); |
| | | //æ¥è®¡åç¨ææ¸
åæç» æ¯ä¸å¤©çå®é
ç¨ææ
åµ |
| | | var _BomList = BomList.Where(x => x.HMasterDate == item.HMasterDate && x.HICMOEntryID_Sec == item.HICMOEntryID_Sec).ToList(); |
| | | //æ¯ä¸ä¸ªç©æè¿è¡åºåè®¡ç® |
| | |
| | | decimal planNeed = _item.PlanCount; //ä¸åä¸è®¡ç® ç¨äºè®°å½ |
| | | decimal need = _item.PlanCount;//åä¸è®¡ç® |
| | | decimal FOccupyPickedCount = 0;//å ç¨é¢æåæ°é |
| | | //æ¾å°é¢ç¨æ°é |
| | | //æ¾å°é¢ç¨æ°é |
| | | var _DayPlanPickedModel = DayPlanPickedModel.Where(c => c.FPRDMOENTYID == _item.HICMOEntryID_Sec && c.FMATERIALID == _item.FMATERIALID2).FirstOrDefault(); |
| | | |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | { |
| | | //颿æ°é满足äºå½åè¿ä¸ªéæ±é ç´æ¥é½å¥ ä¸éè¦å»å ç¨ä»åº |
| | |
| | | }); |
| | | //æ£é¤å©ä½å¯ç¨é¢ææ°é |
| | | _DayPlanPickedModel.FRemainPickedQty -= need; |
| | | LogService.Write($"h" + need); |
| | | //循ç¯ä¸ä¸ä¸ªç©æ |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | LogService.Write($"kxs" + need); |
| | | need -= _DayPlanPickedModel.FRemainPickedQty; //å©ä½éæ±æ°é |
| | | LogService.Write($"i1" + need); |
| | | FOccupyPickedCount = _DayPlanPickedModel.FRemainPickedQty; |
| | | _DayPlanPickedModel.FRemainPickedQty = 0; |
| | | LogService.Write($"i" + need); |
| | | } |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | | //ç¼ºææ°é éæ±æ°é - å®é
åºå >0 ? ä¸ä¸ªç©æä¸ç®¡å ç¨å¤å°æ¡ åºå+货主 æ°æ® ç¼ºææ°éæ¯åä¸ä¸ªæ°é |
| | | decimal _fLackCount = need > jskcQty ? (need - jskcQty) : 0; |
| | | LogService.Write($"j" + _fLackCount); |
| | | //LogHelper.Info("ç»ç»ï¼" + _item.FStockOrgId + " ,åæ¶åºå" + jskcQty); |
| | | //æ»åºå为0äº ç´æ¥ç»åº ç¼ºææ°é |
| | | if (jskcQty == 0) |
| | |
| | | //ç»æ¢è¯¥ç©æè®¡ç® è¿å
¥ä¸ä¸ä¸ª |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write($"k" + 2); |
| | | foreach (var WorkHouse in _pRD_WorkHouseCompar) |
| | | { |
| | | //åºåæ°æ®å¹é
|
| | |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sqléå æ´æ°éè´è®¢åå ç¨çææè®¡åæ°é |
| | | List<string> sqlList = new List<string>(); |
| | | string Error = "è¿ç®å¤±è´¥!"; |
| | | |
| | | LogService.Write("1"); |
| | | string Error = ""; |
| | | foreach (var item in MaterialIDList) |
| | | { |
| | | //å½åç©ææ²¡æéè´è®¢åæ¶ ç´æ¥è·³åº |
| | |
| | | Error+="[ææè®¡åå¼å§]å½åç©ææ éè´ä¿¡æ¯ï¼" + item.FNumber + " åºåç»ç»ï¼" + item.FStockOrgName + " "; |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write("1.1"); |
| | | |
| | | ////LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //å½åç©æååºåç»ç»å¯¹åºçéè¿è¡ææè®¡åçæ°æ® |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | |
| | | DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;//第ä¸ä¸ªè®¢è´§èµ·å§æ¥æ |
| | | int i = 0; |
| | | //è®°å½å¨æå°éè´ééæ±ä¸çæ¥è®¡åæç»FentyrID |
| | | |
| | | LogService.Write("1.2"); |
| | | |
| | | List<int> FEntryIdList = new List<int>(); |
| | | foreach (var _item in _DayPlanPpbom) |
| | | { |
| | |
| | | break; |
| | | } |
| | | |
| | | LogService.Write("1.2.1"); |
| | | |
| | | if (NeedQty == 0) |
| | | { |
| | | DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-FFIXLEADTIME); |
| | | } |
| | | FEntryIdList.Add(_item.FENTRYID); |
| | | NeedQty += _item.NeedQty; |
| | | |
| | | if ((FJITmaterialGroup == "æ»éæ§å¶è§æ ¼ç±»" || FJITmaterialGroup == "订åä¸ç¨ä¸ªæ§ç±»") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订åä¸ç¨ä¸ªæ§ç±» |
| | | //LogService.Write(FJITmaterialGroup); |
| | | //LogService.Write(FEntryIdList.Count); |
| | | //LogService.Write(Convert.ToDouble(FJITMaterielDemand)); |
| | | //LogService.Write(_DayPlanPpbom.Count); |
| | | //LogService.Write(i); |
| | | if ((FJITmaterialGroup == "æ»éæ§å¶è§æ ¼ç±»" || FJITmaterialGroup == "订åä¸ç¨ä¸ªæ§ç±»") && FEntryIdList.Count < Convert.ToDouble(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订åä¸ç¨ä¸ªæ§ç±» |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write("1.2.2"); |
| | | |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | DayPlanPpbomls.NeedQty = 0; |
| | | } |
| | | |
| | | LogService.Write("1.2.3"); |
| | | |
| | | FEntryIdList.Clear(); |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount =isnull(FPODemandPlanCount,0)+ '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}"); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | LogService.Write("1.2.4"); |
| | | |
| | | NeedQty = 0; |
| | | |
| | | } |
| | | } |
| | | |
| | | //var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | //LogHelper.Info($"ææè®¡åï¼æ°æ®åå¤å®æï¼ä¿åå°Modelå®ä½ï¼æ»è¡æ°ï¼{PODemandPlanTemp.Count}"); |
| | | int tlmmm = 0; |
| | | JArray FinalyResult = new JArray(); |
| | | |
| | | |
| | | LogService.Write("2"); |
| | | |
| | | foreach (var item in PODemandPlanList) |
| | | { |
| | | tlmmm++; |
| | |
| | | // tlmmm++; |
| | | } |
| | | |
| | | if (tlmmm == PODemandPlanList.Count && tlmmm != 0) |
| | | LogService.Write("3"); |
| | | if (Error != "") |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "è¿ç®æå!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else if (tlmmm == PODemandPlanList.Count && tlmmm != 0) |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "è¿ç®æå!"; |
| | | objJsonResult.Message = "è¿ç®æå!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = Error; |
| | | objJsonResult.Message = "è¿ç®å¤±è´¥!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | //////LogHelper.Info("ææè®¡åæ§è¡å®æï¼è¿è¡æ»æ¶é¿ï¼" + sw.Elapsed); |
| | | //DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "ææè¿ç®æåï¼"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | //objJsonResult.code = "1"; |
| | | //objJsonResult.count = 1; |
| | | //objJsonResult.Message = "ææè¿ç®æåï¼"; |
| | | //objJsonResult.data = null; |
| | | //return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |