diff --git a/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java b/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java index 30576a4..afcdf30 100644 --- a/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java +++ b/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java @@ -347,4 +347,18 @@ public class DeviceInstallController { return HttpResult.ok("success",data); } + @PostMapping(value = "/calibration") + public HttpResult calibration(@RequestParam(value = "buildingId") Integer buildingId, + @RequestParam(value = "deviceType") Integer deviceType, + @RequestParam(value = "param") Integer param, + @RequestParam(value = "readValue") String readValue, + @RequestParam(value = "realValue") String realValue) { + boolean isUpdate = deviceInstallService.updateDeviation(buildingId,deviceType,param,readValue,realValue); + if (isUpdate) { + return HttpResult.ok("success"); + } else { + return HttpResult.error(); + } + } + } diff --git a/user-service/src/main/java/com/mh/user/controller/SerialPortController.java b/user-service/src/main/java/com/mh/user/controller/SerialPortController.java index 99bd4e5..7ad47be 100644 --- a/user-service/src/main/java/com/mh/user/controller/SerialPortController.java +++ b/user-service/src/main/java/com/mh/user/controller/SerialPortController.java @@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -383,6 +384,11 @@ public class SerialPortController { rtData = serialPortSingle.serialPortSend(deviceCodeParam);//生成并发送指令 } else if (deviceType.equals("水表")) { rtData = serialPortSingle.serialPortSend(deviceCodeParam); + // 要添加校准值 + Double deviationValue = deviceInstallService.selectDeviceDeviation(deviceCodeParam.getDeviceAddr(),deviceCodeParam.getDeviceType(), deviceCodeParam.getBuildingId()); + if (null != deviationValue) { + rtData = new BigDecimal(rtData).add(BigDecimal.valueOf(deviationValue)).toString(); + } } else if (deviceType.equals("电表")) { rtData = serialPortSingle.serialPortSend(deviceCodeParam); } diff --git a/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java b/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java index 89042fd..1cba23f 100644 --- a/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java @@ -31,4 +31,6 @@ public class DeviceInstallEntity { private Date installDate; private String remarks; private double dayValue; + private double deviationValue; + } diff --git a/user-service/src/main/java/com/mh/user/entity/WaterTempEntity.java b/user-service/src/main/java/com/mh/user/entity/WaterTempEntity.java index 21ef6aa..c790bf3 100644 --- a/user-service/src/main/java/com/mh/user/entity/WaterTempEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/WaterTempEntity.java @@ -17,7 +17,7 @@ public class WaterTempEntity { // private String temp03; // private String temp04; // private String temp05; -// private String temp06; + private String temp06; // private String temp07; private String temp08; // private String temp09; diff --git a/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java b/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java index 7fc6254..29c2bfe 100644 --- a/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java @@ -112,4 +112,6 @@ public interface BuildingMapper { @Select("select ISNULL(pump_count,0) from building where id=#{buildingId}") int selectPumpCount(@Param("buildingId") String buildingId); + @Select("select building_name from building where id = #{buildingId} ") + String selectBuildingNameById(@Param("buildingId") String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java index 02b8789..52d7f1d 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java @@ -1,6 +1,5 @@ package com.mh.user.mapper; -import com.mh.user.entity.BuildingEntity; import com.mh.user.entity.DeviceInstallEntity; import com.mh.user.entity.DeviceInstallTempEntity; import com.mh.user.mapper.provider.DeviceInstallProvider; @@ -10,16 +9,16 @@ import org.apache.ibatis.mapping.StatementType; import java.util.Date; import java.util.List; -public interface -DeviceInstallMapper { +@Mapper +public interface DeviceInstallMapper { /** * 设备安装模块 * 保存设备信息 * @param deviceInstallEntity */ - @Insert("insert into device_install(device_addr,device_name,device_type,data_com,ratio,baudrate,brand,model,building_id,installer,install_date,is_use) values (" + - " #{deviceAddr},#{deviceName},#{deviceType},#{dataCom},#{ratio},#{baudRate},#{brand},#{model},#{buildingId},#{installer},getDate(),#{use})") + @Insert("insert into device_install(device_addr,device_name,device_type,data_com,ratio,baudrate,brand,model,building_id,building_name,installer,install_date,is_use) values (" + + " #{deviceAddr},#{deviceName},#{deviceType},#{dataCom},#{ratio},#{baudRate},#{brand},#{model},#{buildingId},#{buildingName},#{installer},getDate(),#{use})") int saveDevice(DeviceInstallEntity deviceInstallEntity); /** @@ -309,4 +308,15 @@ DeviceInstallMapper { //查询设备所属位置(低区或高区) @Select("select seat from device_install where device_type=#{deviceType} and device_addr=#{deviceAddr} and building_id=#{buildingId} ") String selectSeat(@Param("deviceType") String deviceType,@Param("deviceAddr") String deviceAddr,@Param("buildingId") String buildingId); + + @Update("update device_install set deviation_value = #{dataValue} where device_type = #{deviceType} and building_id = #{buildingId}") + void updateDeviation(@Param("buildingId") Integer buildingId, + @Param("deviceType") String deviceType, + @Param("param") Integer param, + @Param("dataValue") String dataValue); + + @Select("select isnull(deviation_value,0) from device_install where device_addr = #{deviceAddr} and device_type = #{deviceType} and building_id = #{buildingId}") + Double selectDeviceDeviation(@Param("deviceAddr") String deviceAddr, + @Param("deviceType") String deviceType, + @Param("buildingId") String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/NowDataProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/NowDataProvider.java index c150d51..7ddc73f 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/NowDataProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/NowDataProvider.java @@ -174,6 +174,7 @@ public class NowDataProvider { sql.append("select top 1000 * from (select *,ROW_NUMBER() over(order by cur_date) as rn from (" + "select top 1000 t1.cur_date,t1.building_id,t2.building_name,t2.sort,convert(decimal(8,1),AVG(convert(float,t1.temp00)))as temp00," + "convert(decimal(8,1),AVG(convert(float,t1.temp02)))as temp02," + + "convert(decimal(8,1),AVG(convert(float,t1.temp06)))as temp06," + "convert(decimal(8,1),AVG(convert(float,t1.temp08)))as temp08,convert(decimal(8,1),AVG(convert(float,t1.temp11)))as temp11," + "convert(decimal(8,1),AVG(convert(float,t1.temp13)))as temp13,convert(decimal(8,1),AVG(convert(float,t1.temp15)))as temp15," + "convert(decimal(8,1),AVG(convert(float,t1.temp16)))as temp16,convert(decimal(8,1),AVG(convert(float,t1.temp17)))as temp17," + @@ -197,6 +198,7 @@ public class NowDataProvider { StringBuffer sql = new StringBuffer(""); sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from (" + "select t1.cur_date,t1.building_id,t2.building_name,t2.sort,convert(decimal(8,1),AVG(convert(float,t1.temp00)))as temp00," + + "convert(decimal(8,1),AVG(convert(float,t1.temp02)))as temp02,convert(decimal(8,1),AVG(convert(float,t1.temp06)))as temp06," + "convert(decimal(8,1),AVG(convert(float,t1.temp08)))as temp08,convert(decimal(8,1),AVG(convert(float,t1.temp11)))as temp11," + "convert(decimal(8,1),AVG(convert(float,t1.temp13)))as temp13,convert(decimal(8,1),AVG(convert(float,t1.temp15)))as temp15," + "convert(decimal(8,1),AVG(convert(float,t1.temp16)))as temp16,convert(decimal(8,1),AVG(convert(float,t1.temp17)))as temp17," + diff --git a/user-service/src/main/java/com/mh/user/service/BuildingService.java b/user-service/src/main/java/com/mh/user/service/BuildingService.java index 0f4ef6a..f2a3a97 100644 --- a/user-service/src/main/java/com/mh/user/service/BuildingService.java +++ b/user-service/src/main/java/com/mh/user/service/BuildingService.java @@ -3,7 +3,6 @@ package com.mh.user.service; import com.mh.user.entity.BuildingEntity; import com.mh.user.model.BuildingModel; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -71,4 +70,6 @@ public interface BuildingService { //查询楼栋热泵数目 int selectPumpCount(String buildingId); + + String selectBuildingNameById(String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java index dbdffdf..cb23a39 100644 --- a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java +++ b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java @@ -163,4 +163,16 @@ public interface DeviceInstallService { //查询设备所属位置(低区或高区) String selectSeat(String deviceType,String deviceAddr,String buildingId); + /** + * 更新设备校准值 + * @param buildingId + * @param deviceType + * @param param + * @param readValue + * @param realValue + * @return + */ + boolean updateDeviation(Integer buildingId, Integer deviceType, Integer param, String readValue, String realValue); + + Double selectDeviceDeviation(String deviceAddr, String deviceType, String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java index 859cb65..38080b3 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java @@ -88,4 +88,9 @@ public class BuildingServiceImpl implements BuildingService { public int selectPumpCount(String buildingId) { return buildingMapper.selectPumpCount(buildingId); } + + @Override + public String selectBuildingNameById(String buildingId) { + return buildingMapper.selectBuildingNameById(buildingId); + } } diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java index 33d8097..064f3b2 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java @@ -9,13 +9,16 @@ import com.mh.user.mapper.DeviceInstallMapper; import com.mh.user.mapper.provider.DeviceInstallProvider; import com.mh.user.model.DeviceModel; import com.mh.user.serialport.SerialPortSendReceive; +import com.mh.user.service.BuildingService; import com.mh.user.service.DeviceInstallService; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.SelectProvider; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -26,8 +29,13 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { @Autowired private DeviceInstallMapper deviceInstallMapper; + @Autowired + private BuildingService buildingService; + @Override public int saveDevice(DeviceInstallEntity deviceInstallEntity) { + String buildingName = buildingService.selectBuildingNameById(deviceInstallEntity.getBuildingId()); + deviceInstallEntity.setBuildingName(buildingName); return deviceInstallMapper.saveDevice(deviceInstallEntity); } @@ -240,5 +248,29 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { public String selectSeat(String deviceType, String deviceAddr, String buildingId) { return deviceInstallMapper.selectSeat(deviceType, deviceAddr, buildingId); } + + @Override + public boolean updateDeviation(Integer buildingId, Integer deviceType, Integer param, String readValue, String realValue) { + String deviceTypeStr = "水表"; + if (deviceType == 0) { + // 更新水表 + deviceTypeStr = "水表"; + } else if (deviceType == 1) { + // 更新电表 + deviceTypeStr = "电表"; + } + String dataValue = new BigDecimal(realValue).subtract(new BigDecimal(readValue)).toString(); + try { + deviceInstallMapper.updateDeviation(buildingId, deviceTypeStr, param, dataValue); + return true; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Override + public Double selectDeviceDeviation(String deviceAddr, String deviceType, String buildingId) { + return deviceInstallMapper.selectDeviceDeviation(deviceAddr, deviceType, buildingId); + } }