浏览代码

1、多功能卡状态上报,增加异常捕获

lihao16 5 月之前
父节点
当前提交
338cbca01f

+ 25 - 21
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceServiceImpl.java

@@ -422,28 +422,32 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
     public R<Void> uploadMultiCard(FrontMultiCardUploadVo frontMultiCardUploadVo) {
         String identifier = frontMultiCardUploadVo.getIdentifier();
         JSONObject data = JSONUtil.parseObj(frontMultiCardUploadVo.getData().replace("'","\""));
-        JSONArray current_status_info = data.getJSONArray("current_status_info");
-        if (current_status_info.size() < 1) {
-            log.info("uploadMultiCard current_status_info size < 1 return");
-            return R.ok();
-        }
-        JSONArray updatePowerIndexStates = ((JSONObject) current_status_info.get(0)).getJSONArray("updatePowerIndexStates");
-        if (updatePowerIndexStates.size() < 1) {
-            log.info("uploadMultiCard updatePowerIndexStates size < 1 return");
-            return R.ok();
-        }
-        List<SmsbDeviceMultiCardVo> multiCardVoList = new ArrayList<>();
-        String syncTime = DateUtil.formatDateTime(new Date());
-        for (Object indexState : updatePowerIndexStates) {
-            JSONObject indexStateJson = (JSONObject) indexState;
-            SmsbDeviceMultiCardVo multiCardVo = new SmsbDeviceMultiCardVo();
-            multiCardVo.setSyncTime(syncTime);
-            multiCardVo.setPowerStatus(indexStateJson.getInt("status"));
-            multiCardVo.setIndexNum(indexStateJson.getInt("powerIndex"));
-            multiCardVo.setPowerType(1);
-            multiCardVoList.add(multiCardVo);
+        try {
+            JSONArray current_status_info = data.getJSONArray("current_status_info");
+            if (current_status_info.size() < 1) {
+                log.info("uploadMultiCard current_status_info size < 1 return");
+                return R.ok();
+            }
+            JSONArray updatePowerIndexStates = ((JSONObject) current_status_info.get(0)).getJSONArray("updatePowerIndexStates");
+            if (updatePowerIndexStates.size() < 1) {
+                log.info("uploadMultiCard updatePowerIndexStates size < 1 return");
+                return R.ok();
+            }
+            List<SmsbDeviceMultiCardVo> multiCardVoList = new ArrayList<>();
+            String syncTime = DateUtil.formatDateTime(new Date());
+            for (Object indexState : updatePowerIndexStates) {
+                JSONObject indexStateJson = (JSONObject) indexState;
+                SmsbDeviceMultiCardVo multiCardVo = new SmsbDeviceMultiCardVo();
+                multiCardVo.setSyncTime(syncTime);
+                multiCardVo.setPowerStatus(indexStateJson.getInt("status"));
+                multiCardVo.setIndexNum(indexStateJson.getInt("powerIndex"));
+                multiCardVo.setPowerType(1);
+                multiCardVoList.add(multiCardVo);
+            }
+            RedisUtils.setCacheObject(DeviceConstants.REDIS_DEVICE_MULTI_CARD_KEY + identifier, multiCardVoList, Duration.ofMinutes(30));
+        }catch (Exception e) {
+            log.error("uploadMultiCard 解析JSON数据异常!");
         }
-        RedisUtils.setCacheObject(DeviceConstants.REDIS_DEVICE_MULTI_CARD_KEY + identifier, multiCardVoList, Duration.ofMinutes(30));
         return R.ok();
     }