This commit is contained in:
2024-09-02 10:24:25 +08:00
2 changed files with 44 additions and 11 deletions

View File

@@ -97,7 +97,41 @@ namespace Tnb.ProductionMgr
// }).FirstAsync();
OrganizeEntity workline = await _organizeService.GetAnyParentByWorkstationId(station_id, DictConst.RegionCategoryWorklineCode);
PrdMoTask prdMoTask = await db.Queryable<PrdMoTask>().Where(x => x.workline_id == workline.Id && x.worker_id == _userManager.UserId && x.mo_task_status==DictConst.InProgressEnCode)
// PrdMoTask prdMoTask = await db.Queryable<PrdMoTask>().Where(x => x.workline_id == workline.Id && x.worker_id == _userManager.UserId && x.mo_task_status==DictConst.InProgressEnCode)
// .FirstAsync();
string nowTime = DateTime.Now.ToString("HH:mm");
BasFactoryConfig config = await db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.DAYNIGHTWORKTIME);
Dictionary<string,string> dayNightWorkTime = JsonConvert.DeserializeObject<Dictionary<string, string>>(config.value);
string dayStime = dayNightWorkTime["白班"].Split("-")[0];
string dayEtime = dayNightWorkTime["白班"].Split("-")[1];
string nightStime = dayNightWorkTime["夜班"].Split("-")[0];
string nightEtime = dayNightWorkTime["夜班"].Split("-")[1];
string dayBeforeStime = dayNightWorkTime["白班前"].Split("-")[0];
string dayBeforeEtime = dayNightWorkTime["白班前"].Split("-")[1];
string dayAfterStime = dayNightWorkTime["白班后"].Split("-")[0];
string dayAfterEtime = dayNightWorkTime["白班后"].Split("-")[1];
string nightBeforeStime = dayNightWorkTime["夜班前"].Split("-")[0];
string nightBeforeEtime = dayNightWorkTime["夜班前"].Split("-")[1];
string nightAfterStime = dayNightWorkTime["夜班后"].Split("-")[0];
string nightAfterEtime = dayNightWorkTime["夜班后"].Split("-")[1];
bool twoDayFlag = string.Compare(nowTime, dayStime) >= 0 && string.Compare(nowTime, dayEtime) <= 0;
bool twoNightFlag = string.Compare(nowTime,nightStime)>=0 && string.Compare(nowTime,nightEtime)<=0;
bool fourDayBeforeFlag = (string.Compare(nowTime,dayBeforeStime)>=0 && string.Compare(nowTime,dayBeforeEtime)<=0) ;
bool fourDayAfterFlag = (string.Compare(nowTime,dayAfterStime)>=0 && string.Compare(nowTime,dayAfterEtime)<=0) ;
bool fourNightBeforeFlag = (string.Compare(nowTime,nightBeforeStime)>=0 && string.Compare(nowTime,nightBeforeEtime)<=0) ;
bool fourNightAfterFlag = (string.Compare(nowTime,nightAfterStime)>=0 && string.Compare(nowTime,nightAfterEtime)<=0) ;
string userId = _userManager.UserId;
PrdMoTask prdMoTask = await db.Queryable<PrdMoTask>().
Where(x => x.workline_id == workline.Id && x.mo_task_status==DictConst.InProgressEnCode)
.Where(x=>(x.scheduling_class_type=="1" && twoDayFlag && x.dayshift_worker_id==userId)
|| (x.scheduling_class_type=="1" && twoNightFlag && x.nightshift_worker_id==userId)
|| (x.scheduling_class_type=="2" && fourDayBeforeFlag && x.dayshift_worker_id==userId)
|| (x.scheduling_class_type=="2" && fourDayAfterFlag && x.dayshiftafter_worker_id==userId)
|| (x.scheduling_class_type=="2" && fourNightBeforeFlag && x.nightshift_worker_id==userId)
|| (x.scheduling_class_type=="2" && fourNightAfterFlag && x.nightshiftafter_worker_id==userId))
.FirstAsync();
if (prdMoTask == null)

View File

@@ -1629,12 +1629,12 @@ namespace Tnb.ProductionMgr
}
}
if (prdTaskList.Where(p => p.mo_task_status == "Pause").Count() > 0 && behavior==PrdTaskBehavior.Start)
if (list.Where(p => p.mo_task_status == "Pause").Count() > 0 && behavior==PrdTaskBehavior.Start)
{
TimerPoolHelper.GetInstance().StartTimer(TimeCallback,prdTaskList.Where(p => p.mo_task_status == "Pause").ToList(),TimeSpan.FromHours(1),Timeout.InfiniteTimeSpan);
}else if (prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").Count() > 0 && behavior == PrdTaskBehavior.Start)
TimerPoolHelper.GetInstance().StartTimer(TimeCallback,list.Where(p => p.mo_task_status == "Pause").ToList(),TimeSpan.FromHours(1),Timeout.InfiniteTimeSpan);
}else if (list.Where(p => p.mo_task_status == "ToBeStarted").Count() > 0 && behavior == PrdTaskBehavior.Start)
{
foreach (PrdMoTask? task in prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").ToList())
foreach (PrdMoTask? task in list.Where(p => p.mo_task_status == "ToBeStarted").ToList())
{
ToolMolds toolMolds = await _db.Queryable<ToolMolds>().SingleAsync(x=>x.id==task.mold_id);
TriggerPlanEntity entity = new()
@@ -1668,13 +1668,12 @@ namespace Tnb.ProductionMgr
{
int hour = int.Parse(qcCheckPlanAdds[0].content.Split(" ")[2].Split("/")[1]);
int minute = int.Parse(qcCheckPlanAdds[0].content.Split(" ")[1].Split("/")[1]);
if (hour > 0)
if (minute > 0)
{
TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,prdTaskList.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromHours(hour),Timeout.InfiniteTimeSpan,false);
}else if (minute > 0)
TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,list.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromMinutes(minute),TimeSpan.FromMinutes(minute),false);
}else if (hour > 0)
{
TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,prdTaskList.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromMinutes(minute),Timeout.InfiniteTimeSpan,false);
TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,list.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromHours(hour),TimeSpan.FromHours(hour),false);
}
}
@@ -1682,7 +1681,7 @@ namespace Tnb.ProductionMgr
if (behavior == PrdTaskBehavior.Pause)
{
foreach (PrdMoTask? task in prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").ToList())
foreach (PrdMoTask? task in list.Where(p => p.mo_task_status == "InProgress").ToList())
{
TimerPoolHelper.GetInstance().DisposeTimer(new Dictionary<string,object>()
{