This commit is contained in:
张成
2025-12-15 22:03:01 +08:00
parent 6e5c35f144
commit 4443d43ec1
15 changed files with 776 additions and 485 deletions

View File

@@ -161,6 +161,12 @@ class ScheduledJobs {
*/
async cleanupOfflineDeviceTasks() {
try {
// 移除 device_status 依赖,离线任务清理功能暂时禁用
// 如果需要在 pla_account 表中添加在线状态字段,可以重新实现此功能
console.log('[清理离线任务] device_status 已移除,功能暂时禁用');
return;
/* 原有代码已注释
const Sequelize = require('sequelize');
const { device_status, task_status, op } = db.models;
@@ -240,6 +246,7 @@ class ScheduledJobs {
if (totalCancelled > 0) {
console.log(`[清理离线任务] 共取消 ${totalCancelled} 个离线设备的任务`);
}
*/
} catch (error) {
console.error('[清理离线任务] 执行失败:', error);
}
@@ -361,27 +368,14 @@ class ScheduledJobs {
}
try {
// device_status 查询所有在线且已登录的设备
// 移除 device_status 依赖,改为直接从 pla_account 查询启用且开启自动投递的账号
const models = db.models;
const { device_status, pla_account, op } = models;
const onlineDevices = await device_status.findAll({
where: {
isOnline: true,
isLoggedIn: true
},
attributes: ['sn_code', 'accountName', 'platform']
});
if (!onlineDevices || onlineDevices.length === 0) {
console.log('[自动投递] 没有在线且已登录的设备');
return;
}
// 获取这些在线设备对应的账号配置(只获取启用且开启自动投递的账号)
const snCodes = onlineDevices.map(device => device.sn_code);
const { pla_account, op } = models;
// 直接从 pla_account 查询启用且开启自动投递的账号
// 注意:不再检查在线状态,因为 device_status 已移除
const pla_users = await pla_account.findAll({
where: {
sn_code: { [op.in]: snCodes },
is_delete: 0,
is_enabled: 1, // 只获取启用的账号
auto_deliver: 1
@@ -509,27 +503,14 @@ class ScheduledJobs {
}
try {
// device_status 查询所有在线且已登录的设备
// 移除 device_status 依赖,改为直接从 pla_account 查询启用且开启自动沟通的账号
const models = db.models;
const { device_status, pla_account, op } = models;
const onlineDevices = await device_status.findAll({
where: {
isOnline: true,
isLoggedIn: true
},
attributes: ['sn_code', 'accountName', 'platform']
});
if (!onlineDevices || onlineDevices.length === 0) {
console.log('[自动沟通] 没有在线且已登录的设备');
return;
}
// 获取这些在线设备对应的账号配置(只获取启用且开启自动沟通的账号)
const snCodes = onlineDevices.map(device => device.sn_code);
const { pla_account, op } = models;
// 直接从 pla_account 查询启用且开启自动沟通的账号
// 注意:不再检查在线状态,因为 device_status 已移除
const pla_users = await pla_account.findAll({
where: {
sn_code: { [op.in]: snCodes },
is_delete: 0,
is_enabled: 1, // 只获取启用的账号
auto_chat: 1