|
|
@@ -1809,6 +1809,7 @@ namespace Business.Replenishment
|
|
|
pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
|
|
|
}
|
|
|
|
|
|
+ routingOps = _routingOpDetail.Select(p => p.Domain ==input.factory_id.ToString()).ToList();
|
|
|
//更新周补货计划
|
|
|
List<ReplenishmentWeekPlan> updateRopList = new List<ReplenishmentWeekPlan>();
|
|
|
List<ReplenishmentWeekPlan> addRopList = new List<ReplenishmentWeekPlan>();
|
|
|
@@ -3107,7 +3108,7 @@ namespace Business.Replenishment
|
|
|
weekPlan[i].ProductionOrder = morder_noList[i].NbrResult;
|
|
|
weekPlan[i].OrderNO = OrderNOList[i].NbrResult;
|
|
|
}
|
|
|
- await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,false, input);
|
|
|
+ await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,"", input);
|
|
|
|
|
|
var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
|
|
|
await _businessDbContext.BulkInsertAsync(moList);
|
|
|
@@ -3122,7 +3123,7 @@ namespace Business.Replenishment
|
|
|
moList.ForEach(s => { s.create_time = DateTime.Now; });
|
|
|
List<b_bom_child_examine> childExamineList = _mysql_bom_child_examine.GetListAsync(c => examine_resultList.Select(x => x.Id).Contains(c.examine_id.GetValueOrDefault())).Result;
|
|
|
//同步工单
|
|
|
- CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList,false);
|
|
|
+ CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList);
|
|
|
}
|
|
|
|
|
|
if (workOrdSave.Any())
|
|
|
@@ -3709,7 +3710,7 @@ namespace Business.Replenishment
|
|
|
/// </summary>
|
|
|
/// <param name="morders"></param>
|
|
|
/// <param name="allRoutings">工艺路线数据</param>
|
|
|
- public void CreateWorkOrdDates(List<mes_morder> morders, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList,bool isyearcheck)
|
|
|
+ public void CreateWorkOrdDates(List<mes_morder> morders, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList)
|
|
|
{
|
|
|
//工单主表
|
|
|
WorkOrdMaster workOrd;
|
|
|
@@ -3732,7 +3733,7 @@ namespace Business.Replenishment
|
|
|
workOrd.QtyOrded = item.need_number.GetValueOrDefault();
|
|
|
workOrd.Period = 1;
|
|
|
workOrd.Priority = item.urgent;
|
|
|
- workOrd.Status =isyearcheck? "p":"";
|
|
|
+ workOrd.Status ="";
|
|
|
workOrd.IsActive = true;
|
|
|
workOrd.IsConfirm = true;
|
|
|
workOrd.CreateTime = DateTime.Now;
|
|
|
@@ -4119,7 +4120,7 @@ namespace Business.Replenishment
|
|
|
/// </summary>
|
|
|
/// <param name="input"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck, InputDto input)
|
|
|
+ public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,string analogCalcVersion, InputDto input)
|
|
|
{
|
|
|
if (Mes_Morders.Any())
|
|
|
{
|
|
|
@@ -4179,7 +4180,7 @@ namespace Business.Replenishment
|
|
|
// _scheduleResultOpMaster.Delete(s => monolist.Contains(s.WorkOrd));
|
|
|
//}
|
|
|
//只走计划工单
|
|
|
- var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,isyearcheck, true);
|
|
|
+ var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,analogCalcVersion, true);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -4229,7 +4230,7 @@ namespace Business.Replenishment
|
|
|
/// 工单检查物料齐套
|
|
|
/// </summary>
|
|
|
/// <param name="input"></param>
|
|
|
- public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck,bool planCheck = false)
|
|
|
+ public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,string analogCalcVersion, bool planCheck = false)
|
|
|
{
|
|
|
//资源检查结果
|
|
|
PschedDto rtn = new PschedDto();
|
|
|
@@ -4246,6 +4247,10 @@ namespace Business.Replenishment
|
|
|
param.factoryId = input.factoryId;
|
|
|
param.checkflag = false;
|
|
|
param.checkPlan = planCheck;
|
|
|
+ if(!string.IsNullOrEmpty(analogCalcVersion))
|
|
|
+ {
|
|
|
+ _CalcBomViewAppService.LongPeriod = true;
|
|
|
+ }
|
|
|
|
|
|
/*List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetManyByCondition(x => x.start_time > DateTime
|
|
|
.Now.Date.AddDays(1) && x.start_time < DateTime
|
|
|
@@ -4430,7 +4435,8 @@ namespace Business.Replenishment
|
|
|
try
|
|
|
{
|
|
|
_businessDbContext.BulkUpdate(mo_Mes_Morders);
|
|
|
- if (_CalcBomViewAppService.mordersInsertList.Any())
|
|
|
+ //长周期都是成品检查,生成的都是中间件工单,不需要写入;周计划包含中间件工单,需要写入
|
|
|
+ if (_CalcBomViewAppService.mordersInsertList.Any() && string.IsNullOrEmpty(analogCalcVersion))
|
|
|
{
|
|
|
var molist = ObjectMapper.Map<List<mo_mes_morder>, List<mes_morder>>(_CalcBomViewAppService.mordersInsertList);
|
|
|
_businessDbContext.BulkInsert(molist);
|
|
|
@@ -4442,9 +4448,7 @@ namespace Business.Replenishment
|
|
|
{
|
|
|
molist.ForEach(s => { s.create_time = DateTime.Now;s.factory_id = input.factoryId;s.company_id = input.company_id; });
|
|
|
//同步工单
|
|
|
- var routings=_routingOpDetail.Select(r => molist.Select(a => a.product_code).Distinct().ToList().Contains(r.RoutingCode) && r.Domain == input.factoryId.ToString());
|
|
|
- routings.AddRange(routingOps);
|
|
|
- CreateWorkOrdDates(molist, routings, workOrdSave, workOrdRoutingSave, workOrdDetails, new List<b_examine_result>(), new List<b_bom_child_examine>(),true);
|
|
|
+ CreateWorkOrdDates(molist, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, new List<b_examine_result>(), new List<b_bom_child_examine>());
|
|
|
if (workOrdSave.Any())
|
|
|
{
|
|
|
workOrdSave = CalcPriority(workOrdSave, input.factoryId.ToString());
|
|
|
@@ -4469,7 +4473,7 @@ namespace Business.Replenishment
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (_CalcBomViewAppService.moentriesInsertList.Any())
|
|
|
+ if (_CalcBomViewAppService.moentriesInsertList.Any() && string.IsNullOrEmpty(analogCalcVersion))
|
|
|
{
|
|
|
var moentrylist = ObjectMapper.Map<List<mo_mes_moentry>, List<mes_moentry>>(_CalcBomViewAppService.moentriesInsertList);
|
|
|
_businessDbContext.BulkInsert(moentrylist);
|
|
|
@@ -4477,6 +4481,7 @@ namespace Business.Replenishment
|
|
|
if (prmainlist.Any())
|
|
|
{
|
|
|
var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
|
|
|
+ pr_mainlist.ForEach(a => { a.analogcalcversion = analogCalcVersion;}) ;
|
|
|
_businessDbContext.BulkInsert(pr_mainlist);
|
|
|
}
|
|
|
if (_CalcBomViewAppService.newStockOccList.Any())
|
|
|
@@ -4898,7 +4903,7 @@ namespace Business.Replenishment
|
|
|
//产线明细
|
|
|
prodLines = _prodLineDetail.Select(p => itemnums.Contains(p.Part)).ToList();
|
|
|
//标准工序
|
|
|
- routingOps = _routingOpDetail.Select(p => itemnums.Contains(p.RoutingCode)).ToList();
|
|
|
+ routingOps = _routingOpDetail.Select(p =>p.Domain== param.factoryId.ToString()).ToList();
|
|
|
List<string> lines = prodLines.Select(p => p.Line).Distinct().ToList();
|
|
|
//工作日历
|
|
|
calendarWorks = _shopCalendarWorkCtr.Select(p => lines.Contains(p.ProdLine)).ToList();
|
|
|
@@ -5336,7 +5341,7 @@ namespace Business.Replenishment
|
|
|
//await _mysql_mes_morder.InsertManyAsync(moList);
|
|
|
//await _mysql_mes_moentry.InsertManyAsync(moentryList);
|
|
|
moList = moList.OrderBy(a => a.moentry_sys_stime).ToList();
|
|
|
- await PlanOrderResourceCheck(moList,moentryList, bangid,true,input);
|
|
|
+ await PlanOrderResourceCheck(moList,moentryList, bangid,"V1",input);
|
|
|
return "OK";
|
|
|
}
|
|
|
|