| | |
| | | // 设备点检接口辅助方法,预留后台接入并提供本地缓存降级逻辑 |
| | | const STORAGE_PREFIX = 'equipment_inspection_cache_'; // 本地缓存前缀,便于调试阶段存储 |
| | | const DAY_COUNT = 31; |
| | | const MONTH_COUNT = 12; |
| | | const DAILY_ITEM_COUNT = 6; // 日常点检项目数量 |
| | | const MONTHLY_ITEM_COUNT = 2; // 月度点检项目数量 |
| | | |
| | | function buildDefaultRecord() { |
| | | return { |
| | | dailyChecks: Array(DAY_COUNT).fill(false), |
| | | monthlyChecks: Array(MONTH_COUNT).fill(false) |
| | | dailyChecks: Array(DAILY_ITEM_COUNT).fill(null).map(() => Array(DAY_COUNT).fill(false)), |
| | | monthlyChecks: Array(MONTHLY_ITEM_COUNT).fill(null).map(() => Array(DAY_COUNT).fill(false)) |
| | | }; |
| | | } |
| | | |
| | |
| | | return buildDefaultRecord(); |
| | | } |
| | | |
| | | const daily = Array.isArray(payload.dailyChecks) ? payload.dailyChecks.slice(0, DAY_COUNT) : []; |
| | | const monthly = Array.isArray(payload.monthlyChecks) ? payload.monthlyChecks.slice(0, MONTH_COUNT) : []; |
| | | // 验证并规范化日常点检数据(6项×31天) |
| | | let dailyChecks = []; |
| | | if (Array.isArray(payload.dailyChecks)) { |
| | | dailyChecks = payload.dailyChecks.slice(0, DAILY_ITEM_COUNT).map(item => { |
| | | if (Array.isArray(item)) { |
| | | // 确保每项都是31天的数组 |
| | | const normalized = item.slice(0, DAY_COUNT); |
| | | while (normalized.length < DAY_COUNT) { |
| | | normalized.push(false); |
| | | } |
| | | return normalized; |
| | | } |
| | | // 如果不是数组,返回全false的31天数组 |
| | | return Array(DAY_COUNT).fill(false); |
| | | }); |
| | | } |
| | | // 补齐到6项 |
| | | while (dailyChecks.length < DAILY_ITEM_COUNT) { |
| | | dailyChecks.push(Array(DAY_COUNT).fill(false)); |
| | | } |
| | | |
| | | // 验证并规范化月度点检数据(2项×31天) |
| | | let monthlyChecks = []; |
| | | if (Array.isArray(payload.monthlyChecks)) { |
| | | monthlyChecks = payload.monthlyChecks.slice(0, MONTHLY_ITEM_COUNT).map(item => { |
| | | if (Array.isArray(item)) { |
| | | // 确保每项都是31天的数组 |
| | | const normalized = item.slice(0, DAY_COUNT); |
| | | while (normalized.length < DAY_COUNT) { |
| | | normalized.push(false); |
| | | } |
| | | return normalized; |
| | | } |
| | | // 如果不是数组,返回全false的31天数组 |
| | | return Array(DAY_COUNT).fill(false); |
| | | }); |
| | | } |
| | | // 补齐到2项 |
| | | while (monthlyChecks.length < MONTHLY_ITEM_COUNT) { |
| | | monthlyChecks.push(Array(DAY_COUNT).fill(false)); |
| | | } |
| | | |
| | | return { |
| | | dailyChecks: [...daily, ...Array(Math.max(0, DAY_COUNT - daily.length)).fill(false)], |
| | | monthlyChecks: [...monthly, ...Array(Math.max(0, MONTH_COUNT - monthly.length)).fill(false)] |
| | | dailyChecks, |
| | | monthlyChecks |
| | | }; |
| | | } |
| | | |