From e94db979cf3d72f252bd91221bce4e5a9c893af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Mon, 8 Apr 2024 18:14:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=20=E4=BA=8B=E4=BB=B6id=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AF=A6=E6=83=85=20=E6=B5=81=E7=A8=8B=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zc/business/controller/DcEventController.java | 2 -- zc-business/src/main/java/com/zc/business/domain/DcEvent.java | 3 +++ .../java/com/zc/business/service/impl/DcEventServiceImpl.java | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcEventController.java b/zc-business/src/main/java/com/zc/business/controller/DcEventController.java index f7dcbe6d..6d5d060b 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcEventController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcEventController.java @@ -46,10 +46,8 @@ public class DcEventController extends BaseController @GetMapping("/list") public TableDataInfo list(DcEvent dcEvent) { - startPage(); List list = dcEventService.selectDcEventList(dcEvent); - return getDataTable(list); } diff --git a/zc-business/src/main/java/com/zc/business/domain/DcEvent.java b/zc-business/src/main/java/com/zc/business/domain/DcEvent.java index 5740e0d4..172107f8 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcEvent.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcEvent.java @@ -279,6 +279,9 @@ public class DcEvent { @ApiModelProperty("事件类型名称") @TableField(exist = false) private String eventName; + @ApiModelProperty("流程节点") + @TableField(exist = false) + private String processNode; 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 80be2290..53846d7b 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 @@ -603,6 +603,8 @@ public class DcEventServiceImpl extends ServiceImpl impl public DcEvent selectEventSubclassById(int eventType, String id) { //todo DcEvent dcEvent = dcEventMapper.selectDcEventById(id); + List processConfigList = dcProcessConfigMapper.selectDcProcessConfigByEventType(Math.toIntExact(dcEvent.getEventType())); + dcEvent.setProcessConfigList(processConfigList); switch (eventType) { //交通事故 case 1: From a9820f478b39c2a1f8dc252e9de4f8407ab00c74 Mon Sep 17 00:00:00 2001 From: "Mr.Wang" Date: Mon, 8 Apr 2024 18:37:30 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A2=84=E6=A1=88?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcEmergencyPlansController.java | 8 ++-- .../zc/business/domain/DcEmergencyPlans.java | 6 --- .../zc/business/domain/DcExecuteAction.java | 18 ++++----- .../impl/DcEmergencyPlansServiceImpl.java | 37 ++++++++++--------- .../business/DcEmergencyPlansMapper.xml | 24 +++++------- .../mapper/business/DcExecuteActionMapper.xml | 28 +++++++------- 6 files changed, 56 insertions(+), 65 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java b/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java index d6b84c89..f260969a 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java @@ -34,7 +34,7 @@ public class DcEmergencyPlansController extends BaseController { * 查询事件预案列表 */ @ApiOperation("查询事件预案列表") - @PreAuthorize("@ss.hasPermi('business:plans:list')") +// @PreAuthorize("@ss.hasPermi('business:plans:list')") @GetMapping("/list") public TableDataInfo list(DcEmergencyPlans dcEmergencyPlans) { startPage(); @@ -46,7 +46,7 @@ public class DcEmergencyPlansController extends BaseController { * 根据事件预案id查询事件预案列表 */ @ApiOperation("根据事件预案id查询事件预案列表") - @PreAuthorize("@ss.hasPermi('business:plans:list')") +// @PreAuthorize("@ss.hasPermi('business:plans:list')") @GetMapping("/list/{id}") public AjaxResult list(@PathVariable @ApiParam(name = "id", value = "事件预案id", required = true) Integer id) { @@ -149,7 +149,7 @@ public class DcEmergencyPlansController extends BaseController { * 新增事件预案 */ @ApiOperation("新增预案") - @PreAuthorize("@ss.hasPermi('business:plans:add')") +// @PreAuthorize("@ss.hasPermi('business:plans:add')") @PostMapping public AjaxResult add(@RequestBody DcEmergencyPlans dcEmergencyPlans) { return toAjax(dcEmergencyPlansService.insertDcEmergencyPlans(dcEmergencyPlans)); @@ -159,7 +159,7 @@ public class DcEmergencyPlansController extends BaseController { * 修改事件预案 */ @ApiOperation("修改预案") - @PreAuthorize("@ss.hasPermi('business:plans:edit')") +// @PreAuthorize("@ss.hasPermi('business:plans:edit')") @PutMapping public AjaxResult update(@RequestBody DcEmergencyPlans dcEmergencyPlans) { return toAjax(dcEmergencyPlansService.updateDcEmergencyPlans(dcEmergencyPlans)); diff --git a/zc-business/src/main/java/com/zc/business/domain/DcEmergencyPlans.java b/zc-business/src/main/java/com/zc/business/domain/DcEmergencyPlans.java index a7bcad9e..67fc4156 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcEmergencyPlans.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcEmergencyPlans.java @@ -81,12 +81,6 @@ public class DcEmergencyPlans { @ApiModelProperty("控制指令") private String controlCommand; - /** - * 事件分类 - */ - @ApiModelProperty("事件分类") - private int eventCategory; - /** * 执行操作列表 */ diff --git a/zc-business/src/main/java/com/zc/business/domain/DcExecuteAction.java b/zc-business/src/main/java/com/zc/business/domain/DcExecuteAction.java index 1ef52211..c43224bd 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcExecuteAction.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcExecuteAction.java @@ -39,12 +39,6 @@ public class DcExecuteAction{ @ApiModelProperty("设备类型") private int deviceType; - /** - * 操作类型 - */ - @ApiModelProperty("操作类型") - private int actionType; - @ApiModelProperty("创建时间") private Date createTime; @ApiModelProperty("修改时间") @@ -69,10 +63,16 @@ public class DcExecuteAction{ private String deviceList; /** - * 其他配置 + * 执行操作配置 + */ + @ApiModelProperty("执行操作配置") + private String executeConfig; + + /** + * 恢复操作配置 */ - @ApiModelProperty("其他配置") - private String otherConfig; + @ApiModelProperty("恢复操作配置") + private String recoverConfig; diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java index e837c5ea..c373152e 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java @@ -301,7 +301,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { // 指定设备资源 // 根据设备id,获取设备集合 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - JSONObject otherConfig = JSON.parseObject(dcExecuteAction.getOtherConfig()); + JSONObject otherConfig = JSON.parseObject(dcExecuteAction.getExecuteConfig()); List deviceList = (List) otherConfig.get("deviceList"); queryWrapper.in(DcDevice::getIotDeviceId, deviceList); dcDevices = dcDeviceService.list(queryWrapper); @@ -576,7 +576,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { invokedFunction( dcEventAnDcEmergencyPlans.getOperationType(), dcDevices, - JSON.parseObject(dcExecuteAction.getOtherConfig()), + JSON.parseObject(dcExecuteAction.getExecuteConfig()), resultArray); // 记录操作过的设备id @@ -828,7 +828,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { dcEmergencyPlansMapper.updateDcEmergencyPlans(dcEmergencyPlans); // 修改执行操作表数据 dcExecuteActionList.forEach(dcExecuteAction -> dcExecuteAction.setUpdateTime(DateUtils.getNowDate())); - // 过滤出删除掉的执行操作和恢复操作 + // 过滤出删除掉的操作 String dcExecuteActionId = dcExecuteActionList.stream() .filter(dcExecuteAction -> dcExecuteAction.getId() != null) .map(DcExecuteAction::getEmergencyPlansId) @@ -839,17 +839,16 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { .filter(dcExecuteAction -> dcExecuteAction.getId() != null) .map(DcExecuteAction::getId) .collect(Collectors.toList()); - // 查询出事件预案关联的执行操作和恢复操作 + // 查询出事件预案关联的操作 List dcExecuteActionIdList = dcExecuteActionService.selectDcExecuteActionByEmergencyPlansId(dcExecuteActionId); List commonIds = new ArrayList<>(ids); commonIds.retainAll(dcExecuteActionIdList); - // 删除后的执行操作id和恢复操作id + // 删除后的操作id List idsNotInDcExecuteActionIdList = new ArrayList<>(dcExecuteActionIdList); idsNotInDcExecuteActionIdList.removeAll(commonIds); - // 根据执行操作id和恢复操作id,进行删除操作 + // 根据操作id,进行删除操作 if (idsNotInDcExecuteActionIdList.size() > 0) { - System.out.println("存在需要删除的数据"); dcExecuteActionService.deleteDcExecuteAction(idsNotInDcExecuteActionIdList); } @@ -907,14 +906,10 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { * 数据处理 */ public static List dataProcessing(DcEmergencyPlans dcEmergencyPlans) { - // 过滤出执行操作数据 - List dcExecuteActionOperationList = dcEmergencyPlans.getDcExecuteAction() - .stream() - .filter(dcExecuteAction -> dcExecuteAction.getActionType() == 1) - .collect(Collectors.toList()); + List dcExecuteActionList = dcEmergencyPlans.getDcExecuteAction(); // 设备类型 数据处理 - String deviceType = dcExecuteActionOperationList.stream() + String deviceType = dcExecuteActionList.stream() .map(DcExecuteAction::getDeviceType) .distinct() .map(type -> Arrays.stream(DeviceTypeEnum.values()) @@ -926,7 +921,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { .collect(Collectors.joining(",")); dcEmergencyPlans.setDeviceType(deviceType); // 可控设备 数据处理 - List dcExecuteActionNewList = dcExecuteActionOperationList.stream() + List dcExecuteActionNewList = dcExecuteActionList.stream() .filter(dcExecuteAction -> dcExecuteAction.getSearchRule() == 1) .collect(Collectors.toList()); String controllableDevice = dcExecuteActionNewList.stream() @@ -934,11 +929,12 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { .collect(Collectors.joining("、")); dcEmergencyPlans.setControllableDevice(controllableDevice); // 控制指令 数据处理 - List otherConfigList = dcExecuteActionOperationList.stream() + List otherConfigList = dcExecuteActionList.stream() .map(dcExecuteAction -> { JSONObject config = new JSONObject(); - String otherConfig = dcExecuteAction.getOtherConfig(); - JSONObject jsonObject = JSON.parseObject(otherConfig); + // 执行操作配置 + String executeConfig = dcExecuteAction.getExecuteConfig(); + JSONObject jsonObject = JSON.parseObject(executeConfig); if (dcExecuteAction.getDeviceType() == DeviceTypeConstants.DRIVING_GUIDANCE) { // 行车诱导 config.put("controlModelName",jsonObject.get("controlModelName")); @@ -950,7 +946,12 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { }else if (dcExecuteAction.getDeviceType() == DeviceTypeConstants.VARIABLE_INFORMATION_FLAG || dcExecuteAction.getDeviceType() == DeviceTypeConstants.ROAD_SECTION_VOICE_BROADCASTING) { // 情报板/语音广播 - config.put("content",jsonObject.get("content")); + if (jsonObject.get("operationType").equals("1")) { + config.put("content",jsonObject.get("content")); + }else { + config.put("operationType","智能发布"); + } + } else if (dcExecuteAction.getDeviceType() == DeviceTypeConstants.LASER_FATIGUE_AWAKENING) { // 激光疲劳唤醒 diff --git a/zc-business/src/main/resources/mapper/business/DcEmergencyPlansMapper.xml b/zc-business/src/main/resources/mapper/business/DcEmergencyPlansMapper.xml index a1e7e6f5..bb15469d 100644 --- a/zc-business/src/main/resources/mapper/business/DcEmergencyPlansMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcEmergencyPlansMapper.xml @@ -15,18 +15,17 @@ - - - + + @@ -43,7 +42,6 @@ triggering_condition, controllable_device, control_command, - event_category, #{planName}, @@ -55,7 +53,6 @@ #{triggeringCondition}, #{controllableDevice}, #{controlCommand}, - #{eventCategory}, @@ -68,8 +65,7 @@ device_type = #{deviceType}, triggering_condition = #{triggeringCondition}, controllable_device = #{controllableDevice}, - control_command = #{controlCommand}, - event_category = #{eventCategory} + control_command = #{controlCommand} where id = #{id} @@ -90,16 +86,16 @@ t1.triggering_condition, t1.controllable_device, t1.control_command, - t1.event_category, t2.id as action_id, t2.emergency_plans_id as action_emergency_plans_id, t2.device_type as action_device_type, - t2.action_type as action_action_type, t2.create_time as action_create_time, + t2.update_time as action_update_time, t2.search_rule as action_search_rule, t2.`number` as action_number, t2.device_list as action_device_list, - t2.other_config as action_other_config + t2.execute_config as action_execute_config, + t2.recover_config as action_recover_config from dc_emergency_plans t1 left join dc_execute_action t2 on t1.id = t2.emergency_plans_id @@ -115,13 +111,11 @@ t1.device_type, t1.triggering_condition, t1.controllable_device, - t1.control_command, - t1.event_category + t1.control_command from dc_emergency_plans t1 and plan_name like concat('%', #{planName}, '%') and event_type = #{eventType} - and event_category = #{eventCategory} order by t1.id desc @@ -133,12 +127,12 @@ diff --git a/zc-business/src/main/resources/mapper/business/DcExecuteActionMapper.xml b/zc-business/src/main/resources/mapper/business/DcExecuteActionMapper.xml index 2d975ec5..98c710ce 100644 --- a/zc-business/src/main/resources/mapper/business/DcExecuteActionMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcExecuteActionMapper.xml @@ -10,24 +10,26 @@ (emergency_plans_id, device_type, - action_type, create_time, search_rule, `number`, device_list, - other_config + execute_config, + recover_config ) values - (#{item.emergencyPlansId}, + ( + #{item.emergencyPlansId}, #{item.deviceType}, - #{item.actionType}, #{item.createTime}, #{item.searchRule}, #{item.number}, #{item.deviceList}, - #{item.otherConfig}) + #{item.executeConfig}, + #{item.recoverConfig} + ) @@ -47,12 +49,6 @@ then #{item.deviceType} - - - when id=#{item.id} - then #{item.actionType} - - when id=#{item.id} @@ -77,10 +73,16 @@ then #{item.deviceList} - + + + when id=#{item.id} + then #{item.executeConfig} + + + when id=#{item.id} - then #{item.otherConfig} + then #{item.recoverConfig} From adf4a9600f39be699cb66e8e013590466ebea1d8 Mon Sep 17 00:00:00 2001 From: "Mr.Wang" Date: Mon, 8 Apr 2024 19:45:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=92=8C=E9=A2=84=E6=A1=88=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DcEmergencyPlansServiceImpl.java | 177 ++++++++++-------- 1 file changed, 101 insertions(+), 76 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java index c373152e..bf54a4b8 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java @@ -196,7 +196,8 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { markArray[1] = String.format("%0" + 3 + "d", markArray[1]); } DcExecuteAction executeAction = dcEventAnDcEmergencyPlans.getDcEmergencyPlans().getExecuteAction(); - List dcDevices = ruleFiltering(executeAction, markArray, direction); + Integer operationType = dcEventAnDcEmergencyPlans.getOperationType(); + List dcDevices = ruleFiltering(executeAction, markArray, direction, operationType); return getBoardTemplate(dcDevices); } @@ -217,7 +218,8 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { markArray[1] = String.format("%0" + 3 + "d", markArray[1]); } DcExecuteAction executeAction = dcEventAnDcEmergencyPlans.getDcEmergencyPlans().getExecuteAction(); - List dcDevices = ruleFiltering(executeAction, markArray, direction); + Integer operationType = dcEventAnDcEmergencyPlans.getOperationType(); + List dcDevices = ruleFiltering(executeAction, markArray, direction, operationType); return getBoardTemplate(dcDevices); } @@ -287,9 +289,12 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { * @param direction * @return */ - public List ruleFiltering(DcExecuteAction dcExecuteAction, String[] markArray, String direction) { + public List ruleFiltering(DcExecuteAction dcExecuteAction, String[] markArray, String direction, Integer operationType) { Integer searchRule = dcExecuteAction.getSearchRule(); + // 区分执行操作还是恢复操作 + JSONObject otherConfig = operationType.equals(1)? + JSON.parseObject(dcExecuteAction.getExecuteConfig()): JSON.parseObject(dcExecuteAction.getRecoverConfig()); List start = new ArrayList<>(); List end = new ArrayList<>(); // 设备列表 @@ -301,7 +306,6 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { // 指定设备资源 // 根据设备id,获取设备集合 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - JSONObject otherConfig = JSON.parseObject(dcExecuteAction.getExecuteConfig()); List deviceList = (List) otherConfig.get("deviceList"); queryWrapper.in(DcDevice::getIotDeviceId, deviceList); dcDevices = dcDeviceService.list(queryWrapper); @@ -564,19 +568,21 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { // 获取事件预案数据 DcEmergencyPlans dcEmergencyPlans = dcEventAnDcEmergencyPlans.getDcEmergencyPlans(); + Integer operationType = dcEventAnDcEmergencyPlans.getOperationType(); - //获取事件预案中的 执行操作配置 + //获取事件预案中的操作配置 dcEmergencyPlans.getDcExecuteAction() .forEach(dcExecuteAction -> { - List dcDevices = ruleFiltering(dcExecuteAction, markArray, direction); - + List dcDevices = ruleFiltering(dcExecuteAction, markArray, direction, operationType); + JSONObject otherConfig = operationType.equals(1)? + JSON.parseObject(dcExecuteAction.getExecuteConfig()): JSON.parseObject(dcExecuteAction.getRecoverConfig()); try { // 根据不通设备类型,执行不通的功能操作 invokedFunction( dcEventAnDcEmergencyPlans.getOperationType(), dcDevices, - JSON.parseObject(dcExecuteAction.getExecuteConfig()), + otherConfig, resultArray); // 记录操作过的设备id @@ -666,81 +672,31 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { } else if (device.getDeviceType().equals(DeviceTypeConstants.VARIABLE_INFORMATION_FLAG.toString())) { if (operationType == 1) { - - // 执行操作 - // 可变信息标志 分三步 - // 1:执行11功能码 - functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_11; - props.put("fileName", "play011.lst"); - props.put("size", "65535"); - AjaxResult ajaxResult11; - ajaxResult11 = dcDeviceController.invokedFunction(iotDeviceId, functionId, props); - if (ajaxResult11.get("code").equals(200)) { - // 2:执行13功能码 - HashMap props11 = new HashMap<>(); - functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_13; - List> list = new ArrayList<>(); - Map parameters = new HashMap<>(); - DcInfoBoardTemplate dcInfoBoardTemplate = JSON.parseObject( - JSON.toJSONString(otherConfig.get("dcInfoBoardTemplate")), - DcInfoBoardTemplate.class); - // stopTime - parameters.put("STAY", dcInfoBoardTemplate.getStopTime()); - // inScreenMode - parameters.put("ACTION", dcInfoBoardTemplate.getInScreenMode()); - // fontSpacing - parameters.put("SPEED", dcInfoBoardTemplate.getFontSpacing()); - // fontColor - parameters.put("COLOR", dcInfoBoardTemplate.getFontColor()); - // fontType - parameters.put("FONT", dcInfoBoardTemplate.getFontType()); - // fontSize - parameters.put("FONT_SIZE", dcInfoBoardTemplate.getFontSize()); - // content - parameters.put("CONTENT", dcInfoBoardTemplate.getContent()); - // screenSize 768*64 宽度和高度 - parameters.put("width", dcInfoBoardTemplate.getScreenSize().split("\\*")[0]); - parameters.put("height", dcInfoBoardTemplate.getScreenSize().split("\\*")[1]); - // formatStyle - parameters.put("formatStyle", dcInfoBoardTemplate.getFormatStyle()); - list.add(parameters); - props11.put("parameters", list); - AjaxResult ajaxResult13 = null; - ajaxResult13 = dcDeviceController.invokedFunction(iotDeviceId, functionId, props11); - JSONObject result = new JSONObject(); - if (ajaxResult13.get("code").equals(200)) { - HashMap props1B = new HashMap<>(); - // 3: 执行1B功能码 - functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_1B; - props1B.put("fileId", "11"); - AjaxResult ajaxResult1B = dcDeviceController.invokedFunction(iotDeviceId, functionId, props1B); - result.put("device", device.getId()); - result.put("result", ajaxResult1B); - resultArray.add(result); - - } else { - result.put("device", device.getId()); - result.put("result", ajaxResult13); - resultArray.add(result); - } - } - + // 情报板发布全流程 + boardReleaseProcess(props, iotDeviceId, otherConfig, device, resultArray); } else { // 恢复操作 - props.put("fileId", "10"); - functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_1B; - AjaxResult ajaxResult1B; + if (otherConfig.get("operationType").equals("2")) { + // 还原上次 + props.put("fileId", "10"); + functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_1B; + AjaxResult ajaxResult1B; - ajaxResult1B = dcDeviceController.invokedFunction(iotDeviceId, functionId, props); + ajaxResult1B = dcDeviceController.invokedFunction(iotDeviceId, functionId, props); - JSONObject result = new JSONObject(); - result.put("device", device.getId()); - result.put("result", ajaxResult1B); - resultArray.add(result); + JSONObject result = new JSONObject(); + result.put("device", device.getId()); + result.put("result", ajaxResult1B); + resultArray.add(result); + }else { + // 播放自定义 + boardReleaseProcess(props, iotDeviceId, otherConfig, device, resultArray); + } } } - else if (device.getDeviceType().equals(DeviceTypeConstants.ROAD_SECTION_VOICE_BROADCASTING.toString())) { + else if (device.getDeviceType().equals(DeviceTypeConstants.ROAD_SECTION_VOICE_BROADCASTING.toString()) + && operationType.equals(1)) { // 路段广播 JSONObject params = new JSONObject(); params.put("name", "task-event"); @@ -793,6 +749,75 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { } + /** + * 情报板发布全流程 + */ + public void boardReleaseProcess(HashMap props, + String iotDeviceId, + JSONObject otherConfig, + DcDevice device, + JSONArray resultArray + ) throws HttpException, IOException { + String functionId = ""; + // 执行操作 + // 可变信息标志 分三步 + // 1:执行11功能码 + functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_11; + props.put("fileName", "play011.lst"); + props.put("size", "65535"); + AjaxResult ajaxResult11; + ajaxResult11 = dcDeviceController.invokedFunction(iotDeviceId, functionId, props); + if (ajaxResult11.get("code").equals(200)) { + // 2:执行13功能码 + HashMap props11 = new HashMap<>(); + functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_13; + List> list = new ArrayList<>(); + Map parameters = new HashMap<>(); + DcInfoBoardTemplate dcInfoBoardTemplate = JSON.parseObject( + JSON.toJSONString(otherConfig.get("dcInfoBoardTemplate")), + DcInfoBoardTemplate.class); + // stopTime + parameters.put("STAY", dcInfoBoardTemplate.getStopTime()); + // inScreenMode + parameters.put("ACTION", dcInfoBoardTemplate.getInScreenMode()); + // fontSpacing + parameters.put("SPEED", dcInfoBoardTemplate.getFontSpacing()); + // fontColor + parameters.put("COLOR", dcInfoBoardTemplate.getFontColor()); + // fontType + parameters.put("FONT", dcInfoBoardTemplate.getFontType()); + // fontSize + parameters.put("FONT_SIZE", dcInfoBoardTemplate.getFontSize()); + // content + parameters.put("CONTENT", dcInfoBoardTemplate.getContent()); + // screenSize 768*64 宽度和高度 + parameters.put("width", dcInfoBoardTemplate.getScreenSize().split("\\*")[0]); + parameters.put("height", dcInfoBoardTemplate.getScreenSize().split("\\*")[1]); + // formatStyle + parameters.put("formatStyle", dcInfoBoardTemplate.getFormatStyle()); + list.add(parameters); + props11.put("parameters", list); + AjaxResult ajaxResult13 = null; + ajaxResult13 = dcDeviceController.invokedFunction(iotDeviceId, functionId, props11); + JSONObject result = new JSONObject(); + if (ajaxResult13.get("code").equals(200)) { + HashMap props1B = new HashMap<>(); + // 3: 执行1B功能码 + functionId = DeviceFunctionIdConstants.VARIABLE_INFORMATION_FLAG_1B; + props1B.put("fileId", "11"); + AjaxResult ajaxResult1B = dcDeviceController.invokedFunction(iotDeviceId, functionId, props1B); + result.put("device", device.getId()); + result.put("result", ajaxResult1B); + resultArray.add(result); + + } else { + result.put("device", device.getId()); + result.put("result", ajaxResult13); + resultArray.add(result); + } + } + } + /** * 新增事件预案