diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/LableRecord.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/LableRecord.cs new file mode 100644 index 00000000..c4b4e4e8 --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/LableRecord.cs @@ -0,0 +1,16 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.ProductionMgr.Entities +{ + [SugarTable("label_record")] + public class LableRecord : BaseEntity + { + public string last_day { get; set; } + + public int num { get; set; } + + + } +} diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 7a791359..a3bd7c94 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -3039,19 +3039,14 @@ namespace Tnb.ProductionMgr throw Oops.Bah("产线错误"); } - PrdMoTask? prdMoTask = await _db.Queryable().Where(x => x.workline_id == workline_id && x.parent_id == null && x.mo_task_status == DictConst.InProgressEnCode).FirstAsync(); - PrdMoTask? childPrdMoTask = null; + PrdMoTask? prdMoTask = await _db.Queryable().Where(x => x.workline_id == workline_id && x.mo_task_status == DictConst.InProgressEnCode && x.parent_id == null).FirstAsync(); if (prdMoTask != null) { - childPrdMoTask = await _db.Queryable().Where(x => x.parent_id == prdMoTask.id && x.mo_task_status == DictConst.InProgressEnCode).FirstAsync(); - if (childPrdMoTask != null) - { - BasMaterial basMaterial = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); - childPrdMoTask.material_name = basMaterial.name; - } + BasMaterial basMaterial = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); + prdMoTask.material_name = basMaterial.name; } - return childPrdMoTask; + return prdMoTask; } /// @@ -3201,34 +3196,78 @@ namespace Tnb.ProductionMgr }); if (prdMoTask == null) throw Oops.Bah("没找到对应任务单"); - if (await _db.Queryable().Where(x => - x.mo_task_code == prdMoTask.mo_task_code && x.status == "0" && x.is_label == null && x.is_mark==0).AnyAsync()) - { - await _db.Updateable() - .SetColumns(x => x.is_label == 0) - .Where(x => x.mo_task_code == prdMoTask.mo_task_code && x.status == "0" && x.is_label == null && - x.is_mark == 0) - .ExecuteCommandAsync(); - } - else - { - BasMaterial bm = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); - PrdOutPackMarkLabel prdOutPackMarkLabel = new PrdOutPackMarkLabel() - { - is_mark = null, - is_label = 0, - mo_task_code = prdMoTask.mo_task_code, - material_code = bm.code, - create_time = DateTime.Now, - }; - - await _db.Insertable(prdOutPackMarkLabel).ExecuteCommandAsync(); - } + // if (await _db.Queryable().Where(x => + // x.mo_task_code == prdMoTask.mo_task_code && x.status == "0" && x.is_label == null && x.is_mark==0).AnyAsync()) + // { + // await _db.Updateable() + // .SetColumns(x => x.is_label == 0) + // .Where(x => x.mo_task_code == prdMoTask.mo_task_code && x.status == "0" && x.is_label == null && + // x.is_mark == 0) + // .ExecuteCommandAsync(); + // } + // else + // { + // BasMaterial bm = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); + // PrdOutPackMarkLabel prdOutPackMarkLabel = new PrdOutPackMarkLabel() + // { + // is_mark = null, + // is_label = 0, + // mo_task_code = prdMoTask.mo_task_code, + // material_code = bm.code, + // create_time = DateTime.Now, + // }; + // + // await _db.Insertable(prdOutPackMarkLabel).ExecuteCommandAsync(); + // } - PrdMoTask parent = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.parent_id); - BasMaterial basMaterial = await _db.Queryable().SingleAsync(x=>x.id==parent.material_id); + //PrdMoTask parent = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.parent_id); + BasMaterial basMaterial = await _db.Queryable().SingleAsync(x=>x.id==prdMoTask.material_id); + PrdMo mo = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.mo_id); + string batch = ""; + if (mo.mo_type == DictConst.PrdMoTypeZS) + { + EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id); + batch = $"{equipment.code}{DateTime.Now.ToString("yyMMdd")}"; + }else if (mo.mo_type == DictConst.PrdMoTypeJC) + { + EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id); + ToolMolds toolMolds = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.mold_id); + batch = $"{toolMolds.mold_code}{equipment.code}{DateTime.Now.ToString("yyMMdd")}"; + }else + { + LableRecord lableRecord = await _db.Queryable().FirstAsync(); + if (lableRecord == null) + { + batch = $"{DateTime.Now.ToString("yyMMdd")}5{"1".PadLeft(3,'0')}"; + await _db.Insertable(new LableRecord() + { + id = SnowflakeIdHelper.NextId(), + last_day = DateTime.Now.ToString("yyyyMMdd"), + num = 1 + }).ExecuteCommandAsync(); + } + else + { + int num = 1; + if(DateTime.Now.ToString("yyyyMMdd") == lableRecord.last_day) + { + num = lableRecord.num+1; + batch = $"{DateTime.Now.ToString("yyMMdd")}5{(lableRecord.num+1).ToString().PadLeft(3,'0')}"; + } + else + { + batch = $"{DateTime.Now.ToString("yyMMdd")}5{"1".PadLeft(3,'0')}"; + } - string code = $"(01){basMaterial.di ?? ""}*(11){DateTime.Now.ToString("yyMMdd")}*(17){DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyMMdd")}*(10){parent.batch??""}#{basMaterial.material_specification}*{parent.batch??""}*{DateTime.Now.ToString("yyyyMMdd")}*{DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyyyMMdd")}*{basMaterial.container_no}"; + await _db.Updateable() + .SetColumns(x=>x.last_day==DateTime.Now.ToString("yyyyMMdd")) + .SetColumns(x=>x.num==num) + .Where(x=>x.id==lableRecord.id) + .ExecuteCommandAsync(); + } + } + + string code = $"(01){basMaterial.di ?? ""}*(11){DateTime.Now.ToString("yyMMdd")}*(17){DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyMMdd")}*(10){batch}#{basMaterial.material_specification}*{batch}*{DateTime.Now.ToString("yyyyMMdd")}*{DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyyyMMdd")}*{basMaterial.container_no}"; return code; } }