fix(wms): 修正包装记录查询条件,使用格式化后的包装编号

原查询条件直接使用数字比较可能导致匹配错误,现改为使用格式化后的5位数字字符串进行匹配,确保查询准确性
This commit is contained in:
2025-08-29 16:21:13 +08:00
parent f859ee8f54
commit eb16cb06b3

View File

@@ -432,13 +432,15 @@ namespace ZR.Service.mes.wms
string patchCodePart = resultionPackage.PatchCode.Split("_")[1];
// 直接在 int.TryParse 中处理转换,并在一行内完成默认值设置
int package_no = int.TryParse(patchCodePart, out var temp) ? temp : -1;
// 格式化为5位数字字符串不足前面补零
string formattedPackageNo = package_no.ToString("D5");
// 3.1 isStrict = TRUE 时判断是否是满箱标签
WmPackingrecord recourd = Context
.Queryable<WmPackingrecord>()
.Where(it => it.WorkOrderNum == resultionPackage.WorkoderID)
// .Where(it => it.PackingCode.EndsWith(packingCode))
.Where(it => it.PackingCode.EndsWith(formattedPackageNo))
// .Where(it => packingCode == int.Parse(it.PackingCode.Substring(7)).ToString())
.Where(it => package_no == int.Parse(SqlFunc.Right(it.PackingCode, 5)))
//.Where(it => package_no == int.Parse(SqlFunc.Right(it.PackingCode, 5)))
.Where(it => it.BFilled == true)
.First();
if (recourd == null)