QR validation and WMS info processing improvements

- Enhanced QR vision trigger logging with detailed command/data output
- Added JSON data extraction for barcode processing
- Improved WMS info query with data completeness check
- Updated SID information form with trust flags for user inputs
- Added auto-resize columns and UI improvements to SID selection dialog
- Fixed barcode data processing to handle JSON wrapped responses
- Added pick retry reset and timing control on form close

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
atvstdla
2025-10-02 11:36:48 +09:00
parent 82e4a55f8d
commit 3eac3927f8
11 changed files with 203 additions and 156 deletions

View File

@@ -43,7 +43,7 @@ namespace Project
//[WMS] SID정보테이블에서 정보 추출(프린트정보는 없음)
//[WMS] 에서 중복검색되면 팝업을 해야하므로 이것을 먼저 처리한다.
if (VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
if (VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
{
var rlt_FindWMD = BCDProcess_FindWMSInfo(itemC);
if (rlt_FindWMD.NewBarcodeUpdated) NewBarcodeUpdated = true;
@@ -316,8 +316,25 @@ namespace Project
if (vdata.MFGDATE_Trust && vdata.MFGDATE.isEmpty() == false) wheres.Add($"MFG_DATE = '{vdata.MFGDATE}'");
else Apply = false;
}
//데이터가 완성되었다면 처리하지 않는다.
bool DataOK = true;
foreach (var data in fields)
{
var column = data.ToLower();
if (DataOK && column.Equals("sid") && (vdata.SID.isEmpty() || vdata.SID_Trust == false)) DataOK = false;
else if (DataOK && column.Equals("part_no") && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust)) DataOK = false;
else if (DataOK && column.Equals("mfg_data") && (vdata.MFGDATE.isEmpty() || vdata.MFGDATE_Trust)) DataOK = false;
else if (DataOK && column.Equals("vendor_nm") && (vdata.VNAME.isEmpty() || vdata.VNAME_Trust)) DataOK = false;
else if (DataOK && column.Equals("batch_no") && (vdata.BATCH.isEmpty())) DataOK = false;
else if (DataOK && column.Equals("qty") && (vdata.QTY.isEmpty() || vdata.QTY_Trust)) DataOK = false;
else if (DataOK && column.Equals("cust_code") && (vdata.CUSTCODE.isEmpty())) DataOK = false;
else if (DataOK && column.Equals("vendor_lot") && (vdata.VLOT.isEmpty() || vdata.VLOT_Trust)) DataOK = false;
if (DataOK == false) break;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
if (DataOK == false && Apply && fields.Count > 0 && wheres.Count > 0)
{
var TableName = "VW_GET_MAX_QTY_VENDOR_LOT";
var whereState = " where " + string.Join(" and ", wheres);
@@ -330,7 +347,7 @@ namespace Project
var cntvalue = (DBHelper.ExecuteScalar(SQLC)?.ToString() ?? "0").toInt();
if (cntvalue > 1)
{
VAR.STR[eVarString.MULTISID_QUERY] = $"select {selectFields} from {TableName} WITH(NOLOCK) {whereState}";
VAR.STR[eVarString.MULTISID_QUERY] = $"select * from {TableName} WITH(NOLOCK) {whereState}";
VAR.STR[eVarString.MULTISID_FIELDS] = selectFields;
rlt = EResultKeyence.MultiSID;
}