注塑任务单以pps开头 注塑挤出排产已排产数量bug

This commit is contained in:
2023-07-26 10:03:09 +08:00
parent 134c57245c
commit acf1d9f94a

View File

@@ -658,32 +658,34 @@ namespace Tnb.ProductionMgr
{ {
if (input.schedule_type.Value == 1) //注塑、基础排产 if (input.schedule_type.Value == 1) //注塑、基础排产
{ {
var mo = await db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id);
var moTask = input.Adapt<PrdMoTask>(); var moTask = input.Adapt<PrdMoTask>();
moTask.id = SnowflakeIdHelper.NextId(); moTask.id = SnowflakeIdHelper.NextId();
moTask.create_id = _userManager.UserId; moTask.create_id = _userManager.UserId;
moTask.create_time = DateTime.Now; moTask.create_time = DateTime.Now;
moTask.mo_task_status = DictConst.ToBeScheduledEncode; moTask.mo_task_status = DictConst.ToBeScheduledEncode;
moTask.scheduled_qty = input.scheduled_qty; moTask.scheduled_qty = input.scheduled_qty;
var mo = await db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id);
var moCode = mo?.mo_code;
var taskCode = await db.Queryable<PrdMoTask>().Where(it => !string.IsNullOrEmpty(it.mo_task_code) && it.mo_task_code.Contains(moCode)).OrderByDescending(it => it.mo_task_code).Select(it => it.mo_task_code).FirstAsync();
moTask.unit_id = mo.unit_id; moTask.unit_id = mo.unit_id;
if (taskCode.IsNullOrEmpty())
{ var moCode = mo?.mo_code;
moTask.mo_task_code = $"{moCode}-01"; var taskCode = await _billRuleService.GetBillNumber(Tnb.BasicData.CodeTemplateConst.PRDMOTASK_CODE);
} moTask.mo_task_code = taskCode;
else // var taskCode = await db.Queryable<PrdMoTask>().Where(it => !string.IsNullOrEmpty(it.mo_task_code) && it.mo_task_code.Contains(moCode)).OrderByDescending(it => it.mo_task_code).Select(it => it.mo_task_code).FirstAsync();
{ // if (taskCode.IsNullOrEmpty())
var pos = taskCode.IndexOf("-", StringComparison.Ordinal); // {
if (pos > -1) // moTask.mo_task_code = $"{moCode}-01";
{ // }
var num = taskCode.AsSpan().Slice(pos + 1).ToString().ParseToInt(); // else
var code = taskCode.AsSpan().Slice(0, pos).ToString(); // {
var n = (num + 1).ToString().PadLeft(2, '0'); // var pos = taskCode.IndexOf("-", StringComparison.Ordinal);
moTask.mo_task_code = $"{code}-{n}"; // if (pos > -1)
} // {
} // var num = taskCode.AsSpan().Slice(pos + 1).ToString().ParseToInt();
// var code = taskCode.AsSpan().Slice(0, pos).ToString();
// var n = (num + 1).ToString().PadLeft(2, '0');
// moTask.mo_task_code = $"{code}-{n}";
// }
// }
try try
{ {
await db.Ado.BeginTranAsync(); await db.Ado.BeginTranAsync();
@@ -702,16 +704,31 @@ namespace Tnb.ProductionMgr
if (mo != null) if (mo != null)
{//判断如果当前 工单的已排产数大于工单计划数量则更新工单状态为 已排产 {//判断如果当前 工单的已排产数大于工单计划数量则更新工单状态为 已排产
if (schedQty.HasValue && schedQty.Value >= mo.plan_qty) // if (schedQty.HasValue && schedQty.Value >= mo.plan_qty)
// {
// mo.mo_status = DictConst.AlreadyId;
// }
// else
// {
// if (schedQty.HasValue)
// mo.scheduled_qty = schedQty.Value;
// }
// row = await db.Updateable(mo).ExecuteCommandAsync();
if (mo.scheduled_qty == null)
{ {
mo.mo_status = DictConst.AlreadyId; await _db.Updateable<PrdMo>()
.SetColumns(x => x.mo_status == DictConst.AlreadyId)
.SetColumns(x => x.scheduled_qty == input.scheduled_qty)
.Where(x=>x.id==mo.id)
.ExecuteCommandAsync();
} }
else else
{ {
if (schedQty.HasValue) await _db.Updateable<PrdMo>().SetColumns(x => x.scheduled_qty == x.scheduled_qty + input.scheduled_qty)
mo.scheduled_qty = schedQty.Value; .Where(x=>x.id==mo.id)
.ExecuteCommandAsync();
} }
row = await db.Updateable(mo).ExecuteCommandAsync();
} }
var material = await db.Queryable<BasMaterial>().FirstAsync(it => it.id == moTask.material_id); var material = await db.Queryable<BasMaterial>().FirstAsync(it => it.id == moTask.material_id);
@@ -789,7 +806,7 @@ namespace Tnb.ProductionMgr
moTask.estimated_end_date = input.estimated_end_date; moTask.estimated_end_date = input.estimated_end_date;
moTask.scheduled_qty = input.scheduled_qty; moTask.scheduled_qty = input.scheduled_qty;
var mo = await _db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id); var mo = await _db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id);
moTask.unit_id = mo.unit_id; // moTask.unit_id = mo.unit_id;
var moCode = mo?.mo_code; var moCode = mo?.mo_code;
// var taskCode = await _db.Queryable<PrdMoTask>().Where(it => string.IsNullOrEmpty(it.parent_id) && !string.IsNullOrEmpty(it.mo_task_code) && it.mo_task_code.Contains(moCode)) // var taskCode = await _db.Queryable<PrdMoTask>().Where(it => string.IsNullOrEmpty(it.parent_id) && !string.IsNullOrEmpty(it.mo_task_code) && it.mo_task_code.Contains(moCode))
// .OrderByDescending(it => it.mo_task_code) // .OrderByDescending(it => it.mo_task_code)