소스 검색

合并冲突

Murphy 3 년 전
부모
커밋
053ec1dd34

+ 3 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -396,8 +396,9 @@ namespace Business.ResourceExamineManagement
                         }
                         //ProductionTimeDay = LeadTime;
                         mes_Morders.moentry_sys_etime = LeadTime;
-                        mes_Morders.morder_need_time = Convert.ToInt32(DateTime.ParseExact(ProductiveDate.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture) -
-                            DateTime.ParseExact(mes_Morders.moentry_sys_stime.Value.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture));
+                        TimeSpan span = ProductiveDate - mes_Morders.moentry_sys_stime.Value;
+                        mes_Morders.morder_need_time = (decimal)span.TotalMinutes;
+
                         //满足资源检查的时间需加上提前期
                         level1Dto.satisfy_time = LeadTime;
                         if (sentrys != null)

+ 2 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -177,8 +177,8 @@ namespace Business.ResourceExamineManagement
                     //系统建议完工日期为 开工日期+产能检查时间=完工日期
                     //var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                     mes_Morder.moentry_sys_etime = ProductiveDate;
-                    mes_Morder.morder_need_time = Convert.ToInt32(DateTime.ParseExact(ProductiveDate.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture) -
-                            DateTime.ParseExact(generateMorderDto.moentry_sys_stime.Value.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.CurrentCulture)); ;
+                    TimeSpan span = ProductiveDate - generateMorderDto.moentry_sys_stime.Value;
+                    mes_Morder.morder_need_time = (decimal)span.TotalMinutes;
                 }
             }
 

+ 5 - 5
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductExamineAppService.cs

@@ -80,7 +80,7 @@ namespace Business.ResourceExamineManagement
             {
                 return planEnd;
             }
-            var lastOp = curRoutingOps.Last();
+            var lastOp = curRoutingOps.First();
             //获取产线
             var curProdLine = prodLines.FirstOrDefault(p => p.Part == param.ItemNum && p.Op == lastOp.Op);
             if (curProdLine == null)
@@ -89,7 +89,7 @@ namespace Business.ResourceExamineManagement
             }
             //获取产线工作日历
             var curCalendars = calendarWorks.Where(p => p.ProdLine == curProdLine.Line).ToList();
-            if (curCalendars.Count() == 0 || curCalendars.Count() != 0)
+            if (curCalendars.Count() == 0 || curCalendars.Count() != 7)
             {
                 return planEnd;
             }
@@ -103,7 +103,7 @@ namespace Business.ResourceExamineManagement
                 planEnd = GetNextWorkDay(planEnd, curCalendars);
                 //计算工作日的产能
                 sumAmount += CalcCapacity(planEnd, curProdLine, curCalendars, curqualityLines);
-                planEnd.AddDays(1);
+                planEnd = planEnd.AddDays(1);
             } while (sumAmount < param.QtyOrd);
             return planEnd.AddDays(-1);
         }
@@ -157,7 +157,7 @@ namespace Business.ResourceExamineManagement
             //获取当天的工作时长(分钟)
             decimal workTime = curCalendars.First(p => p.WeekDay == (int)startTime.DayOfWeek).ShiftsHours1 * 60;
             //计算产能
-            sumQty = (workTime - sumResrt) / 60 * prodLine.Rate;
+            sumQty = Math.Floor((workTime - sumResrt) / 60 * prodLine.Rate);
             return sumQty;
         }
 
@@ -193,7 +193,7 @@ namespace Business.ResourceExamineManagement
                 item.sys_capacity_date = item.sys_material_date;
                 //计算系统交期(产能)
                 //获取主线最后一道工序
-                var routings = routingOps.Where(p => p.RoutingCode == item.item_number && p.ParentOp == 0).ToList();
+                var routings = routingOps.Where(p => p.RoutingCode == item.item_number && p.ParentOp == 0).OrderBy(p=>p.Op).ToList();
                 if (routings.Count() == 0)
                 {
                     continue;

+ 46 - 8
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -325,6 +325,36 @@ namespace Business.ResourceExamineManagement
         /// 产能检查
         /// </summary>
         private readonly ProductExamineAppService _productExamineAppService;
+
+        /// <summary>
+        /// 生产线明细表
+        /// </summary>
+        public List<ProdLineDetail> prodLines = new List<ProdLineDetail>();
+
+        /// <summary>
+        /// 标准工艺路径表
+        /// </summary>
+        public List<RoutingOpDetail> routingOps = new List<RoutingOpDetail>();
+
+        /// <summary>
+        /// 排产记录表
+        /// </summary>
+        public List<PeriodSequenceDet> periodSequences = new List<PeriodSequenceDet>();
+
+        /// <summary>
+        /// 工作日历
+        /// </summary>
+        public List<ShopCalendarWorkCtr> calendarWorks = new List<ShopCalendarWorkCtr>();
+
+        /// <summary>
+        /// 休息时间段
+        /// </summary>
+        public List<QualityLineWorkDetail> qualityLineWorks = new List<QualityLineWorkDetail>();
+
+        /// <summary>
+        /// 节假日
+        /// </summary>
+        public List<HolidayMaster> holidays = new List<HolidayMaster>();
         #endregion
 
         #region 构造函数
@@ -1924,16 +1954,16 @@ namespace Business.ResourceExamineManagement
             //产品物料编码
             List<string> itemnums = pretreatments.Where(p => p.level == 1).Select(p => p.item_number).Distinct().ToList();
             //产线明细
-            List<ProdLineDetail> prodLines = _prodLineDetail.Select(p=> itemnums.Contains(p.Part)).ToList();
-            //标工序
-            List<RoutingOpDetail> routingOps = _routingOpDetail.Select(p => itemnums.Contains(p.RoutingCode)).ToList();
+            prodLines = _prodLineDetail.Select(p=> itemnums.Contains(p.Part)).ToList();
+            //标工序
+            routingOps = _routingOpDetail.Select(p => itemnums.Contains(p.RoutingCode)).ToList();
             List<string> lines = prodLines.Select(p=>p.Line).Distinct().ToList();
             //工作日历
-            List<ShopCalendarWorkCtr> calendarWorks = _shopCalendarWorkCtr.Select(p=>lines.Contains(p.ProdLine)).ToList();
+            calendarWorks = _shopCalendarWorkCtr.Select(p=>lines.Contains(p.ProdLine)).ToList();
             //休息日
-            List<QualityLineWorkDetail> qualityLineWorks = _qualityLineWorkDetail.Select(p => lines.Contains(p.ProdLine)).ToList();
+            qualityLineWorks = _qualityLineWorkDetail.Select(p => lines.Contains(p.ProdLine)).ToList();
             //节假日
-            List<HolidayMaster> holidays = _holidayMaster.Select(p => p.Dated >= DateTime.Now.Date);
+            holidays = _holidayMaster.Select(p => p.Dated >= DateTime.Now.Date);
 
             //主工单
             List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetManyByCondition(x => boms.Select(p => p.bom_number).Contains(x.bom_number) && (x.morder_state != MorderEnum.Accomplish_state || x.morder_state != MorderEnum.Close_state
@@ -2166,7 +2196,8 @@ namespace Business.ResourceExamineManagement
                                 CreateTmie = DateTime.Now,
                                 UpdateTmie = DateTime.Now,
                                 CreateUser = "1001",
-                                UpdateUser = "1001"
+                                UpdateUser = "1001",
+                                UM = a.UM
                             });
                             i++;
                         }
@@ -2403,7 +2434,7 @@ namespace Business.ResourceExamineManagement
                 workOrd.RoutingCode = item.product_code;
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "";
+                workOrd.Status = " ";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrds.Add(workOrd);
@@ -2519,6 +2550,13 @@ namespace Business.ResourceExamineManagement
             List<string> itemNums = sentrys.Select(p=>p.item_number).Distinct().ToList();
             DateTime eralist = kittingTimes.Min(p => p.kitting_time).Date;
             List<PeriodSequenceDet> periodSequences = _periodSequenceDet.Select(p => itemNums.Contains(p.ItemNum) && p.PlanDate >= eralist).ToList();
+
+            //资源检查添加产线工序等数据
+            _productExamineAppService.prodLines = prodLines;
+            _productExamineAppService.routingOps = routingOps;
+            _productExamineAppService.calendarWorks = calendarWorks;
+            _productExamineAppService.qualityLineWorks = qualityLineWorks;
+            _productExamineAppService.holidays = holidays;
             _productExamineAppService.periodSequences = periodSequences;
             if (sentrys.Count() == 0)
             {