Compare commits

..

No commits in common. "24581166bcc43bc39588a8acdffa2ce742eaef28" and "b7b2b34a1f25d093daad7873c9d4bce8bdc13934" have entirely different histories.

1 changed files with 8 additions and 23 deletions

View File

@ -110,7 +110,7 @@ export class ReminderEngine {
if (r.order_number) text += `工单号:${r.order_number}\n`
text += `服务器IP${r.server_ip || '未知'}\n服务器SN${r.server_sn}\n`
if (rackH) text += `机架位置:${rackH}\n`
text += `到期时间:${r.deadline_time}\n\n服务器尚未录入恢复时间,请及时处理!`
text += `到期时间:${r.deadline_time}\n服务器尚未录入恢复时间,请及时处理!`
if (await pushText(text)) {
this.db.prepare("UPDATE reminder_state SET notification_phase = 'before', notified_at = datetime('now', '+8 hours') WHERE id = ?").run(r.id)
}
@ -140,17 +140,13 @@ export class ReminderEngine {
// 构建消息
let text = ''
if (p.message_type === 'oem_diag') {
text = `OEM诊断工单提醒\n\n`
text = `OEM诊断工单提醒\n\n`
if (payload.order_number) text += `工单号:${payload.order_number}\n`
text += `服务器IP${payload.server_ip || '未知'}\n服务器SN${payload.server_sn}\n到期时间${payload.deadline}\n\n服务器尚未录入恢复时间,请及时处理!`
text += `服务器IP${payload.server_ip || '未知'}\n服务器SN${payload.server_sn}\n到期时间${payload.deadline}\n服务器尚未录入恢复时间,请及时处理!`
} else if (p.message_type === 'oem_repair' && payload.type === 'repair_before') {
// 重新计算剩余时间
const tierPenaltyMap: Record<string, string> = { '第一档': '10%', '第二档': '25%', '第三档': '50%', '第四档': '100%' }
const penalty = payload.tier_name ? tierPenaltyMap[payload.tier_name] || '' : ''
const tierLabel = payload.tier_name === '第四档' ? '全额扣费100%' : `${payload.tier_name}${penalty}`
text = `OEM维修工单超时提醒距离${tierLabel}还剩1小时\n\n`
text = `⏰ OEM维修工单提醒\n\n`
if (payload.order_number) text += `工单号:${payload.order_number}\n`
text += `服务器IP${payload.server_ip || '未知'}\n服务器SN${payload.server_sn}\n到期时间${payload.deadline}\n\n服务器尚未录入恢复时间,请及时处理!`
text += `服务器IP${payload.server_ip || '未知'}\n服务器SN${payload.server_sn}\n到期时间${payload.deadline}\n服务器尚未录入恢复时间请及时处理`
}
if (text && await pushText(text)) {
this.db.prepare('DELETE FROM pending_messages WHERE id = ?').run(p.id)
@ -173,13 +169,7 @@ export class ReminderEngine {
if (timeToDeadline <= 0 && r.notification_phase !== 'overdue') {
const rackRO = getRack ? await getRack(r.server_ip, r.server_sn) : null
// 超时提醒格式第X档已超时达到第Y档扣XX%
const tierPenaltyMap: Record<string, string> = { '第一档': '10%', '第二档': '25%', '第三档': '50%', '第四档': '100%' }
const penalty = tierPenaltyMap[r.tier_name] || ''
const isFinalTier = r.tier_name === '第四档'
let text = isFinalTier
? `OEM维修工单超时提醒${r.tier_name}已超时已触发全额扣费100%\n\n`
: `OEM维修工单超时提醒${r.tier_name}已超时,达到${r.tier_name}${penalty}\n\n`
let text = `⚠️ OEM维修工单已触发${r.tier_name}超时\n\n`
if (r.order_number) text += `工单号:${r.order_number}\n`
text += `服务器IP${r.server_ip || '未知'}\n服务器SN${r.server_sn}\n`
if (rackRO) text += `机架位置:${rackRO}\n`
@ -198,16 +188,11 @@ export class ReminderEngine {
continue
}
const rackRB = getRack ? await getRack(r.server_ip, r.server_sn) : null
// 提前1小时提醒格式距离第X档扣XX%还剩1小时
const tierPenaltyMap: Record<string, string> = { '第一档': '10%', '第二档': '25%', '第三档': '50%', '第四档': '100%' }
const penalty = tierPenaltyMap[r.tier_name] || ''
const isFinalTier = r.tier_name === '第四档'
const tierLabel = isFinalTier ? '全额扣费100%' : `${r.tier_name}${penalty}`
let text = `OEM维修工单超时提醒距离${tierLabel}还剩1小时\n\n`
let text = `⏰ OEM维修工单提醒距离${r.tier_name}超时还剩1小时\n\n`
if (r.order_number) text += `工单号:${r.order_number}\n`
text += `服务器IP${r.server_ip || '未知'}\n服务器SN${r.server_sn}\n`
if (rackRB) text += `机架位置:${rackRB}\n`
text += `${r.tier_name}到期时间:${r.deadline_time}\n\n服务器尚未录入恢复时间,请及时处理!`
text += `${r.tier_name}到期时间:${r.deadline_time}\n服务器尚未录入恢复时间请及时处理`
if (await pushText(text)) {
this.db.prepare("UPDATE reminder_state SET notification_phase = 'before', notified_at = datetime('now', '+8 hours') WHERE id = ?").run(r.id)
}