Skip to content

Commit afb2d8d

Browse files
feat(validators): checkContactInfo
1 parent 1417043 commit afb2d8d

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import type { CheckResult } from '../lithium/shared/types'
2+
3+
function matchContactInfo(info: string) {
4+
// 电话/Tel:000-1646464
5+
// 邮箱/Mail:abc@gmail.com
6+
const telRegex = /\s?\/\s?Tel\s?[:]?\s*([^\s]+)/
7+
const mailRegex = /\s?\/\s?Mail\s?[:]?\s*([^\s]+)/
8+
const websiteRegex = /\s?\/\s?Website\s?[:]?\s*([^\s]+)/
9+
10+
const telMatch = info.match(telRegex)
11+
const mailMatch = info.match(mailRegex)
12+
const websiteMatch = info.match(websiteRegex)
13+
const tel = telMatch ? telMatch[1].trim() : null
14+
const mail = mailMatch ? mailMatch[1].trim() : null
15+
const website = websiteMatch ? websiteMatch[1].trim() : null
16+
17+
console.log('匹配结果:', {info, tel, mail, website })
18+
return { tel, mail, website }
19+
}
20+
21+
export function checkContactInfo(
22+
systemConsignor: string | undefined,
23+
systemManufacturer: string | undefined,
24+
summaryConsignorInfo: string,
25+
summaryManufacturerInfo: string,
26+
): CheckResult[] {
27+
if (systemConsignor === systemManufacturer) {
28+
return []
29+
}
30+
const results: CheckResult[] = []
31+
const { tel: consignorTel, mail: consignorMail, website: consignorWebsite } = matchContactInfo(summaryConsignorInfo)
32+
const { tel: manufacturerTel, mail: manufacturerMail, website: manufacturerWebsite } = matchContactInfo(summaryManufacturerInfo)
33+
34+
if (consignorTel && manufacturerTel && consignorTel === manufacturerTel) {
35+
results.push({
36+
ok: false,
37+
result: '委托方和制造商联系电话一致, 可能存在信息错误',
38+
})
39+
}
40+
if (consignorMail && manufacturerMail && consignorMail === manufacturerMail) {
41+
results.push({
42+
ok: false,
43+
result: '委托方和制造商邮箱一致, 可能存在信息错误',
44+
})
45+
}
46+
if (consignorWebsite && manufacturerWebsite && consignorWebsite === manufacturerWebsite) {
47+
results.push({
48+
ok: false,
49+
result: '委托方和制造商网址一致, 可能存在信息错误',
50+
})
51+
}
52+
return results
53+
}

packages/validators/src/summary/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { checkT8 } from './checkT8'
4242
import { PekSodiumData, SekSodiumData } from '../sodium/shared/types'
4343
import { checkTests } from './checkTests'
4444
import { checkT1_6 } from './checkT1_6'
45+
import { checkContactInfo } from './checkContactInfo'
4546

4647
export function checkSekAttachment(
4748
currentData: SekData | SekSodiumData,
@@ -290,6 +291,12 @@ function checkSummaryFromLLM(
290291
results.push(
291292
...checkManufacturer(entrustData?.manufacturer, summaryData.manufacturer)
292293
)
294+
results.push(...checkContactInfo(
295+
entrustData?.consignor,
296+
entrustData?.manufacturer,
297+
summaryData.consignorInfo === '' ? summaryData.consignor : summaryData.consignorInfo,
298+
summaryData.manufacturerInfo === '' ? summaryData.manufacturer : summaryData.manufacturerInfo,
299+
))
293300
results.push(...checkMarket(market, summaryData.testReportNo))
294301
// @ts-ignore
295302
results.push(...checkUN38fg(summaryData.un38F ?? summaryData.un38f, summaryData.un38G ?? summaryData.un38g))

0 commit comments

Comments
 (0)