后道零头箱打印逻辑修改
This commit is contained in:
parent
5ce662b5bc
commit
fba29f73fc
@ -146,5 +146,7 @@ namespace ZR.Model.Dto
|
||||
public int? RemainderBoxPrintCount { get; set; }
|
||||
// 箱标签当前序号
|
||||
public int? CurrentBoxLabelSequence { get; set; }
|
||||
// 零头箱打印数
|
||||
public int? PackageNum { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1522,35 +1522,72 @@ namespace ZR.Service.Business
|
||||
|
||||
public QcBackEndWorkorderPrintLabelDetailDto SearchWorkOrderLabelDetail(string workOrder)
|
||||
{
|
||||
QcBackEndWorkorderPrintLabelDetailDto result = new();
|
||||
// 首先检查工单是否存在
|
||||
var workorderInfo = Context
|
||||
.Queryable<QcBackEndServiceWorkorder>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.First();
|
||||
|
||||
if (workorderInfo == null)
|
||||
{
|
||||
throw new Exception($"异常:工单不存在{workOrder}");
|
||||
}
|
||||
|
||||
// 检查打印配置
|
||||
var packageLabelConfig = Context
|
||||
.Queryable<QcBackendBaseOutpackage>()
|
||||
.Where(it => workorderInfo.Description.Contains(it.CheckStr))
|
||||
.First();
|
||||
|
||||
if (packageLabelConfig == null)
|
||||
{
|
||||
throw new Exception($"异常:零件满箱配置不存在{workOrder}");
|
||||
}
|
||||
|
||||
// 验证配置有效性
|
||||
int maxPackageNum = packageLabelConfig.PackageNum ?? 0;
|
||||
if (maxPackageNum <= 0)
|
||||
{
|
||||
throw new ArgumentException($"无效的满箱数量:{maxPackageNum}", nameof(maxPackageNum));
|
||||
}
|
||||
|
||||
QcBackEndWorkorderPrintLabelDetailDto result = new QcBackEndWorkorderPrintLabelDetailDto();
|
||||
|
||||
// 扫描零件计数(LabelType=2),合并查询条件
|
||||
result.ScannedPartCount = Context
|
||||
.Queryable<QcBackEndRecordLabelScan>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.Where(it => it.LabelType == 2)
|
||||
.Where(it => it.WorkOrder == workOrder && it.LabelType == 2)
|
||||
.Count();
|
||||
|
||||
// 扫描箱标签计数(LabelType=1且LabelSort>0),合并查询条件
|
||||
result.ScannedBoxLabelCount = Context
|
||||
.Queryable<QcBackEndRecordLabelScan>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.Where(it => it.LabelType == 1)
|
||||
.Where(it => it.LabelSort > 0)
|
||||
.Where(it => it.WorkOrder == workOrder && it.LabelType == 1 && it.LabelSort > 0)
|
||||
.Count();
|
||||
|
||||
// 重新打印计数(LabelType=1且LabelCode包含IsAgain=1),合并查询条件
|
||||
result.RePrintCount = Context
|
||||
.Queryable<QcBackendRecordLabelPrint>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.Where(it => it.LabelType == 1)
|
||||
.Where(it => it.LabelCode.Contains("IsAgain=1"))
|
||||
.Where(it => it.WorkOrder == workOrder && it.LabelType == 1 && it.LabelCode.Contains("IsAgain=1"))
|
||||
.Count();
|
||||
|
||||
// 零头箱打印计数(LabelType=1且未装满),合并查询条件
|
||||
result.RemainderBoxPrintCount = Context
|
||||
.Queryable<QcBackendRecordLabelPrint>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.Where(it => it.LabelType == 1)
|
||||
.Where(it => it.IsFull == 0)
|
||||
.Where(it => it.WorkOrder == workOrder && it.LabelType == 1 && it.IsFull == 0)
|
||||
.Count();
|
||||
|
||||
// 当前箱标签最大序列号,合并查询条件并增加空值处理
|
||||
result.CurrentBoxLabelSequence = Context
|
||||
.Queryable<QcBackendRecordLabelPrint>()
|
||||
.Where(it => it.WorkOrder == workOrder)
|
||||
.Where(it => it.LabelType == 1)
|
||||
.Max(it => it.SerialNumber);
|
||||
.Where(it => it.WorkOrder == workOrder && it.LabelType == 1)
|
||||
.Max(it => (int?)it.SerialNumber) ?? 0;
|
||||
|
||||
// 零头箱计算
|
||||
result.PackageNum = result.ScannedPartCount > 0
|
||||
? result.ScannedPartCount % maxPackageNum
|
||||
: 0;
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -446,11 +446,16 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
return "库位参数异常,库位不存在";
|
||||
}
|
||||
//20250610 后道标签并且是满箱的可跳过检查
|
||||
if (resultionPackage.originalCode.Contains("LabelBy=HD") && resultionPackage.originalCode.Contains("IsFull=1"))
|
||||
//TODO 平滑过渡方案,后道标签可跳过检查
|
||||
if (resultionPackage.originalCode.Contains("LabelBy=HD"))
|
||||
{
|
||||
isStrict = false;
|
||||
}
|
||||
//20250610 后道标签并且是满箱的可跳过检查
|
||||
/*if (resultionPackage.originalCode.Contains("LabelBy=HD") && resultionPackage.originalCode.Contains("IsFull=1"))
|
||||
{
|
||||
isStrict = false;
|
||||
}*/
|
||||
if (isStrict && wmInfo.Remark != "临时")
|
||||
{
|
||||
// 3. 提取流水号
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user