|
|
@@ -1616,13 +1616,13 @@ namespace Business.Replenishment
|
|
|
var weekItemPlan = weekPlanList.Find(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.WeekSeq == w && a.DistributionChannel==item.distributionchannel);
|
|
|
if (weekItemPlan != null)
|
|
|
{
|
|
|
- if (weekItemPlan.ProductionStatus != "已发布")
|
|
|
+ if (weekItemPlan.ProductionStatus != "已发布" && publishedWeekCount<4)
|
|
|
{
|
|
|
weekItemPlan.Qty = Math.Ceiling((item.montheop1.GetValueOrDefault() + item.montheop2.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
updateRopList.Add(weekItemPlan);
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ else if(publishedWeekCount<4)
|
|
|
{
|
|
|
ReplenishmentWeekPlan weekItemPlanAdd = new ReplenishmentWeekPlan();
|
|
|
weekItemPlanAdd.Area = item.area;
|
|
|
@@ -1654,6 +1654,10 @@ namespace Business.Replenishment
|
|
|
await _replenishmentWeekPlan.UpdateManyAsync(updateRopList);
|
|
|
|
|
|
//更新周生产计划
|
|
|
+ //生产线明细表
|
|
|
+ List<ProdLineDetail> prodLines = new List<ProdLineDetail>();
|
|
|
+ List<LineMaster> lineMasters = new List<LineMaster>();
|
|
|
+ var routingOpList = _routingOpDetail.Select(x => x.Ufld1 == "组装" && x.MilestoneOp).ToList();
|
|
|
for (int k = 0; k < replenishmentDto.SaleFcstMonth; k++)
|
|
|
{
|
|
|
//如果该10月有发布的2周生产计划,则周生产数量=9月补货量-已发布的2周生产计划数量/剩余周次(2)
|
|
|
@@ -1664,6 +1668,7 @@ namespace Business.Replenishment
|
|
|
var ropList = planList.Select(t => t.number).Distinct().ToList();
|
|
|
//中间件汇总,比如A成品10、11、12月都需要中间件C,B成品11、12月都需要中间件C,那么中间件C需要每个月汇总平均分到4周
|
|
|
Dictionary<string, decimal?> subProductItem = new Dictionary<string, decimal?>();
|
|
|
+ Dictionary<string, BomChildExamineDto> subProductItemModel = new Dictionary<string, BomChildExamineDto>();
|
|
|
foreach (var itemSeq in ropList)
|
|
|
{
|
|
|
if(shipPlanList.Select(s=>s.SAPItemNumber).ToList().Contains(itemSeq))
|
|
|
@@ -1680,8 +1685,19 @@ namespace Business.Replenishment
|
|
|
{
|
|
|
days = 8;
|
|
|
}
|
|
|
+ int publishedWeekCount = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.ProductionStatus == "已发布" && a.DistributionChannel == item.distributionchannel).Count();
|
|
|
+ decimal publishedWeekQtySum = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.ProductionStatus == "已发布" && a.DistributionChannel == item.distributionchannel).Sum(a => a.Qty);
|
|
|
for (int w = 0; w < 4; w++)
|
|
|
{
|
|
|
+ var weekItemPlan = weekProductPlanList.Find(a => a.PlanMonth == kMonth && a.ItemNumber == item.number && a.WeekSeq == w );
|
|
|
+ if (weekItemPlan != null)
|
|
|
+ {
|
|
|
+ if (weekItemPlan.ProductionStatus != "已发布" && publishedWeekCount<4)
|
|
|
+ {
|
|
|
+ weekItemPlan.Qty = Math.Ceiling((item.montheop1.GetValueOrDefault() + item.montheop2.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ updateRopList.Add(weekItemPlan);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (itemQty > 0)
|
|
|
{
|
|
|
var bom = bomList.Find(b => b.item_number == itemSeq);
|
|
|
@@ -1690,7 +1706,7 @@ namespace Business.Replenishment
|
|
|
mes_Morder.GenerateNewId(help.NextId());
|
|
|
mes_Morder.morder_type = MorderEnum.JhMorder;
|
|
|
mes_Morder.work_order_type = MorderEnum.CgMorder;
|
|
|
- mes_Morder.morder_state = MorderEnum.Initial_state;
|
|
|
+ mes_Morder.morder_state ="";
|
|
|
//mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
|
|
|
mes_Morder.morder_no = Guid.NewGuid().ToString();
|
|
|
mes_Morder.fms_number = ic_item.fms_number;
|
|
|
@@ -1790,7 +1806,6 @@ namespace Business.Replenishment
|
|
|
moentryList.Add(mes_Moentry);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
var planBOM = boms.Find(b => b.item_number == itemSeq);
|
|
|
var pretreament = pretreatments.Where(c => c.sourceid == planBOM.mysql_id).ToList();
|
|
|
var returnlist = ObjectMapper.Map<List<b_bom_pretreatment>, List<BomChildExamineDto>>(pretreament);
|
|
|
@@ -1800,7 +1815,7 @@ namespace Business.Replenishment
|
|
|
CaclMaterialShortage(returnlist);
|
|
|
foreach (var r in returnlist)
|
|
|
{
|
|
|
- if(r.item_number!=itemSeq && r.erp_cls==1)
|
|
|
+ if (r.item_number != itemSeq && r.erp_cls == 1)
|
|
|
{
|
|
|
if (subProductItem.ContainsKey(r.item_number))
|
|
|
{
|
|
|
@@ -1809,7 +1824,251 @@ namespace Business.Replenishment
|
|
|
else
|
|
|
{
|
|
|
subProductItem.Add(r.item_number, r.needCount);
|
|
|
+ subProductItemModel.Add(r.item_number, r);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(prodLines.Count==0)
|
|
|
+ {
|
|
|
+ prodLines=_prodLineDetail.Select(p => subProductItem.Keys.Contains(p.Part) && p.Domain == input.factory_id.ToString() && p.IsActive && routingOpList.Select(m => m.Op).Contains(p.Op)).OrderBy(x => x.Sequence).ToList();
|
|
|
+ }
|
|
|
+ if(lineMasters.Count==0)
|
|
|
+ {
|
|
|
+ lineMasters = _lineMaster.Select(p => prodLines.Select(a => a.Line).Contains(p.Line) && p.Domain == input.factory_id.ToString() && p.IsActive).ToList();
|
|
|
+ }
|
|
|
+ var middleItemList=_itemMaster.Select(a => subProductItem.Keys.Contains(a.ItemNum) && a.Domain == input.factory_id.ToString());
|
|
|
+ foreach (var key in subProductItem.Keys)
|
|
|
+ {
|
|
|
+ var itemQty = subProductItem[key];
|
|
|
+ var middleItem = middleItemList.Find(m => m.ItemNum == key).MinOrdSales;
|
|
|
+ if (middleItem == 0)
|
|
|
+ middleItem = 10000;
|
|
|
+ if (itemQty< middleItem)
|
|
|
+ {
|
|
|
+ itemQty = middleItem;
|
|
|
+ }else if(middleItem>0)
|
|
|
+ {
|
|
|
+ itemQty = Math.Ceiling(Math.Ceiling(itemQty.GetValueOrDefault()/ middleItem) * middleItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ int publishedWeekCount = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == key && a.ProductionStatus == "已发布").Count();
|
|
|
+ decimal publishedWeekQtySum = weekProductPlanList.Where(a => a.PlanMonth == kMonth && a.ItemNumber == key && a.ProductionStatus == "已发布").Sum(a => a.Qty);
|
|
|
+ //如果平均每周的需求大于经济批量直接均分
|
|
|
+ if(publishedWeekCount<4 && itemQty/(4-publishedWeekCount)>= middleItem)
|
|
|
+ {
|
|
|
+ for(int w= publishedWeekCount;w<4;w++)
|
|
|
+ {
|
|
|
+ mes_morder mes_Morder = new mes_morder();
|
|
|
+ mes_Morder.GenerateNewId(help.NextId());
|
|
|
+ mes_Morder.morder_type = MorderEnum.JhMorder;
|
|
|
+ mes_Morder.work_order_type = MorderEnum.CgMorder;
|
|
|
+ mes_Morder.morder_state = "";
|
|
|
+ //mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
|
|
|
+ mes_Morder.morder_no = Guid.NewGuid().ToString();
|
|
|
+ mes_Morder.fms_number = "";
|
|
|
+ mes_Morder.bom_number = subProductItemModel[key].bom_number;
|
|
|
+ mes_Morder.fmodel = subProductItemModel[key].model;
|
|
|
+ mes_Morder.moentry_startup_status = 0;
|
|
|
+ mes_Morder.tenant_id = input.tenant_id;
|
|
|
+ mes_Morder.factory_id = input.factory_id;
|
|
|
+ mes_Morder.company_id = input.company_id;
|
|
|
+ mes_Morder.org_id = input.org_id;
|
|
|
+ mes_Morder.product_code = subProductItemModel[key].item_number;
|
|
|
+ mes_Morder.product_name = subProductItemModel[key].item_name;
|
|
|
+ mes_Morder.morder_date = DateTime.Now.Date.AddDays(1);
|
|
|
+ mes_Morder.moentry_prd = null;
|
|
|
+ mes_Morder.moentry_prdname = null;
|
|
|
+ mes_Morder.moentry_wrkc = null;
|
|
|
+ mes_Morder.moentry_wrkcname = null;
|
|
|
+ mes_Morder.picking_qty = 0;
|
|
|
+ mes_Morder.unit = subProductItemModel[key].unit;
|
|
|
+ mes_Morder.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Morder.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ //成品半成品取周一为入库时间开始往前推
|
|
|
+ mes_Morder.moentry_sys_stime = kTime.AddDays(7 * w - ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
|
|
|
+ mes_Morder.moentry_sys_etime = kTime.AddDays(7 * w);
|
|
|
+ mes_Morder.remaining_number = 0;
|
|
|
+ mes_Morder.create_time = DateTime.Now;
|
|
|
+ mes_Morder.bang_id = bang_id;
|
|
|
+ //生成工单子表数据
|
|
|
+ mes_moentry mes_Moentry = new mes_moentry();
|
|
|
+ mes_Moentry.GenerateNewId(help.NextId());
|
|
|
+ mes_Moentry.moentry_moid = mes_Morder.Id;
|
|
|
+ mes_Moentry.moentry_mono = mes_Morder.morder_no;
|
|
|
+ mes_Moentry.unit = subProductItemModel[key].unit;
|
|
|
+ mes_Moentry.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Moentry.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Moentry.remaining_number = 0;
|
|
|
+ mes_Moentry.tenant_id = input.tenant_id;
|
|
|
+ mes_Moentry.factory_id = input.factory_id;
|
|
|
+ mes_Moentry.company_id = input.company_id;
|
|
|
+ mes_Moentry.org_id = input.org_id;
|
|
|
+ mes_Moentry.create_time = DateTime.Now;
|
|
|
+ mes_Moentry.bang_id = bang_id;
|
|
|
+ //暂时不做同周合并
|
|
|
+ var isExitsSameWeek = moList.Find(m => m.bom_number == subProductItemModel[key].bom_number &&
|
|
|
+ m.product_code == subProductItemModel[key].item_number &&
|
|
|
+ GetWeekOfYear(m.moentry_sys_stime.GetValueOrDefault()) == GetWeekOfYear(mes_Morder.moentry_sys_stime.GetValueOrDefault()));
|
|
|
+
|
|
|
+ var prodLine = prodLines.Where(x => x.Part == key).OrderBy(x => x.Sequence).FirstOrDefault();
|
|
|
+ ReplenishmentWeekPlan weekItem = new ReplenishmentWeekPlan();
|
|
|
+ weekItem.Priority = 1;
|
|
|
+ weekItem.Area = "";
|
|
|
+ weekItem.PlanStartDate = mes_Morder.moentry_sys_stime.GetValueOrDefault();
|
|
|
+ weekItem.Week = $"WK{GetWeekOfYear(mes_Morder.moentry_sys_stime.Value).ToString("00")}";
|
|
|
+ //weekItem.OrderNO = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "WO", 1, "", 1)[0].NbrResult;
|
|
|
+ weekItem.OrderNO = Guid.NewGuid().ToString();
|
|
|
+ weekItem.ProductionOrder = mes_Morder.morder_no;
|
|
|
+ weekItem.SAPOrderNO = "";
|
|
|
+ weekItem.OrderType = "量产";
|
|
|
+ weekItem.ProductionBatch = "";
|
|
|
+ weekItem.ProductionStatus = "";
|
|
|
+ weekItem.ProdLine = "";
|
|
|
+ weekItem.ProdRange = "";
|
|
|
+ if (prodLine != null && lineMasters.Find(b => b.Line == prodLine.Line) != null)
|
|
|
+ {
|
|
|
+ weekItem.Line = lineMasters.Find(b => b.Line == prodLine.Line).Describe;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ weekItem.Line = "";
|
|
|
+ }
|
|
|
+
|
|
|
+ weekItem.ItemNumber = key;
|
|
|
+ weekItem.Model = subProductItemModel[key].model;
|
|
|
+ weekItem.Languages = "";
|
|
|
+ weekItem.Qty = mes_Morder.morder_production_number.Value;
|
|
|
+ weekItem.ItemStatus = "";
|
|
|
+ weekItem.PlanKittingDate = DateTime.Now;
|
|
|
+ weekItem.Year = DateTime.Now.AddMonths(k).Year;
|
|
|
+ weekItem.Month = DateTime.Now.AddMonths(k).Month;
|
|
|
+ weekItem.PlanMonth = kMonth;
|
|
|
+ weekItem.WeekSeq = w;
|
|
|
+ weekItem.tenant_id = input.tenant_id;
|
|
|
+ weekItem.factory_id = input.factory_id;
|
|
|
+ weekItem.company_id = input.company_id;
|
|
|
+ weekItem.org_id = input.org_id;
|
|
|
+ weekItem.create_time = DateTime.Now;
|
|
|
+ weekItem.DistributionChannel = "瑞奇";
|
|
|
+ weekItem.IsReplenishmentModel = "N";
|
|
|
+ weekItem.InStockDate = mes_Morder.moentry_sys_etime.Value;
|
|
|
+ weekItem.AssembleHours = 0;
|
|
|
+ weekItem.HeatSealHours = 0;
|
|
|
+ weekItem.PackageHours = 0;
|
|
|
+ weekItem.TotalHours = 0;
|
|
|
+ weekPlan.Add(weekItem);
|
|
|
+ moList.Add(mes_Morder);
|
|
|
+ moentryList.Add(mes_Moentry);
|
|
|
+ }
|
|
|
+ }else if(publishedWeekCount < 4 && itemQty / (4 - publishedWeekCount) < middleItem)//不够的话就按顺序排
|
|
|
+ {
|
|
|
+ for (int w = publishedWeekCount; w < 4; w++)
|
|
|
+ {
|
|
|
+ if(itemQty>0)
|
|
|
+ {
|
|
|
+ mes_morder mes_Morder = new mes_morder();
|
|
|
+ mes_Morder.GenerateNewId(help.NextId());
|
|
|
+ mes_Morder.morder_type = MorderEnum.JhMorder;
|
|
|
+ mes_Morder.work_order_type = MorderEnum.CgMorder;
|
|
|
+ mes_Morder.morder_state = "";
|
|
|
+ //mes_Morder.morder_no = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", 1, "", 1)[0].NbrResult;
|
|
|
+ mes_Morder.morder_no = Guid.NewGuid().ToString();
|
|
|
+ mes_Morder.fms_number = "";
|
|
|
+ mes_Morder.bom_number = subProductItemModel[key].bom_number;
|
|
|
+ mes_Morder.fmodel = subProductItemModel[key].model;
|
|
|
+ mes_Morder.moentry_startup_status = 0;
|
|
|
+ mes_Morder.tenant_id = input.tenant_id;
|
|
|
+ mes_Morder.factory_id = input.factory_id;
|
|
|
+ mes_Morder.company_id = input.company_id;
|
|
|
+ mes_Morder.org_id = input.org_id;
|
|
|
+ mes_Morder.product_code = subProductItemModel[key].item_number;
|
|
|
+ mes_Morder.product_name = subProductItemModel[key].item_name;
|
|
|
+ mes_Morder.morder_date = DateTime.Now.Date.AddDays(1);
|
|
|
+ mes_Morder.moentry_prd = null;
|
|
|
+ mes_Morder.moentry_prdname = null;
|
|
|
+ mes_Morder.moentry_wrkc = null;
|
|
|
+ mes_Morder.moentry_wrkcname = null;
|
|
|
+ mes_Morder.picking_qty = 0;
|
|
|
+ mes_Morder.unit = subProductItemModel[key].unit;
|
|
|
+ mes_Morder.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Morder.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ //成品半成品取周一为入库时间开始往前推
|
|
|
+ mes_Morder.moentry_sys_stime = kTime.AddDays(7 * w - ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
|
|
|
+ mes_Morder.moentry_sys_etime = kTime.AddDays(7 * w);
|
|
|
+ mes_Morder.remaining_number = 0;
|
|
|
+ mes_Morder.create_time = DateTime.Now;
|
|
|
+ mes_Morder.bang_id = bang_id;
|
|
|
+ //生成工单子表数据
|
|
|
+ mes_moentry mes_Moentry = new mes_moentry();
|
|
|
+ mes_Moentry.GenerateNewId(help.NextId());
|
|
|
+ mes_Moentry.moentry_moid = mes_Morder.Id;
|
|
|
+ mes_Moentry.moentry_mono = mes_Morder.morder_no;
|
|
|
+ mes_Moentry.unit = subProductItemModel[key].unit;
|
|
|
+ mes_Moentry.morder_production_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Moentry.need_number = Math.Ceiling((itemQty.GetValueOrDefault() - publishedWeekQtySum) / (4 - publishedWeekCount));
|
|
|
+ mes_Moentry.remaining_number = 0;
|
|
|
+ mes_Moentry.tenant_id = input.tenant_id;
|
|
|
+ mes_Moentry.factory_id = input.factory_id;
|
|
|
+ mes_Moentry.company_id = input.company_id;
|
|
|
+ mes_Moentry.org_id = input.org_id;
|
|
|
+ mes_Moentry.create_time = DateTime.Now;
|
|
|
+ mes_Moentry.bang_id = bang_id;
|
|
|
+ //暂时不做同周合并
|
|
|
+ var isExitsSameWeek = moList.Find(m => m.bom_number == subProductItemModel[key].bom_number &&
|
|
|
+ m.product_code == subProductItemModel[key].item_number &&
|
|
|
+ GetWeekOfYear(m.moentry_sys_stime.GetValueOrDefault()) == GetWeekOfYear(mes_Morder.moentry_sys_stime.GetValueOrDefault()));
|
|
|
+
|
|
|
+ var prodLine = prodLines.Where(x => x.Part == key).OrderBy(x => x.Sequence).FirstOrDefault();
|
|
|
+ ReplenishmentWeekPlan weekItem = new ReplenishmentWeekPlan();
|
|
|
+ weekItem.Priority = 1;
|
|
|
+ weekItem.Area = "";
|
|
|
+ weekItem.PlanStartDate = mes_Morder.moentry_sys_stime.GetValueOrDefault();
|
|
|
+ weekItem.Week = $"WK{GetWeekOfYear(mes_Morder.moentry_sys_stime.Value).ToString("00")}";
|
|
|
+ //weekItem.OrderNO = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "WO", 1, "", 1)[0].NbrResult;
|
|
|
+ weekItem.OrderNO = Guid.NewGuid().ToString();
|
|
|
+ weekItem.ProductionOrder = mes_Morder.morder_no;
|
|
|
+ weekItem.SAPOrderNO = "";
|
|
|
+ weekItem.OrderType = "量产";
|
|
|
+ weekItem.ProductionBatch = "";
|
|
|
+ weekItem.ProductionStatus = "";
|
|
|
+ weekItem.ProdLine = "";
|
|
|
+ weekItem.ProdRange = "";
|
|
|
+ if (prodLine != null && lineMasters.Find(b => b.Line == prodLine.Line) != null)
|
|
|
+ {
|
|
|
+ weekItem.Line = lineMasters.Find(b => b.Line == prodLine.Line).Describe;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ weekItem.Line = "";
|
|
|
+ }
|
|
|
+
|
|
|
+ weekItem.ItemNumber = key;
|
|
|
+ weekItem.Model = subProductItemModel[key].model;
|
|
|
+ weekItem.Languages = "";
|
|
|
+ weekItem.Qty = mes_Morder.morder_production_number.Value;
|
|
|
+ weekItem.ItemStatus = "";
|
|
|
+ weekItem.PlanKittingDate = DateTime.Now;
|
|
|
+ weekItem.Year = DateTime.Now.AddMonths(k).Year;
|
|
|
+ weekItem.Month = DateTime.Now.AddMonths(k).Month;
|
|
|
+ weekItem.PlanMonth = kMonth;
|
|
|
+ weekItem.WeekSeq = w;
|
|
|
+ weekItem.tenant_id = input.tenant_id;
|
|
|
+ weekItem.factory_id = input.factory_id;
|
|
|
+ weekItem.company_id = input.company_id;
|
|
|
+ weekItem.org_id = input.org_id;
|
|
|
+ weekItem.create_time = DateTime.Now;
|
|
|
+ weekItem.DistributionChannel = "瑞奇";
|
|
|
+ weekItem.IsReplenishmentModel = "N";
|
|
|
+ weekItem.InStockDate = mes_Morder.moentry_sys_etime.Value;
|
|
|
+ weekItem.AssembleHours = 0;
|
|
|
+ weekItem.HeatSealHours = 0;
|
|
|
+ weekItem.PackageHours = 0;
|
|
|
+ weekItem.TotalHours = 0;
|
|
|
+ weekPlan.Add(weekItem);
|
|
|
+ moList.Add(mes_Morder);
|
|
|
+ moentryList.Add(mes_Moentry);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1824,15 +2083,9 @@ namespace Business.Replenishment
|
|
|
weekPlan[i].ProductionOrder = morder_noList[i].NbrResult;
|
|
|
weekPlan[i].OrderNO = OrderNOList[i].NbrResult;
|
|
|
}
|
|
|
-
|
|
|
await PlanOrderResourceCheck(moList, moentryList, bang_id, input);
|
|
|
|
|
|
var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
|
|
|
- moList.ForEach(mo =>
|
|
|
- {
|
|
|
- var moItem = examine_resultList.Find(b => b.morder_no == mo.morder_no);
|
|
|
- mo.moentry_sys_stime = moItem.kitting_times;
|
|
|
- });
|
|
|
await _mysql_mes_morder.InsertManyAsync(moList);
|
|
|
await _mysql_mes_moentry.InsertManyAsync(moentryList);
|
|
|
|
|
|
@@ -2397,7 +2650,7 @@ namespace Business.Replenishment
|
|
|
//添加工单数据
|
|
|
workOrd = new WorkOrdMaster();
|
|
|
workOrd.Domain = item.factory_id.ToString();
|
|
|
- workOrd.OrdDate = item.moentry_sys_stime;
|
|
|
+ workOrd.OrdDate = item.moentry_sys_stime.GetValueOrDefault().Date;
|
|
|
workOrd.ReleaseDate = Convert.ToDateTime(item.moentry_sys_stime.GetValueOrDefault().ToString("u"));
|
|
|
workOrd.DueDate = item.moentry_sys_etime;
|
|
|
workOrd.WorkOrd = item.morder_no;
|
|
|
@@ -2405,7 +2658,7 @@ namespace Business.Replenishment
|
|
|
workOrd.QtyOrded = item.need_number.GetValueOrDefault();
|
|
|
workOrd.Period = 1;
|
|
|
workOrd.Priority = item.urgent;
|
|
|
- workOrd.Status = "p";
|
|
|
+ workOrd.Status = "";
|
|
|
workOrd.IsActive = true;
|
|
|
workOrd.IsConfirm = true;
|
|
|
workOrd.CreateTime = DateTime.Now;
|
|
|
@@ -3761,7 +4014,7 @@ namespace Business.Replenishment
|
|
|
mes_Morder.morder_type = MorderEnum.JhMorder;
|
|
|
//mes_Morder.morder_icitem_type
|
|
|
mes_Morder.work_order_type = MorderEnum.CgMorder;
|
|
|
- mes_Morder.morder_state = MorderEnum.Initial_state;
|
|
|
+ mes_Morder.morder_state ="";
|
|
|
mes_Morder.morder_no = list[i].NbrResult.ToString();
|
|
|
mes_Morder.fms_number = ic_item.fms_number;
|
|
|
mes_Morder.bom_number = bom.bom_number;
|
|
|
@@ -4010,7 +4263,7 @@ namespace Business.Replenishment
|
|
|
public static int GetWeekOfYear(DateTime dt)
|
|
|
{
|
|
|
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
|
|
|
- int weekOfYear = gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Friday);
|
|
|
+ int weekOfYear = gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
|
|
|
return weekOfYear;
|
|
|
}
|
|
|
|