Просмотр исходного кода

Merge branch 'dev' of http://123.60.180.165:4647/ZZYDOP/DOPCore into dev

tangdi 2 лет назад
Родитель
Сommit
ea8347946e

+ 23 - 13
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -156,8 +156,8 @@ namespace Business.Quartz
         public async Task DoProductShcedule()
         {
             //1、获取需要排产的工单:Status为空且IsActive==1
-            //List<WorkOrdMaster> workOrds = _workOrdMaster.Select(p => string.IsNullOrEmpty(p.Status) && p.IsActive == 1).Result;
-            List<WorkOrdMaster> workOrds = _workOrdMaster.Select(p => p.WorkOrd == "Test0000001").Result;
+            List<WorkOrdMaster> workOrds = _workOrdMaster.Select(p => string.IsNullOrEmpty(p.Status) && p.IsActive).Result;
+            //List<WorkOrdMaster> workOrds = _workOrdMaster.Select(p => p.WorkOrd == "Test0000002").Result;//测试代码
             if (workOrds.Count == 0)
             {
                 return;
@@ -254,7 +254,7 @@ namespace Business.Quartz
                 LineSchedule(item, routingDtos.OrderBy(p => p.level).ToList(), periodSequenceDtls, scheduleMasters);
 
                 //更新工单表
-                item.Status = "w";
+                item.Status = "r";
             }
             _businessDbContext.UpdateRange(workOrds);
             //记录排产数据
@@ -588,19 +588,24 @@ namespace Business.Quartz
             //剩余提前期
             needMinute -= curMins;
             //获取前层级时间段
-            var prePoints = workPoints.Where(p => p.Level < curPoint.Level).ToList();
+            var prePoints = workPoints.Where(p => p.Level < curPoint.Level).OrderByDescending(p=>p.Level).ToList();
+            bool flag = true;//标志位
             foreach (var item in prePoints)
             {
                 if (item.WorkMinutes >= needMinute)//当前时间段的可用提前期满足
                 {
                     actStart = item.EndPoint.AddMinutes((double)-needMinute);
+                    flag = false;
                     break;
                 }
                 needMinute -= item.WorkMinutes;
             }
+            if (!flag)
+            {
+                return actStart;
+            }
             //今天可用提前期不够,往前工作日找
             DateTime perStartTime = startTime;
-            bool flag = true;//标志位
             while (flag)
             {
                 //获取前一个工作日
@@ -623,10 +628,11 @@ namespace Business.Quartz
                     }
                     flag = false;
                 }
-                //当天可用提前期不满足
-                needMinute -= sumWorkMins;
+                else {
+                    //当天可用提前期不满足
+                    needMinute -= sumWorkMins;
+                }
             }
-
             return actStart;
         }
 
@@ -652,7 +658,8 @@ namespace Business.Quartz
                 if (!holidays.Exists(p => p.Dated.GetValueOrDefault().Date == nextDate && p.Ufld1 == "调休"))//下一天是周末
                 {
                     //递归继续找下一个工作日
-                    GetNextWorkDay(nextWeekDay, nextDate, curCalendars);
+                    rtnData = GetNextWorkDay(nextWeekDay, nextDate, curCalendars);
+                    return rtnData;
                 }
                 rtnData = Convert.ToDateTime(nextDate.ToString("yyyy-MM-dd") + " " + strStart);
                 return rtnData;
@@ -661,7 +668,8 @@ namespace Business.Quartz
             if (holidays.Exists(p => p.Dated.GetValueOrDefault().Date == nextDate && p.Ufld1 == "休假"))//是节假日
             {
                 //递归继续找下一个工作日
-                GetNextWorkDay(nextWeekDay, nextDate, curCalendars);
+                rtnData = GetNextWorkDay(nextWeekDay, nextDate, curCalendars);
+                return rtnData;
             }
             rtnData = Convert.ToDateTime(nextDate.ToString("yyyy-MM-dd") + " " + strStart);
             return rtnData;
@@ -687,8 +695,9 @@ namespace Business.Quartz
             {
                 if (!holidays.Exists(p => p.Dated.GetValueOrDefault().Date == preDate && p.Ufld1 == "调休"))//前一天是非工作日
                 {
-                    //递归继续找下一个工作日
-                    GetPreWorkDay(preDate, curCalendars);
+                    //递归继续找上一个工作日
+                    rtnData = GetPreWorkDay(preDate, curCalendars);
+                    return rtnData;
                 }
                 rtnData = Convert.ToDateTime(preDate.ToString("yyyy-MM-dd") + " " + strStart);
                 return rtnData;
@@ -697,7 +706,8 @@ namespace Business.Quartz
             if (holidays.Exists(p => p.Dated.GetValueOrDefault().Date == preDate && p.Ufld1 == "休假"))//是节假日
             {
                 //递归继续找前一个工作日
-                GetPreWorkDay(preDate, curCalendars);
+                rtnData = GetPreWorkDay(preDate, curCalendars);
+                return rtnData;
             }
             rtnData = Convert.ToDateTime(preDate.ToString("yyyy-MM-dd") + " " + strStart);
             return rtnData;

+ 1 - 51
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -377,25 +377,6 @@ namespace Business.ResourceExamineManagement
         /// <exception cref="NotImplementedException"></exception>
         public async Task<string> ReceiveResult(ResourceCheckInputDto input)
         {
-            //TagMaster tagMaster=new TagMaster();
-            //tagMaster.Domain = "1000";
-            //tagMaster.Nbr = "20230505002"+DateTime.Now.Second.ToString();
-            //tagMaster.Type = "Q";
-            //tagMaster.Print = false;
-            //tagMaster.Void= false;
-            //tagMaster.Posted= false;
-            //tagMaster.BusinessID = 0;
-            //tagMaster.CreateUser = "admin";
-            //tagMaster.UpdateUser = "admin";
-            //tagMaster.CreateTime = DateTime.Now;
-            //tagMaster.UpdateTime= DateTime.Now;
-            //tagMaster.IsActive= true;
-            //tagMaster.IsConfirm= true;
-            //tagMaster.IsChanged= true;
-            //tagMaster.InvTitle = "线边库存核查";
-            //await _tagMasterRepository.Insert(tagMaster);
-            //var test= _tagMasterRepository.SelectDataBaseBySql("Select * from TagMaster Where Nbr='202305050029'", "TagMaster");
-            //return JsonConvert.SerializeObject(test);
             //资源检查入参全局变量赋值
             param.sorderId = input.sorderId;
             param.tenantId = input.tenantId;
@@ -408,26 +389,7 @@ namespace Business.ResourceExamineManagement
             //资源检查明细list
             List<ExamineResult> examines = new List<ExamineResult>();
             ExamineResult dtl;
-            /*if (input.sorderId == 123)
-            {
-                Random rd = new Random();
-
-                List<ic_item_stock> itemstocklist = new List<ic_item_stock>();
-                var iclist = _mysql_ic_item.GetListAsync(s => s.tenant_id == 101).Result;
-                iclist.ForEach(s => {
-                    ic_item_stock stock = new ic_item_stock();
-                    stock.GenerateNewId(help.NextId());
-                    stock.icitem_id = s.Id;
-                    stock.icitem_name = s.name;
-                    stock.sqty = rd.Next(0, 300);
-                    stock.tenant_id = s.tenant_id;
-                    stock.factory_id = s.factory_id;
-                    itemstocklist.Add(stock);
-                });
-                await _businessDbContext.ic_item_stock.BulkInsertAsync(itemstocklist, options => options.InsertKeepIdentity = true);
-                return "ok";
-            }*/
-
+            
             //生成当前计算bangid
             long bangid = help.NextId();
 
@@ -449,19 +411,9 @@ namespace Business.ResourceExamineManagement
             await DbSnapShot(input.tenantId, input.factoryId, bangid);
 
             //通过订单行的产品代码获取物料BOM数据
-            //FilterDefinition<ic_bom> filter = Builders<ic_bom>.Filter.In(s => s.bom_number, sentrys.Select(m => m.bom_number).ToList());
-            //List<ic_bom> boms = _ic_bom.GetManyByIds(filter).Result.Where(p => p.factory_id == input.factoryId && p.tenant_id == input.tenantId && !p.IsDeleted).ToList();
             List<mo_ic_bom> boms = _ic_bom.Find(p => sentrys.Select(m => m.item_number).Contains(p.item_number) && p.factory_id == input.factoryId && p.tenant_id == input.tenantId && !p.IsDeleted).Result.ToList();
-            ////物料bom
-            //List<mo_ic_bom> bomlist = new List<mo_ic_bom>();
-            ////物料bom明细
-            //List<mo_ic_bom_child> bomchildlist = new List<mo_ic_bom_child>();
             //物料信息
             List<mo_ic_item> icitemlist = new List<mo_ic_item>();
-            //替代关系
-            //List<mo_ic_substitute> sublist = new List<mo_ic_substitute>();
-            //List<mo_ic_substitute_group> suballlist = new List<mo_ic_substitute_group>();
-            //List<mo_ic_substitute_group_detail> subdtllist = new List<mo_ic_substitute_group_detail>();
             //物料库存表
             List<mo_ic_item_stock> stocklist = new List<mo_ic_item_stock>();
             //物料占用记录
@@ -490,8 +442,6 @@ namespace Business.ResourceExamineManagement
                 dtl.bill_no = sorder.bill_no;
                 dtl.sentry_id = item.Id;
                 dtl.entry_seq = item.entry_seq;
-                //TODO:最早开始时间默认3天后(后期调整)
-                dtl.earliest_times = DateTime.Now.Date.AddDays(3);
                 dtl.need_qty = item.qty.GetValueOrDefault();
                 dtl.need_time = item.plan_date;
                 //获取当前物料bom数据

+ 1 - 1
MicroServices/Business/Bussiness.Model/Production/PeriodSequenceDet.cs

@@ -50,7 +50,7 @@ namespace Business.Model.Production
         /// 班次
         /// </summary>
         [Comment("班次")]
-        public int? Period { get; set; }
+        public Int16 Period { get; set; }
 
         /// <summary>
         /// 订单数量