|
|
@@ -2814,10 +2814,55 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
//排产
|
|
|
await _productionScheduleAppService.DoProductShcedule(workOrdMasters);
|
|
|
- AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
|
|
|
+ //AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
|
|
|
return JsonConvert.SerializeObject("ok");
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 生成领料单
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="workOrd"></param>
|
|
|
+ public string CreatePickBill(string workOrd)
|
|
|
+ {
|
|
|
+ List<string> workOrds = new List<string>();
|
|
|
+ List<WorkOrdMaster> workOrdMasters = new List<WorkOrdMaster>();
|
|
|
+ if (string.IsNullOrEmpty(workOrd))
|
|
|
+ {
|
|
|
+ //获取工单数据
|
|
|
+ workOrdMasters = _workOrdMaster.Select(p => p.OrdDate >= DateTime.Now.Date.AddDays(1) && p.OrdDate < DateTime.Now.Date.AddDays(4) && p.Status != "r" && p.Status != "c");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ workOrds = workOrd.Split(",").ToList();
|
|
|
+ if (workOrds.Count() == 0)
|
|
|
+ {
|
|
|
+ return "没有需要下达的工单。";
|
|
|
+ }
|
|
|
+ workOrdMasters = _workOrdMaster.Select(p => workOrds.Contains(p.WorkOrd) && p.Status != "r" && p.Status != "c");
|
|
|
+ }
|
|
|
+ if (workOrdMasters.Count() == 0)
|
|
|
+ {
|
|
|
+ return "没有需要下达的工单。";
|
|
|
+ }
|
|
|
+ //获取已排产的工单
|
|
|
+ List<string> dbWorkOrds = _periodSequenceDet.Select(p => workOrds.Contains(p.WorkOrds)).Select(p => p.WorkOrds).Distinct().ToList();
|
|
|
+ //查出已排产的工单
|
|
|
+ workOrdMasters = workOrdMasters.Where(p => dbWorkOrds.Contains(p.WorkOrd)).ToList();
|
|
|
+ //查出已产生领料单、过滤掉,取出未领料的工单
|
|
|
+ var nbrList = _nbrMaster.Select(a => a.Domain == "1001" && a.Type == "SM" && dbWorkOrds.Contains(a.WorkOrd));
|
|
|
+ var noNbrlist = nbrList.Select(p => p.WorkOrd).ToList();
|
|
|
+ workOrdMasters = workOrdMasters.Where(p => !noNbrlist.Contains(p.WorkOrd)).ToList();
|
|
|
+ if (workOrdMasters.Count() == 0)
|
|
|
+ {
|
|
|
+ return "当前选择的工单已领料或未排产。";
|
|
|
+ }
|
|
|
+ AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
|
|
|
+ workOrdMasters.ForEach(p => { p.Status = "r"; });
|
|
|
+ _workOrdMaster.Update(workOrdMasters);
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 同步工单等相关数据
|
|
|
/// </summary>
|