Browse Source

1、优化仪表管理、网关管理;

2、优化定时处理数据,改成多线程处理;
dev
mh 5 months ago
parent
commit
b4a2c19146
  1. 4
      user-service/src/main/java/com/mh/user/controller/DevicesParamsController.java
  2. 4
      user-service/src/main/java/com/mh/user/controller/GatewayManageController.java
  3. 3
      user-service/src/main/java/com/mh/user/controller/MeterManageController.java
  4. 16
      user-service/src/main/java/com/mh/user/job/DealDataJob.java
  5. 9
      user-service/src/main/java/com/mh/user/service/impl/MeterManageServiceImpl.java
  6. 15
      user-service/src/main/java/com/mh/user/strategy/ModbusProtocolStrategy.java
  7. 2
      user-service/src/main/resources/application-dev.yml
  8. 28
      user-service/src/test/java/com/mh/user/SysUserTest.java

4
user-service/src/main/java/com/mh/user/controller/DevicesParamsController.java

@ -36,7 +36,7 @@ public class DevicesParamsController {
@SysLogger(value="设备参数管理",optDesc = "编辑设备参数管理") @SysLogger(value="设备参数管理",optDesc = "编辑设备参数管理")
@PostMapping("/update") @PostMapping("/update")
public HttpResult updateProInfo(DeviceParamsEntity entity) { public HttpResult updateProInfo(@RequestBody DeviceParamsEntity entity) {
deviceParamsService.update(entity); deviceParamsService.update(entity);
return HttpResult.ok(); return HttpResult.ok();
} }
@ -50,7 +50,7 @@ public class DevicesParamsController {
@SysLogger(value="设备参数管理",optDesc = "添加设备参数管理") @SysLogger(value="设备参数管理",optDesc = "添加设备参数管理")
@PostMapping("/save") @PostMapping("/save")
public HttpResult saveGw(DeviceParamsEntity entity) { public HttpResult saveGw(@RequestBody DeviceParamsEntity entity) {
deviceParamsService.save(entity); deviceParamsService.save(entity);
return HttpResult.ok(); return HttpResult.ok();
} }

4
user-service/src/main/java/com/mh/user/controller/GatewayManageController.java

@ -39,7 +39,7 @@ public class GatewayManageController {
@SysLogger(value="网关管理信息",optDesc = "编辑网关管理信息") @SysLogger(value="网关管理信息",optDesc = "编辑网关管理信息")
@PostMapping("/update") @PostMapping("/update")
public HttpResult updateProInfo(GatewayManageEntity gatewayManageEntity) { public HttpResult updateProInfo(@RequestBody GatewayManageEntity gatewayManageEntity) {
gatewayManageService.update(gatewayManageEntity); gatewayManageService.update(gatewayManageEntity);
return HttpResult.ok(); return HttpResult.ok();
} }
@ -53,7 +53,7 @@ public class GatewayManageController {
@SysLogger(value="网关管理信息",optDesc = "添加网关管理信息") @SysLogger(value="网关管理信息",optDesc = "添加网关管理信息")
@PostMapping("/save") @PostMapping("/save")
public HttpResult saveGw(GatewayManageEntity gatewayManageEntity) { public HttpResult saveGw(@RequestBody GatewayManageEntity gatewayManageEntity) {
gatewayManageService.save(gatewayManageEntity); gatewayManageService.save(gatewayManageEntity);
return HttpResult.ok(); return HttpResult.ok();
} }

3
user-service/src/main/java/com/mh/user/controller/MeterManageController.java

@ -31,6 +31,7 @@ public class MeterManageController {
@FieldParam(type = "data_type", targetField = "dataType", targetFieldValueClazz = Integer.class), @FieldParam(type = "data_type", targetField = "dataType", targetFieldValueClazz = Integer.class),
@FieldParam(type = "protocol_type", targetField = "protocolType", targetFieldValueClazz = Integer.class), @FieldParam(type = "protocol_type", targetField = "protocolType", targetFieldValueClazz = Integer.class),
@FieldParam(type = "project_name", targetField = "projectId", targetFieldValueClazz = Integer.class), @FieldParam(type = "project_name", targetField = "projectId", targetFieldValueClazz = Integer.class),
@FieldParam(type = "grade", targetField = "grade", targetFieldValueClazz = Integer.class),
}) })
@SysLogger(value="仪表管理信息",optDesc = "查询仪表管理信息") @SysLogger(value="仪表管理信息",optDesc = "查询仪表管理信息")
@PostMapping("/findByPage") @PostMapping("/findByPage")
@ -61,7 +62,7 @@ public class MeterManageController {
return HttpResult.ok(); return HttpResult.ok();
} }
@CacheChanges(value = "device_code_params") // @CacheChanges(value = "device_code_params")
@SysLogger(value="仪表管理信息",optDesc = "删除仪表管理信息") @SysLogger(value="仪表管理信息",optDesc = "删除仪表管理信息")
@GetMapping("/deleteById") @GetMapping("/deleteById")
public HttpResult deleteProInfo(@RequestParam String id) { public HttpResult deleteProInfo(@RequestParam String id) {

16
user-service/src/main/java/com/mh/user/job/DealDataJob.java

@ -8,6 +8,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.CountDownLatch;
/** /**
* @author ljf * @author ljf
@ -71,17 +72,28 @@ public class DealDataJob {
} }
/** /**
* 定时处理数据每分钟处理一次单个项目分别处理 * 定时处理数据每分钟处理一次前面两分钟的项目数据单个项目分别处理
*/ */
@Scheduled(cron = "0 0/1 * * * ?") @Scheduled(cron = "0 0/1 * * * ?")
public void proDataResult() { public void proDataResult() {
try { try {
// 通过多线程进行处理
String curDate = ExchangeStringUtil.dateTime(1, ""); String curDate = ExchangeStringUtil.dateTime(1, "");
List<String> list = dealDataService.queryProjectId("1"); List<String> list = dealDataService.queryProjectId("1");
if (!list.isEmpty()) { if (!list.isEmpty()) {
CountDownLatch latch = new CountDownLatch(list.size());
for (String projectId : list) { for (String projectId : list) {
dealDataService.proDataResult(curDate,projectId); //1珠江酒店,2广合,3广大 new Thread(() -> {
try {
dealDataService.proDataResult(curDate, projectId);
} catch (Exception e) {
log.error("能效监测定时汇总异常", e);
} finally {
latch.countDown();
}
}).start();
} }
latch.await(); // 等待所有子线程执行完毕
} }
log.info("---------能效监测定时汇总,每一分钟!{}", curDate); log.info("---------能效监测定时汇总,每一分钟!{}", curDate);
} catch (Exception e) { } catch (Exception e) {

9
user-service/src/main/java/com/mh/user/service/impl/MeterManageServiceImpl.java

@ -10,6 +10,7 @@ import com.mh.common.page.PageResult;
import com.mh.common.utils.StringUtils; import com.mh.common.utils.StringUtils;
import com.mh.user.entity.MeterManageEntity; import com.mh.user.entity.MeterManageEntity;
import com.mh.user.mapper.MeterManageMapper; import com.mh.user.mapper.MeterManageMapper;
import com.mh.user.service.DeviceCodeParamService;
import com.mh.user.service.MeterManageService; import com.mh.user.service.MeterManageService;
import com.mh.user.utils.ExchangeStringUtil; import com.mh.user.utils.ExchangeStringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,6 +32,9 @@ public class MeterManageServiceImpl implements MeterManageService {
@Autowired @Autowired
private MeterManageMapper meterManageMapper; private MeterManageMapper meterManageMapper;
@Autowired
private DeviceCodeParamService deviceCodeParamService;
@Override @Override
public List<MeterManageEntity> queryBySystemIdAndProjectId(String systemId, String projectId) { public List<MeterManageEntity> queryBySystemIdAndProjectId(String systemId, String projectId) {
QueryWrapper<MeterManageEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<MeterManageEntity> queryWrapper = new QueryWrapper<>();
@ -40,7 +44,8 @@ public class MeterManageServiceImpl implements MeterManageService {
if (!StringUtils.isBlank(projectId)) { if (!StringUtils.isBlank(projectId)) {
queryWrapper.eq("project_id", projectId); queryWrapper.eq("project_id", projectId);
} }
queryWrapper.eq("is_use", 1); // 0正常使用,1停用
queryWrapper.eq("is_use", 0);
return meterManageMapper.selectList(queryWrapper.orderByDesc("create_time")); return meterManageMapper.selectList(queryWrapper.orderByDesc("create_time"));
} }
@ -104,7 +109,9 @@ public class MeterManageServiceImpl implements MeterManageService {
@Override @Override
public void delete(String id) { public void delete(String id) {
MeterManageEntity meterManageEntity = meterManageMapper.selectById(id);
meterManageMapper.deleteById(id); meterManageMapper.deleteById(id);
deviceCodeParamService.createCodeParams(meterManageEntity);
} }
@Override @Override

15
user-service/src/main/java/com/mh/user/strategy/ModbusProtocolStrategy.java

@ -197,6 +197,7 @@ public void analysisCloudOrder485(final String data, final DeviceCodeParamEntity
DataResultChEntity dataResultCh = new DataResultChEntity(); DataResultChEntity dataResultCh = new DataResultChEntity();
DataResultClEntity dataResultCl = new DataResultClEntity(); DataResultClEntity dataResultCl = new DataResultClEntity();
String registerAddr = deviceCodeParam.getRegisterAddr(); String registerAddr = deviceCodeParam.getRegisterAddr();
int grade = deviceCodeParam.getGrade();
if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) {
dateStr = dateStr.substring(0, 17) + "00"; dateStr = dateStr.substring(0, 17) + "00";
System.out.println("插入时间00" + dateStr); System.out.println("插入时间00" + dateStr);
@ -205,10 +206,11 @@ public void analysisCloudOrder485(final String data, final DeviceCodeParamEntity
System.out.println("插入时间30" + dateStr); System.out.println("插入时间30" + dateStr);
} }
try { try {
if (registerAddr.equals("0004") // if (registerAddr.equals("0004")
|| registerAddr.equals("0020") // || registerAddr.equals("0020")
|| registerAddr.equals("0073") // || registerAddr.equals("0073")
|| registerAddr.equals("0075")) { // || registerAddr.equals("0075"))
if (grade>=140 && grade<=149) {
dataResultCh.setDeviceAddr(cloudId); dataResultCh.setDeviceAddr(cloudId);
dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); dataResultCh.setDeviceType(deviceCodeParam.getDeviceType());
dataResultCh.setFunCode(deviceCodeParam.getFunCode()); dataResultCh.setFunCode(deviceCodeParam.getFunCode());
@ -224,7 +226,10 @@ public void analysisCloudOrder485(final String data, final DeviceCodeParamEntity
log.info("冷量计==>{},寄存器地址==>{},读数==>{},项目名称==>{}", cloudId, registerAddr, dataResultCh.getCurValue(), projectName); log.info("冷量计==>{},寄存器地址==>{},读数==>{},项目名称==>{}", cloudId, registerAddr, dataResultCh.getCurValue(), projectName);
dataResultService.saveDataResultCh(dataResultCh); dataResultService.saveDataResultCh(dataResultCh);
log.info("冷量计瞬时冷量/流量保存数据库成功!项目名称:{}", projectName); log.info("冷量计瞬时冷量/流量保存数据库成功!项目名称:{}", projectName);
} else if (registerAddr.equals("0080") || registerAddr.equals("0077")) { }
// else if (registerAddr.equals("0080") || registerAddr.equals("0077"))
else if (grade >= 40 && grade <= 49)
{
dataResultCl.setDeviceAddr(cloudId); dataResultCl.setDeviceAddr(cloudId);
dataResultCl.setDeviceType(deviceCodeParam.getDeviceType()); dataResultCl.setDeviceType(deviceCodeParam.getDeviceType());
dataResultCl.setCurDate(sdf1.parse(dateStr)); dataResultCl.setCurDate(sdf1.parse(dateStr));

2
user-service/src/main/resources/application-dev.yml

@ -1,5 +1,5 @@
server: server:
port: 8764 #8764新珠江,8766广合科技,8767广大科技,8768珠江国际,8769保利山庄,8770东莞迎宾馆 port: 8766 #8764新珠江,8766广合科技,8767广大科技,8768珠江国际,8769保利山庄,8770东莞迎宾馆
spring: spring:
application: application:
name: jnd-user-service name: jnd-user-service

28
user-service/src/test/java/com/mh/user/SysUserTest.java

@ -32,19 +32,21 @@ public class SysUserTest {
private static final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) throws ParseException, IOException { public static void main(String[] args) throws ParseException, IOException {
String dateStr = ""; String s = String.valueOf(Math.abs(ExchangeStringUtil.hexToSingle("40AA5048")));
Date date = new Date(); System.out.println(s);
if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { // String dateStr = "";
dateStr = sdf1.format(date); // Date date = new Date();
dateStr = dateStr.substring(0, 17) + "00"; // if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) {
// dateStr = sdf1.format(date);
System.out.println("插入时间00" + dateStr); // dateStr = dateStr.substring(0, 17) + "00";
} else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) { //
dateStr = sdf1.format(date); // System.out.println("插入时间00" + dateStr);
dateStr = dateStr.substring(0, 17) + "30"; // } else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) {
// dateStr = sdf1.format(date);
System.out.println("插入时间30" + dateStr); // dateStr = dateStr.substring(0, 17) + "30";
} //
// System.out.println("插入时间30" + dateStr);
// }
// // 读取TXT文件中的HTML内容 // // 读取TXT文件中的HTML内容
// String htmlContent = readFile("C:/Users/MH/Desktop/getAir.txt"); // String htmlContent = readFile("C:/Users/MH/Desktop/getAir.txt");
// //

Loading…
Cancel
Save