增加码块订货号解析顺序配置项

This commit is contained in:
XingCheng3
2026-05-16 13:48:12 +08:00
parent bb307f01db
commit e11c727114
3 changed files with 41 additions and 25 deletions

View File

@@ -9,6 +9,8 @@
<add key="IsWriteLog4" value="1"/>
<!--称重类型Ground=地面称重(两独立工位), Hanging=空中称重/吊称(放油前+放油后)-->
<add key="WeighingType" value="Hanging"/>
<!--码块订货号解析顺序0=订货号在前/流水号在后, 1=流水号在前/订货号在后-->
<add key="CodeBlockOrderNoReverse" value="0"/>
<!--逻辑工位映射必须与SignalTable_CZ.xlsx的设备类型对应表工位号一致-->
<add key="Station1OpName" value="ST04"/>
<add key="Station2OpName" value="ST05"/>
@@ -23,15 +25,15 @@
<add key="Station1BarCOM" value="COM2"/>
<!--工位2扫码枪COM口如COM4-->
<add key="Station2BarCOM" value="COM3"/>
<!--扫码枪波特率-->
<add key="BarcodeBaudRate" value="9600"/>
<!--曲线采样间隔(ms)-->
<add key="CurveCollectorSampleIntervalMs" value="200"/>
<!--曲线稳定窗口点数-->
<add key="CurveStableWindowSize" value="20"/>
</appSettings>
<!--扫码枪波特率-->
<add key="BarcodeBaudRate" value="9600"/>
<!--曲线采样间隔(ms)-->
<add key="CurveCollectorSampleIntervalMs" value="200"/>
<!--曲线稳定窗口点数-->
<add key="CurveStableWindowSize" value="20"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>

View File

@@ -53,6 +53,11 @@ namespace MesWork
/// </summary>
public static string WeighingType = AppSettings["WeighingType"] ?? "Hanging";
/// <summary>
/// 码块订货号解析顺序0=订货号在前, 1=流水号在前
/// </summary>
public static int CodeBlockOrderNoReverse = int.TryParse(AppSettings["CodeBlockOrderNoReverse"], out var _cbonr) ? _cbonr : 0;
/// <summary>
/// 工位1现场工位号Hanging模式下代表放油前工位
/// </summary>

View File

@@ -180,14 +180,15 @@ namespace MesWork
}
/// <summary>
/// 码块数据转换:将产品编号统一转大写,并拆分出订货号与产品编号
/// 支持格式:
/// 0/DHN2.5Q0219-36/D426E016767
/// DHH02K0014-400/B726E00584555
/// </summary>
private bool TryConvertCodeBlockData(string codeBlock, out string orderNo, out string productNo)
{
/// <summary>
/// 码块数据转换:将产品编号统一转大写,并拆分出订货号与产品编号
/// 支持格式:
/// 0/DHN2.5Q0219-36/D426E016767
/// DHH02K0014-400/B726E00584555
/// CodeBlockOrderNoReverse=0订货号/流水号CodeBlockOrderNoReverse=1流水号/订货号
/// </summary>
private bool TryConvertCodeBlockData(string codeBlock, out string orderNo, out string productNo)
{
orderNo = "";
productNo = "";
if (string.IsNullOrWhiteSpace(codeBlock))
@@ -196,14 +197,22 @@ namespace MesWork
}
string normalizedCode = codeBlock.Trim().ToUpperInvariant();
string[] parts = normalizedCode.Split('/');
if (parts.Length >= 2)
{
orderNo = parts[parts.Length - 2].Trim();
productNo = parts[parts.Length - 1].Trim();
}
else
{
string[] parts = normalizedCode.Split('/');
if (parts.Length >= 2)
{
if (CodeBlockOrderNoReverse == 1)
{
productNo = parts[parts.Length - 2].Trim();
orderNo = parts[parts.Length - 1].Trim();
}
else
{
orderNo = parts[parts.Length - 2].Trim();
productNo = parts[parts.Length - 1].Trim();
}
}
else
{
productNo = normalizedCode;
}