Bläddra i källkod

生产批次回写周计划。

tangdi 2 år sedan
förälder
incheckning
659410e6ed

+ 12 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -9,6 +9,7 @@ using Business.PriorityManagement;
 using Business.Replenishment;
 using Business.ReplenishmentManagement;
 using Business.ResourceExamineManagement.Dto;
+using Business.StructuredDB.Replenishment;
 using Business.StructuredDB.SaleFcst;
 using Business.StructuredDB.WMS;
 using EFCore.BulkExtensions;
@@ -120,6 +121,7 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         private readonly IRepository<mo_srm_po_list,long> _srm_po_list;
         private IRepository<srm_po_list, long> _mysql_srm_po_list;
+        private readonly IRepository<ReplenishmentWeekPlan, long> _replenishmentWeekPlan;
 
         /// <summary>
         /// 采购订单占用详情
@@ -480,7 +482,8 @@ namespace Business.ResourceExamineManagement
             IRepository<srm_purchase, long> srmPurchase,
             IUnitOfWorkManager unitOfWorkManager,
             SerialNumberAppService serialNumberAppService,
-            ReplenishmentAppService replenishmentAppService
+            ReplenishmentAppService replenishmentAppService,
+            IRepository<ReplenishmentWeekPlan,long> replenishmentWeekPlan
             )
         {
             _mes_technique = mes_technique;
@@ -570,6 +573,7 @@ namespace Business.ResourceExamineManagement
             _scheduleResultOpMaster = scheduleResultOpMaster;
             _serialNumberAppService = serialNumberAppService;
             _replenishmentAppService = replenishmentAppService;
+            _replenishmentWeekPlan = replenishmentWeekPlan;
         }
         #endregion
 
@@ -3856,6 +3860,7 @@ namespace Business.ResourceExamineManagement
             await AutoCreatePickBill(workOrdMasters, dbPeriodSequences, nbrMasterList, nbrDetailList, userAccount, workDetails);
             if (nbrMasterList.Any())
             {
+               var weekplan = _replenishmentWeekPlan.GetListAsync(s => s.factory_id.ToString() == domain && workOrdMasters.Select(x => x.WorkOrd).Contains(s.OrderNO)).Result;
                 var worklistDto = _serialNumberAppService.GetBillNo(workOrdMasters[0].Domain, "WOlot", workOrdMasters.Count, userAccount, 1);
                 int index = 0;
                 workOrdMasters.ForEach(p => { 
@@ -3865,6 +3870,11 @@ namespace Business.ResourceExamineManagement
                         if (worklistDto[index] != null)
                         {
                             p.LotSerial = worklistDto[index].NbrResult;
+                            var weekp = weekplan.Find(s => s.OrderNO == p.WorkOrd);
+                            if (weekp != null)
+                            {
+                                weekp.ProductionBatch = p.LotSerial;
+                            }
                         }
                         index++;
                     }
@@ -3946,7 +3956,7 @@ namespace Business.ResourceExamineManagement
                             c.NbrRecID = DBnbrList.Where(a => a.Nbr == c.Nbr).First().RecID;
                         });
                         _nbrDetail.Insert(nbrDetailList);
-                        
+                        await _replenishmentWeekPlan.UpdateManyAsync(weekplan);
                         _workOrdMaster.Update(workOrdMasters);
                         _periodSequenceDet.Update(dbPeriodSequences);
                         _workOrdRouting.Update(workOrdRoutings);