diff --git a/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java b/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java index f18cefdd..fbb92c93 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java @@ -604,6 +604,8 @@ public class DcDeviceController extends BaseController { @ApiParam(value="方向", name="direction", required=true) @RequestParam ("direction") String direction){ return dcDeviceService.selectNearBoard(stakeMark,direction); } + + @OperationLog(operUrl = "/business/device/batchFunctions") public void batchInvokedFunction(Object object) throws HttpException, IOException, InterruptedException { Map map = new ObjectMapper().convertValue(object, Map.class); batchInvokedFunction(map); diff --git a/zc-business/src/main/java/com/zc/business/domain/DcBatchFunctionsJob.java b/zc-business/src/main/java/com/zc/business/domain/DcBatchFunctionsJob.java index 3bbb6d09..ea43a28f 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcBatchFunctionsJob.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcBatchFunctionsJob.java @@ -12,9 +12,12 @@ import java.util.Date; public class DcBatchFunctionsJob { //@TableId(value = "jobId", type = IdType.AUTO) - private Integer jobId; + private Long jobId; @ApiModelProperty("任务组ID") private String jobGroup; + //@Excel(name = "任务名称") + @TableField(exist = false) + private String jobName; @ApiModelProperty("调用目标字符串") private String invokeTarget; @ApiModelProperty("调用参数") diff --git a/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java b/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java index 5117f35e..8929f7f4 100644 --- a/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java +++ b/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java @@ -27,6 +27,68 @@ import java.util.*; @Component public class OperationLogAspect { + + private final static Map DEVICEFUNCTIONNAME = new HashMap() {{ + put("1", new HashMap() {{ + }}); + put("2", new HashMap() {{ + put("11", "文件名发送"); + put("13", "文件发送"); + put("1B", "指定当前需要播放的清单"); + }}); + put("3", new HashMap() {{ + }}); + put("4", new HashMap() {{ + }}); + put("5", new HashMap() {{ + put("", "发布语音广播"); + }}); + put("6", new HashMap() {{ + }}); + put("7", new HashMap() {{ + }}); + put("8", new HashMap() {{ + put("01", "通信连接检查"); + put("0b", "配置装置参数"); + put("0d", "读取装置参数"); + put("0f", "读取装置状态数据"); + }}); + put("9", new HashMap() {{ + }}); + put("10", new HashMap() {{ + put("SETMD", "模式设定命令"); + put("ASKMD", "模式查询命令"); + put("SETTM", "工作时间设定命令"); + put("ASKTM", "工作时间查询命令"); + put("SETDF", "自定义模式设置"); + put("ASKDF", "自定义模式查询命令"); + }}); + put("11", new HashMap() {{ + }}); + put("12", new HashMap() {{ + put("51", "设备控制模式"); + put("52", "读取设备控制模式"); + put("30", "设置自动控制模式工作状态"); + put("3D", "读取自动控制模式工作状态"); + put("3C", "读取当前设备工作状态"); + }}); + put("13", new HashMap() {{ + }}); + put("14", new HashMap() {{ + }}); + put("15", new HashMap() {{ + put("A1", "查询数据"); + put("A2", "查询数据"); + put("A3", "查询数据"); + put("A4", "查询数据"); + put("A5", "查询数据"); + put("A6", "查询数据"); + }}); + put("16", new HashMap() {{ + }}); + }}; + + @AfterReturning(pointcut = "@annotation(operationLog)", returning = "jsonResult") public void AfterReturning(JoinPoint joinPoint, OperationLog operationLog, Object jsonResult) throws Throwable { System.out.println("运行成功"); @@ -110,10 +172,13 @@ public class OperationLogAspect { HashMap> pointArg = (HashMap>) pointArgs[0]; ArrayList devices = pointArg.get("devices"); ArrayList functions = pointArg.get("functions"); - //StringBuilder deviceIds = new StringBuilder(); - //StringBuilder functionIds = new StringBuilder(); + + //ArrayList deviceIds = new ArrayList<>(); - ArrayList functionIds = new ArrayList<>(); + //ArrayList functionIds = new ArrayList<>(); + String deviceType = ""; + + for (Object dev : devices) { JSONObject device = (JSONObject) JSON.toJSON(dev); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -123,21 +188,42 @@ public class OperationLogAspect { DcDevice dcDevice = list.get(0); dcOperLog.setDcDeviceId(String.valueOf(dcDevice.getId())); dcOperLog.setDcDeviceName(dcDevice.getDeviceName()); - dcOperLog.setDcDeviceType(dcDevice.getDeviceType()); + deviceType = dcDevice.getDeviceType(); + dcOperLog.setDcDeviceType(deviceType); //deviceIds.add(String.valueOf(dcDevice.getId())); for (Object fun : functions) { JSONObject function = (JSONObject) JSON.toJSON(fun); dcOperLog.setOperParam(function.getString("params")); - //functionIds.add(function.getString("functionId")); - dcOperLog.setJsonResult(dcDevice.getDeviceName() + "设备在" + date + "调用" + sta + "ID为" + dcDevice.getId() + "的设备功能标识为" + function.getString("functionId") + "的方法"); + String functionId = function.getString("functionId"); + //functionIds.add(functionId); + String hashMap = Objects.equals(deviceType, "5") ?"发布语音广播":String.valueOf(((HashMap) (DEVICEFUNCTIONNAME.get(deviceType))).get(functionId)); + dcOperLog.setJsonResult("设备" + dcDevice.getDeviceName() + "在" + date + "调用了" + hashMap + "功能并且调用" + sta + "了"); dcOperLogService.addDcOperLog(dcOperLog); } } } //String jsonResult1 = "设备在" + date + "调用" + sta + "ID为" + deviceIds + "的设备功能标识为" + functionIds + "的方法"; + //System.out.println(jsonResult1); //System.out.println(deviceIds.toString()); //System.out.println(functionIds.toString()); - //System.out.println(jsonResult1); + //DcOperLog operLog = new DcOperLog(); + //SysDept sysDept = deptService.selectDeptById(loginUser.getDeptId()); + //operLog.setOperParam((Arrays.toString(pointArgs))); + //operLog.setOperLocation(loginUser.getLoginLocation()); + //operLog.setOperName(loginUser.getUsername()); + //operLog.setDeptName(sysDept.getDeptName()); + //operLog.setDcDeviceId(deviceIds.toString()); + //operLog.setOperType("2"); + //operLog.setOperIp(IpUtils.getIpAddr(request)); + //operLog.setOperTime(new Date()); + //operLog.setDcDeviceType(deviceType); + //operLog.setJsonResult(jsonResult1); + //if (Objects.equals(state, "0")) { + // operLog.setStatus(0); + //} else { + // operLog.setStatus(1); + //} + //dcOperLogService.addDcOperLog(operLog); } else if (operUrl.contains("functions")) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/zc-business/src/main/java/com/zc/business/message/device/handler/DeviceMessageHandler.java b/zc-business/src/main/java/com/zc/business/message/device/handler/DeviceMessageHandler.java index e5eb11de..c1410b23 100644 --- a/zc-business/src/main/java/com/zc/business/message/device/handler/DeviceMessageHandler.java +++ b/zc-business/src/main/java/com/zc/business/message/device/handler/DeviceMessageHandler.java @@ -181,6 +181,9 @@ public class DeviceMessageHandler { // 子类型 dcWarning.setWarningSubclass(warningSubclass); //桩号,方向 +//车道 + Integer relatedLaneNo = data.getInteger("relatedLaneNo"); + String stakeMarkDescription = data.getString("stakeMarkDescription"); String direction = ""; String[] arr = stakeMarkDescription.split(" "); @@ -188,18 +191,20 @@ public class DeviceMessageHandler { if (arr[2] != null) { if (arr[2].equals("上行")) { direction = arr[0] + " " + arr[1] + " 菏泽方向 "; - Integer relatedLaneNo = data.getInteger("relatedLaneNo"); - if (relatedLaneNo==5){ - relatedLaneNo=0; + if (warningSubclass.equals("4-7")) { + if (relatedLaneNo == 5) { + relatedLaneNo = 0; + } } - dcWarning.setLane(String.valueOf(relatedLaneNo)); - } if (arr[2].equals("下行")) { direction = arr[0] + " " + arr[1] + " 济南方向 "; - dcWarning.setLane(String.valueOf(data.getInteger("relatedLaneNo")-1)); + if (warningSubclass.equals("4-7")) { + relatedLaneNo = data.getInteger("relatedLaneNo") - 1; + } } } + dcWarning.setLane(String.valueOf(relatedLaneNo)); String title = direction + WarningSubclassEnum.getDecorateInfo(warningSubclass); // 标题 diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcBatchFunctionsJobServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcBatchFunctionsJobServiceImpl.java index 4be890a1..02f366f3 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcBatchFunctionsJobServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcBatchFunctionsJobServiceImpl.java @@ -99,7 +99,7 @@ public class DcBatchFunctionsJobServiceImpl extends ServiceImpl ids) throws SchedulerException, TaskException { for (String id : ids) { DcBatchFunctionsJob job = new DcBatchFunctionsJob(); - job.setJobId(Integer.valueOf(id)); + job.setJobId(Long.valueOf(id)); List dcBatchFunctionsJobs = listDcBatchFunctionsJob(job); if (dcBatchFunctionsJobs.size() == 0) { return false; @@ -247,11 +247,7 @@ public class DcBatchFunctionsJobServiceImpl extends ServiceImpl processConfigList = dcProcessConfigMapper.selectDcProcessConfigByEventType(dcEvent.getEventType().intValue()); - if (processConfigList != null && processConfigList.size() > 0){ - DcProcessConfig dcProcessConfig = processConfigList.get(0); - dcEventProcess.setProcessType(1); - dcEventProcess.setProcessId(Long.valueOf(dcProcessConfig.getNodeNode())); - dcEventProcess.setProcessName(dcProcessConfig.getProcessNode()); - } - String sourceName = ValueConverter.eventSourceName(dcEvent.getEventSource().toString()); - String typeName = ValueConverter.eventTypeName(dcEvent.getEventType().toString()); - dcEventProcess.setContext("由" + sourceName + "上报了一起" + typeName + "事件"); - dcEventProcessService.insertDcEventProcess(dcEventProcess); return AjaxResult.success("操作成功"); diff --git a/zc-business/src/main/java/com/zc/business/utils/ScheduledTaskScheduling.java b/zc-business/src/main/java/com/zc/business/utils/ScheduledTaskScheduling.java index c6c293db..401f5af5 100644 --- a/zc-business/src/main/java/com/zc/business/utils/ScheduledTaskScheduling.java +++ b/zc-business/src/main/java/com/zc/business/utils/ScheduledTaskScheduling.java @@ -14,7 +14,7 @@ public class ScheduledTaskScheduling extends AbstractQuartzJob { protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception { ScheduledTaskSchedulingTask scheduledTaskSchedulingTask = new ScheduledTaskSchedulingTask(); DcBatchFunctionsJob dcBatchFunctionsJob = new DcBatchFunctionsJob(); - dcBatchFunctionsJob.setJobId(Math.toIntExact(sysJob.getJobId())); + dcBatchFunctionsJob.setJobId(sysJob.getJobId()); scheduledTaskSchedulingTask.invokeTarget(dcBatchFunctionsJob); } }