From ff3af3a0dd0fe87a500c13e933bea1f553083508 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 21 Sep 2023 10:47:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-api/src/main/java/com/moral/api/utils/JsonUtils.java | 151 +++++++ screen-api/src/main/java/com/moral/api/pojo/enums/InvestigationEnum.java | 60 +++ screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java | 43 ++ screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java | 15 screen-api/src/main/java/com/moral/api/pojo/enums/ChangeEnum.java | 59 ++ screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 7 screen-api/src/main/java/com/moral/api/controller/DictController.java | 39 + screen-api/src/main/java/com/moral/api/pojo/vo/DictionaryVo.java | 66 +++ screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java | 55 ++ screen-api/src/main/java/com/moral/api/utils/BeanConverts.java | 340 +++++++++++++++++ screen-manage/src/main/java/com/moral/api/util/CacheUtils.java | 20 screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java | 5 screen-api/pom.xml | 5 screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java | 2 screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java | 2 screen-api/src/main/java/com/moral/api/pojo/enums/YesOrNo.java | 57 ++ screen-manage/src/main/resources/mapper/DeviceMapper.xml | 5 screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java | 19 screen-api/src/main/java/com/moral/api/pojo/enums/AllocationApproveEnum.java | 71 +++ screen-api/src/main/java/com/moral/api/controller/UAVController.java | 12 screen-api/src/main/java/com/moral/api/pojo/enums/StateEnum.java | 57 ++ screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java | 15 screen-api/src/main/java/com/moral/api/pojo/enums/IntegerValueEnum.java | 18 screen-api/src/main/java/com/moral/api/pojo/enums/StringValueEnum.java | 18 24 files changed, 1,099 insertions(+), 42 deletions(-) diff --git a/screen-api/pom.xml b/screen-api/pom.xml index 5dcd631..4c48cc5 100644 --- a/screen-api/pom.xml +++ b/screen-api/pom.xml @@ -73,6 +73,11 @@ <version>1.5.1</version> </dependency> + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>5.3.0</version> + </dependency> </dependencies> <build> diff --git a/screen-api/src/main/java/com/moral/api/controller/DictController.java b/screen-api/src/main/java/com/moral/api/controller/DictController.java new file mode 100644 index 0000000..11051dd --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/DictController.java @@ -0,0 +1,39 @@ +package com.moral.api.controller; + +import com.moral.api.entity.CityConfigAqi; +import com.moral.api.pojo.enums.ChangeEnum; +import com.moral.api.pojo.enums.InvestigationEnum; +import com.moral.api.pojo.enums.StateEnum; +import com.moral.api.pojo.enums.YesOrNo; +import com.moral.api.pojo.vo.DictionaryVo; +import com.moral.constant.ResultMessage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ClassName DictController + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:39 + * @Version 1.0 + */ +@RestController +@RequestMapping("/dict") +@Api(tags = {"������"}) +public class DictController { + @GetMapping("list") + + public ResultMessage<DictionaryVo> list() { + DictionaryVo dictionaryVo = new DictionaryVo() + .setStateEnums(StateEnum.values()) + .setChangeEnum(ChangeEnum.values()) + .setInvestigationEnum(InvestigationEnum.values()) + .setYesOrNo(YesOrNo.values()) + ; + return ResultMessage.ok(dictionaryVo); + } + +} diff --git a/screen-api/src/main/java/com/moral/api/controller/UAVController.java b/screen-api/src/main/java/com/moral/api/controller/UAVController.java index 2323049..8763106 100644 --- a/screen-api/src/main/java/com/moral/api/controller/UAVController.java +++ b/screen-api/src/main/java/com/moral/api/controller/UAVController.java @@ -26,14 +26,11 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -135,5 +132,10 @@ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo); } + @GetMapping("UAVTest") + public ResultMessage UAVTest(BigDecimal lat, BigDecimal lon, String batch){ + historySecondUavService.UAVTest(lat, lon, batch); + return new ResultMessage(); + } } diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/AllocationApproveEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/AllocationApproveEnum.java new file mode 100644 index 0000000..24d3383 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/AllocationApproveEnum.java @@ -0,0 +1,71 @@ +package com.moral.api.pojo.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.api.exception.BusinessException; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName InvestigationEnum + * @Description TODO + * @Author @cjl + * @Date 2023-09-20 14:47 + * @Version 1.0 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum AllocationApproveEnum implements IntegerValueEnum{ + /** + *������ + */ + NEW_BUILT(10, "������"), + /** + *��������� + */ + UNDER_RECTIFICATION(20, "���������"), + /** + *��������� + */ + IN_APPROVAL(30, "���������"), + /** + *������ + */ + PASS(40, "������"), + /** + *������ + */ + REFUSE(50, "������"), + + ; + + @EnumValue + public final Integer value; + public final String name; + + AllocationApproveEnum(Integer value, String name) { + this.value = value; + this.name = name; + } + + private static Map<Integer, AllocationApproveEnum> valueMap = new HashMap<>(); + static { + for (AllocationApproveEnum v : AllocationApproveEnum.values()) { + valueMap.put(v.value, v); + } + } + @JsonCreator + public static AllocationApproveEnum getByValue(Integer value) { + if (value == null) { + return null; + } + AllocationApproveEnum result = valueMap.get(value); + if (result == null) { + throw new BusinessException("������������������" + value); + } + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/ChangeEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/ChangeEnum.java new file mode 100644 index 0000000..b09051c --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/ChangeEnum.java @@ -0,0 +1,59 @@ +package com.moral.api.pojo.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.api.exception.BusinessException; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName StateEnum + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:11 + * @Version 1.0 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum ChangeEnum implements IntegerValueEnum { + + /** + *������������ + */ + IMMEDIATELY(1, "������������"), + /** + *������������ + */ + DEADLINE(2, "������������"), + ; + + @EnumValue + public final Integer value; + public final String name; + + ChangeEnum(Integer value, String name) { + this.value = value; + this.name = name; + } + + private static Map<Integer, ChangeEnum> valueMap = new HashMap<>(); + static { + for (ChangeEnum v : ChangeEnum.values()) { + valueMap.put(v.value, v); + } + } + @JsonCreator + public static ChangeEnum getByValue(Integer value) { + if (value == null) { + return null; + } + ChangeEnum result = valueMap.get(value); + if (result == null) { + throw new BusinessException("������������������" + value); + } + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/IntegerValueEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/IntegerValueEnum.java new file mode 100644 index 0000000..25ed09a --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/IntegerValueEnum.java @@ -0,0 +1,18 @@ +package com.moral.api.pojo.enums; + +/** + * @ClassName IntegerValueEnum + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:35 + * @Version 1.0 + */ +public interface IntegerValueEnum { + + /** + * ������value + * + * @return + */ + Integer getValue(); +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/InvestigationEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/InvestigationEnum.java new file mode 100644 index 0000000..24d6802 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/InvestigationEnum.java @@ -0,0 +1,60 @@ +package com.moral.api.pojo.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.api.exception.BusinessException; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName InvestigationEnum + * @Description TODO + * @Author @cjl + * @Date 2023-09-20 14:47 + * @Version 1.0 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum InvestigationEnum implements IntegerValueEnum{ + /** + *������������ + */ + SCENE(1, "������"), + /** + *������������ + */ + TRAVELING_VEHICLE(2, "������"), + + UAV(3, "���������"), + ; + + @EnumValue + public final Integer value; + public final String name; + + InvestigationEnum(Integer value, String name) { + this.value = value; + this.name = name; + } + + private static Map<Integer, InvestigationEnum> valueMap = new HashMap<>(); + static { + for (InvestigationEnum v : InvestigationEnum.values()) { + valueMap.put(v.value, v); + } + } + @JsonCreator + public static InvestigationEnum getByValue(Integer value) { + if (value == null) { + return null; + } + InvestigationEnum result = valueMap.get(value); + if (result == null) { + throw new BusinessException("������������������" + value); + } + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/StateEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/StateEnum.java new file mode 100644 index 0000000..0c1f9e9 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/StateEnum.java @@ -0,0 +1,57 @@ +package com.moral.api.pojo.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.api.exception.BusinessException; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName StateEnum + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:11 + * @Version 1.0 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum StateEnum implements IntegerValueEnum { + /** + *��������� + */ + NOT_EFFECTIVE(10, "���������"), + /** + *��������� + */ + TAKE_EFFECT(20, "���������"); + + @EnumValue + public final Integer value; + public final String name; + + StateEnum(Integer value, String name) { + this.value = value; + this.name = name; + } + + private static Map<Integer, StateEnum> valueMap = new HashMap<>(); + static { + for (StateEnum v : StateEnum.values()) { + valueMap.put(v.value, v); + } + } + @JsonCreator + public static StateEnum getByValue(Integer value) { + if (value == null) { + return null; + } + StateEnum result = valueMap.get(value); + if (result == null) { + throw new BusinessException("������������������" + value); + } + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/StringValueEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/StringValueEnum.java new file mode 100644 index 0000000..5942632 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/StringValueEnum.java @@ -0,0 +1,18 @@ +package com.moral.api.pojo.enums; + +/** + * @ClassName StringValueEnum + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:36 + * @Version 1.0 + */ +public interface StringValueEnum { + + /** + * ������value + * + * @return + */ + String getValue(); +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/YesOrNo.java b/screen-api/src/main/java/com/moral/api/pojo/enums/YesOrNo.java new file mode 100644 index 0000000..7035cd3 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/enums/YesOrNo.java @@ -0,0 +1,57 @@ +package com.moral.api.pojo.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.api.exception.BusinessException; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName StateEnum + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 11:11 + * @Version 1.0 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum YesOrNo implements IntegerValueEnum { + /** + *��������� + */ + YES(1, "���"), + /** + *��������� + */ + No(0, "���"); + + @EnumValue + public final Integer value; + public final String name; + + YesOrNo(Integer value, String name) { + this.value = value; + this.name = name; + } + + private static Map<Integer, YesOrNo> valueMap = new HashMap<>(); + static { + for (YesOrNo v : YesOrNo.values()) { + valueMap.put(v.value, v); + } + } + @JsonCreator + public static YesOrNo getByValue(Integer value) { + if (value == null) { + return null; + } + YesOrNo result = valueMap.get(value); + if (result == null) { + throw new BusinessException("������������������" + value); + } + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/DictionaryVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/DictionaryVo.java new file mode 100644 index 0000000..e1874dc --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/DictionaryVo.java @@ -0,0 +1,66 @@ +package com.moral.api.pojo.vo; + +import com.moral.api.pojo.enums.ChangeEnum; +import com.moral.api.pojo.enums.InvestigationEnum; +import com.moral.api.pojo.enums.StateEnum; +import com.moral.api.pojo.enums.YesOrNo; +import com.moral.api.utils.BeanConverts; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName DictionaryVo + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 13:30 + * @Version 1.0 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "������������ - VO", description = "������������ - VO") +public class DictionaryVo { + + private List<Map<String, Object>> StateEnums; + + private List<Map<String, Object>> InvestigationEnum; + + private List<Map<String, Object>> ChangeEnum; + private List<Map<String, Object>> YesOrNo; + + + + + public static List<Map<String, Object>> enumArray2Map(Enum[] enums) { + List<Map<String, Object>> mapList = Arrays.asList(enums).stream().map(BeanConverts::objToMapNonJson).collect(Collectors.toList()); + mapList.stream().map(map -> map.remove("declaringClass")).collect(Collectors.toList()); + return mapList; + } + + public DictionaryVo setStateEnums(StateEnum[] enumResult) { + this.StateEnums = enumArray2Map(enumResult); + return this; + } + + public DictionaryVo setInvestigationEnum(com.moral.api.pojo.enums.InvestigationEnum[] stateEnum) { + this.InvestigationEnum = enumArray2Map(stateEnum); + return this; + } + + public DictionaryVo setChangeEnum(com.moral.api.pojo.enums.ChangeEnum[] enumResult) { + this.ChangeEnum = enumArray2Map(enumResult); + return this; + } + + public DictionaryVo setYesOrNo(com.moral.api.pojo.enums.YesOrNo[] enumResult) { + this.YesOrNo = enumArray2Map(enumResult); + return this; + } + + +} diff --git a/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java b/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java index 9c5a01c..7209030 100644 --- a/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java +++ b/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java @@ -5,6 +5,7 @@ import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO; import com.moral.api.pojo.form.uav.UAVQueryTimeSlotForm; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -46,4 +47,5 @@ List<HistorySecondUav> queryDataByBatch(String batch); + boolean UAVTest(BigDecimal lat, BigDecimal lon, String batch); } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java index d3822e4..4e81d4e 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java @@ -25,14 +25,7 @@ import java.text.DecimalFormat; import java.time.Duration; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.OptionalDouble; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.DoubleStream; @@ -126,7 +119,7 @@ CityAqiMonthly cityAqiMonthly = cityAqiMonthlyMapper.selectOne(cityAqiMonthlyQueryWrapper); Double compositeIndex = null; String compositeIndexYearOnYear = null; - Integer pm25 = null; + Double pm25 = null; String pm25YearOnYear = null; if (cityAqiMonthly != null) { Map<String, Object> aqiMap = JSONObject.parseObject(cityAqiMonthly.getValue(), Map.class); @@ -145,7 +138,7 @@ //3.PM2.5������ if (aqiMap.get("PM2_5") != null) { - pm25 = Integer.parseInt(aqiMap.get("PM2_5").toString()); + pm25 = Objects.nonNull(aqiMap.get("PM2_5"))?Double.parseDouble(aqiMap.get("PM2_5").toString()):0d; } currentRankingResult.put("PM2_5", pm25 + "ug/m��"); @@ -183,7 +176,7 @@ Map<Integer, Map<String, Object>> monthlyCumulativeResult = null; Double cityCompositeIndex = null; String cityCompositeIndexYearOnYear = null; - Integer cityPM25 = null; + Double cityPM25 = null; String cityPM25YearOnYear = null; if (!"1".equals(month)) { Map<String, Object> cumulativeRankingResult = new HashMap<>(); @@ -201,7 +194,7 @@ cityCompositeIndexYearOnYear = cityMap.get("compositeIndex_yearOnYear").toString(); } //���������PM2.5 - cityPM25 = (int) Double.parseDouble(cityMap.get("PM2_5").toString()); + cityPM25 = Double.parseDouble(cityMap.get("PM2_5").toString()); if (cityMap.get("PM2_5_yearOnYear") != null) { cityPM25YearOnYear = cityMap.get("PM2_5_yearOnYear").toString(); } @@ -944,7 +937,7 @@ * @param pm25YearOnYear ���������������������������pm2.5������ * @description ��������������������������������������������������������������������������� */ - private Map<String, Object> getAreaCurrentMonthResult(Map<Integer, String> areasMap, List<CityAqiMonthly> areaData, Double compositeIndex, String compositeIndexYearOnYear, Integer pm25, String pm25YearOnYear) { + private Map<String, Object> getAreaCurrentMonthResult(Map<Integer, String> areasMap, List<CityAqiMonthly> areaData, Double compositeIndex, String compositeIndexYearOnYear, Double pm25, String pm25YearOnYear) { Map<String, Object> result = new HashMap<>(); result.put("compositeIndex", compositeIndex); result.put("compositeIndexYearOnYear", compositeIndexYearOnYear); diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java index 10b8016..627b26a 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java @@ -1,6 +1,7 @@ package com.moral.api.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.*; import com.moral.api.mapper.HistorySecondUavMapper; @@ -349,4 +350,46 @@ } } + @Override + public boolean UAVTest(BigDecimal lat, BigDecimal lon, String batch) { + List<HistorySecondUav> list = new ArrayList<>(); + + QueryWrapper<HistorySecondUav> wrapper = new QueryWrapper<>(); + wrapper.eq("batch", batch); + wrapper.select("value,mac,time,organization_id"); + wrapper.orderByAsc("time"); + List<HistorySecondUav> datas = historySecondUavMapper.selectList(wrapper); + Date time =DateUtils.addDays(datas.get(2).getTime(),0); + //String bat = "2023-08-08 14:42:20"; + for(HistorySecondUav g : datas){ + HistorySecondUav historySecondUav = new HistorySecondUav(); + historySecondUav.setTime(DateUtils.addDays(g.getTime(),0)); + historySecondUav.setMac(g.getMac()); + historySecondUav.setBatch(time); + historySecondUav.setOrganizationId(g.getOrganizationId()); + Map<String, Object> data = JSON.parseObject(g.getValue(), Map.class); + Map<String, Object> dataResult = new HashMap<>(); + dataResult = data; + dataResult.put("flylat",Objects.isNull(data.get("flylat"))||data.get("flylat").toString().equals("0")?0d:Double.parseDouble(String.format("%.10f",Double.parseDouble(data.get("flylat").toString())+lat.doubleValue()))); + dataResult.put("flylon",Objects.isNull(data.get("flylon"))||data.get("flylon").toString().equals("0")?0d:Double.parseDouble(String.format("%.10f",Double.parseDouble(data.get("flylon").toString())+lon.doubleValue()))); + /*if(Objects.nonNull(data.get("a21026"))&& !data.get("a21026").toString().equals("0")){ + Double a21026D = Double.parseDouble(data.get("a21026").toString()); + if( a21026D>15){ + a21026D = a21026D -10; + } + dataResult.put("a21026",Double.parseDouble(String.format("%.4f",a21026D))); + } + if(Objects.nonNull(data.get("a21004"))&& !data.get("a21004").toString().equals("0")){ + Double a21024D = Double.parseDouble(data.get("a21004").toString()); + if( a21024D>100){ + a21024D = a21024D -100; + } + dataResult.put("a21004",Double.parseDouble(String.format("%.4f",a21024D))); + }*/ + historySecondUav.setValue(JSONObject.toJSONString(dataResult)); + list.add(historySecondUav); + } + this.saveBatch(list); + return true; + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java index 2608c7b..18ae1e2 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java @@ -6,14 +6,7 @@ import org.springframework.util.ObjectUtils; import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson.JSONObject; @@ -103,8 +96,10 @@ List<Map<String, Object>> devices = deviceService.getDevicesByOrganizationId(organizationId); Set<Map<String, Object>> result = new HashSet<>(); for (Map<String, Object> device : devices) { - List<Map<String, Object>> professions = (List<Map<String, Object>>) device.get("professions"); - result.addAll(professions); + if(Objects.nonNull(device)&&Objects.nonNull(device.get("professions"))&&device.containsKey("professions")){ + List<Map<String, Object>> professions = (List<Map<String, Object>>) device.get("professions"); + result.addAll(professions); + } } return result; } diff --git a/screen-api/src/main/java/com/moral/api/utils/BeanConverts.java b/screen-api/src/main/java/com/moral/api/utils/BeanConverts.java new file mode 100644 index 0000000..9d00737 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/utils/BeanConverts.java @@ -0,0 +1,340 @@ +package com.moral.api.utils; + +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.cglib.beans.BeanMap; + +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + + +import java.util.*; + +/** + * @ClassName BeanConverts + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 13:41 + * @Version 1.0 + */ +@Slf4j +@SuppressWarnings("unchecked") +public class BeanConverts { + private static ObjectMapper objectMapper = new ObjectMapper(); + static{ + + //��������������������������������������������� + objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS); + + //���������������������������������������������,��������������� + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + //���������������������������,������������ + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + + //���������null��������� + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + } + + private BeanConverts() { + } + + /** + * BeanUtils.copyProperties ������ + * ������������source ��������������������� + * + * @param source ��������� + * @param target ������������ + * @param ignoreProperties ������������ + */ + public static void copyPropertiesIgnoreNull(Object source, Object target, String... ignoreProperties) { + Set<String> ignoreSet = new HashSet<>(); + if (ignoreProperties != null) { + ignoreSet.addAll(Arrays.asList(ignoreProperties)); + } + ignoreSet.addAll(getObjectNullFieldName(source)); + BeanUtils.copyProperties(source, target, ignoreSet.toArray(new String[0])); + } + + /** + * ������������������������null ��������������������� + * + * @param object ��������� + * @return ������������������ + */ + public static List<String> getObjectNullFieldName(Object object) { + BeanMap beanMap = BeanMap.create(object); + List<String> fieldNameList = new ArrayList<>(); + for (Object key : beanMap.keySet()) { + if (beanMap.get(key) == null) { + fieldNameList.add(key.toString()); + } + } + return fieldNameList; + } + + /** + * ������������������map + * ��������������������� + * + * @param obj ������ + * @return ��������� + */ + public static Map<String, Object> objToMapIgnoreNull(Object obj) { + return objToMap(obj, true); + } + + /** + * ������������������map + * + * @param obj ������ + * @return ��������� + */ + public static Map<String, Object> objToMap(Object obj) { + return objToMap(obj, false); + } + + /** + * ������������������map + * + * @param obj ������ + * @param ignoreNull ������������������ + * @return ��������� + */ + private static Map<String, Object> objToMap(Object obj, boolean ignoreNull) { + return JSONUtil.parseObj(obj, ignoreNull); + } + + /** + * entity ������ + * + * @param obj ��������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������ + */ + public static <T> T cloneShallow(Object obj, Class<T> clazz) { + if (obj == null) { + return null; + } + T t = BeanUtils.instantiateClass(clazz); + BeanUtils.copyProperties(obj, t); + return t; + } + + /** + * entity ������������ + * + * @param collection ��������������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������������ + */ + public static <T> List<T> cloneShallow(Collection<?> collection, Class<T> clazz) { + return collection.stream().map(item -> convert(item, clazz)).collect(Collectors.toList()); + } + + /** + * entity ������ + * + * @param obj ��������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������ + */ + public static <T> T convert(Object obj, Class<T> clazz) { + + return objectMapper.convertValue(obj, clazz); + } + + public static <T> T convert(Object obj, TypeReference<T> type) { + return objectMapper.convertValue(obj, type); + } + + /** + * entity ������ + * + * @param optional ��������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������ + */ + public static <T> T convert(Optional<?> optional, Class<T> clazz) { + return optional.map(obj -> convert(obj, clazz)).orElseGet(null); + } + + /** + * entity ������������ + * + * @param collection ��������������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������������ + */ + public static <T> List<T> convert(Collection<?> collection, Class<T> clazz) { + return JSONArray.parseArray(JSONArray.toJSONString(collection), clazz); + } + + /** + * entity ������������ + * + * @param iterable ������������ + * @param clazz ������������ + * @param <T> ������ + * @return ������������������ + */ + public static <T> List<T> convert(Iterable<?> iterable, Class<T> clazz) { + return convert(StreamSupport.stream(iterable.spliterator(), false), clazz); + } + + /** + * entity ������������ + * + * @param stream ��������������� + * @param clazz ������������ + * @param <T> ������ + * @return ������������������ + */ + public static <T> List<T> convert(Stream<?> stream, Class<T> clazz) { + return stream.map(entity -> convert(entity, clazz)).collect(Collectors.toList()); + } + + + /** + * map ��������� + * + * @param clazz ������������ + * @param collection ��������������� + * @param <T> ������ + * @return ������������������ + */ + public static <T> List<T> mapToObj(Class<T> clazz, Collection<Map<String, Object>> collection) { + return collection.stream().map(map -> BeanConverts.mapToObj(clazz, map)).collect(Collectors.toList()); + } + + /** + * map ��������� + * + * @param clazz ������������ + * @param map ��������� + * @param <T> ������ + * @return ������������ + */ + public static <T> T mapToObj(Class<T> clazz, Map<String, Object> map) { + T d = BeanUtils.instantiateClass(clazz); + BeanInfo beanInfo; + try { + beanInfo = Introspector.getBeanInfo(d.getClass()); + } catch (IntrospectionException e) { + log.warn(e.getMessage(), e); + return null; + } + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (PropertyDescriptor property : propertyDescriptors) { + Method setter = property.getWriteMethod(); + if (setter == null) { + continue; + } + Object value = map.get(property.getName()); + if (value == null) { + continue; + } else if (value instanceof Timestamp) { + if (property.getPropertyType().equals(LocalDate.class)) { + value = ((Timestamp) value).toLocalDateTime().toLocalDate(); + } else { + value = ((Timestamp) value).toLocalDateTime(); + } + } else if (property.getPropertyType().equals(BigDecimal.class)) { + value = BigDecimal.valueOf((double) value); + } + try { + setter.invoke(d, value); + } catch (Exception e) { + log.warn(e.getMessage(), e); + } + } + return d; + } + + /** + * ������������������������������������������map + * + * @param collection ������������ + * @param keyProperty key��������� + * @param valueProperty value��������� + * @param <E> ������ + * @return ���������map + */ + public static <E> Map<String, E> propertyToMap(Collection collection, String keyProperty, String valueProperty) { + Map<String, E> map = new LinkedHashMap<>(); + if (collection.isEmpty()) { + return map; + } + Object obj = collection.iterator().next(); + BeanInfo beanInfo; + try { + beanInfo = Introspector.getBeanInfo(obj.getClass()); + } catch (IntrospectionException e) { + log.warn(e.getMessage(), e); + return map; + } + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + Method keyGetter = null; + Method valueGetter = null; + for (PropertyDescriptor property : propertyDescriptors) { + if (keyProperty.equals(property.getName()) && property.getReadMethod() != null) { + keyGetter = property.getReadMethod(); + } else if (valueProperty.equals(property.getName()) && property.getReadMethod() != null) { + valueGetter = property.getReadMethod(); + } + } + if (keyGetter == null || valueGetter == null) { + return map; + } + for (Object item : collection) { + try { + map.put(keyGetter.invoke(item).toString(), (E) valueGetter.invoke(item)); + } catch (IllegalAccessException | InvocationTargetException e) { + log.warn(e.getMessage(), e); + } + } + return map; + } + + /** + * ������������������map + * + * @param obj ������ + * @return ��������� + */ + public static Map<String, Object> objToMapNonJson(Object obj) { + Map<String, Object> map = new HashMap<>(8); + if (obj != null) { + BeanMap beanMap = BeanMap.create(obj); + for (Object key : beanMap.keySet()) { + Object value = beanMap.get(key); + map.put(key.toString(), value); + } + } + return map; + } +} diff --git a/screen-api/src/main/java/com/moral/api/utils/JsonUtils.java b/screen-api/src/main/java/com/moral/api/utils/JsonUtils.java new file mode 100644 index 0000000..cc76f61 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/utils/JsonUtils.java @@ -0,0 +1,151 @@ +package com.moral.api.utils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Map; +/** + * @ClassName JsonUtils + * @Description TODO + * @Author @lizijie + * @Date 2023-09-20 13:43 + * @Version 1.0 + */ +public class JsonUtils { + private static ObjectMapper objectMapper = new ObjectMapper(); + + /** + * ���������json��������� + * + * @param object + * @return + */ + public static String objectToJson(Object object) { + return objectToJson(object, null); + } + + /** + * ���������json��������� + * + * @param object ������������json��������� + * @param defaultStr ��������������������������������� + * @return + */ + public static String objectToJson(Object object, String defaultStr) { + try { + return objectMapper.writeValueAsString(object); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return defaultStr; + } + + /** + * json������������������������ + * + * @param jsonStr json��������� + * @param object ��������������������������� + * @param <T> ������ + * @return + */ + public static <T> T jsonToObject(String jsonStr, T object) { + try { + return objectMapper.readValue(jsonStr, new TypeReference<T>() { + }); + } catch (IOException e) { + e.printStackTrace(); + } + return object; + + } + + /** + * json������������������������ + * + * @param jsonStr json��������� + * @param t ������������������ + * @param <T> ������ + * @return + */ + public static <T> T jsonToObject(String jsonStr, Class<T> t) { + try { + return objectMapper.readValue(jsonStr, t); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + + } + + /** + * json������������������������ + * + * @param jsonStr json��������� + * @param typeReference + * @param <T> + * @return + */ + public static <T> T jsonToObject(String jsonStr, TypeReference<T> typeReference) { + try { + return objectMapper.readValue(jsonStr, typeReference); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + + } + + /** + * json������������Map + * + * @param jsonStr + * @param t + * @param v + * @param <K> + * @param <V> + * @return + */ + public static <K, V> Map<K, V> jsonToMap(String jsonStr, Class<K> t, Class<V> v) { + try { + return objectMapper.readValue(jsonStr, new TypeReference<Map<K, V>>() { + }); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + + } + public static <K, V> Map<K, V> objectToMap(Object object, Class<K> t, Class<V> v) { + try { + return objectMapper.readValue(objectToJson(object), new TypeReference<Map<K, V>>() { + }); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + + } + + /** + * json������������������ + * + * @param jsonStr json��������� + * @param objectClass ��������� + * @param <T> + * @return + */ + public static <T> List<T> jsonToList(String jsonStr, Class<T> objectClass) { + try { + return objectMapper.readValue(jsonStr, new TypeReference<List<T>>() { + }); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + public static <T> List<T> convert(Collection<?> collection, Class<T> clazz) { + return jsonToList(objectToJson(collection), clazz); + } +} diff --git a/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java b/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java index 7999b4e..910fb39 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java @@ -12,10 +12,7 @@ import com.moral.constant.ResultMessage; import com.moral.util.WebUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -97,6 +94,16 @@ return ResultMessage.ok(); } + @GetMapping("updateGuid") + @ApiOperation(value = "������������������", notes = "������������������") + public ResultMessage updateGuid(@RequestParam @ApiParam(value = "id",name = "������id") Integer id, + @RequestParam @ApiParam(value = "guid",name = "������������") String guid) { + + govMonitorPointService.updateList(id,guid); + return ResultMessage.ok(); + } + + @RequestMapping(value = "delete", method = RequestMethod.POST) @ResponseBody public ResultMessage delete(@RequestBody Map map) { diff --git a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java index 5eb2191..fd13764 100644 --- a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java +++ b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java @@ -1,7 +1,5 @@ package com.moral.api.mapper; -import org.apache.ibatis.annotations.Param; - import java.util.List; import java.util.Map; @@ -11,6 +9,7 @@ import com.moral.api.entity.Device; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.moral.api.pojo.vo.device.DeviceVO; +import io.lettuce.core.dynamic.annotation.Param; /** * <p> @@ -24,6 +23,6 @@ DeviceVO selectDeviceInfoById(Integer deviceId); - List<Device> queryDeviceUnitAlarmInfo(); + List<Device> queryDeviceUnitAlarmInfo(@Param("region") String mac); } diff --git a/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java b/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java index be3353a..c5397b0 100644 --- a/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java +++ b/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java @@ -46,6 +46,8 @@ @Transactional void update(GovMonitorPoint govMonitorPoint); + void updateList(Integer id,String guid); + /** *@Description: ������������������ *@Param: [id] diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java index ade5420..f707242 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -191,7 +191,7 @@ //������������������redis setDeviceInfoToRedis(mac, deviceInfo); //������deviceInfo������ - CacheUtils.refreshDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(mac); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -629,8 +629,9 @@ public void setRedisDevice() { List<Device> list = lambdaQuery().eq(Device::getIsDelete,0).list(); for(Device d : list){ - Map<String, Object> deviceInfo = selectDeviceInfoById(d.getId()); - setDeviceInfoToRedis(d.getMac(), deviceInfo); + redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac()); + Map<String, Object> deviceInfo = selectDeviceInfoById(d.getId()); + setDeviceInfoToRedis(d.getMac(), deviceInfo); } } } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java index a1b608f..9a0f119 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Device; import com.moral.api.entity.GovMonitorPoint; import com.moral.api.entity.Organization; import com.moral.api.entity.SysArea; +import com.moral.api.exception.BusinessException; import com.moral.api.mapper.DeviceMapper; import com.moral.api.mapper.GovMonitorPointMapper; import com.moral.api.mapper.SysAreaMapper; @@ -20,6 +22,7 @@ import com.moral.constant.Constants; import com.moral.constant.RedisConstants; import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; import com.moral.util.RegionCodeUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +37,8 @@ import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; /** @@ -58,6 +63,9 @@ @Resource private OrganizationService organizationService; + + @Resource + private DeviceService deviceService; @Autowired(required = false) private DeviceMapper deviceMapper; @@ -213,6 +221,53 @@ } @Override + @Transactional + public void updateList(Integer id, String guid) { + ExecutorService executorService = Executors.newFixedThreadPool(2); + QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>(); + wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE); + wrapper_govMonitorPoint.eq("id", id); + List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint); + if (govMonitorPoints.size() == 0) { + throw new BusinessException("������������������"); + } + GovMonitorPoint govMonitorPoint = govMonitorPoints.get(0); + String oldGuid = govMonitorPoint.getGuid(); + LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery(); + wrapper.eq(Device::getIsDelete,0); + wrapper.eq(Device::getGuid,oldGuid); + List<Device> list = wrapper.list(); + list.forEach(it->it.setGuid(guid)); + + deviceService.updateBatchById(list); + + govMonitorPoint.setGuid(guid); + govMonitorPointMapper.updateById(govMonitorPoint); + //������redis + delGovMonitorPointInfoFromRedis(id.toString()); + //������redis + setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id)); + //������������������ + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + StringBuilder content = new StringBuilder(); + content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";"); + if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) { + content.append("guid:").append(oldGuid).append("->").append(guid).append(";"); + } + LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE); + for(Device d : list){ + executorService.submit(()->{ + redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac()); + Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId()); + redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo); + + }); + } + // ��������������� + executorService.shutdown(); + } + + @Override public void delete(Integer id) { UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>(); wrapper_delete.eq("id", id).set("is_delete", Constants.DELETE); diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java index 4d6e791..cecec02 100644 --- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java +++ b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java @@ -17,6 +17,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import java.util.HashMap; import java.util.List; @@ -82,10 +83,21 @@ public static void refreshDeviceAlarmInfo() { - //������������ - redisTemplate.delete(RedisConstants.DEVICE_INFO); + + refreshDeviceAlarmInfo(null); + + + } + public static void refreshDeviceAlarmInfo(String mac){ + if(StringUtils.isEmpty(mac)){ + //������������ + redisTemplate.delete(RedisConstants.DEVICE_INFO); + }else { + redisTemplate.opsForHash().delete(RedisConstants.DEVICE_INFO,mac); + } //������������������ - List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo(); + List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo(mac); + Map<String, SysDictData> unitMap = sysDictDataService.getDictDatasByType("unit"); //��������������������������������������������� Map<String,Device> result = new HashMap<>(); @@ -132,6 +144,8 @@ redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result); } + + public static void refreshSpecialDeviceAlarmInfo() { //������������ redisTemplate.delete(RedisConstants.SPECIAL_DEVICE_INFO); diff --git a/screen-manage/src/main/resources/mapper/DeviceMapper.xml b/screen-manage/src/main/resources/mapper/DeviceMapper.xml index f394f1e..ead9eb8 100644 --- a/screen-manage/src/main/resources/mapper/DeviceMapper.xml +++ b/screen-manage/src/main/resources/mapper/DeviceMapper.xml @@ -251,7 +251,10 @@ on d.`device_version_id` = oua.`version_id` and d.`organization_id` = oua.`organization_id` and oua.`is_delete` = 0 where - d.`is_delete` = 0; + d.`is_delete` = 0 + <if test="mac != null and mac != '' "> + and d.mac = #{mac} + </if> </select> -- Gitblit v1.8.0