diff --git a/docs/cleaner-execution-report-template.md b/docs/cleaner-execution-report-template.md index e12d004..d4b644a 100644 --- a/docs/cleaner-execution-report-template.md +++ b/docs/cleaner-execution-report-template.md @@ -39,7 +39,7 @@ | 订单号 | 物料代码 | 物料名称 | 行号 | 跳过原因 | | -------- | -------- | -------- | ---- | --------------------------------- | -| `PO-001` | `M001` | 物料名称 | 7500 | 行号在 7000-7999 范围内(受保护) | +| `PO-001` | `M001` | 物料名称 | 7500 | 行号在 2000-7999 范围内(受保护) | | `PO-001` | `M002` | 物料名称 | 1200 | 累计待发数量不为空 | | `PO-002` | `M003` | 物料名称 | 300 | 物料不在删除清单中 | | ... | ... | ... | ... | ... | diff --git a/docs/cleaner-order-error-collection.md b/docs/cleaner-order-error-collection.md index f7f7f4a..60f1369 100644 --- a/docs/cleaner-order-error-collection.md +++ b/docs/cleaner-order-error-collection.md @@ -163,10 +163,10 @@ mindmap 重试打开详情页失败 重试处理异常 达到最大重试次数 (2 次) - 业务规则错误 - 物料不在删除清单 - 行号在保护范围 (7000-7999) - 累计待发数量不为空 + 业务规则错误 + 物料不在删除清单 + 行号在保护范围 (2000-7999) + 累计待发数量不为空 收尾错误 浏览器关闭失败 数据库断开失败 diff --git a/src/main/services/erp/cleaner.ts b/src/main/services/erp/cleaner.ts index 919c4ba..89fe04b 100644 --- a/src/main/services/erp/cleaner.ts +++ b/src/main/services/erp/cleaner.ts @@ -146,7 +146,7 @@ export class CleanerService { return false } - if (rowNumber >= 7000 && rowNumber < 8000) { + if (rowNumber >= 2000 && rowNumber < 8000) { return false } @@ -163,8 +163,8 @@ export class CleanerService { if (!deleteSet.has(materialCode)) { return '物料不在删除清单中' } - if (rowNumber >= 7000 && rowNumber < 8000) { - return '行号在 7000-7999 范围内(受保护)' + if (rowNumber >= 2000 && rowNumber < 8000) { + return '行号在 2000-7999 范围内(受保护)' } if (pendingQty && pendingQty.trim() !== '') { return '累计待发数量不为空' @@ -400,7 +400,8 @@ export class CleanerService { try { const cell = row.locator('td[colkey="vbillcode"]') const codeLink = cell.locator('.code-detail-link').first() - const rawValue = (await codeLink.count()) > 0 ? await codeLink.innerText() : await cell.innerText() + const rawValue = + (await codeLink.count()) > 0 ? await codeLink.innerText() : await cell.innerText() const value = rawValue.trim() const match = value.match(/SC\d{14}/) return match ? match[0] : value diff --git a/tests/unit/cleaner.test.ts b/tests/unit/cleaner.test.ts index eddb8e0..bd3955b 100644 --- a/tests/unit/cleaner.test.ts +++ b/tests/unit/cleaner.test.ts @@ -18,8 +18,8 @@ describe('Cleaner Service (Unit)', () => { return false } - // Check row number range (7000-7999 are protected) - if (rowNumber >= 7000 && rowNumber < 8000) { + // Check row number range (2000-7999 are protected) + if (rowNumber >= 2000 && rowNumber < 8000) { return false } @@ -32,12 +32,12 @@ describe('Cleaner Service (Unit)', () => { } } - it('should skip materials with row number 7000-7999', () => { + it('should skip materials with row number 2000-7999', () => { const testCases = [ - { rowNumber: 7000, pendingQty: '', materialCode: 'TEST001', expected: false }, - { rowNumber: 7500, pendingQty: '', materialCode: 'TEST001', expected: false }, + { rowNumber: 2000, pendingQty: '', materialCode: 'TEST001', expected: false }, + { rowNumber: 5000, pendingQty: '', materialCode: 'TEST001', expected: false }, { rowNumber: 7999, pendingQty: '', materialCode: 'TEST001', expected: false }, - { rowNumber: 6999, pendingQty: '', materialCode: 'TEST001', expected: true }, + { rowNumber: 1999, pendingQty: '', materialCode: 'TEST001', expected: true }, { rowNumber: 8000, pendingQty: '', materialCode: 'TEST001', expected: true } ] @@ -78,7 +78,7 @@ describe('Cleaner Service (Unit)', () => { const testCases = [ { rowNumber: 1, pendingQty: '', materialCode: 'TEST001', expected: true }, { rowNumber: 100, pendingQty: '', materialCode: 'TEST001', expected: true }, - { rowNumber: 6999, pendingQty: '', materialCode: 'TEST001', expected: true }, + { rowNumber: 1999, pendingQty: '', materialCode: 'TEST001', expected: true }, { rowNumber: 8000, pendingQty: '', materialCode: 'TEST001', expected: true }, { rowNumber: 10000, pendingQty: '', materialCode: 'TEST001', expected: true } ]