From 4e250e6a954ab426cc54dcf11caec806eb8df688 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Wed, 20 Sep 2023 17:21:02 +0800
Subject: [PATCH] feat:添加测试更新guid
---
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/pojo/enums/ChangeEnum.java | 59 +++
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 1
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 | 47 ++
screen-api/src/main/java/com/moral/api/utils/BeanConverts.java | 340 ++++++++++++++++++++
screen-api/pom.xml | 5
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-api/src/main/java/com/moral/api/pojo/enums/AllocationApproveEnum.java | 71 ++++
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 +
16 files changed, 1,002 insertions(+), 4 deletions(-)
diff --git a/screen-api/pom.xml b/screen-api/pom.xml
index d55d642..c9bd01d 100644
--- a/screen-api/pom.xml
+++ b/screen-api/pom.xml
@@ -67,6 +67,11 @@
<artifactId>jfreechart</artifactId>
<version>1.5.0</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/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/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/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..bfc1a41 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
@@ -630,6 +630,7 @@
List<Device> list = lambdaQuery().eq(Device::getIsDelete,0).list();
for(Device d : list){
Map<String, Object> deviceInfo = selectDeviceInfoById(d.getId());
+ redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
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..2c9f744 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;
@@ -58,6 +61,9 @@
@Resource
private OrganizationService organizationService;
+
+ @Resource
+ private DeviceService deviceService;
@Autowired(required = false)
private DeviceMapper deviceMapper;
@@ -213,6 +219,47 @@
}
@Override
+ @Transactional
+ public void updateList(Integer id, String guid) {
+ 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();
+ if(!oldGuid.equals(guid)){
+ 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);
+ 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);
+ for(Device d : list){
+ Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId());
+ redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
+ redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo);
+ }
+ }
+ }
+
+ @Override
public void delete(Integer id) {
UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>();
wrapper_delete.eq("id", id).set("is_delete", Constants.DELETE);
--
Gitblit v1.8.0