diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 7c690a6..aa4e488 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -47,5 +47,9 @@ private String position; private String onlineState; private String onlineStateName; + + private String latestData; + private String latestTime; + private String wellId; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 7c690a6..aa4e488 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -47,5 +47,9 @@ private String position; private String onlineState; private String onlineStateName; + + private String latestData; + private String latestTime; + private String wellId; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java index 9bace18..efbbac5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java @@ -30,7 +30,7 @@ WellRelationDto getWellRelationDto(String devCode); - List selectList(); + List selectList(DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 7c690a6..aa4e488 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -47,5 +47,9 @@ private String position; private String onlineState; private String onlineStateName; + + private String latestData; + private String latestTime; + private String wellId; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java index 9bace18..efbbac5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java @@ -30,7 +30,7 @@ WellRelationDto getWellRelationDto(String devCode); - List selectList(); + List selectList(DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java index 0720b08..742369d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java @@ -17,4 +17,7 @@ String getLastVaule(String devCode); + String getLatestNoiseDateTime(String devCode); + Noise getLatestNoiseData(String devCode, String latestTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 7c690a6..aa4e488 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -47,5 +47,9 @@ private String position; private String onlineState; private String onlineStateName; + + private String latestData; + private String latestTime; + private String wellId; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java index 9bace18..efbbac5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java @@ -30,7 +30,7 @@ WellRelationDto getWellRelationDto(String devCode); - List selectList(); + List selectList(DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java index 0720b08..742369d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java @@ -17,4 +17,7 @@ String getLastVaule(String devCode); + String getLatestNoiseDateTime(String devCode); + Noise getLatestNoiseData(String devCode, String latestTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java index 88c9efa..921d225 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java @@ -204,7 +204,7 @@ } @Override - public List selectList() { - return this.baseMapper.selectList(); + public List selectList(DataScope dataScope) { + return this.baseMapper.selectList(dataScope); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java index 89a58da..710f96d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BaseDeviceModelsController.java @@ -40,7 +40,7 @@ private IBaseDeviceModelsService deviceModelsService; @ApiOperation("设备类型获取设备型号") - @PostMapping("/model") + @GetMapping("/model") public ReturnDTO> model(String deviceType) { //设备类型列表查询 QueryWrapper query = new QueryWrapper<>(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java index 2c420e7..3f0c56f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusDeviceController.java @@ -7,7 +7,6 @@ import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.common.annotion.Permission; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -22,14 +21,17 @@ import com.casic.missiles.modular.system.enums.DeviceExportHeadersEnum; import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.model.BusDevice; +import com.casic.missiles.modular.system.model.Noise; import com.casic.missiles.modular.system.service.IBusDeviceService; import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.INoiseService; import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,6 +40,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +63,8 @@ private IBusWellInfoService busWellInfoService; @Autowired private IBusDeviceService deviceService; + @Autowired + private INoiseService noiseService; @Resource private AbstractPermissionContext permissionService; @@ -73,6 +78,14 @@ List list = deviceService.selectDataScopePage(dataScope, page, "", "", deviceRequest.getBeginTime(), deviceRequest.getEndTime(), deviceRequest.getKeywords(), deviceRequest.getIsOnline()); list.forEach(deviceDto -> { deviceDto.setOnlineStateName(dictService.getDictNameByCode(ModularDictConst.ONLINESTATUS, deviceDto.getOnlineState())); + + // 查询最新数据和时间 + String latestTime = noiseService.getLatestNoiseDateTime(deviceDto.getDevcode()); + if (latestTime != null) { + Noise latest = noiseService.getLatestNoiseData(deviceDto.getDevcode(), latestTime); + deviceDto.setLatestData(latest.getDdata()); + deviceDto.setLatestTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(latest.getUptime())); + } }); page.setRecords(list); return ReturnUtil.success(super.packForBT(page)); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java index c31a32b..db262e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusWellInfoController.java @@ -219,7 +219,17 @@ @ApiOperation("获取点位下拉列表") @PostMapping("/selectList") public ReturnDTO> selectList() { - List list = iBusWellInfoService.selectList(); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + Set roleTipes = permissionService.getAuthService().getLoginUser().getRoleTips(); + if (roleTipes.contains("leader") || roleTipes.contains("member")) { + dataScope.setScopeName("responsible_dept"); + List responsibleDeptIds = new ArrayList<>(); + responsibleDeptIds.add(permissionService.getAuthService().getLoginUser().getDeptId()); + dataScope.setDeptIds(responsibleDeptIds); + } + + List list = iBusWellInfoService.selectList(dataScope); return ReturnUtil.success(list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java index 88402ef..0b690bd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/NoiseController.java @@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; @@ -16,10 +17,15 @@ import com.casic.missiles.modular.system.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.complex.Complex; +import org.apache.commons.math3.transform.DftNormalization; +import org.apache.commons.math3.transform.FastFourierTransformer; +import org.apache.commons.math3.transform.TransformType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -43,7 +49,7 @@ public ReturnDTO> list(@RequestBody NoiseRequest noiseRequest) { Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "pci", "rsrp", "snr"); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME", "LOGTIME", "DESCN", "pci", "rsrp", "snr"); queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); @@ -51,14 +57,27 @@ return ReturnUtil.success(super.packForBT(noiseService.page(page, queryWrapper))); } + @ApiOperation("不分页查询列表") + @PostMapping("/list-all") + public ReturnDTO> listAll(@RequestBody NoiseRequest noiseRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ID", "DEVCODE", "DDATA", "UPTIME"); + queryWrapper.like(ObjectUtil.isNotEmpty(noiseRequest.getKeywords()), "devcode", noiseRequest.getKeywords()); + queryWrapper.ge(ObjectUtil.isNotEmpty(noiseRequest.getBeginTime()), "UPTIME", noiseRequest.getBeginTime()); + queryWrapper.le(ObjectUtil.isNotEmpty(noiseRequest.getEndTime()), "UPTIME", noiseRequest.getEndTime()); + queryWrapper.orderByDesc("UPTIME"); + return ReturnUtil.success(noiseService.list(queryWrapper)); + } + @ApiOperation("根据id查询3750个点数据") @PostMapping("/detail") - public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { + public ReturnDTO detail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Noise noise = noiseService.getById(idDTO.getId()); - return ReturnUtil.success(noise != null ? noise.getRawData() : ""); + + return ReturnUtil.success(noise); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java index 845fff9..cdd8b06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusWellInfoMapper.java @@ -44,7 +44,7 @@ List getWellRelationDto( @Param("devCode") String devCode); @Select("SELECT id as value, bi.WELL_CODE as name from bus_well_info bi where bi.VALID=1 order by 1 desc") - List selectList(); + List selectList(@Param("scope") DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java index c16bfe3..e74bc19 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/NoiseMapper.java @@ -4,6 +4,7 @@ import com.casic.missiles.modular.system.dto.DeviceSelectDto; import com.casic.missiles.modular.system.model.Noise; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,4 +20,8 @@ public interface NoiseMapper extends BaseMapper { @Select("SELECT DDATA FROM `data_noise` where DEVCODE= #{devCode} order by UPTIME desc limit 1") String getLastVaule(@Param("devCode") String devCode); + + String findLatestTimeByDevCode(@Param("devCode") String devCode); + Noise selectLatestByDevCode(@Param("devCode") String devCode, + @Param("latestTime") String latestTime); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml index 8f935fb..a56e0f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/NoiseMapper.xml @@ -12,9 +12,47 @@ + + DATE_FORMAT(${paramDate},'%Y-%m-%d') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + TO_CHAR(${paramDate},'yyyy-mm-dd') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-mm-dd hh24:mi:ss') + + - ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn + ID AS id, DEVCODE AS devcode, DDATA AS ddata, UPTIME AS uptime, LOGTIME AS logtime, DESCN AS descn, PCI AS pci, RSRP AS rsrp, SNR AS snr + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 7c690a6..aa4e488 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -47,5 +47,9 @@ private String position; private String onlineState; private String onlineStateName; + + private String latestData; + private String latestTime; + private String wellId; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java index 9bace18..efbbac5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoService.java @@ -30,7 +30,7 @@ WellRelationDto getWellRelationDto(String devCode); - List selectList(); + List selectList(DataScope dataScope); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java index 0720b08..742369d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/INoiseService.java @@ -17,4 +17,7 @@ String getLastVaule(String devCode); + String getLatestNoiseDateTime(String devCode); + Noise getLatestNoiseData(String devCode, String latestTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java index 88c9efa..921d225 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java @@ -204,7 +204,7 @@ } @Override - public List selectList() { - return this.baseMapper.selectList(); + public List selectList(DataScope dataScope) { + return this.baseMapper.selectList(dataScope); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/NoiseServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/NoiseServiceImpl.java index 0282bd0..52e0aff 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/NoiseServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/NoiseServiceImpl.java @@ -109,4 +109,14 @@ String temp = "{\"mType\":\"Event\",\"devType\":\"Noise\",\"devCode\":" + devCode + ",\"mBody\":{\"eventType\":[\"NoiseDataAlarm:" + val + "\"],\"logTime\":" + upTime + ",\"bType\":\"NoiseEvent\"},\"ts\":" + System.currentTimeMillis() + "}"; kafkaTemplate.send("noise_data", temp); } + + @Override + public Noise getLatestNoiseData(String devCode, String latestTime) { + return this.baseMapper.selectLatestByDevCode(devCode, latestTime); + } + + @Override + public String getLatestNoiseDateTime(String devCode) { + return this.baseMapper.findLatestTimeByDevCode(devCode); + } }