喷码贴标新增批号

This commit is contained in:
2024-06-14 09:28:52 +08:00
parent 726aea8912
commit ab0b4bedf4
2 changed files with 90 additions and 35 deletions

View File

@@ -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<string>
{
public string last_day { get; set; }
public int num { get; set; }
}
}

View File

@@ -3039,19 +3039,14 @@ namespace Tnb.ProductionMgr
throw Oops.Bah("产线错误");
}
PrdMoTask? prdMoTask = await _db.Queryable<PrdMoTask>().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<PrdMoTask>().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<PrdMoTask>().Where(x => x.parent_id == prdMoTask.id && x.mo_task_status == DictConst.InProgressEnCode).FirstAsync();
if (childPrdMoTask != null)
{
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x => x.id == prdMoTask.material_id);
childPrdMoTask.material_name = basMaterial.name;
}
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x => x.id == prdMoTask.material_id);
prdMoTask.material_name = basMaterial.name;
}
return childPrdMoTask;
return prdMoTask;
}
/// <summary>
@@ -3201,34 +3196,78 @@ namespace Tnb.ProductionMgr
});
if (prdMoTask == null) throw Oops.Bah("没找到对应任务单");
if (await _db.Queryable<PrdOutPackMarkLabel>().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<PrdOutPackMarkLabel>()
.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<BasMaterial>().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>(prdOutPackMarkLabel).ExecuteCommandAsync();
}
// if (await _db.Queryable<PrdOutPackMarkLabel>().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<PrdOutPackMarkLabel>()
// .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<BasMaterial>().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>(prdOutPackMarkLabel).ExecuteCommandAsync();
// }
PrdMoTask parent = await _db.Queryable<PrdMoTask>().SingleAsync(x => x.id == prdMoTask.parent_id);
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x=>x.id==parent.material_id);
//PrdMoTask parent = await _db.Queryable<PrdMoTask>().SingleAsync(x => x.id == prdMoTask.parent_id);
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x=>x.id==prdMoTask.material_id);
PrdMo mo = await _db.Queryable<PrdMo>().SingleAsync(x => x.id == prdMoTask.mo_id);
string batch = "";
if (mo.mo_type == DictConst.PrdMoTypeZS)
{
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().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<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
ToolMolds toolMolds = await _db.Queryable<ToolMolds>().SingleAsync(x => x.id == prdMoTask.mold_id);
batch = $"{toolMolds.mold_code}{equipment.code}{DateTime.Now.ToString("yyMMdd")}";
}else
{
LableRecord lableRecord = await _db.Queryable<LableRecord>().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<LableRecord>()
.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;
}
}