From 4cc770e5a4032754777a256c7f43ef36b14bb0e1 Mon Sep 17 00:00:00 2001 From: 12888491 <295228902@qq.com> Date: Thu, 27 Oct 2022 20:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=8F=AD=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoJob/Job/AutoUpdatePlanJob.cs | 61 ++++--- .../AutoJob/Job/CheckDateStorageJob.cs | 97 ++++++----- .../MaterialManage/StorageService.cs | 94 +++++++---- .../MaterialManage/WorkRunService.cs | 4 + .../ProcessManage/WorkOrderService.cs | 90 ++++++----- .../ProcessManage/WorkPlanService.cs | 153 ++++++++++-------- 6 files changed, 305 insertions(+), 194 deletions(-) diff --git a/WaterCloud.Service/AutoJob/Job/AutoUpdatePlanJob.cs b/WaterCloud.Service/AutoJob/Job/AutoUpdatePlanJob.cs index 64694ce..784e7c7 100644 --- a/WaterCloud.Service/AutoJob/Job/AutoUpdatePlanJob.cs +++ b/WaterCloud.Service/AutoJob/Job/AutoUpdatePlanJob.cs @@ -1,5 +1,6 @@ using Chloe; using Microsoft.AspNetCore.Hosting; +using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Linq; @@ -628,29 +629,45 @@ namespace WaterCloud.Service.AutoJob DateTime endtime = DateTime.Now.Date; string classNum = ""; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); - var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int j = 0; j < classNums.Count(); j++) - { - var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (DateTime.Now> DateTime.Now.Date.AddMinutes(tempStartTime)&& DateTime.Now <= DateTime.Now.Date.AddMinutes(tempEndTime)) - { - classNum = classNums[j].F_ItemCode; - starttime = DateTime.Now.Date.AddMinutes(tempStartTime); - endtime = DateTime.Now.Date.AddMinutes(tempEndTime); - break; - } - tempStartTime += tempEndTime; + var classStartTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[0]); + var tempStartTime = classStartTime.TotalMinutes; + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + var currentTime = DateTime.Now.TimeOfDay; + if (classNums.Count() == 1) + { + classNum = classNums[0].F_ItemCode; + starttime = DateTime.Now.Date.AddMinutes(tempStartTime); + endtime = DateTime.Now.Date.AddMinutes(tempEndTime); } + else + { + if (TimeSpan.Compare(currentTime, classStartTime) < 0) + { + checkdate = checkdate.AddDays(-1); + } + tempEndTime = tempStartTime; + for (int j = 0; j < classNums.Count(); j++) + { + var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (DateTime.Now > checkdate.AddMinutes(tempStartTime) && DateTime.Now <= checkdate.AddMinutes(tempEndTime)) + { + classNum = classNums[j].F_ItemCode; + starttime = checkdate.AddMinutes(tempStartTime); + endtime = checkdate.AddMinutes(tempEndTime); + break; + } + tempStartTime += tempEndTime; + } + } var materials = _context.Query(a => a.F_EnabledMark == true && a.F_DeleteMark == false).OrderByDesc(a => a.F_MaterialType).ToList(); foreach (var item in materials) { diff --git a/WaterCloud.Service/AutoJob/Job/CheckDateStorageJob.cs b/WaterCloud.Service/AutoJob/Job/CheckDateStorageJob.cs index 4b3818d..05ab9a5 100644 --- a/WaterCloud.Service/AutoJob/Job/CheckDateStorageJob.cs +++ b/WaterCloud.Service/AutoJob/Job/CheckDateStorageJob.cs @@ -36,55 +36,66 @@ namespace WaterCloud.Service.AutoJob var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var classStartTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[0]); var tempStartTime = classStartTime.TotalMinutes; - var tempEndTime = tempStartTime; + var classEndTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[1]); + var tempEndTime = classEndTime.TotalMinutes; var selectClass = 0; - for (int i = 0; i < classNums.Count(); i++) - { - var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (checkdate.AddMinutes(tempStartTime) < DateTime.Now && checkdate.AddMinutes(tempEndTime) >= DateTime.Now) - { - selectClass = i-1; - } - tempStartTime = tempEndTime; - } - if (selectClass < 0) + if (classNums.Count() == 1) { - selectClass = classNums.Count() - 1; + checkdate = checkdate.AddDays(-1); + starttime = checkdate.AddMinutes(tempStartTime); + endtime = checkdate.AddMinutes(tempEndTime); } - for (int i = 0; i < classNums.Count(); i++) - { - var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) + else + { + tempEndTime = tempStartTime; + for (int i = 0; i < classNums.Count(); i++) { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (i == selectClass) - { - starttime = checkdate.AddMinutes(tempStartTime); - endtime = checkdate.AddMinutes(tempEndTime); - if (starttime>DateTime.Now) - { - checkdate = DateTime.Now.Date.AddDays(-1); - starttime = starttime.AddDays(-1); - endtime = endtime.AddDays(-1); + var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; } - break; + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (checkdate.AddMinutes(tempStartTime) < DateTime.Now && checkdate.AddMinutes(tempEndTime) >= DateTime.Now) + { + selectClass = i - 1; + } + tempStartTime = tempEndTime; + } + if (selectClass < 0) + { + selectClass = classNums.Count() - 1; + } + for (int i = 0; i < classNums.Count(); i++) + { + var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (i == selectClass) + { + starttime = checkdate.AddMinutes(tempStartTime); + endtime = checkdate.AddMinutes(tempEndTime); + if (starttime > DateTime.Now) + { + checkdate = DateTime.Now.Date.AddDays(-1); + starttime = starttime.AddDays(-1); + endtime = endtime.AddDays(-1); + } + break; + } + tempStartTime = tempEndTime; } - tempStartTime = tempEndTime; } List list = new List(); var materials = _context.Query(a => a.F_EnabledMark == true && a.F_DeleteMark == false).ToList(); diff --git a/WaterCloud.Service/MaterialManage/StorageService.cs b/WaterCloud.Service/MaterialManage/StorageService.cs index b2b2c9d..f9f55c0 100644 --- a/WaterCloud.Service/MaterialManage/StorageService.cs +++ b/WaterCloud.Service/MaterialManage/StorageService.cs @@ -14,6 +14,7 @@ using System.Linq; using System.IO; using WaterCloud.Domain.PlanManage; using WaterCloud.Service.SystemManage; +using NPOI.SS.Formula.Functions; namespace WaterCloud.Service.MaterialManage { @@ -81,18 +82,42 @@ namespace WaterCloud.Service.MaterialManage //当前领用物料名称,数量 var eqpUse = uniwork.IQueryable(a => a.F_EqpId == keyValue && a.F_Num != a.F_DoneNum).GroupBy(a => a.F_MaterialName).Select(a => new { a.F_MaterialName, Num = Sql.Sum(a.F_Num - a.F_DoneNum) }).ToList(); string dateClass = ""; - if (DateTime.Now.Hour < 8) + var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); + var classStartTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[0]); + var tempStartTime = classStartTime.TotalMinutes; + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + var currentTime = DateTime.Now.TimeOfDay; + var checkdate = DateTime.Now.Date; + if (classNums.Count == 0) { - dateClass = DateTime.Now.Date.AddDays(-1).ToString("yyyyMMdd") + "夜班"; - } - else if (DateTime.Now.Hour >= 20) - { - dateClass = DateTime.Now.Date.ToString("yyyyMMdd") + "夜班"; - } + dateClass = checkdate.ToString("yyyyMMdd") + classNums[0].F_ItemName; + } else { - dateClass = DateTime.Now.Date.ToString("yyyyMMdd") + "白班"; - } + if (TimeSpan.Compare(currentTime, classStartTime) < 0) + { + checkdate = checkdate.AddDays(-1); + } + tempEndTime = tempStartTime; + for (int i = 0; i < classNums.Count(); i++) + { + var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (checkdate.AddMinutes(tempStartTime) < DateTime.Now && checkdate.AddMinutes(tempEndTime) >= DateTime.Now) + { + dateClass = checkdate.ToString("yyyyMMdd") + classNums[i].F_ItemName; + } + tempStartTime = tempEndTime; + } + } var transferbox = uniwork.IQueryable(a => a.F_EqpId == eqp.F_Id).OrderBy(a => a.F_CreatorTime).FirstOrDefault(); var data = new { @@ -270,33 +295,44 @@ namespace WaterCloud.Service.MaterialManage string classNum = ""; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var classStartTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[0]); + var classEndTime = TimeSpan.Parse(classNums.FirstOrDefault().F_Description.Split("-")[1]); var tempStartTime = classStartTime.TotalMinutes; - var tempEndTime = tempStartTime; + var tempEndTime = classEndTime.TotalMinutes; var currentTime = DateTime.Now.TimeOfDay; - if (TimeSpan.Compare(currentTime, classStartTime) < 0) - { - checkdate = DateTime.Now.Date.AddDays(-1); + if (classNums.Count() == 1) + { + classNum = classNums[0].F_ItemCode; + starttime = checkdate.AddMinutes(tempStartTime); + endtime = checkdate.AddMinutes(tempEndTime); } - for (int j = 0; j < classNums.Count(); j++) - { - var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) + else + { + if (TimeSpan.Compare(currentTime, classStartTime) < 0) { - tempEndTime += endTime - startTime; + checkdate = DateTime.Now.Date.AddDays(-1); } - else + tempEndTime = tempStartTime; + for (int j = 0; j < classNums.Count(); j++) { - tempEndTime += endTime + 24 * 60 - startTime; + var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (DateTime.Now > checkdate.AddMinutes(tempStartTime) && DateTime.Now <= checkdate.AddMinutes(tempEndTime)) + { + classNum = classNums[j].F_ItemCode; + starttime = checkdate.AddMinutes(tempStartTime); + endtime = checkdate.AddMinutes(tempEndTime); + break; + } + tempStartTime = tempEndTime; } - if (DateTime.Now > checkdate.AddMinutes(tempStartTime) && DateTime.Now <= checkdate.AddMinutes(tempEndTime)) - { - classNum = classNums[j].F_ItemCode; - starttime = checkdate.AddMinutes(tempStartTime); - endtime = checkdate.AddMinutes(tempEndTime); - break; - } - tempStartTime = tempEndTime; } var materials = uniwork.GetDbContext().Query(a => a.F_EnabledMark == true && a.F_DeleteMark == false).OrderByDesc(a => a.F_MaterialType).ToList(); foreach (var item in materials) diff --git a/WaterCloud.Service/MaterialManage/WorkRunService.cs b/WaterCloud.Service/MaterialManage/WorkRunService.cs index 5010e71..abd0641 100644 --- a/WaterCloud.Service/MaterialManage/WorkRunService.cs +++ b/WaterCloud.Service/MaterialManage/WorkRunService.cs @@ -94,6 +94,10 @@ namespace WaterCloud.Service.MaterialManage var tempEndTime = tempStartTime; var currentTime = DateTime.Now.TimeOfDay; var currentdate = DateTime.Now.Date; + if (classNums.Count() == 1) + { + return $"{currentdate.ToString("yyyyMMdd")}-{classNums.FirstOrDefault().F_ItemCode}"; + } if (TimeSpan.Compare(currentTime, classStartTime) < 0) { currentdate = currentdate.AddDays(-1); diff --git a/WaterCloud.Service/ProcessManage/WorkOrderService.cs b/WaterCloud.Service/ProcessManage/WorkOrderService.cs index c66bdb5..7ac36ac 100644 --- a/WaterCloud.Service/ProcessManage/WorkOrderService.cs +++ b/WaterCloud.Service/ProcessManage/WorkOrderService.cs @@ -9,6 +9,7 @@ using WaterCloud.Domain.MaterialManage; using WaterCloud.Domain.SystemOrganize; using WaterCloud.Service.SystemManage; using System.Net.Http; +using static Serenity.Web.PropertyItemsScript; namespace WaterCloud.Service.ProcessManage { @@ -137,25 +138,33 @@ namespace WaterCloud.Service.ProcessManage data.planDate = ((DateTime)data.F_PlanStartTime).Date; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int i = 0; i < classNums.Count(); i++) - { - var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + if (classNums.Count() == 1) + { + data.classNum = classNums[0].F_ItemCode; + } + else + { + tempEndTime = tempStartTime; + for (int i = 0; i < classNums.Count(); i++) { - tempEndTime += endTime - startTime; + var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (((DateTime)data.planDate).AddMinutes(tempStartTime) == data.F_PlanStartTime && ((DateTime)data.planDate).AddMinutes(tempEndTime) == data.F_PlanEndTime) + { + data.classNum = classNums[i].F_ItemCode; + break; + } + tempStartTime = tempEndTime; } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (((DateTime)data.planDate).AddMinutes(tempStartTime)== data.F_PlanStartTime && ((DateTime)data.planDate).AddMinutes(tempEndTime) == data.F_PlanEndTime) - { - data.classNum = classNums[i].F_ItemCode; - break; - } - tempStartTime = tempEndTime; } return data; } @@ -292,26 +301,35 @@ namespace WaterCloud.Service.ProcessManage List list = new List(); var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int i = 0; i < classNums.Count(); i++) - { - var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (classNums[i].F_ItemCode == entity.classNum) - { - entity.F_PlanStartTime = ((DateTime)entity.planDate).AddMinutes(tempStartTime); - entity.F_PlanEndTime = ((DateTime)entity.planDate).AddMinutes(tempEndTime); - } - tempStartTime = tempEndTime; + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + if (classNums.Count() == 1) + { + entity.F_PlanStartTime = ((DateTime)entity.planDate).AddMinutes(tempStartTime); + entity.F_PlanEndTime = ((DateTime)entity.planDate).AddMinutes(tempEndTime); } + else + { + tempEndTime = tempStartTime; + for (int i = 0; i < classNums.Count(); i++) + { + var startTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[i].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (classNums[i].F_ItemCode == entity.classNum) + { + entity.F_PlanStartTime = ((DateTime)entity.planDate).AddMinutes(tempStartTime); + entity.F_PlanEndTime = ((DateTime)entity.planDate).AddMinutes(tempEndTime); + } + tempStartTime = tempEndTime; + } + } uniwork.BeginTrans(); if (string.IsNullOrEmpty(keyValue)) { diff --git a/WaterCloud.Service/ProcessManage/WorkPlanService.cs b/WaterCloud.Service/ProcessManage/WorkPlanService.cs index f184a6e..e5c5dca 100644 --- a/WaterCloud.Service/ProcessManage/WorkPlanService.cs +++ b/WaterCloud.Service/ProcessManage/WorkPlanService.cs @@ -362,27 +362,36 @@ namespace WaterCloud.Service.ProcessManage entity.F_SplitType = 0; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int j = 0; j < classNums.Count(); j++) - { - var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (classNums[j].F_ItemCode == classnum) - { - entity.F_PlanStartTime = now.AddMinutes(tempStartTime); - entity.F_PlanEndTime = now.AddMinutes(tempEndTime); - break; - } - tempStartTime = tempEndTime; - } + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + if (classNums.Count() == 1) + { + entity.F_PlanStartTime = now.AddMinutes(tempStartTime); + entity.F_PlanEndTime = now.AddMinutes(tempEndTime); + } + else + { + tempEndTime = tempStartTime; + for (int j = 0; j < classNums.Count(); j++) + { + var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (classNums[j].F_ItemCode == classnum) + { + entity.F_PlanStartTime = now.AddMinutes(tempStartTime); + entity.F_PlanEndTime = now.AddMinutes(tempEndTime); + break; + } + tempStartTime = tempEndTime; + } + } entity.F_WorkPlanId = item.F_Id; entitys.Add(entity); var detail = new WorkOrderDetailEntity(); @@ -457,28 +466,36 @@ namespace WaterCloud.Service.ProcessManage entity.F_SplitType = 0; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int j = 0; j < classNums.Count(); j++) - { - var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (classNums[j].F_ItemCode == classnum) - { - entity.F_PlanStartTime = now.AddMinutes(tempStartTime); - entity.F_PlanEndTime = now.AddMinutes(tempEndTime); - break; - } - tempStartTime = tempEndTime; - } - + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + if (classNums.Count() == 1) + { + entity.F_PlanStartTime = now.AddMinutes(tempStartTime); + entity.F_PlanEndTime = now.AddMinutes(tempEndTime); + } + else + { + tempEndTime = tempStartTime; + for (int j = 0; j < classNums.Count(); j++) + { + var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (classNums[j].F_ItemCode == classnum) + { + entity.F_PlanStartTime = now.AddMinutes(tempStartTime); + entity.F_PlanEndTime = now.AddMinutes(tempEndTime); + break; + } + tempStartTime = tempEndTime; + } + } entity.F_WorkPlanId = item.F_Id; entitys.Add(entity); var detail = new WorkOrderDetailEntity(); @@ -583,28 +600,36 @@ namespace WaterCloud.Service.ProcessManage order.F_SplitType = 0; var classNums = await itemsApp.GetItemList("Mes_ClassNumber"); var tempStartTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[0]).TotalMinutes; - var tempEndTime = tempStartTime; - for (int j = 0; j < classNums.Count(); j++) - { - var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; - var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; - if (endTime > startTime) - { - tempEndTime += endTime - startTime; - } - else - { - tempEndTime += endTime + 24 * 60 - startTime; - } - if (classNums[j].F_ItemCode == classnum) - { - order.F_PlanStartTime = now.AddMinutes(tempStartTime); - order.F_PlanEndTime = now.AddMinutes(tempEndTime); - break; - } - tempStartTime = tempEndTime; + var tempEndTime = TimeSpan.Parse(classNums[0].F_Description.Split("-")[1]).TotalMinutes; + if (classNums.Count() == 1) + { + order.F_PlanStartTime = now.AddMinutes(tempStartTime); + order.F_PlanEndTime = now.AddMinutes(tempEndTime); + } + else + { + tempEndTime = tempStartTime; + for (int j = 0; j < classNums.Count(); j++) + { + var startTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[0]).TotalMinutes; + var endTime = TimeSpan.Parse(classNums[j].F_Description.Split("-")[1]).TotalMinutes; + if (endTime > startTime) + { + tempEndTime += endTime - startTime; + } + else + { + tempEndTime += endTime + 24 * 60 - startTime; + } + if (classNums[j].F_ItemCode == classnum) + { + order.F_PlanStartTime = now.AddMinutes(tempStartTime); + order.F_PlanEndTime = now.AddMinutes(tempEndTime); + break; + } + tempStartTime = tempEndTime; + } } - order.F_WorkPlanId = item.F_Id; entitys.Add(order); var detail = new WorkOrderDetailEntity();