Browse Source

添加校准和多个水位控制

prod_202403
mh 9 months ago
parent
commit
b80e47e541
  1. 14
      user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java
  2. 6
      user-service/src/main/java/com/mh/user/controller/SerialPortController.java
  3. 2
      user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java
  4. 2
      user-service/src/main/java/com/mh/user/entity/WaterTempEntity.java
  5. 2
      user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java
  6. 20
      user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java
  7. 2
      user-service/src/main/java/com/mh/user/mapper/provider/NowDataProvider.java
  8. 3
      user-service/src/main/java/com/mh/user/service/BuildingService.java
  9. 12
      user-service/src/main/java/com/mh/user/service/DeviceInstallService.java
  10. 5
      user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java
  11. 32
      user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java

14
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();
}
}
}

6
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);
}

2
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;
}

2
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;

2
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);
}

20
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);
}

2
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," +

3
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);
}

12
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);
}

5
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);
}
}

32
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);
}
}

Loading…
Cancel
Save