feat(cleaner): expand protected row number range to 2000-7999
Change the protected row number range from 7000-7999 to 2000-7999 to prevent deletion of materials in this broader range. - Updated isMaterialDeletable() method logic - Updated getSkipReason() error messages - Updated test cases to reflect new range boundaries - Updated documentation templates and error collection guide Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
| 订单号 | 物料代码 | 物料名称 | 行号 | 跳过原因 |
|
| 订单号 | 物料代码 | 物料名称 | 行号 | 跳过原因 |
|
||||||
| -------- | -------- | -------- | ---- | --------------------------------- |
|
| -------- | -------- | -------- | ---- | --------------------------------- |
|
||||||
| `PO-001` | `M001` | 物料名称 | 7500 | 行号在 7000-7999 范围内(受保护) |
|
| `PO-001` | `M001` | 物料名称 | 7500 | 行号在 2000-7999 范围内(受保护) |
|
||||||
| `PO-001` | `M002` | 物料名称 | 1200 | 累计待发数量不为空 |
|
| `PO-001` | `M002` | 物料名称 | 1200 | 累计待发数量不为空 |
|
||||||
| `PO-002` | `M003` | 物料名称 | 300 | 物料不在删除清单中 |
|
| `PO-002` | `M003` | 物料名称 | 300 | 物料不在删除清单中 |
|
||||||
| ... | ... | ... | ... | ... |
|
| ... | ... | ... | ... | ... |
|
||||||
|
|||||||
@@ -163,10 +163,10 @@ mindmap
|
|||||||
重试打开详情页失败
|
重试打开详情页失败
|
||||||
重试处理异常
|
重试处理异常
|
||||||
达到最大重试次数 (2 次)
|
达到最大重试次数 (2 次)
|
||||||
业务规则错误
|
业务规则错误
|
||||||
物料不在删除清单
|
物料不在删除清单
|
||||||
行号在保护范围 (7000-7999)
|
行号在保护范围 (2000-7999)
|
||||||
累计待发数量不为空
|
累计待发数量不为空
|
||||||
收尾错误
|
收尾错误
|
||||||
浏览器关闭失败
|
浏览器关闭失败
|
||||||
数据库断开失败
|
数据库断开失败
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ export class CleanerService {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rowNumber >= 7000 && rowNumber < 8000) {
|
if (rowNumber >= 2000 && rowNumber < 8000) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,8 +163,8 @@ export class CleanerService {
|
|||||||
if (!deleteSet.has(materialCode)) {
|
if (!deleteSet.has(materialCode)) {
|
||||||
return '物料不在删除清单中'
|
return '物料不在删除清单中'
|
||||||
}
|
}
|
||||||
if (rowNumber >= 7000 && rowNumber < 8000) {
|
if (rowNumber >= 2000 && rowNumber < 8000) {
|
||||||
return '行号在 7000-7999 范围内(受保护)'
|
return '行号在 2000-7999 范围内(受保护)'
|
||||||
}
|
}
|
||||||
if (pendingQty && pendingQty.trim() !== '') {
|
if (pendingQty && pendingQty.trim() !== '') {
|
||||||
return '累计待发数量不为空'
|
return '累计待发数量不为空'
|
||||||
@@ -400,7 +400,8 @@ export class CleanerService {
|
|||||||
try {
|
try {
|
||||||
const cell = row.locator('td[colkey="vbillcode"]')
|
const cell = row.locator('td[colkey="vbillcode"]')
|
||||||
const codeLink = cell.locator('.code-detail-link').first()
|
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 value = rawValue.trim()
|
||||||
const match = value.match(/SC\d{14}/)
|
const match = value.match(/SC\d{14}/)
|
||||||
return match ? match[0] : value
|
return match ? match[0] : value
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ describe('Cleaner Service (Unit)', () => {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check row number range (7000-7999 are protected)
|
// Check row number range (2000-7999 are protected)
|
||||||
if (rowNumber >= 7000 && rowNumber < 8000) {
|
if (rowNumber >= 2000 && rowNumber < 8000) {
|
||||||
return false
|
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 = [
|
const testCases = [
|
||||||
{ rowNumber: 7000, pendingQty: '', materialCode: 'TEST001', expected: false },
|
{ rowNumber: 2000, pendingQty: '', materialCode: 'TEST001', expected: false },
|
||||||
{ rowNumber: 7500, pendingQty: '', materialCode: 'TEST001', expected: false },
|
{ rowNumber: 5000, pendingQty: '', materialCode: 'TEST001', expected: false },
|
||||||
{ rowNumber: 7999, 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 }
|
{ rowNumber: 8000, pendingQty: '', materialCode: 'TEST001', expected: true }
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ describe('Cleaner Service (Unit)', () => {
|
|||||||
const testCases = [
|
const testCases = [
|
||||||
{ rowNumber: 1, pendingQty: '', materialCode: 'TEST001', expected: true },
|
{ rowNumber: 1, pendingQty: '', materialCode: 'TEST001', expected: true },
|
||||||
{ rowNumber: 100, 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: 8000, pendingQty: '', materialCode: 'TEST001', expected: true },
|
||||||
{ rowNumber: 10000, pendingQty: '', materialCode: 'TEST001', expected: true }
|
{ rowNumber: 10000, pendingQty: '', materialCode: 'TEST001', expected: true }
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user