看板移动端任务单列表接口增加字段 任务单开始保存实际开始时间 提报后记录预计结束时间

This commit is contained in:
2023-10-17 18:45:18 +08:00
parent f6a92e607d
commit 8166acf483
4 changed files with 81 additions and 8 deletions

View File

@@ -1085,6 +1085,8 @@ namespace Tnb.ProductionMgr
// }
}
var taskReportLogs = new List<PrdMoTask>();
var prdTaskList = await db.Queryable<PrdMoTask>().Where(it => input.TaskIds.Contains(it.id)).ToListAsync();
if (prdTaskList?.Count > 0)
@@ -1105,6 +1107,10 @@ namespace Tnb.ProductionMgr
}
#endregion
prdTaskList.ForEach(x => x.mo_task_status = status);
if (behavior == PrdTaskBehavior.Start)
{
prdTaskList.ForEach(x => x.act_start_date = DateTime.Now);
}
row = await db.Updateable(prdTaskList).ExecuteCommandAsync();
foreach (var item in prdTaskList)
{
@@ -1494,6 +1500,25 @@ namespace Tnb.ProductionMgr
.SetColumns(x => x.complete_qty == x.complete_qty + input.reported_qty)
.Where(x => x.id == prdMo.id).ExecuteCommandAsync();
}
PerProcessStandardsH processStandardsH = await db.Queryable<PerProcessStandardsH>()
.Where(x => x.equip_id == prdMoTask.eqp_id && x.molds_id == prdMoTask.mold_id &&
x.output_material_id == prdMoTask.material_id && x.enabled == 1)
.OrderByDescending(x => x.create_time).FirstAsync();
ToolMolds toolMolds = await db.Queryable<ToolMolds>().SingleAsync(x => x.id == prdMoTask.mold_id);
if (toolMolds != null && toolMolds?.mold_cavity > 0 && processStandardsH != null &&
processStandardsH?.moulding_cycle > 0)
{
decimal? addTime = ((prdMoTask.scheduled_qty-input.reported_qty) * processStandardsH?.moulding_cycle - 1) / toolMolds.mold_cavity + 1;
if (prdMoTask.act_start_date != null && addTime != null && addTime > 0)
{
DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime);
await db.Updateable<PrdMoTask>()
.SetColumns(x => x.plan_end_date == cal_plan_end_date)
.Where(x => x.id == input.mo_task_id).ExecuteCommandAsync();
}
}
}
if (prdMoTask.schedule_type == 2 && !string.IsNullOrEmpty(prdMoTask.mbom_process_id))
@@ -1541,6 +1566,20 @@ namespace Tnb.ProductionMgr
.Where(x => x.id == prdMo.id).ExecuteCommandAsync();
}
}
var list = await db.Queryable<BasMbomProcess>()
.LeftJoin<BasStandardTime>((a,b)=>a.process_id==b.process_id && b.enabled==1)
.Where((a,b)=>a.process_id==prdMoTask.process_id).Select((a,b)=>b).ToListAsync();
decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x);
decimal? addTime = (prdMoTask.scheduled_qty-input.reported_qty) * max;
if (prdMoTask.act_start_date != null && addTime != null && addTime > 0)
{
DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime);
await db.Updateable<PrdMoTask>()
.SetColumns(x => x.plan_end_date == cal_plan_end_date)
.Where(x => x.id == input.mo_task_id).ExecuteCommandAsync();
}
}
var master = await db.Queryable<PrdReportRecord>().FirstAsync(it => it.mo_task_id == input.mo_task_id);
@@ -2018,7 +2057,7 @@ namespace Tnb.ProductionMgr
else
{
var list = await db.Queryable<BasMbomProcess>()
.LeftJoin<BasStandardTime>((a,b)=>a.process_id==b.process_id)
.LeftJoin<BasStandardTime>((a,b)=>a.process_id==b.process_id && b.enabled==1)
.Where((a,b)=>a.mbom_id==input.mbom_id).Select((a,b)=>b).ToListAsync();
decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x);
@@ -2027,6 +2066,7 @@ namespace Tnb.ProductionMgr
}
}
/// <summary>
/// 获取这个产线生产中的任务单