注塑任务单以pps开头 注塑挤出排产已排产数量bug
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user