diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index 247d307..13ef474 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -57,12 +58,15 @@ if (ObjectUtil.isNotEmpty(picture)) { picturePath = commonFileService.saveFileBase64Image("data:image/png;base64," + picture); } + String points = CommonUtil.getString(map, "gpsPoints"); patrolLogList.add(new PatrolLog(1L, CommonUtil.getString(map, "reportType"), CommonUtil.getString(map, "reportContent"), picturePath, CommonUtil.getString(map, "routeNumber"), CommonUtil.getString(map, "isAlarm"), - "", "")); + ObjectUtil.isNotEmpty(points) ? points.split(",")[0] : "", + ObjectUtil.isNotEmpty(points) ? points.split(",")[1] : "", + CommonUtil.getString(map, "reportValue"))); } this.saveBatch(patrolLogList); @@ -79,6 +83,8 @@ jsonObject.put("patrolTime", patrolLog.getCreateTime()); jsonObject.put("picture", patrolLog.getPatrolPicture()); jsonObject.put("isAlarm", patrolLog.getIsAlarm()); + jsonObject.put("gps_x", patrolLog.getGpsX()); + jsonObject.put("gps_y", patrolLog.getGpsY()); jsonObject.put("routeNumber", patrolLog.getRouteNumber()); jsonObject.put("type", "AI"); webSocket.sendAllMessage(jsonObject.toJSONString()); @@ -89,11 +95,13 @@ for (PatrolLog patrolLog : patrolLogList) { Map parasMap = new HashMap<>(); parasMap.put("alarmType", patrolLog.getPatrolType()); - parasMap.put("busNoChar", "922431"); - parasMap.put("reportTime", new Date()); - parasMap.put("reportAddressGeom", ""); + parasMap.put("busNoChar", "B42D4000OCAD3N82"); + parasMap.put("reportTime", DateUtil.formatDateTime(new Date())); + parasMap.put("reportAddressGeom", + ObjectUtil.isNotEmpty(patrolLog.getGpsX()) ? + patrolLog.getGpsX().concat(",").concat(patrolLog.getGpsY()) : ""); parasMap.put("alarmImg", patrolLog.getPatrolPicture()); - parasMap.put("reportConcentration", ""); + parasMap.put("reportConcentration", patrolLog.getGas()); parasMap.put("reportDes", patrolLog.getPatrolContent()); parasMap.put("aiCheckRes", patrolLog.getIsAlarm()); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index 247d307..13ef474 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -57,12 +58,15 @@ if (ObjectUtil.isNotEmpty(picture)) { picturePath = commonFileService.saveFileBase64Image("data:image/png;base64," + picture); } + String points = CommonUtil.getString(map, "gpsPoints"); patrolLogList.add(new PatrolLog(1L, CommonUtil.getString(map, "reportType"), CommonUtil.getString(map, "reportContent"), picturePath, CommonUtil.getString(map, "routeNumber"), CommonUtil.getString(map, "isAlarm"), - "", "")); + ObjectUtil.isNotEmpty(points) ? points.split(",")[0] : "", + ObjectUtil.isNotEmpty(points) ? points.split(",")[1] : "", + CommonUtil.getString(map, "reportValue"))); } this.saveBatch(patrolLogList); @@ -79,6 +83,8 @@ jsonObject.put("patrolTime", patrolLog.getCreateTime()); jsonObject.put("picture", patrolLog.getPatrolPicture()); jsonObject.put("isAlarm", patrolLog.getIsAlarm()); + jsonObject.put("gps_x", patrolLog.getGpsX()); + jsonObject.put("gps_y", patrolLog.getGpsY()); jsonObject.put("routeNumber", patrolLog.getRouteNumber()); jsonObject.put("type", "AI"); webSocket.sendAllMessage(jsonObject.toJSONString()); @@ -89,11 +95,13 @@ for (PatrolLog patrolLog : patrolLogList) { Map parasMap = new HashMap<>(); parasMap.put("alarmType", patrolLog.getPatrolType()); - parasMap.put("busNoChar", "922431"); - parasMap.put("reportTime", new Date()); - parasMap.put("reportAddressGeom", ""); + parasMap.put("busNoChar", "B42D4000OCAD3N82"); + parasMap.put("reportTime", DateUtil.formatDateTime(new Date())); + parasMap.put("reportAddressGeom", + ObjectUtil.isNotEmpty(patrolLog.getGpsX()) ? + patrolLog.getGpsX().concat(",").concat(patrolLog.getGpsY()) : ""); parasMap.put("alarmImg", patrolLog.getPatrolPicture()); - parasMap.put("reportConcentration", ""); + parasMap.put("reportConcentration", patrolLog.getGas()); parasMap.put("reportDes", patrolLog.getPatrolContent()); parasMap.put("aiCheckRes", patrolLog.getIsAlarm()); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 09ea831..c42bafa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -153,25 +153,19 @@ //1:GPS;2:巡航预置点信息;3:巡航记录点信息;4:云图;5: 电量; //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] + //{"type":3,"devcode":"1212",data:{"gps_x:1212","gps_y":1212"} //{"type":5,"devcode":"1212",data:{"cell:20"} + JSONObject msg = new JSONObject(); if ("2".equals(type)) { -// JSONArray jsonArray = json.getJSONArray("data"); -// for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); -// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); -// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); -// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); -// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); -// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); -// } - - JSONObject msg = new JSONObject(); - msg.put("devcode", "922431"); + msg.put("devcode", "B42D4000OCAD3N82"); msg.put("points", json.getJSONArray("data")); msg.put("type", "sendPoints"); webSocket.sendAllMessage(msg.toJSONString()); + } else if ("3".equals(type)) { + msg.put("devcode", "B42D4000OCAD3N82"); + msg.put("gps", json.getJSONObject("data")); + msg.put("type", "gps"); + webSocket.sendAllMessage(msg.toJSONString()); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index 247d307..13ef474 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -57,12 +58,15 @@ if (ObjectUtil.isNotEmpty(picture)) { picturePath = commonFileService.saveFileBase64Image("data:image/png;base64," + picture); } + String points = CommonUtil.getString(map, "gpsPoints"); patrolLogList.add(new PatrolLog(1L, CommonUtil.getString(map, "reportType"), CommonUtil.getString(map, "reportContent"), picturePath, CommonUtil.getString(map, "routeNumber"), CommonUtil.getString(map, "isAlarm"), - "", "")); + ObjectUtil.isNotEmpty(points) ? points.split(",")[0] : "", + ObjectUtil.isNotEmpty(points) ? points.split(",")[1] : "", + CommonUtil.getString(map, "reportValue"))); } this.saveBatch(patrolLogList); @@ -79,6 +83,8 @@ jsonObject.put("patrolTime", patrolLog.getCreateTime()); jsonObject.put("picture", patrolLog.getPatrolPicture()); jsonObject.put("isAlarm", patrolLog.getIsAlarm()); + jsonObject.put("gps_x", patrolLog.getGpsX()); + jsonObject.put("gps_y", patrolLog.getGpsY()); jsonObject.put("routeNumber", patrolLog.getRouteNumber()); jsonObject.put("type", "AI"); webSocket.sendAllMessage(jsonObject.toJSONString()); @@ -89,11 +95,13 @@ for (PatrolLog patrolLog : patrolLogList) { Map parasMap = new HashMap<>(); parasMap.put("alarmType", patrolLog.getPatrolType()); - parasMap.put("busNoChar", "922431"); - parasMap.put("reportTime", new Date()); - parasMap.put("reportAddressGeom", ""); + parasMap.put("busNoChar", "B42D4000OCAD3N82"); + parasMap.put("reportTime", DateUtil.formatDateTime(new Date())); + parasMap.put("reportAddressGeom", + ObjectUtil.isNotEmpty(patrolLog.getGpsX()) ? + patrolLog.getGpsX().concat(",").concat(patrolLog.getGpsY()) : ""); parasMap.put("alarmImg", patrolLog.getPatrolPicture()); - parasMap.put("reportConcentration", ""); + parasMap.put("reportConcentration", patrolLog.getGas()); parasMap.put("reportDes", patrolLog.getPatrolContent()); parasMap.put("aiCheckRes", patrolLog.getIsAlarm()); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 09ea831..c42bafa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -153,25 +153,19 @@ //1:GPS;2:巡航预置点信息;3:巡航记录点信息;4:云图;5: 电量; //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] + //{"type":3,"devcode":"1212",data:{"gps_x:1212","gps_y":1212"} //{"type":5,"devcode":"1212",data:{"cell:20"} + JSONObject msg = new JSONObject(); if ("2".equals(type)) { -// JSONArray jsonArray = json.getJSONArray("data"); -// for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); -// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); -// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); -// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); -// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); -// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); -// } - - JSONObject msg = new JSONObject(); - msg.put("devcode", "922431"); + msg.put("devcode", "B42D4000OCAD3N82"); msg.put("points", json.getJSONArray("data")); msg.put("type", "sendPoints"); webSocket.sendAllMessage(msg.toJSONString()); + } else if ("3".equals(type)) { + msg.put("devcode", "B42D4000OCAD3N82"); + msg.put("gps", json.getJSONObject("data")); + msg.put("type", "gps"); + webSocket.sendAllMessage(msg.toJSONString()); } } diff --git a/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java new file mode 100644 index 0000000..4f4ec87 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -0,0 +1,143 @@ +package com.casic.missiles.config; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.serializer.SerializeConfig; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ToStringSerializer; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.alibaba.fastjson.support.config.FastJsonConfig; +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import com.casic.missiles.config.properties.CasicProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + + +@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) +@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +@Configuration +class WebMvcConfig extends WebMvcConfigurationSupport { + @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") + private String locale; + + public WebMvcConfig() { + } + + @Autowired + private CasicProperties casicProperties; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 + registry.addResourceHandler("swagger-ui.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations( + "classpath:/META-INF/resources/webjars/"); + registry.addResourceHandler("doc.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/favicon.ico").addResourceLocations( + "classpath:/META-INF/resources/"); + if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { + registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); + } + super.addResourceHandlers(registry); + } + + @Override + public LocaleResolver localeResolver() { + CookieLocaleResolver slr = new CookieLocaleResolver(); + //设置默认区域,Locale.SIMPLIFIED_CHINESE + switch (locale) { + case "US": + slr.setDefaultLocale(Locale.US); + break; + default: + slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); + } + //设置cookie有效期. + slr.setCookieMaxAge(3600); + return slr; + } + + @Override + public void configureMessageConverters(List> converters) { + Iterator> iterator = converters.iterator(); + //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 + while (iterator.hasNext()) { + HttpMessageConverter converter = iterator.next(); + if (converter instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + } + } + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + converter.setFastJsonConfig(fastjsonConfig()); + converter.setSupportedMediaTypes(getSupportedMediaType()); + converters.add(converter); + } + + /** + * fastjson的配置 + */ + public FastJsonConfig fastjsonConfig() { + FastJsonConfig fastJsonConfig = new FastJsonConfig(); + fastJsonConfig.setSerializerFeatures( + SerializerFeature.PrettyFormat, + SerializerFeature.WriteMapNullValue, + SerializerFeature.WriteEnumUsingToString + ); + //修改,设置全局时间为精确到天,页面列表显示不带时分秒 + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +// fastJsonConfig.setDateFormat("yyyy-MM-dd"); + ValueFilter valueFilter = new ValueFilter() { + @Override + public Object process(Object o, String s, Object o1) { + if (null == o1) { + o1 = ""; + } + return o1; + } + }; + fastJsonConfig.setCharset(Charset.forName("utf-8")); + fastJsonConfig.setSerializeFilters(valueFilter); + + //解决Long转json精度丢失的问题 + SerializeConfig serializeConfig = SerializeConfig.globalInstance; + serializeConfig.put(BigInteger.class, ToStringSerializer.instance); + serializeConfig.put(Long.class, ToStringSerializer.instance); + serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); + fastJsonConfig.setSerializeConfig(serializeConfig); + return fastJsonConfig; + } + + /** + * 支持的mediaType类型 + */ + public List getSupportedMediaType() { + ArrayList mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + + return mediaTypes; + } + +} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index 247d307..13ef474 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -57,12 +58,15 @@ if (ObjectUtil.isNotEmpty(picture)) { picturePath = commonFileService.saveFileBase64Image("data:image/png;base64," + picture); } + String points = CommonUtil.getString(map, "gpsPoints"); patrolLogList.add(new PatrolLog(1L, CommonUtil.getString(map, "reportType"), CommonUtil.getString(map, "reportContent"), picturePath, CommonUtil.getString(map, "routeNumber"), CommonUtil.getString(map, "isAlarm"), - "", "")); + ObjectUtil.isNotEmpty(points) ? points.split(",")[0] : "", + ObjectUtil.isNotEmpty(points) ? points.split(",")[1] : "", + CommonUtil.getString(map, "reportValue"))); } this.saveBatch(patrolLogList); @@ -79,6 +83,8 @@ jsonObject.put("patrolTime", patrolLog.getCreateTime()); jsonObject.put("picture", patrolLog.getPatrolPicture()); jsonObject.put("isAlarm", patrolLog.getIsAlarm()); + jsonObject.put("gps_x", patrolLog.getGpsX()); + jsonObject.put("gps_y", patrolLog.getGpsY()); jsonObject.put("routeNumber", patrolLog.getRouteNumber()); jsonObject.put("type", "AI"); webSocket.sendAllMessage(jsonObject.toJSONString()); @@ -89,11 +95,13 @@ for (PatrolLog patrolLog : patrolLogList) { Map parasMap = new HashMap<>(); parasMap.put("alarmType", patrolLog.getPatrolType()); - parasMap.put("busNoChar", "922431"); - parasMap.put("reportTime", new Date()); - parasMap.put("reportAddressGeom", ""); + parasMap.put("busNoChar", "B42D4000OCAD3N82"); + parasMap.put("reportTime", DateUtil.formatDateTime(new Date())); + parasMap.put("reportAddressGeom", + ObjectUtil.isNotEmpty(patrolLog.getGpsX()) ? + patrolLog.getGpsX().concat(",").concat(patrolLog.getGpsY()) : ""); parasMap.put("alarmImg", patrolLog.getPatrolPicture()); - parasMap.put("reportConcentration", ""); + parasMap.put("reportConcentration", patrolLog.getGas()); parasMap.put("reportDes", patrolLog.getPatrolContent()); parasMap.put("aiCheckRes", patrolLog.getIsAlarm()); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 09ea831..c42bafa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -153,25 +153,19 @@ //1:GPS;2:巡航预置点信息;3:巡航记录点信息;4:云图;5: 电量; //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] + //{"type":3,"devcode":"1212",data:{"gps_x:1212","gps_y":1212"} //{"type":5,"devcode":"1212",data:{"cell:20"} + JSONObject msg = new JSONObject(); if ("2".equals(type)) { -// JSONArray jsonArray = json.getJSONArray("data"); -// for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); -// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); -// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); -// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); -// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); -// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); -// } - - JSONObject msg = new JSONObject(); - msg.put("devcode", "922431"); + msg.put("devcode", "B42D4000OCAD3N82"); msg.put("points", json.getJSONArray("data")); msg.put("type", "sendPoints"); webSocket.sendAllMessage(msg.toJSONString()); + } else if ("3".equals(type)) { + msg.put("devcode", "B42D4000OCAD3N82"); + msg.put("gps", json.getJSONObject("data")); + msg.put("type", "gps"); + webSocket.sendAllMessage(msg.toJSONString()); } } diff --git a/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java new file mode 100644 index 0000000..4f4ec87 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -0,0 +1,143 @@ +package com.casic.missiles.config; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.serializer.SerializeConfig; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ToStringSerializer; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.alibaba.fastjson.support.config.FastJsonConfig; +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import com.casic.missiles.config.properties.CasicProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + + +@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) +@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +@Configuration +class WebMvcConfig extends WebMvcConfigurationSupport { + @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") + private String locale; + + public WebMvcConfig() { + } + + @Autowired + private CasicProperties casicProperties; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 + registry.addResourceHandler("swagger-ui.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations( + "classpath:/META-INF/resources/webjars/"); + registry.addResourceHandler("doc.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/favicon.ico").addResourceLocations( + "classpath:/META-INF/resources/"); + if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { + registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); + } + super.addResourceHandlers(registry); + } + + @Override + public LocaleResolver localeResolver() { + CookieLocaleResolver slr = new CookieLocaleResolver(); + //设置默认区域,Locale.SIMPLIFIED_CHINESE + switch (locale) { + case "US": + slr.setDefaultLocale(Locale.US); + break; + default: + slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); + } + //设置cookie有效期. + slr.setCookieMaxAge(3600); + return slr; + } + + @Override + public void configureMessageConverters(List> converters) { + Iterator> iterator = converters.iterator(); + //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 + while (iterator.hasNext()) { + HttpMessageConverter converter = iterator.next(); + if (converter instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + } + } + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + converter.setFastJsonConfig(fastjsonConfig()); + converter.setSupportedMediaTypes(getSupportedMediaType()); + converters.add(converter); + } + + /** + * fastjson的配置 + */ + public FastJsonConfig fastjsonConfig() { + FastJsonConfig fastJsonConfig = new FastJsonConfig(); + fastJsonConfig.setSerializerFeatures( + SerializerFeature.PrettyFormat, + SerializerFeature.WriteMapNullValue, + SerializerFeature.WriteEnumUsingToString + ); + //修改,设置全局时间为精确到天,页面列表显示不带时分秒 + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +// fastJsonConfig.setDateFormat("yyyy-MM-dd"); + ValueFilter valueFilter = new ValueFilter() { + @Override + public Object process(Object o, String s, Object o1) { + if (null == o1) { + o1 = ""; + } + return o1; + } + }; + fastJsonConfig.setCharset(Charset.forName("utf-8")); + fastJsonConfig.setSerializeFilters(valueFilter); + + //解决Long转json精度丢失的问题 + SerializeConfig serializeConfig = SerializeConfig.globalInstance; + serializeConfig.put(BigInteger.class, ToStringSerializer.instance); + serializeConfig.put(Long.class, ToStringSerializer.instance); + serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); + fastJsonConfig.setSerializeConfig(serializeConfig); + return fastJsonConfig; + } + + /** + * 支持的mediaType类型 + */ + public List getSupportedMediaType() { + ArrayList mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + + return mediaTypes; + } + +} + diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 3e64c75..a63422a 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8085 + port: 30028 ################### spring配置 ################### spring: datasource: @@ -7,6 +7,9 @@ url: jdbc:mysql://111.198.10.15:11336/casic_robot_dog?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&&serverTimezone=GMT%2B8 username: root password: Casic203 +# url: jdbc:mysql://172.27.46.84:30000/casic_robot_dog?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&&serverTimezone=GMT%2B8 +# username: root +# password: Casic203! jms: pub-sub-domain: true # session: diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index 0b5a69b..a69ac73 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -39,7 +39,7 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); - queryWrapper.orderByDesc("createTime"); + queryWrapper.orderByDesc("create_time"); return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java index 72fbeb1..58346b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/PatrolLog.java @@ -68,6 +68,10 @@ @TableField("gps_y") private String gpsY; + @ApiModelProperty("浓度值") + @TableField("gas") + private String gas; + @ApiModelProperty("是否报警1是,0正常") @TableField("is_alarm") private String isAlarm; @@ -82,7 +86,7 @@ public PatrolLog(Long routeInfoId, String patrolType, String patrolContent, String patrolPicture, String routeNumber, String isAlarm, - String gpsX, String gpsY) { + String gpsX, String gpsY,String gas) { this.routeInfoId = routeInfoId; this.patrolType = patrolType; this.patrolContent = patrolContent; @@ -91,5 +95,6 @@ this.gpsX = gpsX; this.gpsY = gpsY; this.isAlarm = isAlarm; + this.gas = gas; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 0e608c3..409ac6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,8 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(11647).sync(); +// future = bootstrap.bind(11647).sync(); + future = bootstrap.bind(30029).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index 247d307..13ef474 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -57,12 +58,15 @@ if (ObjectUtil.isNotEmpty(picture)) { picturePath = commonFileService.saveFileBase64Image("data:image/png;base64," + picture); } + String points = CommonUtil.getString(map, "gpsPoints"); patrolLogList.add(new PatrolLog(1L, CommonUtil.getString(map, "reportType"), CommonUtil.getString(map, "reportContent"), picturePath, CommonUtil.getString(map, "routeNumber"), CommonUtil.getString(map, "isAlarm"), - "", "")); + ObjectUtil.isNotEmpty(points) ? points.split(",")[0] : "", + ObjectUtil.isNotEmpty(points) ? points.split(",")[1] : "", + CommonUtil.getString(map, "reportValue"))); } this.saveBatch(patrolLogList); @@ -79,6 +83,8 @@ jsonObject.put("patrolTime", patrolLog.getCreateTime()); jsonObject.put("picture", patrolLog.getPatrolPicture()); jsonObject.put("isAlarm", patrolLog.getIsAlarm()); + jsonObject.put("gps_x", patrolLog.getGpsX()); + jsonObject.put("gps_y", patrolLog.getGpsY()); jsonObject.put("routeNumber", patrolLog.getRouteNumber()); jsonObject.put("type", "AI"); webSocket.sendAllMessage(jsonObject.toJSONString()); @@ -89,11 +95,13 @@ for (PatrolLog patrolLog : patrolLogList) { Map parasMap = new HashMap<>(); parasMap.put("alarmType", patrolLog.getPatrolType()); - parasMap.put("busNoChar", "922431"); - parasMap.put("reportTime", new Date()); - parasMap.put("reportAddressGeom", ""); + parasMap.put("busNoChar", "B42D4000OCAD3N82"); + parasMap.put("reportTime", DateUtil.formatDateTime(new Date())); + parasMap.put("reportAddressGeom", + ObjectUtil.isNotEmpty(patrolLog.getGpsX()) ? + patrolLog.getGpsX().concat(",").concat(patrolLog.getGpsY()) : ""); parasMap.put("alarmImg", patrolLog.getPatrolPicture()); - parasMap.put("reportConcentration", ""); + parasMap.put("reportConcentration", patrolLog.getGas()); parasMap.put("reportDes", patrolLog.getPatrolContent()); parasMap.put("aiCheckRes", patrolLog.getIsAlarm()); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 09ea831..c42bafa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -153,25 +153,19 @@ //1:GPS;2:巡航预置点信息;3:巡航记录点信息;4:云图;5: 电量; //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] + //{"type":3,"devcode":"1212",data:{"gps_x:1212","gps_y":1212"} //{"type":5,"devcode":"1212",data:{"cell:20"} + JSONObject msg = new JSONObject(); if ("2".equals(type)) { -// JSONArray jsonArray = json.getJSONArray("data"); -// for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); -// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); -// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); -// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); -// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); -// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); -// } - - JSONObject msg = new JSONObject(); - msg.put("devcode", "922431"); + msg.put("devcode", "B42D4000OCAD3N82"); msg.put("points", json.getJSONArray("data")); msg.put("type", "sendPoints"); webSocket.sendAllMessage(msg.toJSONString()); + } else if ("3".equals(type)) { + msg.put("devcode", "B42D4000OCAD3N82"); + msg.put("gps", json.getJSONObject("data")); + msg.put("type", "gps"); + webSocket.sendAllMessage(msg.toJSONString()); } } diff --git a/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java new file mode 100644 index 0000000..4f4ec87 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -0,0 +1,143 @@ +package com.casic.missiles.config; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.serializer.SerializeConfig; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ToStringSerializer; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.alibaba.fastjson.support.config.FastJsonConfig; +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import com.casic.missiles.config.properties.CasicProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + + +@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) +@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +@Configuration +class WebMvcConfig extends WebMvcConfigurationSupport { + @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") + private String locale; + + public WebMvcConfig() { + } + + @Autowired + private CasicProperties casicProperties; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 + registry.addResourceHandler("swagger-ui.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations( + "classpath:/META-INF/resources/webjars/"); + registry.addResourceHandler("doc.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/favicon.ico").addResourceLocations( + "classpath:/META-INF/resources/"); + if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { + registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); + } + super.addResourceHandlers(registry); + } + + @Override + public LocaleResolver localeResolver() { + CookieLocaleResolver slr = new CookieLocaleResolver(); + //设置默认区域,Locale.SIMPLIFIED_CHINESE + switch (locale) { + case "US": + slr.setDefaultLocale(Locale.US); + break; + default: + slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); + } + //设置cookie有效期. + slr.setCookieMaxAge(3600); + return slr; + } + + @Override + public void configureMessageConverters(List> converters) { + Iterator> iterator = converters.iterator(); + //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 + while (iterator.hasNext()) { + HttpMessageConverter converter = iterator.next(); + if (converter instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + } + } + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + converter.setFastJsonConfig(fastjsonConfig()); + converter.setSupportedMediaTypes(getSupportedMediaType()); + converters.add(converter); + } + + /** + * fastjson的配置 + */ + public FastJsonConfig fastjsonConfig() { + FastJsonConfig fastJsonConfig = new FastJsonConfig(); + fastJsonConfig.setSerializerFeatures( + SerializerFeature.PrettyFormat, + SerializerFeature.WriteMapNullValue, + SerializerFeature.WriteEnumUsingToString + ); + //修改,设置全局时间为精确到天,页面列表显示不带时分秒 + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +// fastJsonConfig.setDateFormat("yyyy-MM-dd"); + ValueFilter valueFilter = new ValueFilter() { + @Override + public Object process(Object o, String s, Object o1) { + if (null == o1) { + o1 = ""; + } + return o1; + } + }; + fastJsonConfig.setCharset(Charset.forName("utf-8")); + fastJsonConfig.setSerializeFilters(valueFilter); + + //解决Long转json精度丢失的问题 + SerializeConfig serializeConfig = SerializeConfig.globalInstance; + serializeConfig.put(BigInteger.class, ToStringSerializer.instance); + serializeConfig.put(Long.class, ToStringSerializer.instance); + serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); + fastJsonConfig.setSerializeConfig(serializeConfig); + return fastJsonConfig; + } + + /** + * 支持的mediaType类型 + */ + public List getSupportedMediaType() { + ArrayList mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + + return mediaTypes; + } + +} + diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 3e64c75..a63422a 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8085 + port: 30028 ################### spring配置 ################### spring: datasource: @@ -7,6 +7,9 @@ url: jdbc:mysql://111.198.10.15:11336/casic_robot_dog?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&&serverTimezone=GMT%2B8 username: root password: Casic203 +# url: jdbc:mysql://172.27.46.84:30000/casic_robot_dog?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&&serverTimezone=GMT%2B8 +# username: root +# password: Casic203! jms: pub-sub-domain: true # session: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 63cc330..b5b285d 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -10,7 +10,10 @@ max-request-size: 80MB web: resources: +# static-locations: file:/root/casic/tmp/ static-locations: file:C:\casic\tmp\ + mvc: + date-format: yyyy-MM-dd HH:mm:ss mybatis-plus: configuration: # 配置结果集属性为空时 是否映射返回结果 @@ -25,6 +28,7 @@ session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 no-login-urls: /user/login,/kaptcha,/config/baseConfig file: +# uploadPath: /root/casic/tmp/ uploadPath: C:\casic\tmp\ config: export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\