diff --git a/src/main/java/com/casic/controller/DataRecvController.java b/src/main/java/com/casic/controller/DataRecvController.java index faaf929..556e545 100644 --- a/src/main/java/com/casic/controller/DataRecvController.java +++ b/src/main/java/com/casic/controller/DataRecvController.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.casic.service.GasDataRecvService; +import com.casic.service.PressDataRecvService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ public class DataRecvController { private final GasDataRecvService gasDataRecvService; + private final PressDataRecvService pressDataRecvService; @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") @RequestMapping("/gas/recv") @@ -28,5 +30,12 @@ log.error("--------" + JSONObject.toJSONString(recvDataMap)); return gasDataRecvService.saveRev(recvDataMap); } - //869662035288767 312022090709 + + @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") + @RequestMapping("/press/recv") + public Object pressRecv(@RequestBody Map recvDataMap) { + log.error("--------" + JSONObject.toJSONString(recvDataMap)); + return pressDataRecvService.saveRev(recvDataMap); + } + } diff --git a/src/main/java/com/casic/controller/DataRecvController.java b/src/main/java/com/casic/controller/DataRecvController.java index faaf929..556e545 100644 --- a/src/main/java/com/casic/controller/DataRecvController.java +++ b/src/main/java/com/casic/controller/DataRecvController.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.casic.service.GasDataRecvService; +import com.casic.service.PressDataRecvService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ public class DataRecvController { private final GasDataRecvService gasDataRecvService; + private final PressDataRecvService pressDataRecvService; @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") @RequestMapping("/gas/recv") @@ -28,5 +30,12 @@ log.error("--------" + JSONObject.toJSONString(recvDataMap)); return gasDataRecvService.saveRev(recvDataMap); } - //869662035288767 312022090709 + + @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") + @RequestMapping("/press/recv") + public Object pressRecv(@RequestBody Map recvDataMap) { + log.error("--------" + JSONObject.toJSONString(recvDataMap)); + return pressDataRecvService.saveRev(recvDataMap); + } + } diff --git a/src/main/java/com/casic/dao/GasPressDataMapper.java b/src/main/java/com/casic/dao/GasPressDataMapper.java new file mode 100644 index 0000000..f27f95a --- /dev/null +++ b/src/main/java/com/casic/dao/GasPressDataMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.GasPressData; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface GasPressDataMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/controller/DataRecvController.java b/src/main/java/com/casic/controller/DataRecvController.java index faaf929..556e545 100644 --- a/src/main/java/com/casic/controller/DataRecvController.java +++ b/src/main/java/com/casic/controller/DataRecvController.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.casic.service.GasDataRecvService; +import com.casic.service.PressDataRecvService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ public class DataRecvController { private final GasDataRecvService gasDataRecvService; + private final PressDataRecvService pressDataRecvService; @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") @RequestMapping("/gas/recv") @@ -28,5 +30,12 @@ log.error("--------" + JSONObject.toJSONString(recvDataMap)); return gasDataRecvService.saveRev(recvDataMap); } - //869662035288767 312022090709 + + @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") + @RequestMapping("/press/recv") + public Object pressRecv(@RequestBody Map recvDataMap) { + log.error("--------" + JSONObject.toJSONString(recvDataMap)); + return pressDataRecvService.saveRev(recvDataMap); + } + } diff --git a/src/main/java/com/casic/dao/GasPressDataMapper.java b/src/main/java/com/casic/dao/GasPressDataMapper.java new file mode 100644 index 0000000..f27f95a --- /dev/null +++ b/src/main/java/com/casic/dao/GasPressDataMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.GasPressData; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface GasPressDataMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/GasPressData.java b/src/main/java/com/casic/entity/GasPressData.java new file mode 100644 index 0000000..2b8a40d --- /dev/null +++ b/src/main/java/com/casic/entity/GasPressData.java @@ -0,0 +1,70 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2023-4-12 + */ +@Builder +@Data +@ApiModel(value = "GasPressData", description = "燃气列表") +@TableName("gas_press_data") +public class GasPressData { + + private Long id; + + private Long tenantId; + private String deviceId; + private String imei; + + /** + * 信号强度,signal是mysql关键字 + */ + private String signals; + + /** + * 是电池电压报警 + */ + private String pss; + + /** + * 低压报警状态 + */ + private String ipla; + + + /** + * 是低压警戒值 + */ + private String ipl; + + /** + * 是高压报警状态 + */ + private String ipha; + /** + * 高压警戒值 + */ + private String iph; + /** + * 实时压力 + */ + private String ip; + /** + * 是电池电压 + */ + private String bv; + /** + * 是电池电量 + */ + private double cell; + + private Date logtime; + private Date uptime; +} diff --git a/src/main/java/com/casic/controller/DataRecvController.java b/src/main/java/com/casic/controller/DataRecvController.java index faaf929..556e545 100644 --- a/src/main/java/com/casic/controller/DataRecvController.java +++ b/src/main/java/com/casic/controller/DataRecvController.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.casic.service.GasDataRecvService; +import com.casic.service.PressDataRecvService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ public class DataRecvController { private final GasDataRecvService gasDataRecvService; + private final PressDataRecvService pressDataRecvService; @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") @RequestMapping("/gas/recv") @@ -28,5 +30,12 @@ log.error("--------" + JSONObject.toJSONString(recvDataMap)); return gasDataRecvService.saveRev(recvDataMap); } - //869662035288767 312022090709 + + @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") + @RequestMapping("/press/recv") + public Object pressRecv(@RequestBody Map recvDataMap) { + log.error("--------" + JSONObject.toJSONString(recvDataMap)); + return pressDataRecvService.saveRev(recvDataMap); + } + } diff --git a/src/main/java/com/casic/dao/GasPressDataMapper.java b/src/main/java/com/casic/dao/GasPressDataMapper.java new file mode 100644 index 0000000..f27f95a --- /dev/null +++ b/src/main/java/com/casic/dao/GasPressDataMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.GasPressData; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface GasPressDataMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/GasPressData.java b/src/main/java/com/casic/entity/GasPressData.java new file mode 100644 index 0000000..2b8a40d --- /dev/null +++ b/src/main/java/com/casic/entity/GasPressData.java @@ -0,0 +1,70 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2023-4-12 + */ +@Builder +@Data +@ApiModel(value = "GasPressData", description = "燃气列表") +@TableName("gas_press_data") +public class GasPressData { + + private Long id; + + private Long tenantId; + private String deviceId; + private String imei; + + /** + * 信号强度,signal是mysql关键字 + */ + private String signals; + + /** + * 是电池电压报警 + */ + private String pss; + + /** + * 低压报警状态 + */ + private String ipla; + + + /** + * 是低压警戒值 + */ + private String ipl; + + /** + * 是高压报警状态 + */ + private String ipha; + /** + * 高压警戒值 + */ + private String iph; + /** + * 实时压力 + */ + private String ip; + /** + * 是电池电压 + */ + private String bv; + /** + * 是电池电量 + */ + private double cell; + + private Date logtime; + private Date uptime; +} diff --git a/src/main/java/com/casic/service/PressDataRecvService.java b/src/main/java/com/casic/service/PressDataRecvService.java new file mode 100644 index 0000000..883e1db --- /dev/null +++ b/src/main/java/com/casic/service/PressDataRecvService.java @@ -0,0 +1,8 @@ +package com.casic.service; + +import java.util.Map; + +public interface PressDataRecvService { + + Object saveRev(Map recvDataMap); +} diff --git a/src/main/java/com/casic/controller/DataRecvController.java b/src/main/java/com/casic/controller/DataRecvController.java index faaf929..556e545 100644 --- a/src/main/java/com/casic/controller/DataRecvController.java +++ b/src/main/java/com/casic/controller/DataRecvController.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.casic.service.GasDataRecvService; +import com.casic.service.PressDataRecvService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ public class DataRecvController { private final GasDataRecvService gasDataRecvService; + private final PressDataRecvService pressDataRecvService; @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") @RequestMapping("/gas/recv") @@ -28,5 +30,12 @@ log.error("--------" + JSONObject.toJSONString(recvDataMap)); return gasDataRecvService.saveRev(recvDataMap); } - //869662035288767 312022090709 + + @ApiOperation("数据接收接口,接收三码、实时数据,自动增添设备,前端不需要实现") + @RequestMapping("/press/recv") + public Object pressRecv(@RequestBody Map recvDataMap) { + log.error("--------" + JSONObject.toJSONString(recvDataMap)); + return pressDataRecvService.saveRev(recvDataMap); + } + } diff --git a/src/main/java/com/casic/dao/GasPressDataMapper.java b/src/main/java/com/casic/dao/GasPressDataMapper.java new file mode 100644 index 0000000..f27f95a --- /dev/null +++ b/src/main/java/com/casic/dao/GasPressDataMapper.java @@ -0,0 +1,9 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.entity.GasPressData; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface GasPressDataMapper extends BaseMapper { +} diff --git a/src/main/java/com/casic/entity/GasPressData.java b/src/main/java/com/casic/entity/GasPressData.java new file mode 100644 index 0000000..2b8a40d --- /dev/null +++ b/src/main/java/com/casic/entity/GasPressData.java @@ -0,0 +1,70 @@ +package com.casic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2023-4-12 + */ +@Builder +@Data +@ApiModel(value = "GasPressData", description = "燃气列表") +@TableName("gas_press_data") +public class GasPressData { + + private Long id; + + private Long tenantId; + private String deviceId; + private String imei; + + /** + * 信号强度,signal是mysql关键字 + */ + private String signals; + + /** + * 是电池电压报警 + */ + private String pss; + + /** + * 低压报警状态 + */ + private String ipla; + + + /** + * 是低压警戒值 + */ + private String ipl; + + /** + * 是高压报警状态 + */ + private String ipha; + /** + * 高压警戒值 + */ + private String iph; + /** + * 实时压力 + */ + private String ip; + /** + * 是电池电压 + */ + private String bv; + /** + * 是电池电量 + */ + private double cell; + + private Date logtime; + private Date uptime; +} diff --git a/src/main/java/com/casic/service/PressDataRecvService.java b/src/main/java/com/casic/service/PressDataRecvService.java new file mode 100644 index 0000000..883e1db --- /dev/null +++ b/src/main/java/com/casic/service/PressDataRecvService.java @@ -0,0 +1,8 @@ +package com.casic.service; + +import java.util.Map; + +public interface PressDataRecvService { + + Object saveRev(Map recvDataMap); +} diff --git a/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java new file mode 100644 index 0000000..6308428 --- /dev/null +++ b/src/main/java/com/casic/service/impl/PressDataRecvServiceImpl.java @@ -0,0 +1,84 @@ +package com.casic.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.dao.GasPressDataMapper; +import com.casic.entity.GasPressData; +import com.casic.model.ResponseData; +import com.casic.service.PressDataRecvService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +@Service +@Slf4j +public class PressDataRecvServiceImpl extends ServiceImpl implements PressDataRecvService { + + @Override + public Object saveRev(Map recvDataMap) { + ResponseData responseData = new ResponseData(); + try { + Map contentMap = (Map) recvDataMap.get("payload"); + this.flagFieldProcessor("time", contentMap, () -> realTimeGasDataProvider(recvDataMap, contentMap)) + .flagFieldProcessor("history", contentMap, () -> historyGasDataProvider(recvDataMap, contentMap)); + responseData.setCode(200); + responseData.setMessage("保存成功"); + } catch (Exception dex) { + log.error("主题:哈尔滨燃气设备存储异常,异常信息:{}", dex.getMessage()); + responseData.setCode(500); + responseData.setMessage("保存异常"); + } + return responseData; + } + + private PressDataRecvServiceImpl flagFieldProcessor(String flagField, Map contentMap, Supplier cse) { + if (contentMap.containsKey(flagField)) { + cse.get(); + } + return this; + } + + private Boolean realTimeGasDataProvider(Map recvDataMap, Map contentMap) { + GasPressData gasPressData = GasPressData.builder() + .tenantId(Long.valueOf(String.valueOf(recvDataMap.get("tenantId")))) + .deviceId(String.valueOf(recvDataMap.get("deviceId"))) + .imei(String.valueOf(recvDataMap.get("IMEI"))) + .uptime(new Date(contentMap.containsKey("time") ? + Long.valueOf(String.valueOf(contentMap.get("time"))) + : System.currentTimeMillis())) + .cell(Double.valueOf(contentMap.containsKey("ba") ? String.valueOf(contentMap.get("ba")) : "0")) + .signals(String.valueOf(contentMap.get("si"))) + .pss(String.valueOf(contentMap.get("pss"))) + .ipla(String.valueOf(contentMap.get("ipla"))) + .ipl(String.valueOf(contentMap.get("ipl"))) + .ipha(String.valueOf(contentMap.get("ipha"))) + .iph(String.valueOf(contentMap.get("iph"))) + .ip(String.valueOf(contentMap.get("ip"))) + .bv(String.valueOf(contentMap.get("bv"))) + .build(); + this.baseMapper.insert(gasPressData); + return true; + } + + private Boolean historyGasDataProvider(Map recvDataMap, Map contentMap) { + List> historyDataList = (List>) JSONArray.parse(contentMap.get("history")); + for (Map historyData : historyDataList) { + GasPressData historyGasPressData = GasPressData.builder() + .tenantId(Long.valueOf(String.valueOf(recvDataMap.get("tenantId")))) + .deviceId(String.valueOf(recvDataMap.get("deviceId"))) + .imei(String.valueOf(recvDataMap.get("IMEI"))) + .uptime(new Date(historyData.containsKey("time") ? + Long.valueOf(String.valueOf(historyData.get("time"))) + : System.currentTimeMillis())) + .ip(String.valueOf(historyData.get("ip"))) + .build(); + this.baseMapper.insert(historyGasPressData); + } + return true; + } + +}