diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index e6ffc63..ab066df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.common.exception.BizExceptionEnum; +import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; /** @@ -100,5 +105,39 @@ return otherConvert.apply(dto); } + /** + * 导入映射 + */ + public static final Map importMppers = new HashMap<>(12); + static { + importMppers.put("设备编号", "deviceNo"); + importMppers.put("参数编码", "sensor"); + //需要转换 + importMppers.put("报警阈值", "alarmThreshold"); + + importMppers.put("报警开关", "alarmOpen"); + } + + /** + * 阈值导入数据校验 + * + * @param sensors 参数编码集合 + * @param deviceCountFunc 设备校验 + */ + public void changeImportData(List sensors, Function deviceCountFunc, Function hasOperator) { + // 校验设备编码是否存在 + if (deviceCountFunc.apply(this.getDeviceNo()) == 0) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getDeviceNo() + " 该设备编号不存在"); + throw msg; + } + // 校验参数编码是否存在 + if (!sensors.stream().anyMatch(sensorObj -> sensorObj.getSensor().equals(this.getSensor()))) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getSensor() + " 该参数编码不存在"); + throw msg; + } + hasOperator.apply(this); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index e6ffc63..ab066df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.common.exception.BizExceptionEnum; +import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; /** @@ -100,5 +105,39 @@ return otherConvert.apply(dto); } + /** + * 导入映射 + */ + public static final Map importMppers = new HashMap<>(12); + static { + importMppers.put("设备编号", "deviceNo"); + importMppers.put("参数编码", "sensor"); + //需要转换 + importMppers.put("报警阈值", "alarmThreshold"); + + importMppers.put("报警开关", "alarmOpen"); + } + + /** + * 阈值导入数据校验 + * + * @param sensors 参数编码集合 + * @param deviceCountFunc 设备校验 + */ + public void changeImportData(List sensors, Function deviceCountFunc, Function hasOperator) { + // 校验设备编码是否存在 + if (deviceCountFunc.apply(this.getDeviceNo()) == 0) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getDeviceNo() + " 该设备编号不存在"); + throw msg; + } + // 校验参数编码是否存在 + if (!sensors.stream().anyMatch(sensorObj -> sensorObj.getSensor().equals(this.getSensor()))) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getSensor() + " 该参数编码不存在"); + throw msg; + } + hasOperator.apply(this); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index 2ded9cb..2927fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -30,7 +30,7 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 设备编号 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index e6ffc63..ab066df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.common.exception.BizExceptionEnum; +import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; /** @@ -100,5 +105,39 @@ return otherConvert.apply(dto); } + /** + * 导入映射 + */ + public static final Map importMppers = new HashMap<>(12); + static { + importMppers.put("设备编号", "deviceNo"); + importMppers.put("参数编码", "sensor"); + //需要转换 + importMppers.put("报警阈值", "alarmThreshold"); + + importMppers.put("报警开关", "alarmOpen"); + } + + /** + * 阈值导入数据校验 + * + * @param sensors 参数编码集合 + * @param deviceCountFunc 设备校验 + */ + public void changeImportData(List sensors, Function deviceCountFunc, Function hasOperator) { + // 校验设备编码是否存在 + if (deviceCountFunc.apply(this.getDeviceNo()) == 0) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getDeviceNo() + " 该设备编号不存在"); + throw msg; + } + // 校验参数编码是否存在 + if (!sensors.stream().anyMatch(sensorObj -> sensorObj.getSensor().equals(this.getSensor()))) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getSensor() + " 该参数编码不存在"); + throw msg; + } + hasOperator.apply(this); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index 2ded9cb..2927fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -30,7 +30,7 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 设备编号 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java index 1faf422..89755df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.system.service; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.casic.missiles.modular.system.model.BizAlarmRule; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.BizAlarmRule; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -20,14 +20,23 @@ /** * 删除阈值告警信息 + * * @param ids 主键集合 */ void deleteBatchRuleIds(List ids); /** * 根据设备查询告警阈值列表 + * * @param vo 检索条件 * @return 告警阈值列表 */ List selectListByDevice(AlarmRuleVO vo); + + /** + * 告警规则导入 + * + * @param file 导入文件 + */ + void importRules(MultipartFile file); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index e6ffc63..ab066df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.common.exception.BizExceptionEnum; +import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; /** @@ -100,5 +105,39 @@ return otherConvert.apply(dto); } + /** + * 导入映射 + */ + public static final Map importMppers = new HashMap<>(12); + static { + importMppers.put("设备编号", "deviceNo"); + importMppers.put("参数编码", "sensor"); + //需要转换 + importMppers.put("报警阈值", "alarmThreshold"); + + importMppers.put("报警开关", "alarmOpen"); + } + + /** + * 阈值导入数据校验 + * + * @param sensors 参数编码集合 + * @param deviceCountFunc 设备校验 + */ + public void changeImportData(List sensors, Function deviceCountFunc, Function hasOperator) { + // 校验设备编码是否存在 + if (deviceCountFunc.apply(this.getDeviceNo()) == 0) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getDeviceNo() + " 该设备编号不存在"); + throw msg; + } + // 校验参数编码是否存在 + if (!sensors.stream().anyMatch(sensorObj -> sensorObj.getSensor().equals(this.getSensor()))) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getSensor() + " 该参数编码不存在"); + throw msg; + } + hasOperator.apply(this); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index 2ded9cb..2927fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -30,7 +30,7 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 设备编号 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java index 1faf422..89755df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.system.service; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.casic.missiles.modular.system.model.BizAlarmRule; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.BizAlarmRule; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -20,14 +20,23 @@ /** * 删除阈值告警信息 + * * @param ids 主键集合 */ void deleteBatchRuleIds(List ids); /** * 根据设备查询告警阈值列表 + * * @param vo 检索条件 * @return 告警阈值列表 */ List selectListByDevice(AlarmRuleVO vo); + + /** + * 告警规则导入 + * + * @param file 导入文件 + */ + void importRules(MultipartFile file); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java index 28f0b95..5def5bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.BizAlarmRuleMapper; import com.casic.missiles.modular.system.model.BizAlarmRule; import com.casic.missiles.modular.system.model.BizSensor; @@ -8,11 +12,17 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import com.casic.missiles.modular.system.service.IBizSensorService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -24,10 +34,16 @@ * @author gwq123 * @since 2021-07-26 */ +@Slf4j @Service public class BizAlarmRuleServiceImpl extends ServiceImpl implements IBizAlarmRuleService { - @Autowired - private IBizSensorService sensorService; + private final IBizSensorService sensorService; + private final IDeviceService deviceService; + + public BizAlarmRuleServiceImpl(IBizSensorService sensorService, IDeviceService deviceService) { + this.sensorService = sensorService; + this.deviceService = deviceService; + } @Transactional(rollbackFor = Exception.class) @Override @@ -72,4 +88,50 @@ }).collect(Collectors.toList()); } + @SneakyThrows + @Override + public void importRules(MultipartFile file) { + //获取字典数据 + List sensors = sensorService.selectList(null); + List results = new ArrayList(); + try (InputStream in = file.getInputStream()) { + ExcelIO.read(in, BizAlarmRule.importMppers, BizAlarmRule.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + BizAlarmRule alarmRule = row.getResult(); + alarmRule.setDelFlag("0"); + alarmRule.setTs(new Date()); + if (ToolUtil.isEmpty(alarmRule.getDeviceNo())) { + return; + } + + //数据校验及重复修改设置 + alarmRule.changeImportData(sensors, (deviceNo) -> { + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("del_flag", 0); + deviceQuery.eq("device_no", deviceNo); + return deviceService.selectCount(deviceQuery); + }, (alarmRuleObj) -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag", 0); + query.eq("device_no", alarmRuleObj.getDeviceNo()); + query.eq("sensor", alarmRuleObj.getSensor()); + BizAlarmRule ruleRes = this.selectOne(query); + if (ruleRes != null) { + alarmRuleObj.setId(ruleRes.getId()); + } + return alarmRuleObj; + }); + results.add(alarmRule); + } + } else { + log.info("当前sheet" + row.getSheet() + ",停止读取"); + row.shutdown(); + } + }); + } + this.insertOrUpdateBatch(results); + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index b662774..a7e69cb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -12,6 +12,8 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.model.vo.DeviceVO; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.BizMiniteData; +import com.casic.missiles.modular.system.service.IBizMiniteDataService; import com.casic.missiles.modular.util.DuplicateKeyUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -34,14 +36,17 @@ public class DeviceController extends ExportController { private final IDeviceService deviceService; + private final IBizMiniteDataService dataService; /** * 设备应用构造 * * @param deviceService 设备服务 + * @param dataService */ - public DeviceController(IDeviceService deviceService) { + public DeviceController(IDeviceService deviceService, IBizMiniteDataService dataService) { this.deviceService = deviceService; + this.dataService = dataService; } @@ -170,4 +175,23 @@ } return ResponseData.success(deviceService.selectById(id)); } + + + /** + * 查询设备数据 + * + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/data") + public Object data(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + + return ResponseData.success(deviceService.selectDeviceDataById(id, (deviceNo) -> { + Long dataId = dataService.selectRealMiniteData(deviceNo, null); + return dataId == null ? new BizMiniteData() : dataService.selectById(id); + })); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java new file mode 100644 index 0000000..37acc6a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/exception/DeviceExceptionEnum.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.exception; + +import com.casic.missiles.core.exception.ServiceExceptionEnum; + +/** + * 设备异常枚举 + * @author lwh + */ +public enum DeviceExceptionEnum implements ServiceExceptionEnum { + /** + * 设备异常 + */ + RULE_IMPORT_NO_ERROR(500, "设备阈值导入异常"); + + DeviceExceptionEnum(int code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java index 8f857ad..5f6d4c9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -145,6 +145,9 @@ return this.id; } + /** + * 导入映射 + */ public static final Map importMppers = new HashMap<>(12); static { @@ -185,7 +188,7 @@ if (ToolUtil.isNotEmpty(lat)) { lat = format.format(new BigDecimal(lat)); } - if(ToolUtil.isNotEmpty(installDateFmt)){ + if (ToolUtil.isNotEmpty(installDateFmt)) { installDate = DateUtil.parseDate(installDateFmt); } //导入数据转换操作 设备类型转换为 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 332c1d7..8464138 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.modular.device.model.dto.DeviceDTO; -import com.casic.missiles.modular.device.model.Device; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.system.model.BizMiniteData; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.List; +import java.util.function.Function; /** *

@@ -47,14 +49,26 @@ /** * 批量删除设备 + * * @param ids 设备主键集合 */ void deleteBatchByDeviceIds(List ids); /** - * 批量导入设备 + * 批量导入设备 + * * @param file 上传设备附件 * @return 导入结果 */ ResponseData importDevices(MultipartFile file); + + + /** + * 根据设备主键查询设备数据 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return 设备实时数据 + */ + BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 44b8596..b1dd518 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -14,6 +14,7 @@ import com.casic.missiles.modular.device.model.dto.DeviceDTO; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.model.Area; +import com.casic.missiles.modular.system.model.BizMiniteData; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.Dict; import lombok.SneakyThrows; @@ -145,6 +146,23 @@ } /** + * 查询设备数据详情 + * + * @param id 设备主键 + * @param searchDataFunction 获取数据方法 + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public BizMiniteData selectDeviceDataById(Long id, Function searchDataFunction) { + Device device = this.selectById(id); + BizMiniteData bizMiniteData = searchDataFunction.apply(device.getDeviceNo()); + bizMiniteData.setId(device.getId()); + bizMiniteData.setDeviceNo(device.getDeviceNo()); + return bizMiniteData; + } + + /** * 服务数据转换 * * @return 服务转换操作 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java index bfe5005..487a4b6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizAlarmRuleController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -84,4 +85,16 @@ bizAlarmRuleService.updateById(bizAlarmRule); return ResponseData.success(); } + + /** + * 设备导入接口 + * + * @param file 文件流程 + * @return + */ + @PostMapping(value = "/import") + public Object importRules(@RequestParam("file") MultipartFile file) { + bizAlarmRuleService.importRules(file); + return ResponseData.success(); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index e6ffc63..ab066df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.common.exception.BizExceptionEnum; +import com.casic.missiles.core.exception.GunsException; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; /** @@ -100,5 +105,39 @@ return otherConvert.apply(dto); } + /** + * 导入映射 + */ + public static final Map importMppers = new HashMap<>(12); + static { + importMppers.put("设备编号", "deviceNo"); + importMppers.put("参数编码", "sensor"); + //需要转换 + importMppers.put("报警阈值", "alarmThreshold"); + + importMppers.put("报警开关", "alarmOpen"); + } + + /** + * 阈值导入数据校验 + * + * @param sensors 参数编码集合 + * @param deviceCountFunc 设备校验 + */ + public void changeImportData(List sensors, Function deviceCountFunc, Function hasOperator) { + // 校验设备编码是否存在 + if (deviceCountFunc.apply(this.getDeviceNo()) == 0) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getDeviceNo() + " 该设备编号不存在"); + throw msg; + } + // 校验参数编码是否存在 + if (!sensors.stream().anyMatch(sensorObj -> sensorObj.getSensor().equals(this.getSensor()))) { + GunsException msg = new GunsException(BizExceptionEnum.SERVER_ERROR); + msg.setMessage(this.getSensor() + " 该参数编码不存在"); + throw msg; + } + hasOperator.apply(this); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index 2ded9cb..2927fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -30,7 +30,7 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 设备编号 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java index 1faf422..89755df 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizAlarmRuleService.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.system.service; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.casic.missiles.modular.system.model.BizAlarmRule; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.BizAlarmRule; import com.casic.missiles.modular.system.model.dto.AlarmRuleDTO; import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -20,14 +20,23 @@ /** * 删除阈值告警信息 + * * @param ids 主键集合 */ void deleteBatchRuleIds(List ids); /** * 根据设备查询告警阈值列表 + * * @param vo 检索条件 * @return 告警阈值列表 */ List selectListByDevice(AlarmRuleVO vo); + + /** + * 告警规则导入 + * + * @param file 导入文件 + */ + void importRules(MultipartFile file); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java index 28f0b95..5def5bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizAlarmRuleServiceImpl.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.BizAlarmRuleMapper; import com.casic.missiles.modular.system.model.BizAlarmRule; import com.casic.missiles.modular.system.model.BizSensor; @@ -8,11 +12,17 @@ import com.casic.missiles.modular.system.model.vo.AlarmRuleVO; import com.casic.missiles.modular.system.service.IBizAlarmRuleService; import com.casic.missiles.modular.system.service.IBizSensorService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -24,10 +34,16 @@ * @author gwq123 * @since 2021-07-26 */ +@Slf4j @Service public class BizAlarmRuleServiceImpl extends ServiceImpl implements IBizAlarmRuleService { - @Autowired - private IBizSensorService sensorService; + private final IBizSensorService sensorService; + private final IDeviceService deviceService; + + public BizAlarmRuleServiceImpl(IBizSensorService sensorService, IDeviceService deviceService) { + this.sensorService = sensorService; + this.deviceService = deviceService; + } @Transactional(rollbackFor = Exception.class) @Override @@ -72,4 +88,50 @@ }).collect(Collectors.toList()); } + @SneakyThrows + @Override + public void importRules(MultipartFile file) { + //获取字典数据 + List sensors = sensorService.selectList(null); + List results = new ArrayList(); + try (InputStream in = file.getInputStream()) { + ExcelIO.read(in, BizAlarmRule.importMppers, BizAlarmRule.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + BizAlarmRule alarmRule = row.getResult(); + alarmRule.setDelFlag("0"); + alarmRule.setTs(new Date()); + if (ToolUtil.isEmpty(alarmRule.getDeviceNo())) { + return; + } + + //数据校验及重复修改设置 + alarmRule.changeImportData(sensors, (deviceNo) -> { + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("del_flag", 0); + deviceQuery.eq("device_no", deviceNo); + return deviceService.selectCount(deviceQuery); + }, (alarmRuleObj) -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag", 0); + query.eq("device_no", alarmRuleObj.getDeviceNo()); + query.eq("sensor", alarmRuleObj.getSensor()); + BizAlarmRule ruleRes = this.selectOne(query); + if (ruleRes != null) { + alarmRuleObj.setId(ruleRes.getId()); + } + return alarmRuleObj; + }); + results.add(alarmRule); + } + } else { + log.info("当前sheet" + row.getSheet() + ",停止读取"); + row.shutdown(); + } + }); + } + this.insertOrUpdateBatch(results); + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizMiniteDataServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizMiniteDataServiceImpl.java index dfcaaa0..d588d4b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizMiniteDataServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizMiniteDataServiceImpl.java @@ -33,7 +33,7 @@ @Transactional(rollbackFor = Exception.class) @Override public List selectRealPage(Page page, EntityWrapper query) { - List devices = deviceService.selectPage(page, null).getRecords(); + List devices = deviceService.selectPage(page, query).getRecords(); return devices.stream().map(device -> { EntityWrapper bizMiniteDataQuery = new EntityWrapper<>(); Long maxId = this.selectRealMiniteData(device.getDeviceNo(), bizMiniteDataQuery);