From 296a13a584b02137ddce2c3dedfdc1c87c5f40b1 Mon Sep 17 00:00:00 2001 From: lau572 <1010031226@qq.com> Date: Mon, 7 Apr 2025 08:52:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=BB=88=E6=AD=A2=E6=97=B6?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=87=AA=E5=8A=A8=E4=B8=80=E9=94=AE=E6=81=A2?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DcEventServiceImpl.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java index 4606e12e..19392a83 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java @@ -1353,6 +1353,86 @@ public class DcEventServiceImpl extends ServiceImpl impl //事件状态已终止 if (state == UniversalEnum.THREE.getNumber()) { + + EventPlanAssoc eventPlanAssoc = new EventPlanAssoc(); + eventPlanAssoc.setEventId(id); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(EventPlanAssoc::getEventId,id); + lambdaQueryWrapper.eq(EventPlanAssoc::getOperationType,"1"); + List eventPlanAssocs = eventPlanAssocMapper.selectList(lambdaQueryWrapper); + if (eventPlanAssocs != null && eventPlanAssocs.size() > 0){ + for (EventPlanAssoc planAssoc : eventPlanAssocs) { + JSONArray control = JSONArray.parseArray(planAssoc.getControl()); + for (Object o : control) { + JSONObject controlItem = (JSONObject) o; + // 判断是否有设备列表,如果没有则跳过当前循环 + if (!controlItem.containsKey("deviceList") || controlItem.get("deviceList") == null) { + continue; + } + String[] deviceList = controlItem.getString("deviceList").split(","); + JSONObject recoverConfig = controlItem.getJSONObject("recoverConfig"); + int deviceType = controlItem.getIntValue("deviceType"); + if (deviceType == 2){ + //情报板 切换播放目录 + for (String deviceId : deviceList) { + HashMap props = new HashMap<>(); + props.put("fileId", UniversalEnum.TEN.getValue()); + String functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_1B; + deviceController.getAjaxResult(deviceId, functionId, props); + } + + } else if (deviceType == 10){ + //激光疲劳唤醒"recoverConfig": "{\"operationDuration\":1,\"operationType\":\"0\",\"name\":\"激光关闭\"}", + for (String deviceId : deviceList) { + //更改模式 + HashMap props = new HashMap<>(); + props.put(UniversalEnum.SET.getValue(), LaserMode.getCodeByName(recoverConfig.getString("name"))); + String functionIdMode = UniversalEnum.SETMD.getValue(); + deviceController.getAjaxResult(deviceId, functionIdMode, props); + //更改时长 + HashMap propsTime = new HashMap<>(); + propsTime.put(UniversalEnum.SET.getValue(), recoverConfig.getString("operationDuration")); + String functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_SETTM; + deviceController.getAjaxResult(deviceId, functionId, propsTime); + } + } else if (deviceType == 12){ + //行车诱导 + for (String deviceId : deviceList) { + String controlModelName = recoverConfig.getString("controlModelName");//模式 + if ("手动模式".equals(controlModelName)) { + HashMap params = new HashMap<>(); + params.put("mode", "00"); + params.put("onWorkStatus", recoverConfig.getString("state")); + params.put("inWorkStatus", recoverConfig.getString("state")); + String functionId = DeviceFunctionIdConstants.DRIVING_GUIDANCE; + deviceController.getAjaxResult(deviceId, functionId,params); + }else if ("万年历".equals(controlModelName)){ + HashMap params = new HashMap<>(); + params.put("onWorkStatus", recoverConfig.getString("state")); + params.put("inWorkStatus", recoverConfig.getString("state")); + deviceController.getAjaxResult(deviceId,"30",params); + HashMap params2 = new HashMap<>(); + params2.put("mode", "02"); + String functionId = DeviceFunctionIdConstants.DRIVING_GUIDANCE; + deviceController.getAjaxResult(deviceId, functionId,params2); + }else { + HashMap params = new HashMap<>(); + params.put("onWorkStatus", recoverConfig.getString("state")); + params.put("inWorkStatus", recoverConfig.getString("state")); + deviceController.getAjaxResult(deviceId,"30",params); + HashMap params2 = new HashMap<>(); + params2.put("mode","01"); + params2.put("startDisplayTime",recoverConfig.getString("startTime")); + params2.put("endDisplayTime",recoverConfig.getString("endTime")); + String functionId = DeviceFunctionIdConstants.DRIVING_GUIDANCE; + deviceController.getAjaxResult(deviceId, functionId,params2); + } + } + } + } + } + } + return dcEventMapper.updateDcEventState(id, state); }