feat: 增加定时任务触发热成像采集功能

dev
huangfeng 3 months ago
parent 026b71da94
commit 524937ea8d

@ -210,12 +210,6 @@
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>

@ -1,7 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.ThermalConfig;
import com.xydl.cac.model.Response;
import com.xydl.cac.model.ThermalConfigModel;
import com.xydl.cac.service.ThermalConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -22,14 +22,14 @@ public class ThermalConfigController extends BasicController {
@GetMapping("getConfig")
@ApiOperation("查询配置")
public Response<ThermalConfigModel> getConfig() {
ThermalConfigModel result = configService.getConfig();
public Response<ThermalConfig> getConfig() {
ThermalConfig result = configService.getConfig();
return Response.success(result);
}
@PostMapping("saveConfig")
@ApiOperation("修改配置")
public Response<String> saveConfig(@Validated @RequestBody ThermalConfigModel model) throws Exception {
public Response<String> saveConfig(@Validated @RequestBody ThermalConfig model) throws Exception {
configService.saveConfig(model);
return Response.success("OK");
}

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
@ -25,6 +26,7 @@ public class ThermalConfig {
@Column(name = "id")
private Integer id;
@NotNull(message = "typeId不能为空")
@Column(name = "type_id")
@ApiModelProperty("类型Id")
private Integer typeId;

@ -1,15 +0,0 @@
package com.xydl.cac.model;
import com.xydl.cac.entity.ThermalConfig;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ThermalConfigModel {
@NotNull(message = "typeId不能为空")
Integer typeId;
@NotNull(message = "list不能为空")
List<ThermalConfig> list;
}

@ -1,11 +1,11 @@
package com.xydl.cac.service;
import com.xydl.cac.model.ThermalConfigModel;
import com.xydl.cac.entity.ThermalConfig;
public interface ThermalConfigService {
ThermalConfigModel getConfig();
ThermalConfig getConfig();
void saveConfig(ThermalConfigModel model);
void saveConfig(ThermalConfig model);
}

@ -1,7 +1,6 @@
package com.xydl.cac.service.impl;
import com.xydl.cac.entity.ThermalConfig;
import com.xydl.cac.model.ThermalConfigModel;
import com.xydl.cac.repository.ThermalConfigRepository;
import com.xydl.cac.service.ThermalConfigService;
import lombok.extern.slf4j.Slf4j;
@ -21,23 +20,19 @@ public class ThermalConfigServiceImpl implements ThermalConfigService {
ThermalConfigRepository repository;
@Override
public ThermalConfigModel getConfig() {
ThermalConfigModel model = new ThermalConfigModel();
public ThermalConfig getConfig() {
ThermalConfig result = null;
List<ThermalConfig> list = repository.findAll();
if (!CollectionUtils.isEmpty(list)) {
model.setTypeId(list.get(0).getTypeId());
model.setList(list);
result = list.get(0);
}
return model;
return result;
}
@Override
public void saveConfig(ThermalConfigModel model) {
public void saveConfig(ThermalConfig model) {
repository.deleteAll();
for (ThermalConfig item : model.getList()) {
item.setId(null);
item.setTypeId(model.getTypeId());
repository.save(item);
}
model.setId(null);
repository.save(model);
}
}

@ -133,7 +133,7 @@ public class ZsbServiceImpl implements ZsbService {
public Zsb detail(Integer id) throws Exception {
Optional<Zsb> optional = repository.findById(id);
if (!optional.isPresent()) {
throw new BusinessException("未找到该主设备");
throw new BusinessException("未找到该主设备id=" + id);
}
Zsb zsb = optional.get();
Jg jg = jgService.detail(zsb.getJgid());

@ -1,9 +1,7 @@
package com.xydl.cac.task;
import com.xydl.cac.config.BizConfig;
import com.xydl.cac.entity.IcdIed;
import com.xydl.cac.entity.IedDlConfig;
import com.xydl.cac.entity.Rptparamindex;
import com.xydl.cac.entity.*;
import com.xydl.cac.iec.IEDCollectService;
import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService;
@ -52,4 +50,9 @@ public class AsyncTask {
warningRepository, spectrogramHandler);
iedService.collectAndSave(rptList, dlList);
}
@Async
public void collectSensor(NSensor sensor, ThermalConfig config) {
}
}

@ -0,0 +1,79 @@
package com.xydl.cac.task;
import com.xydl.cac.entity.ModevType;
import com.xydl.cac.entity.NSensor;
import com.xydl.cac.entity.ThermalConfig;
import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.service.ModevTypeService;
import com.xydl.cac.service.ThermalConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import java.util.Calendar;
import java.util.List;
@Service
@Slf4j
public class ClientThermalTask {
@Resource
ThermalConfigService configService;
@Resource
ModevTypeService modevTypeService;
@Resource
NSensorRepository sensorRepository;
@Resource
AsyncTask asyncTask;
int shutdown = 0;
@PreDestroy
private void preDestroy() {
shutdown = 1;
}
@Scheduled(cron = "0 * * * * ?")
public void collectAll() {
ThermalConfig config = configService.getConfig();
if (config == null) {
return;
}
try {
Calendar cal = Calendar.getInstance();
int h = cal.get(Calendar.HOUR_OF_DAY);
int m = cal.get(Calendar.MINUTE);
m = h * 60 + m;
ModevType modevType = modevTypeService.detail(config.getTypeId());
int intervals = 30;
if (modevType.getIntervals() != null) {
intervals = modevType.getIntervals();
}
int x = m % intervals;
if (x == 0) {
this.collectOneConfig(config, modevType);
}
} catch (Exception e) {
log.error("ClientThermalTask.collectAll error.", e);
}
}
private void collectOneConfig(ThermalConfig config, ModevType modevType) {
if (shutdown == 1) {
return;
}
List<NSensor> list = sensorRepository.findByTypeId(modevType.getId());
if (CollectionUtils.isEmpty(list)) {
return;
}
for (NSensor sensor : list) {
sensor.setTableName(modevType.getTablename());
asyncTask.collectSensor(sensor, config);
}
}
}

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<dynamic-lib>
<win64>
<lib>avnetsdk</lib>
<lib>dhconfigsdk</lib>
<lib>dhnetsdk</lib>
<lib>play</lib>
<lib>RenderEngine</lib>
<lib>ImageAlg</lib>
<lib>Infra</lib>
<lib>IvsDrawer</lib>
<lib>StreamConvertor</lib>
<lib>libeay32</lib>
<lib>ssleay32</lib>
</win64>
<win32>
<lib>avnetsdk</lib>
<lib>dhconfigsdk</lib>
<lib>dhnetsdk</lib>
<lib>play</lib>
<lib>RenderEngine</lib>
<lib>Infra</lib>
<lib>ImageAlg</lib>
<lib>StreamConvertor</lib>
<lib>libeay32</lib>
<lib>ssleay32</lib>
</win32>
<linux64>
<lib>avnetsdk</lib>
<lib>dhnetsdk</lib>
<lib>dhconfigsdk</lib>
<lib>StreamConvertor</lib>
<lib>ImageAlg</lib>
<lib>crypto</lib>
<lib>ssl</lib>
</linux64>
<linux32>
<lib>avnetsdk</lib>
<lib>dhconfigsdk</lib>
<lib>dhnetsdk</lib>
<lib>StreamConvertor</lib>
<lib>crypto</lib>
<lib>ssl</lib>
</linux32>
<mac64>
<lib>avnetsdk</lib>
<lib>dhnetsdk</lib>
<lib>dhconfigsdk</lib>
<lib>StreamConvertor</lib>
</mac64>
</dynamic-lib>
Loading…
Cancel
Save