Compare commits
2 Commits
b7b2b34a1f
...
24581166bc
| Author | SHA1 | Date |
|---|---|---|
|
|
24581166bc | |
|
|
3fd09dec25 |
|
|
@ -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服务器尚未录入恢复时间,请及时处理!`
|
||||
text += `到期时间:${r.deadline_time}\n\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,13 +140,17 @@ 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服务器尚未录入恢复时间,请及时处理!`
|
||||
text += `服务器IP:${payload.server_ip || '未知'}\n服务器SN:${payload.server_sn}\n到期时间:${payload.deadline}\n\n服务器尚未录入恢复时间,请及时处理!`
|
||||
} else if (p.message_type === 'oem_repair' && payload.type === 'repair_before') {
|
||||
text = `⏰ OEM维修工单提醒\n\n`
|
||||
// 重新计算剩余时间
|
||||
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`
|
||||
if (payload.order_number) text += `工单号:${payload.order_number}\n`
|
||||
text += `服务器IP:${payload.server_ip || '未知'}\n服务器SN:${payload.server_sn}\n到期时间:${payload.deadline}\n服务器尚未录入恢复时间,请及时处理!`
|
||||
text += `服务器IP:${payload.server_ip || '未知'}\n服务器SN:${payload.server_sn}\n到期时间:${payload.deadline}\n\n服务器尚未录入恢复时间,请及时处理!`
|
||||
}
|
||||
if (text && await pushText(text)) {
|
||||
this.db.prepare('DELETE FROM pending_messages WHERE id = ?').run(p.id)
|
||||
|
|
@ -169,7 +173,13 @@ export class ReminderEngine {
|
|||
|
||||
if (timeToDeadline <= 0 && r.notification_phase !== 'overdue') {
|
||||
const rackRO = getRack ? await getRack(r.server_ip, r.server_sn) : null
|
||||
let text = `⚠️ OEM维修工单已触发${r.tier_name}超时\n\n`
|
||||
// 超时提醒格式:第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`
|
||||
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`
|
||||
|
|
@ -188,11 +198,16 @@ export class ReminderEngine {
|
|||
continue
|
||||
}
|
||||
const rackRB = getRack ? await getRack(r.server_ip, r.server_sn) : null
|
||||
let text = `⏰ OEM维修工单提醒(距离${r.tier_name}超时还剩1小时)\n\n`
|
||||
// 提前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`
|
||||
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服务器尚未录入恢复时间,请及时处理!`
|
||||
text += `${r.tier_name}到期时间:${r.deadline_time}\n\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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue