From 8b13375a249c2370587ad91ace573c2d55ca7737 Mon Sep 17 00:00:00 2001 From: wyw <373811525@qq.com> Date: Sat, 17 Aug 2024 14:24:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=89=E9=98=B2=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E4=B8=8D=E5=B8=A6=E5=9B=BE=E7=89=87=E5=92=8C=E5=8F=AA?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UploadedPhotosController.java | 89 +++++++++++++++---- .../service/IUploadedPhotosService.java | 2 + .../impl/UploadedPhotosServiceImpl.java | 6 ++ .../iot/mapper/UploadedPhotosMapper.java | 9 ++ .../mapper/iot/UploadedPhotosMapper.xml | 17 ++++ .../impl/MaGuangaiRecordServiceImpl.java | 6 +- 6 files changed, 110 insertions(+), 19 deletions(-) diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/controller/UploadedPhotosController.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/controller/UploadedPhotosController.java index dab3bc8..6c228db 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/controller/UploadedPhotosController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/controller/UploadedPhotosController.java @@ -30,15 +30,14 @@ import static com.fastbee.common.utils.StringUtils.isEmpty; /** * 设备告警上传Controller - * + * * @author Dunxi Zang * @date 2024-06-19 */ @RestController @RequestMapping("/iot/photos") @Api(tags = "安防小板") -public class UploadedPhotosController extends BaseController -{ +public class UploadedPhotosController extends BaseController { @Autowired private IUploadedPhotosService uploadedPhotosService; @@ -47,8 +46,7 @@ public class UploadedPhotosController extends BaseController */ @PreAuthorize("@ss.hasPermi('iot:photos:list')") @GetMapping("/list") - public TableDataInfo list(UploadedPhotos uploadedPhotos) - { + public TableDataInfo list(UploadedPhotos uploadedPhotos) { startPage(); List list = uploadedPhotosService.selectUploadedPhotosList(uploadedPhotos); return getDataTable(list); @@ -60,8 +58,7 @@ public class UploadedPhotosController extends BaseController @PreAuthorize("@ss.hasPermi('iot:photos:export')") @Log(title = "设备告警上传", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, UploadedPhotos uploadedPhotos) - { + public void export(HttpServletResponse response, UploadedPhotos uploadedPhotos) { List list = uploadedPhotosService.selectUploadedPhotosList(uploadedPhotos); ExcelUtil util = new ExcelUtil(UploadedPhotos.class); util.exportExcel(response, list, "设备告警上传数据"); @@ -72,8 +69,7 @@ public class UploadedPhotosController extends BaseController */ @PreAuthorize("@ss.hasPermi('iot:photos:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(uploadedPhotosService.selectUploadedPhotosById(id)); } @@ -101,12 +97,11 @@ public class UploadedPhotosController extends BaseController String filePath = RuoYiConfig.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, photo); - // 处理可能为空的字段 Double latitude = isEmpty(lat) ? 0.0 : Double.valueOf(lat); Double longitude = isEmpty(lng) ? 0.0 : Double.valueOf(lng); Double temperature = isEmpty(temp) ? 0.0 : convertAndRoundTemperature(temp); - if(doorState.equals("0")){ + if (doorState.equals("0")) { shakeState = "1"; } // 处理时间戳 @@ -117,7 +112,7 @@ public class UploadedPhotosController extends BaseController //推送告警短信通知 uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState); UploadedPhotos uploadedPhotos = new UploadedPhotos( - null, fileName, monitorPath,imei, sn, latitude, longitude, temperature, doorState, shakeState, date + null, fileName, monitorPath, imei, sn, latitude, longitude, temperature, doorState, shakeState, date ); return toAjax(uploadedPhotosService.insertUploadedPhotos(uploadedPhotos)); } catch (IOException e) { @@ -127,6 +122,7 @@ public class UploadedPhotosController extends BaseController /** * 箱门告警 + * * @return */ @PostMapping("doorAlert") @@ -134,6 +130,66 @@ public class UploadedPhotosController extends BaseController return toAjax(uploadedPhotosService.doorAlert(doorAlertBto)); } + /** + * 新增设备告警上传不带图片 + */ + @PostMapping("eventNotPic") + public AjaxResult uploadEvent( + @RequestParam("imei") String imei, + @RequestParam("sn") String sn, + @RequestParam("lat") String lat, + @RequestParam("lng") String lng, + @RequestParam("temp") String temp, + @RequestParam("doorState") String doorState, + @RequestParam("shakeState") String shakeState, + @RequestParam("time") String time) { + // 处理可能为空的字段 + Double latitude = isEmpty(lat) ? 0.0 : Double.valueOf(lat); + Double longitude = isEmpty(lng) ? 0.0 : Double.valueOf(lng); + Double temperature = isEmpty(temp) ? 0.0 : convertAndRoundTemperature(temp); + if (doorState.equals("0")) { + shakeState = "1"; + } + // 处理时间戳 + long timestamp = Long.parseLong(time + "000"); + Date date = new Date(timestamp); + //抓拍监控,并返回路径 + String monitorPath = uploadedPhotosService.captureMonitorPhoto(sn); + //推送告警短信通知 + uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState); + UploadedPhotos uploadedPhotos = new UploadedPhotos( + null, "", monitorPath, imei, sn, latitude, longitude, temperature, doorState, shakeState, date + ); + return toAjax(uploadedPhotosService.insertUploadedPhotos(uploadedPhotos)); + } + + /** + * 只上传告警图片 + */ + @PostMapping("uploadPicByTime") + public AjaxResult uploadPicByTime( + @RequestParam("fileToUpload") MultipartFile photo, + @RequestParam("sn") String sn, + @RequestParam("time") String time) { + // 处理时间戳 + try { + // 上传文件路径 + String filePath = RuoYiConfig.getUploadPath(); + // 上传并返回新文件名称 + String fileName = FileUploadUtils.upload(filePath, photo); + // 处理时间戳 + long timestamp = Long.parseLong(time + "000"); + Date date = new Date(timestamp); + //推送告警短信通知 + UploadedPhotos uploadedPhotos = new UploadedPhotos(); + uploadedPhotos.setSn(sn); + uploadedPhotos.setPhotoPath(fileName); + uploadedPhotos.setUploadTime(date); + return toAjax(uploadedPhotosService.uploadPicByTime(uploadedPhotos)); + } catch (IOException e) { + throw new ServiceException("设备告警信息上传失败"); + } + } /** * 修改设备告警上传 @@ -141,8 +197,7 @@ public class UploadedPhotosController extends BaseController @PreAuthorize("@ss.hasPermi('iot:photos:edit')") @Log(title = "设备告警上传", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody UploadedPhotos uploadedPhotos) - { + public AjaxResult edit(@RequestBody UploadedPhotos uploadedPhotos) { return toAjax(uploadedPhotosService.updateUploadedPhotos(uploadedPhotos)); } @@ -151,11 +206,11 @@ public class UploadedPhotosController extends BaseController */ @PreAuthorize("@ss.hasPermi('iot:photos:remove')") @Log(title = "设备告警上传", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(uploadedPhotosService.deleteUploadedPhotosByIds(ids)); } + public static Double convertAndRoundTemperature(String tempStr) { // 将字符串转换为double double temp = Double.parseDouble(tempStr); diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/IUploadedPhotosService.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/IUploadedPhotosService.java index bc2ab21..269a319 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/IUploadedPhotosService.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/IUploadedPhotosService.java @@ -77,4 +77,6 @@ public interface IUploadedPhotosService void sendAlarmMessage(String sn, String doorState, String shakeState); String doorAlert(DoorAlertBto doorAlertBto) throws Exception; + + int uploadPicByTime(UploadedPhotos uploadedPhotos); } diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/impl/UploadedPhotosServiceImpl.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/impl/UploadedPhotosServiceImpl.java index 1c0db02..9ad762f 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/impl/UploadedPhotosServiceImpl.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/anfang/service/impl/UploadedPhotosServiceImpl.java @@ -302,4 +302,10 @@ public class UploadedPhotosServiceImpl implements IUploadedPhotosService { return "生成失败"; } } + + @Override + public int uploadPicByTime(UploadedPhotos uploadedPhotos) { + //根据时间和sn进行复制图片链接 + return uploadedPhotosMapper.updateBySnAndTime(uploadedPhotos); + } } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/mapper/UploadedPhotosMapper.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/mapper/UploadedPhotosMapper.java index 4e46fa1..bb08c4f 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/mapper/UploadedPhotosMapper.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/mapper/UploadedPhotosMapper.java @@ -45,6 +45,15 @@ public interface UploadedPhotosMapper */ public int updateUploadedPhotos(UploadedPhotos uploadedPhotos); + /** + * 通过SN和图片进行更新数据 + * @param uploadedPhotos + * @return + */ + public int updateBySnAndTime(UploadedPhotos uploadedPhotos); + + + /** * 删除存储上传的照片信息 * diff --git a/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/UploadedPhotosMapper.xml b/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/UploadedPhotosMapper.xml index ba035d3..f526b72 100644 --- a/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/UploadedPhotosMapper.xml +++ b/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/UploadedPhotosMapper.xml @@ -89,6 +89,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + update uploaded_photos + + photo_path = #{photoPath}, + monitor_path = #{monitorPath}, + imei = #{imei}, + sn = #{sn}, + lat = #{lat}, + lng = #{lng}, + temp = #{temp}, + door_state = #{doorState}, + shake_state = #{shakeState}, + upload_time = #{uploadTime}, + + where sn = #{sn} and upload_time = #{uploadTime} + + delete from uploaded_photos where id = #{id} diff --git a/fastbee-service/fastbee-waterele-service/src/main/java/com/fastbee/waterele/service/impl/MaGuangaiRecordServiceImpl.java b/fastbee-service/fastbee-waterele-service/src/main/java/com/fastbee/waterele/service/impl/MaGuangaiRecordServiceImpl.java index 4b10e9b..cd81749 100644 --- a/fastbee-service/fastbee-waterele-service/src/main/java/com/fastbee/waterele/service/impl/MaGuangaiRecordServiceImpl.java +++ b/fastbee-service/fastbee-waterele-service/src/main/java/com/fastbee/waterele/service/impl/MaGuangaiRecordServiceImpl.java @@ -119,8 +119,10 @@ public class MaGuangaiRecordServiceImpl implements IMaGuangaiRecordService record.setCardId(item.get("card_id").toString()); record.setAreaCode(item.get("area_code").toString()); record.setUserBalance(com.fastbee.common.utils.NumberUtils.formatFloat(Float.parseFloat(item.get("user_balance").toString())/100)+""); - record.setCurFlow(item.get("cur_flow").toString()); - record.setCurEle(item.get("cur_ele").toString()); + record.setCurFlow(item.get("cur_flow").toString().equals("null")?"--": + (com.fastbee.common.utils.NumberUtils.formatFloat(Float.parseFloat(item.get("cur_flow").toString())/100)+"")); + record.setCurEle(item.get("cur_ele").toString().equals("null")?"--": + (com.fastbee.common.utils.NumberUtils.formatFloat(Float.parseFloat(item.get("cur_ele").toString())/100)+"")); record.setStatus(Integer.parseInt(item.get("status").toString())); if(StringUtils.isNotEmpty(item.get("create_time").toString())){ if(NumberUtil.isNumber(item.get("create_time").toString())) {