| | |
| | | // 4. 清空plcRequest和plcGlassId(只清除PLC字段) |
| | | clearPlcRequestFields(deviceConfig, serializer); |
| | | |
| | | // 5. 更新玻璃信息状态:将state从0改为1(已扫码交互) |
| | | boolean updated = glassInfoService.updateGlassStateAfterScan(glassId, rawWidth, rawHeight, workLine); |
| | | if (!updated) { |
| | | log.warn("更新玻璃信息状态失败,玻璃可能不存在: glassId={}", glassId); |
| | | // 不返回错误,继续执行,因为可能是新玻璃还未导入 |
| | | } |
| | | |
| | | // 6. 将扫描到的玻璃ID保存到共享数据中(供大车设备定时器读取) |
| | | saveScannedGlassId(params, glassId); |
| | | |
| | | // 5. 保存玻璃信息到数据库 |
| | | GlassInfo glassInfo = buildGlassInfo(glassId, rawWidth, rawHeight, workLine); |
| | | boolean saved = glassInfoService.saveOrUpdateGlassInfo(glassInfo); |
| | | if (!saved) { |
| | | return buildResult(deviceConfig, "scanOnce", false, "保存玻璃信息失败: " + glassId, null); |
| | | } |
| | | |
| | | // 6. 将扫描到的玻璃ID保存到共享数据中(供大车设备定时器读取) |
| | | saveScannedGlassId(params, glassId); |
| | | |
| | | String msg = String.format("玻璃[%s] 尺寸[表宽:%s x 长:%s] 已接收并入库,workLine=%s", |
| | | glassId, |
| | | rawWidth != null ? rawWidth + "mm" : "-", |
| | | rawHeight != null ? rawHeight + "mm" : "-", |
| | | workLine != null ? workLine : "-"); |
| | | Map<String, Object> resultData = new HashMap<>(); |
| | | resultData.put("glassIds", Collections.singletonList(glassId)); |
| | | if (workLine != null) { |
| | | resultData.put("workLine", workLine); |
| | | } |
| | | return buildResult(deviceConfig, "scanOnce", true, msg, resultData); |
| | | Integer intervalMs = config != null ? config.getScanIntervalMs() : null; |
| | | String msg = String.format("玻璃[%s] 尺寸[表宽:%s x 长:%s] 已接收,workLine=%s,扫描间隔=%s", |
| | | glassId, |
| | | rawWidth != null ? rawWidth + "mm" : "-", |
| | | rawHeight != null ? rawHeight + "mm" : "-", |
| | | workLine != null ? workLine : "-", |
| | | intervalMs != null ? intervalMs + "ms" : "-"); |
| | | Map<String, Object> resultData = new HashMap<>(); |
| | | resultData.put("glassIds", Collections.singletonList(glassId)); |
| | | if (workLine != null) { |
| | | resultData.put("workLine", workLine); |
| | | } |
| | | return buildResult(deviceConfig, "scanOnce", true, msg, resultData); |
| | | } |
| | | |
| | | /** |
| | |
| | | glassInfo.setGlassId(glassId.trim()); |
| | | // mesWidth=表宽 -> glassWidth, mesHeight=长 -> glassLength |
| | | if (width != null) { |
| | | glassInfo.setGlassWidth(width); // 表宽 |
| | | glassInfo.setGlassWidth(width); |
| | | } |
| | | if (height != null) { |
| | | glassInfo.setGlassLength(height); // 长 |
| | | glassInfo.setGlassLength(height); |
| | | } |
| | | glassInfo.setStatus(GlassInfo.Status.PENDING); |
| | | if (workLine != null) { |