From 3b29244703787dda85386167dca4126b5b0f150c Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 16 Jul 2021 13:58:34 +0800
Subject: [PATCH] screen-api 添加查询五分钟数据接口以及查询国控站位置接口
---
screen-api/src/main/java/com/moral/api/controller/HistoryFiveMinutelyController.java | 54 +++++
screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/StateControllerStationVO.java | 36 +++
screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java | 28 ++
screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java | 72 +++++++
screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java | 2
screen-api/src/main/java/com/moral/api/controller/TestController.java | 15 +
screen-api/src/main/java/com/moral/api/config/mybatis/MybatisPlusConfig.java | 35 +++
screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java | 14 +
screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java | 14 +
pom.xml | 2
screen-api/src/main/java/com/moral/api/mapper/HistoryFiveMinutelyMapper.java | 16 +
screen-api/src/main/java/com/moral/api/service/MonitorPointService.java | 11 +
screen-api/src/main/java/com/moral/api/service/OrganizationService.java | 9
screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | 9
screen-api/src/main/java/com/moral/api/entity/HistoryFiveMinutely.java | 41 ++++
screen-api/src/main/java/com/moral/api/controller/DeviceController.java | 4
screen-api/src/main/resources/mapper/HistoryFiveMinutely202107Mapper.xml | 12 +
screen-api/src/main/java/com/moral/api/pojo/dto/historyFiveMinutely/DeviceAndFiveMinuteDataDTO.java | 29 ++
screen-api/src/main/java/com/moral/api/pojo/form/historyFiveMinutely/QueryDeviceAndFiveMinuteDataForm.java | 29 ++
screen-api/src/main/java/com/moral/api/pojo/vo/historyFiveMinutely/DeviceAndFiveMinuteDataVO.java | 41 ++++
screen-api/src/main/resources/application-local.yml | 120 ++++++++++++
21 files changed, 583 insertions(+), 10 deletions(-)
diff --git a/pom.xml b/pom.xml
index a285bb3..b26d234 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
<maven-shared-incremental.version>1.1</maven-shared-incremental.version>
<spring-web.version>4.1.6.RELEASE</spring-web.version>
<com.alibaba.druid.version>1.1.5</com.alibaba.druid.version>
- <org.mybatis-plus.spring.boot.version>3.4.1</org.mybatis-plus.spring.boot.version>
+ <org.mybatis-plus.spring.boot.version>3.4.3.1</org.mybatis-plus.spring.boot.version>
<org.projectlombok.version>1.16.18</org.projectlombok.version>
<io.springfox.version>2.7.0</io.springfox.version>
<swagger-bootstrap-ui.version>1.9.6</swagger-bootstrap-ui.version>
diff --git a/screen-api/src/main/java/com/moral/api/config/mybatis/MybatisPlusConfig.java b/screen-api/src/main/java/com/moral/api/config/mybatis/MybatisPlusConfig.java
index 4a253f7..8b810d5 100644
--- a/screen-api/src/main/java/com/moral/api/config/mybatis/MybatisPlusConfig.java
+++ b/screen-api/src/main/java/com/moral/api/config/mybatis/MybatisPlusConfig.java
@@ -1,9 +1,18 @@
package com.moral.api.config.mybatis;
+import com.baomidou.mybatisplus.core.parser.ISqlParser;
+import com.baomidou.mybatisplus.extension.parsers.DynamicTableNameParser;
+import com.baomidou.mybatisplus.extension.parsers.ITableNameHandler;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
+import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
+import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import java.text.SimpleDateFormat;
+import java.util.*;
@Configuration
@@ -14,8 +23,30 @@
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
- PaginationInterceptor page = new PaginationInterceptor();
- return page;
+ PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
+ return paginationInterceptor;
+ }
+
+ /**
+ * @Description: ������������������
+ * @Param: []
+ * @return: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
+ * @Author: ���������
+ * @Date: 2021/7/15
+ */
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor(){
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
+ HashMap<String, TableNameHandler> map = new HashMap<String, TableNameHandler>();
+ map.put("history_five_minutely",(sql,tableName)->{ Date date = new Date();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
+ String month = sdf.format(date);
+ return tableName+"_"+month;});
+
+ dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);
+ interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
+ return interceptor;
}
diff --git a/screen-api/src/main/java/com/moral/api/controller/DeviceController.java b/screen-api/src/main/java/com/moral/api/controller/DeviceController.java
index 8e38326..0e277e7 100644
--- a/screen-api/src/main/java/com/moral/api/controller/DeviceController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/DeviceController.java
@@ -39,9 +39,5 @@
return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), vo);
}
- @GetMapping("queryFiveMinuteData")
- public ResultMessage queryFiveMinuteData(Integer regionCode,String sensorCode){
- return null;
- }
}
diff --git a/screen-api/src/main/java/com/moral/api/controller/HistoryFiveMinutelyController.java b/screen-api/src/main/java/com/moral/api/controller/HistoryFiveMinutelyController.java
new file mode 100644
index 0000000..c11637f
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/HistoryFiveMinutelyController.java
@@ -0,0 +1,54 @@
+package com.moral.api.controller;
+
+import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO;
+import com.moral.api.pojo.form.historyFiveMinutely.QueryDeviceAndFiveMinuteDataForm;
+import com.moral.api.pojo.vo.historyFiveMinutely.DeviceAndFiveMinuteDataVO;
+import com.moral.api.service.HistoryFiveMinutelyService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @ClassName HistoryFiveMinutely
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/7/15 16:42
+ * @Version TODO
+ **/
+
+@Slf4j
+@Api(tags = {"������������������������"})
+@RestController
+@CrossOrigin(origins = "*", maxAge = 3600)
+@RequestMapping("/historyFiveMinutely")
+public class HistoryFiveMinutelyController {
+
+ @Autowired
+ HistoryFiveMinutelyService historyFiveMinutelyService;
+
+ @GetMapping("queryDeviceAndData")
+ public ResultMessage queryDeviceAndData(QueryDeviceAndFiveMinuteDataForm form){
+ //18 110100
+ //������������������������
+ if (!form.valid())
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ //������������������
+ List<DeviceAndFiveMinuteDataDTO> dto = historyFiveMinutelyService.queryDeviceAndFiveMinuteData(form);
+
+ //������������������
+ DeviceAndFiveMinuteDataVO vo = DeviceAndFiveMinuteDataVO.convert(dto);
+
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), vo);
+ }
+}
+
+
diff --git a/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
index 8eb74e9..ce0faaa 100644
--- a/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
@@ -3,6 +3,7 @@
import com.moral.api.entity.MonitorPoint;
import com.moral.api.pojo.form.device.MonitorPointQueryForm;
import com.moral.api.pojo.vo.monitorPoint.MonitorPointsVO;
+import com.moral.api.pojo.vo.monitorPoint.StateControllerStationVO;
import com.moral.api.service.MonitorPointService;
import com.moral.api.service.OrganizationService;
import com.moral.constant.ResponseCodeEnum;
@@ -41,7 +42,7 @@
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
//������������������
- List<MonitorPoint> monitorPoints = monitorPointService.query(form);
+ List<MonitorPoint> monitorPoints = monitorPointService.queryByOrgIdAndRegionCode(form);
//������������������
MonitorPointsVO vo = MonitorPointsVO.convert(monitorPoints);
@@ -49,5 +50,16 @@
return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), vo);
}
+ @GetMapping("queryStateControlStation")
+ public ResultMessage queryStateControlStation(Integer regionCode){
+
+ List<MonitorPoint> monitorPoints = monitorPointService.queryStateControlStationByRegionCode(regionCode);
+
+ //������������������������
+ StateControllerStationVO vo = StateControllerStationVO.convert(monitorPoints);
+
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
+ }
+
}
diff --git a/screen-api/src/main/java/com/moral/api/controller/TestController.java b/screen-api/src/main/java/com/moral/api/controller/TestController.java
index 9c5d2ab..47dfffb 100644
--- a/screen-api/src/main/java/com/moral/api/controller/TestController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/TestController.java
@@ -1,8 +1,12 @@
package com.moral.api.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.entity.HistoryFiveMinutely;
import com.moral.api.entity.Test;
+import com.moral.api.mapper.HistoryFiveMinutelyMapper;
import com.moral.api.service.TestService;
+import com.moral.constant.Constants;
import com.moral.constant.ResultMessage;
import com.moral.redis.RedisUtil;
import com.moral.util.PageResult;
@@ -11,6 +15,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
@Slf4j
@@ -24,6 +30,9 @@
@Autowired
private TestService testService;
+
+ @Autowired
+ private HistoryFiveMinutelyMapper historyFiveMinutelyMapper;
/**
* name ������
* email ������
@@ -96,4 +105,10 @@
kafkaTemplate.send("test_topic","test111111111111111");
}
+ @GetMapping("test")
+ public void test(){
+ QueryWrapper<HistoryFiveMinutely> queryWrapper = new QueryWrapper<>();
+ List<HistoryFiveMinutely> historyFiveMinutelies = historyFiveMinutelyMapper.selectList(queryWrapper);
+ System.out.println(1111);
+ }
}
diff --git a/screen-api/src/main/java/com/moral/api/entity/HistoryFiveMinutely.java b/screen-api/src/main/java/com/moral/api/entity/HistoryFiveMinutely.java
new file mode 100644
index 0000000..4117963
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/HistoryFiveMinutely.java
@@ -0,0 +1,41 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 5���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HistoryFiveMinutely extends Model<HistoryFiveMinutely> {
+
+
+ /**
+ * ������mac
+ */
+ private String mac;
+
+ /**
+ * ������������
+ */
+ private Date time;
+
+ /**
+ * ������
+ */
+ private String value;
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistoryFiveMinutelyMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistoryFiveMinutelyMapper.java
new file mode 100644
index 0000000..cd5aec7
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/HistoryFiveMinutelyMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.HistoryFiveMinutely;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 5��������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-15
+ */
+public interface HistoryFiveMinutelyMapper extends BaseMapper<HistoryFiveMinutely> {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/historyFiveMinutely/DeviceAndFiveMinuteDataDTO.java b/screen-api/src/main/java/com/moral/api/pojo/dto/historyFiveMinutely/DeviceAndFiveMinuteDataDTO.java
new file mode 100644
index 0000000..46f4c12
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/dto/historyFiveMinutely/DeviceAndFiveMinuteDataDTO.java
@@ -0,0 +1,29 @@
+package com.moral.api.pojo.dto.historyFiveMinutely;
+
+import com.moral.api.entity.Device;
+import com.moral.api.entity.HistoryFiveMinutely;
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @ClassName DeviceAndFiveMinuteDataDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/7/16 9:24
+ * @Version TODO
+ **/
+@Data
+public class DeviceAndFiveMinuteDataDTO {
+
+ /*
+ * ������������
+ * */
+ private Device device;
+
+ /*
+ * ������������������
+ * */
+ private Map<String,Object> sensorValue;
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java
index 2ae2790..0214317 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java
@@ -1,5 +1,6 @@
package com.moral.api.pojo.form.device;
+import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -11,6 +12,7 @@
* @Version TODO
**/
@Data
+@AllArgsConstructor
public class MonitorPointQueryForm {
/*
* ������id
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/historyFiveMinutely/QueryDeviceAndFiveMinuteDataForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/historyFiveMinutely/QueryDeviceAndFiveMinuteDataForm.java
new file mode 100644
index 0000000..6ca5be0
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/historyFiveMinutely/QueryDeviceAndFiveMinuteDataForm.java
@@ -0,0 +1,29 @@
+package com.moral.api.pojo.form.historyFiveMinutely;
+
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @ClassName QueryFiveMinuteData
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/7/15 16:46
+ * @Version TODO
+ **/
+@Data
+public class QueryDeviceAndFiveMinuteDataForm {
+
+ private Integer organizationId;
+
+ private Integer regionCode;
+
+ private String sensorCode;
+
+ public boolean valid(){
+ if(ObjectUtils.isEmpty(organizationId)||
+ ObjectUtils.isEmpty(regionCode)||
+ ObjectUtils.isEmpty(sensorCode))
+ return false;
+ return true;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/historyFiveMinutely/DeviceAndFiveMinuteDataVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/historyFiveMinutely/DeviceAndFiveMinuteDataVO.java
new file mode 100644
index 0000000..abe5093
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/historyFiveMinutely/DeviceAndFiveMinuteDataVO.java
@@ -0,0 +1,41 @@
+package com.moral.api.pojo.vo.historyFiveMinutely;
+
+import com.moral.api.entity.Device;
+import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName DeviceAndFiveMinuteDataVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/7/16 11:17
+ * @Version TODO
+ **/
+@Data
+@AllArgsConstructor
+public class DeviceAndFiveMinuteDataVO {
+
+ private List<Map<String, Object>> devices;
+
+ public static DeviceAndFiveMinuteDataVO convert(List<DeviceAndFiveMinuteDataDTO> dtos) {
+ List<Map<String, Object>> devices = new ArrayList<>();
+ for (DeviceAndFiveMinuteDataDTO dto : dtos) {
+ Device device = dto.getDevice();
+ Map<String, Object> sensorValue = dto.getSensorValue();
+ Map<String, Object> deviceValue = new HashMap<>();
+ deviceValue.put("latitude",device.getLatitude());
+ deviceValue.put("longitude",device.getLongitude());
+ deviceValue.put("state",device.getState());
+ deviceValue.put("mac",device.getMac());
+ deviceValue.putAll(sensorValue);
+ devices.add(deviceValue);
+ }
+ return new DeviceAndFiveMinuteDataVO(devices);
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/StateControllerStationVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/StateControllerStationVO.java
new file mode 100644
index 0000000..ecb5dd5
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/StateControllerStationVO.java
@@ -0,0 +1,36 @@
+package com.moral.api.pojo.vo.monitorPoint;
+
+import com.moral.api.entity.Device;
+import com.moral.api.entity.MonitorPoint;
+import com.moral.api.pojo.vo.device.DeviceVO;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName StateControllerStationVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/7/16 13:52
+ * @Version TODO
+ **/
+@Data
+public class StateControllerStationVO {
+
+ private List<MonitorPointVO> stateControllerStations;
+
+ public static StateControllerStationVO convert(List<MonitorPoint> monitorPoints){
+ StateControllerStationVO stateControllerStationVO = new StateControllerStationVO();
+ List<MonitorPointVO> stateControllerStations = new ArrayList<>();
+ for (MonitorPoint monitorPoint : monitorPoints) {
+ MonitorPointVO monitorPointVO = new MonitorPointVO();
+ monitorPointVO.setName(monitorPoint.getName());
+ monitorPointVO.setLatitude(monitorPoint.getLatitude());
+ monitorPointVO.setLongitude(monitorPoint.getLongitude());
+ stateControllerStations.add(monitorPointVO);
+ }
+ stateControllerStationVO.setStateControllerStations(stateControllerStations);
+ return stateControllerStationVO;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java b/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java
new file mode 100644
index 0000000..58e3e02
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java
@@ -0,0 +1,28 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.HistoryFiveMinutely;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO;
+import com.moral.api.pojo.form.historyFiveMinutely.QueryDeviceAndFiveMinuteDataForm;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 5��������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-15
+ */
+public interface HistoryFiveMinutelyService extends IService<HistoryFiveMinutely> {
+
+ /**
+ * @Description: ���������������������������������������������������������������������
+ * @Param: [form]
+ * @return: java.util.List<com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO>
+ * @Author: ���������
+ * @Date: 2021/7/16
+ */
+ List<DeviceAndFiveMinuteDataDTO> queryDeviceAndFiveMinuteData(QueryDeviceAndFiveMinuteDataForm form);
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java b/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java
index 0a2b9ef..dd7cc79 100644
--- a/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java
+++ b/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java
@@ -23,6 +23,15 @@
* @Author: ���������
* @Date: 2021/7/1
*/
- List<MonitorPoint> query(MonitorPointQueryForm form);
+ List<MonitorPoint> queryByOrgIdAndRegionCode(MonitorPointQueryForm form);
+
+ /**
+ * @Description: ������������������������������������
+ * @Param: [regionCode]
+ * @return: java.util.List<com.moral.api.entity.MonitorPoint>
+ * @Author: ���������
+ * @Date: 2021/7/16
+ */
+ List<MonitorPoint> queryStateControlStationByRegionCode(Integer regionCode);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/OrganizationService.java b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
index 03555b0..a200795 100644
--- a/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
+++ b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
@@ -23,4 +23,13 @@
* @Date: 2021/7/1
*/
List<Organization> getChildrenOrganizationsById(Integer id);
+
+ /**
+ * @Description: ���������������������
+ * @Param: []
+ * @return: com.moral.api.entity.Organization
+ * @Author: ���������
+ * @Date: 2021/7/16
+ */
+ Organization getStateControlStation();
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
new file mode 100644
index 0000000..0ee5973
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
@@ -0,0 +1,72 @@
+package com.moral.api.service.impl;
+
+import com.moral.api.entity.Device;
+import com.moral.api.entity.HistoryFiveMinutely;
+import com.moral.api.entity.MonitorPoint;
+import com.moral.api.mapper.HistoryFiveMinutelyMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO;
+import com.moral.api.pojo.form.device.MonitorPointQueryForm;
+import com.moral.api.pojo.form.historyFiveMinutely.QueryDeviceAndFiveMinuteDataForm;
+import com.moral.api.service.HistoryFiveMinutelyService;
+import com.moral.api.service.MonitorPointService;
+import com.moral.constant.RedisConstants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 5��������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-15
+ */
+@Service
+public class HistoryFiveMinutelyServiceImpl extends ServiceImpl<HistoryFiveMinutelyMapper, HistoryFiveMinutely> implements HistoryFiveMinutelyService {
+
+ @Autowired
+ MonitorPointService monitorPointService;
+ @Autowired
+ RedisTemplate redisTemplate;
+
+ @Override
+ public List<DeviceAndFiveMinuteDataDTO> queryDeviceAndFiveMinuteData(QueryDeviceAndFiveMinuteDataForm form) {
+ //������
+ Integer organizationId = form.getOrganizationId();
+ Integer regionCode = form.getRegionCode();
+ String sensorCode = form.getSensorCode();
+ //���������������������������������������������������
+ List<MonitorPoint> monitorPoints = monitorPointService.queryByOrgIdAndRegionCode(new MonitorPointQueryForm(organizationId, regionCode));
+ List<Device> devices = new ArrayList<>();
+ for (MonitorPoint monitorPoint : monitorPoints) {
+ List<Device> monitorPointDevices = monitorPoint.getDevices();
+ if (!ObjectUtils.isEmpty(monitorPointDevices))
+ devices.addAll(monitorPointDevices);
+ }
+ //���������������������������������
+ List<DeviceAndFiveMinuteDataDTO> dtos = new ArrayList<>();
+ for (Device device : devices) {
+ DeviceAndFiveMinuteDataDTO dto = new DeviceAndFiveMinuteDataDTO();
+ String mac = device.getMac();
+ Map<String, Object> sensorValues = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DATA_FIVE_MINUTES, mac);
+ Map<String,Object> value = new HashMap<>();
+ if (sensorValues!=null&&sensorValues.get(sensorCode) != null)
+ value.put(sensorCode,sensorValues.get(sensorCode));
+ else
+ value.put(sensorCode,null);
+ dto.setDevice(device);
+ dto.setSensorValue(value);
+ dtos.add(dto);
+ }
+ return dtos;
+ }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
index 1b54467..9c85cc5 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
@@ -37,7 +37,7 @@
DeviceService deviceService;
@Override
- public List<MonitorPoint> query(MonitorPointQueryForm form) {
+ public List<MonitorPoint> queryByOrgIdAndRegionCode(MonitorPointQueryForm form) {
//������
Integer organizationId = form.getOrganizationId();
Integer regionCode = form.getRegionCode();
@@ -62,6 +62,18 @@
}
return monitorPoints;
}
+
+ @Override
+ public List<MonitorPoint> queryStateControlStationByRegionCode(Integer regionCode) {
+ //���������������������
+ Organization stateControlStationOrganization = organizationService.getStateControlStation();
+ //���������������������������������������
+ QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_delete",Constants.NOT_DELETE);
+ queryWrapper.eq("organization_id",stateControlStationOrganization.getId());
+ queryWrapper.eq(RegionCodeUtils.regionCodeConvertToName(regionCode),regionCode);
+ return monitorPointMapper.selectList(queryWrapper);
+ }
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index f407aa4..db78fac 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -34,6 +34,15 @@
return childrenOrganization;
}
+ @Override
+ public Organization getStateControlStation() {
+ QueryWrapper<Organization> wrapper = new QueryWrapper<>();
+ wrapper.eq("name","���������");
+ wrapper.eq("is_delete",Constants.NOT_DELETE);
+ Organization organization = organizationMapper.selectOne(wrapper);
+ return organization;
+ }
+
/**
* @Description: ���������������������������������������������������children���
* @Param: [parentId, children]
diff --git a/screen-api/src/main/resources/application-local.yml b/screen-api/src/main/resources/application-local.yml
new file mode 100644
index 0000000..ce84e43
--- /dev/null
+++ b/screen-api/src/main/resources/application-local.yml
@@ -0,0 +1,120 @@
+server:
+ port: 8081
+ tomcat:
+ uri-encoding: UTF-8
+ #���������������
+ min-spare-threads: 500
+ #���������������
+ max-threads: 2500
+ #���������������
+ max-connections: 6500
+ #������������������������
+ accept-count: 1000
+spring:
+ profiles:
+ active: dev
+ application:
+ name: screen-manage
+ redis:
+ host: r-bp1xdlb9wfc6zt0msppd.redis.rds.aliyuncs.com
+ port: 6379
+ password: moral_123456
+ timeout: 30000
+ jedis:
+ pool:
+ max-active: 256
+ max-wait: 30000
+ max-idle: 64
+ min-idle: 32
+ lettuce:
+ pool:
+ max-active: 256
+ max-idle: 64
+ max-wait: 30000
+ min-idle: 32
+ tokenRedis:
+ host: r-bp1xdlb9wfc6zt0msppd.redis.rds.aliyuncs.com
+ port: 6379
+ password: moral_123456
+ timeout: 30000
+ database: 15
+ pool:
+ max-active: 256
+ max-wait: 30000
+ max-idle: 64
+ min-idle: 32
+
+ datasource:
+ minIdle: 1
+ time-between-eviction-runs-millis: 60000
+ max-active: 20
+ test-while-idle: true
+ validation-query: select 'x'
+ filters: stat
+ type: com.alibaba.druid.pool.DruidDataSource
+ max-wait: 60000
+ url: jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+ username: root
+ password: moral_123456
+ test-on-borrow: false
+ sql-script-encoding: utf-8
+ pool-prepared-statements: true
+ min-evictable-idle-time-millis: 300000
+ initial-size: 1
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ max-conn-lifetime-millis: 20
+ test-on-return: false
+
+mybatis-plus:
+ mapper-locations: classpath:mapper/*.xml
+ global-config:
+ db-config:
+ id-type: auto
+ field-strategy: NOT_EMPTY
+ db-type: MYSQL
+ configuration:
+ map-underscore-to-camel-case: true
+ call-setters-on-nulls: true
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+kafka:
+ listener:
+ ack-mode: manual_immediate
+ consumer:
+ auto:
+ offset:
+ reset: latest
+ concurrency: 3
+ enable:
+ auto:
+ commit: false
+ servers: 47.99.145.48:9092,47.111.116.38:9092,47.111.124.159:9092
+ session:
+ timeout: 6000
+ zookeeper:
+ connect: 47.99.145.48:2181,47.111.116.38:2181,47.111.124.159:2181
+ producer:
+ batch:
+ size: 4096
+ buffer:
+ memory: 40960
+ linger: 1
+ retries: 0
+ servers: 47.99.145.48:9092,47.111.116.38:9092,47.111.124.159:9092
+mvc:
+ interceptor:
+ exclude:
+ - /login
+ - /swagger-ui.html
+ - /swagger-resources/**
+ - /swagger-ui.html/**
+ - /webjars/**
+ - /verificationCode/**
+
+AES:
+ KEY:
+ AD42F7787B035B7580000EF93BE20BAD
+TOKEN:
+ KEY:
+ foh3wi2ooghiCh5
+
diff --git a/screen-api/src/main/resources/mapper/HistoryFiveMinutely202107Mapper.xml b/screen-api/src/main/resources/mapper/HistoryFiveMinutely202107Mapper.xml
new file mode 100644
index 0000000..d5ef167
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/HistoryFiveMinutely202107Mapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.HistoryFiveMinutely202107Mapper">
+
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryFiveMinutely">
+ <result column="mac" property="mac" />
+ <result column="time" property="time" />
+ <result column="value" property="value" />
+ </resultMap>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0