|
|
@@ -3107,7 +3107,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, input);
|
|
|
+ await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,false, input);
|
|
|
|
|
|
var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
|
|
|
await _businessDbContext.BulkInsertAsync(moList);
|
|
|
@@ -3122,7 +3122,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);
|
|
|
+ CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList,false);
|
|
|
}
|
|
|
|
|
|
if (workOrdSave.Any())
|
|
|
@@ -3709,7 +3709,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)
|
|
|
+ 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)
|
|
|
{
|
|
|
//工单主表
|
|
|
WorkOrdMaster workOrd;
|
|
|
@@ -3732,7 +3732,7 @@ namespace Business.Replenishment
|
|
|
workOrd.QtyOrded = item.need_number.GetValueOrDefault();
|
|
|
workOrd.Period = 1;
|
|
|
workOrd.Priority = item.urgent;
|
|
|
- workOrd.Status = "";
|
|
|
+ workOrd.Status =isyearcheck? "p":"";
|
|
|
workOrd.IsActive = true;
|
|
|
workOrd.IsConfirm = true;
|
|
|
workOrd.CreateTime = DateTime.Now;
|
|
|
@@ -4119,7 +4119,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, InputDto input)
|
|
|
+ public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck, InputDto input)
|
|
|
{
|
|
|
if (Mes_Morders.Any())
|
|
|
{
|
|
|
@@ -4179,7 +4179,7 @@ namespace Business.Replenishment
|
|
|
// _scheduleResultOpMaster.Delete(s => monolist.Contains(s.WorkOrd));
|
|
|
//}
|
|
|
//只走计划工单
|
|
|
- var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid, true);
|
|
|
+ var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,isyearcheck, true);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -4229,7 +4229,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 planCheck = false)
|
|
|
+ public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck,bool planCheck = false)
|
|
|
{
|
|
|
//资源检查结果
|
|
|
PschedDto rtn = new PschedDto();
|
|
|
@@ -4430,6 +4430,50 @@ namespace Business.Replenishment
|
|
|
try
|
|
|
{
|
|
|
_businessDbContext.BulkUpdate(mo_Mes_Morders);
|
|
|
+ if (_CalcBomViewAppService.mordersInsertList.Any())
|
|
|
+ {
|
|
|
+ var molist = ObjectMapper.Map<List<mo_mes_morder>, List<mes_morder>>(_CalcBomViewAppService.mordersInsertList);
|
|
|
+ _businessDbContext.BulkInsert(molist);
|
|
|
+
|
|
|
+ List<WorkOrdMaster> workOrdSave = new List<WorkOrdMaster>();
|
|
|
+ List<WorkOrdRouting> workOrdRoutingSave = new List<WorkOrdRouting>();
|
|
|
+ List<WorkOrdDetail> workOrdDetails = new List<WorkOrdDetail>();
|
|
|
+ if (molist.Any())
|
|
|
+ {
|
|
|
+ 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);
|
|
|
+ if (workOrdSave.Any())
|
|
|
+ {
|
|
|
+ workOrdSave = CalcPriority(workOrdSave, input.factoryId.ToString());
|
|
|
+ _businessDbContext.BulkInsert(workOrdSave);
|
|
|
+ }
|
|
|
+ var DBworkOrdList = _workOrdMaster.Select(a => workOrdSave.Count > 0 && a.Domain == workOrdSave[0].Domain && workOrdSave.Select(c => c.WorkOrd).Contains(a.WorkOrd));
|
|
|
+ if (workOrdRoutingSave.Any())
|
|
|
+ {
|
|
|
+ workOrdRoutingSave.ForEach(c =>
|
|
|
+ {
|
|
|
+ c.WorkOrdMasterRecID = DBworkOrdList.Where(a => a.WorkOrd == c.WorkOrd).First().RecID;
|
|
|
+ });
|
|
|
+ _businessDbContext.BulkInsert(workOrdRoutingSave);
|
|
|
+ }
|
|
|
+ if (workOrdDetails.Any())
|
|
|
+ {
|
|
|
+ workOrdDetails.ForEach(c =>
|
|
|
+ {
|
|
|
+ c.WorkOrdMasterRecID = DBworkOrdList.Where(a => a.WorkOrd == c.WorkOrd).First().RecID;
|
|
|
+ });
|
|
|
+ _businessDbContext.BulkInsert(workOrdDetails);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (_CalcBomViewAppService.moentriesInsertList.Any())
|
|
|
+ {
|
|
|
+ var moentrylist = ObjectMapper.Map<List<mo_mes_moentry>, List<mes_moentry>>(_CalcBomViewAppService.moentriesInsertList);
|
|
|
+ _businessDbContext.BulkInsert(moentrylist);
|
|
|
+ }
|
|
|
if (prmainlist.Any())
|
|
|
{
|
|
|
var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
|
|
|
@@ -5292,7 +5336,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,input);
|
|
|
+ await PlanOrderResourceCheck(moList,moentryList, bangid,true,input);
|
|
|
return "OK";
|
|
|
}
|
|
|
|