Commit d62a534d 刘韬

PN一样的多条 二维码, 删除代NA的

PN不一样的, 一种PN保留一条
1 个父辈 c3d15aab
...@@ -191,12 +191,46 @@ namespace DeviceLibrary ...@@ -191,12 +191,46 @@ namespace DeviceLibrary
if (Setting_Init.ProcjetNO == Procjet_NO.SO1340) if (Setting_Init.ProcjetNO == Procjet_NO.SO1340)
{ {
var rc = codes.RemoveAll(c => // 先过滤分号数量为9或10的条目,再按第0组分组
var filteredCodes = codes.Where(c =>
{ {
var ss = c.CodeStr.Count(cs => cs == ';'); var ss = c.CodeStr.Count(cs => cs == ';');
return (ss == 9 || ss == 10) && c.CodeStr.Contains(";NA;"); return ss == 9 || ss == 10;
}); }).ToList();
LogUtil.info($"SO1340 删除NA后条码 count:{rc} :" + JsonConvert.SerializeObject(codes));
// 按分号分割后的第0组进行分组
var groupedCodes = filteredCodes.GroupBy(c => c.CodeStr.Split(';')[0]).ToList();
var codesToRemove = new List<CodeInfo>(); // 请替换为实际类型
foreach (var group in groupedCodes)
{
var groupList = group.ToList();
// 组内只有一条,保留
if (groupList.Count == 1)
{
continue;
}
// 组内有两条数据,删除含有 ;NA; 的条码
if (groupList.Count == 2)
{
var naCode = groupList.FirstOrDefault(c => c.CodeStr.Contains(";NA;"));
if (naCode != null)
{
codesToRemove.Add(naCode);
}
}
}
// 从原集合中删除标记的条码
foreach (var code in codesToRemove)
{
codes.Remove(code);
}
LogUtil.info($"SO1340 删除NA后条码 count:{codesToRemove.Count} :" + JsonConvert.SerializeObject(codes));
} }
LogUtil.info($"开始请求ns100服务"); LogUtil.info($"开始请求ns100服务");
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!