This commit is contained in:
2024-06-14 17:07:07 +08:00
12 changed files with 243 additions and 64 deletions

View File

@@ -579,7 +579,7 @@ namespace Tnb.ProductionMgr
mo_code = a.mo_code,
material_code = b.code,
material_name = b.name,
material_standard = b.material_standard,
material_standard = b.material_specification,
mo_type = c.FullName,
mo_status = d.FullName,
plan_qty = a.plan_qty.Value.ToString(),
@@ -615,7 +615,7 @@ namespace Tnb.ProductionMgr
mo_code = h.mo_code,
material_code = i.code,
material_name = i.name,
material_standard = i.material_standard,
material_standard = i.material_specification,
mo_type = j.FullName,
mo_status = k.FullName,
plan_qty = h.plan_qty.Value.ToString(),
@@ -778,7 +778,7 @@ namespace Tnb.ProductionMgr
eqp_code = (await db.Queryable<EqpEquipment>().FirstAsync(it => it.id == input.eqp_id))?.code!,
mold_code = (await db.Queryable<ToolMolds>().FirstAsync(it => it.id == input.mold_id))?.mold_code!,
item_code = material?.code!,
item_standard = material?.material_standard!,
item_standard = material?.material_specification!,
status = DictConst.ToBeScheduledEncode,
operator_name = _userManager.RealName,
create_id = _userManager.UserId,
@@ -894,7 +894,7 @@ namespace Tnb.ProductionMgr
id = SnowflakeIdHelper.NextId(),
mo_code = (await _db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id))?.mo_code!,
item_code = material_h?.code!,
item_standard = material_h?.material_standard!,
item_standard = material_h?.material_specification!,
status = DictConst.ToBeScheduledEncode,
operator_name = _userManager.RealName,
create_id = _userManager.UserId,
@@ -1019,7 +1019,7 @@ namespace Tnb.ProductionMgr
subTaskLog.id = SnowflakeIdHelper.NextId();
subTaskLog.mo_code = (await _db.Queryable<PrdMo>().FirstAsync(it => it.id == input.mo_id))?.mo_code!;
subTaskLog.item_code = subMaterial?.code!;
subTaskLog.item_standard = subMaterial?.material_standard!;
subTaskLog.item_standard = subMaterial?.material_specification!;
subTaskLog.status = DictConst.ToBeScheduledEncode;
subTaskLog.operator_name = _userManager.RealName;
subTaskLog.create_id = _userManager.UserId;
@@ -1159,13 +1159,13 @@ namespace Tnb.ProductionMgr
throw Oops.Bah("已开始的不能再开始");
}
if (item.schedule_type == 2)
{
if (await db.Queryable<PrdMoTask>().AnyAsync(x => x.workstation_id == item.workstation_id && x.mo_task_status == DictConst.InProgressEnCode && x.id != item.id))
// if (item.schedule_type == 2)
// {
if (await db.Queryable<PrdMoTask>().AnyAsync(x => x.workline_id == item.workline_id && x.mo_task_status == DictConst.InProgressEnCode && x.id != item.id))
{
throw Oops.Bah("该工位已有生产中的任务单");
throw Oops.Bah("该产线已有生产中的任务单");
}
}
// }
if (item.mo_task_status is not DictConst.ToBeStartedEnCode and not DictConst.MoStatusPauseCode)
{
@@ -1283,7 +1283,7 @@ namespace Tnb.ProductionMgr
{
BasMaterial? material = await db.Queryable<BasMaterial>().FirstAsync(it => it.id == taskItem.material_id);
taskLog.item_code = material?.code!;
taskLog.item_standard = material?.material_standard!;
taskLog.item_standard = material?.material_specification!;
}
taskLog.operator_name = _userManager.RealName;
taskLog.status = status;
@@ -1410,7 +1410,7 @@ namespace Tnb.ProductionMgr
PrdMoTask parent = await _db.Queryable<PrdMoTask>().SingleAsync(x => x.id == item.parent_id);
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x=>x.id==parent.material_id);
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_standard}*{DateTime.Now.ToString("yyyyMMdd")}*{DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyyyMMdd")}*{basMaterial.container_no}";
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}*{DateTime.Now.ToString("yyyyMMdd")}*{DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyyyMMdd")}*{basMaterial.container_no}";
Dictionary<string, string> dicCommand1 = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = "外包装箱码垛线",
@@ -1664,12 +1664,30 @@ namespace Tnb.ProductionMgr
location = await db.Queryable<BasLocation>().SingleAsync(x=>x.id==equip.downmat_location_id);
report.location_code = location.location_code;
}
string batch = "";
PrdMo mo = await _db.Queryable<PrdMo>().SingleAsync(x => x.id == prdMoTask.mo_id);
if (mo.mo_type == DictConst.PrdMoTypeZS)
{
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
batch = $"{equipment.code.Substring(equipment.code.Length - 2, 2)}{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.Substring(toolMolds.mold_code.Length - 2, 2)}{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
}else
{
OrganizeEntity organizeEntity = await _db.Queryable<OrganizeEntity>().SingleAsync(x => x.Id == prdMoTask.workline_id);
batch = $"{organizeEntity.EnCode.Substring(organizeEntity.EnCode.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
}
// report.location_code = input.location_code;
report.create_id = _userManager.UserId;
report.create_time = DateTime.Now;
// report.batch = input.mo_task_code + DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
report.batch = batch;
report.barcode = input.mo_task_code + DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
report.barqty = mbom.full_qty;
// report.barcode = input.mo_task_code+"0001";
@@ -1907,6 +1925,7 @@ namespace Tnb.ProductionMgr
bindCarryCodeInput.location_code = location.location_code;
bindCarryCodeInput.code_batch = prdMoTask.batch;
Log.Information($"载具绑定参数:${JsonConvert.SerializeObject(bindCarryCodeInput)}");
Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result1 = await _wmsCarryService.BindCarryMaterial(bindCarryCodeInput);
if (result1.code != HttpStatusCode.OK)
{
@@ -1918,7 +1937,7 @@ namespace Tnb.ProductionMgr
wmsPrdInstockInput.material_id = prdMoTask.material_id;
wmsPrdInstockInput.material_code = prdMoTask.material_code;
wmsPrdInstockInput.material_name = basMaterial.name;
wmsPrdInstockInput.material_spec = basMaterial.material_standard;
wmsPrdInstockInput.material_spec = basMaterial.material_specification;
wmsPrdInstockInput.planqty = prdMoTask.scheduled_qty.Value;
wmsPrdInstockInput.pqty = input.reported_qty;
wmsPrdInstockInput.rqty = 0;
@@ -1937,12 +1956,13 @@ namespace Tnb.ProductionMgr
{
planqty = prdMoTask.scheduled_qty.Value,
pqty = input.reported_qty,
code_batch = prdMoTask.batch,
code_batch = batch,
code = report.barcode,
unit_id = prdMoTask.unit_id,
carry_id = wmsCarryH.id,
});
Log.Information($"生产入库参数:${JsonConvert.SerializeObject(wmsPrdInstockInput)}");
Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result2 = await _wmsPrdInstockHService.PrdInstock(wmsPrdInstockInput);
if (result2 != null)
{
@@ -2523,7 +2543,7 @@ namespace Tnb.ProductionMgr
eqp_code = (await db.Queryable<EqpEquipment>().FirstAsync(it => it.id == input.equip_id))?.code!,
mold_code = "",
item_code = material?.code!,
item_standard = material?.material_standard!,
item_standard = material?.material_specification!,
status = "更换机台",
operator_name = _userManager.RealName,
create_id = _userManager.UserId,
@@ -2570,7 +2590,7 @@ namespace Tnb.ProductionMgr
eqp_code = "",
mold_code = mold?.mold_code,
item_code = material?.code!,
item_standard = material?.material_standard!,
item_standard = material?.material_specification!,
status = "更换模具",
operator_name = _userManager.RealName,
create_id = _userManager.UserId,
@@ -2617,7 +2637,7 @@ namespace Tnb.ProductionMgr
eqp_code = "",
mold_code = "",
item_code = material?.code!,
item_standard = material?.material_standard!,
item_standard = material?.material_specification!,
status = "更换产线",
operator_name = _userManager.RealName,
create_id = _userManager.UserId,
@@ -3037,19 +3057,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>
@@ -3199,34 +3214,80 @@ 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.Substring(equipment.code.Length - 2, 2)}{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.Substring(toolMolds.mold_code.Length - 2, 2)}{equipment.code.Substring(equipment.code.Length - 2, 2)}{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')}";
// }
//
// 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();
// }
OrganizeEntity organizeEntity = await _db.Queryable<OrganizeEntity>().SingleAsync(x => x.Id == prdMoTask.workline_id);
batch = $"{organizeEntity.EnCode.Substring(organizeEntity.EnCode.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
}
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_standard}*{parent.batch??""}*{DateTime.Now.ToString("yyyyMMdd")}*{DateTime.Now.AddMonths(basMaterial.quality_guarantee_period ?? 0).ToString("yyyyMMdd")}*{basMaterial.container_no}";
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;
}
}