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