fix: 修复后端12个+前端5个高优先级问题
后端: - devices.js: 修复 newRackId 重复声明、批量移动加事务、ID生成改MAX聚合 - tickets.js: 添加工单状态机校验、req.body白名单过滤 - roles.js: init-roles 添加 authMiddleware - backup.js: 备份列表只读4KB头部,压缩文件超1MB跳过 - consumables.js: SN查询改用数据库LIKE替代全表扫描 - consumableRecords.js: 出入库加 SELECT FOR UPDATE 行级锁 - inventory.js: not_found 状态判断从 abnormal if 内移到 else if - idleDevices.js: 删除重复的 batch-restore 路由定义(182行) - cables.js: 接线冲突检测增加反向端口检查 前端: - AuthContext.jsx: 初始化时调用 fetchProfile 验证token、Error提取message - api/index.js: backupAPI.download 返回Promise、checkAdmin改POST - Login.jsx: checkIsFirstUser 静默处理错误 - DeviceManagement.jsx: 导出 currentPage scope 使用 currentPageDevices
This commit is contained in:
@@ -318,7 +318,15 @@ router.post('/import', async (req, res) => {
|
||||
router.get('/by-sn/:sn', async (req, res) => {
|
||||
try {
|
||||
const sn = req.params.sn;
|
||||
const consumables = await Consumable.findAll();
|
||||
// 使用数据库 LIKE 查询替代全表扫描
|
||||
const consumables = await Consumable.findAll({
|
||||
where: {
|
||||
snList: {
|
||||
[Op.like]: `%${sn}%`,
|
||||
},
|
||||
},
|
||||
});
|
||||
// 精确匹配 SN(JSON 数组中的元素)
|
||||
const consumable = consumables.find(c => {
|
||||
const snList = Array.isArray(c.snList) ? c.snList : [];
|
||||
return snList.includes(sn);
|
||||
|
||||
Reference in New Issue
Block a user