注塑任务单以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) //注塑、基础排产
{
var mo = await db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id);
var moTask = input.Adapt<PrdMoTask>();
moTask.id = SnowflakeIdHelper.NextId();
moTask.create_id = _userManager.UserId;
moTask.create_time = DateTime.Now;
moTask.mo_task_status = DictConst.ToBeScheduledEncode;
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;
if (taskCode.IsNullOrEmpty())
{
moTask.mo_task_code = $"{moCode}-01";
}
else
{
var pos = taskCode.IndexOf("-", StringComparison.Ordinal);
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}";
}
}
var moCode = mo?.mo_code;
var taskCode = await _billRuleService.GetBillNumber(Tnb.BasicData.CodeTemplateConst.PRDMOTASK_CODE);
moTask.mo_task_code = taskCode;
// 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())
// {
// moTask.mo_task_code = $"{moCode}-01";
// }
// else
// {
// var pos = taskCode.IndexOf("-", StringComparison.Ordinal);
// 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
{
await db.Ado.BeginTranAsync();
@@ -702,16 +704,31 @@ namespace Tnb.ProductionMgr
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
{
if (schedQty.HasValue)
mo.scheduled_qty = schedQty.Value;
await _db.Updateable<PrdMo>().SetColumns(x => x.scheduled_qty == x.scheduled_qty + input.scheduled_qty)
.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);
@@ -789,7 +806,7 @@ namespace Tnb.ProductionMgr
moTask.estimated_end_date = input.estimated_end_date;
moTask.scheduled_qty = input.scheduled_qty;
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 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)