From c8aa05fd65cc788abc0f44494338b04993e3b4be Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 10 Sep 2021 15:08:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev_
---
screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java | 18 +
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java | 132 +++++++
screen-common/src/main/java/com/moral/util/DateUtils.java | 20 +
screen-api/src/main/java/com/moral/api/pojo/form/uav/UAVQueryTimeSlotForm.java | 57 +++
screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java | 47 ++
screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java | 222 ++++++++++++
screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVQueryTimeSlotDTO.java | 35 +
screen-manage/src/main/java/com/moral/api/mapper/GovMonitorPointMapper.java | 16
screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java | 8
screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVOs.java | 44 ++
screen-manage/src/main/resources/mapper/GovMonitorPointMapper.xml | 22 +
screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVO.java | 23 +
screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java | 24 +
screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java | 67 +++
screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | 1
screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 30 +
screen-common/src/main/java/com/moral/constant/Constants.java | 1
screen-api/src/main/java/com/moral/api/controller/UAVController.java | 45 ++
screen-common/src/main/java/com/moral/constant/RedisConstants.java | 5
screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java | 107 +++++
screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java | 101 +++++
21 files changed, 1,024 insertions(+), 1 deletions(-)
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 408ba94..0342ed5 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
@@ -3,8 +3,15 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondUav;
import com.moral.api.mapper.HistorySecondUavMapper;
+import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO;
+import com.moral.api.pojo.form.uav.UAVQueryTimeSlotForm;
+import com.moral.api.pojo.vo.uav.UAVQueryDateVO;
+import com.moral.api.pojo.vo.uav.UAVQueryTimeSlotVO;
+import com.moral.api.pojo.vo.uav.UAVQueryTimeSlotVOs;
+import com.moral.api.service.HistorySecondUavService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
+import com.moral.util.DateUtils;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,7 +19,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.List;
+import java.util.*;
/**
* @ClassName UAVController
@@ -30,6 +37,8 @@
@Autowired
HistorySecondUavMapper historySecondUavMapper;
+ @Autowired
+ HistorySecondUavService historySecondUavService;
/**
* @Description: ������������id���mac���������������������������������
* @Param: []
@@ -42,4 +51,38 @@
List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(new QueryWrapper<>());
return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),historySecondUavs);
}
+
+
+ /**
+ * @Description: ������������������������������������������������������������
+ * @Param: [organizationId]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ @RequestMapping("queryDate")
+ public ResultMessage queryDate(Integer organizationId){
+ //������������������
+ List<Date> dates = historySecondUavService.queryDate(organizationId);
+ //������vo���
+ UAVQueryDateVO vo = UAVQueryDateVO.convert(dates);
+ //������������
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
+ }
+
+
+ @RequestMapping("queryTimeSlot")
+ public ResultMessage queryTimeSlot(UAVQueryTimeSlotForm form){
+ //������������������������
+ if (!form.valid())
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ //������������������
+ List<UAVQueryTimeSlotDTO> dtos = historySecondUavService.queryTimeSlot(form);
+ //������vo���
+ UAVQueryTimeSlotVOs vo = UAVQueryTimeSlotVOs.convert(dtos);
+ //������������
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
+ }
+
}
diff --git a/screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java b/screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java
index 74a3c76..37443ae 100644
--- a/screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java
+++ b/screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java
@@ -1,5 +1,7 @@
package com.moral.api.entity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import java.io.Serializable;
@@ -23,6 +25,12 @@
private static final long serialVersionUID = 1L;
/**
+ * ������
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
* ������mac
*/
private String mac;
diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVQueryTimeSlotDTO.java b/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVQueryTimeSlotDTO.java
new file mode 100644
index 0000000..80c0087
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVQueryTimeSlotDTO.java
@@ -0,0 +1,35 @@
+package com.moral.api.pojo.dto.uav;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName UAVQueryTimeSlotDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/9/8 15:13
+ * @Version TODO
+ **/
+@Data
+public class UAVQueryTimeSlotDTO {
+
+ /*
+ * ���������mac
+ * */
+ private String mac;
+
+ /*
+ * ���������������
+ * */
+ private String name;
+
+ /*
+ * ������������������������
+ * map������������������key���startTime
+ * ���������������key���endTime
+ * */
+ private List<Map<String,Date>> timeSlot;
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/uav/UAVQueryTimeSlotForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/uav/UAVQueryTimeSlotForm.java
new file mode 100644
index 0000000..c182c07
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/uav/UAVQueryTimeSlotForm.java
@@ -0,0 +1,57 @@
+package com.moral.api.pojo.form.uav;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName queryTimeSlotForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/9/8 14:17
+ * @Version TODO
+ **/
+@Data
+public class UAVQueryTimeSlotForm {
+
+ /*
+ * ������id
+ * */
+ private Integer organizationId;
+
+ /*
+ * ������
+ * */
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date date;
+
+ /*
+ * ������������
+ * */
+ private Date startDate;
+
+ /*
+ * ������������
+ * */
+ private Date endDate;
+
+
+ public boolean valid() {
+ if (
+ ObjectUtils.isEmpty(organizationId)&&
+ ObjectUtils.isEmpty(date)
+ )
+ return false;
+ //������������������������������������
+ List<Date> dates = DateUtils.dateToStartAndEndTime(date);
+ startDate = dates.get(0);
+ endDate = dates.get(1);
+ return true;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java
new file mode 100644
index 0000000..96263ef
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java
@@ -0,0 +1,47 @@
+package com.moral.api.pojo.vo.uav;
+
+import com.moral.util.DateUtils;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * @ClassName UAVQueryDateVO
+ * @Description ������������������������������������vo
+ * @Author ���������
+ * @Date 2021/9/8 11:03
+ * @Version TODO
+ **/
+@Data
+public class UAVQueryDateVO {
+
+ /**
+ * @Description: ������hashset���������������
+ * @Param:
+ * @return:
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ public HashSet<String> datesStr;
+
+ /**
+ * @Description: ���������������������������������vo���������
+ * @Param: [dates]
+ * @return: com.moral.api.pojo.vo.uav.UAVQueryDateVO
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ public static UAVQueryDateVO convert(List<Date> dates){
+ //������������������������������������
+ UAVQueryDateVO uavQueryDateVO = new UAVQueryDateVO();
+ HashSet<String> datesStr = new HashSet<>();
+ for (Date date : dates) {
+ datesStr.add(DateUtils.dateToDateString(date,"yyyy-MM-dd"));
+ }
+ uavQueryDateVO.setDatesStr(datesStr);
+ return uavQueryDateVO;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVO.java
new file mode 100644
index 0000000..90343dc
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVO.java
@@ -0,0 +1,23 @@
+package com.moral.api.pojo.vo.uav;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName UAVQueryTimeSlotVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/9/8 16:57
+ * @Version TODO
+ **/
+@Data
+public class UAVQueryTimeSlotVO {
+
+ private String mac;
+
+ private String name;
+
+ private List<Map<String,String>> timeSlot;
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVOs.java b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVOs.java
new file mode 100644
index 0000000..a713d11
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryTimeSlotVOs.java
@@ -0,0 +1,44 @@
+package com.moral.api.pojo.vo.uav;
+
+import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO;
+import com.moral.util.DateUtils;
+import lombok.Data;
+
+import java.util.*;
+
+/**
+ * @ClassName UAVQueryTimeSlotVOs
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/9/8 17:16
+ * @Version TODO
+ **/
+@Data
+public class UAVQueryTimeSlotVOs {
+
+ List<UAVQueryTimeSlotVO> vos;
+
+ public static UAVQueryTimeSlotVOs convert(List<UAVQueryTimeSlotDTO> dtos){
+ UAVQueryTimeSlotVOs resultVO = new UAVQueryTimeSlotVOs();
+ List<UAVQueryTimeSlotVO> vos = new ArrayList<>();
+ for (UAVQueryTimeSlotDTO dto : dtos) {
+ UAVQueryTimeSlotVO vo = new UAVQueryTimeSlotVO();
+ vo.setMac(dto.getMac());
+ vo.setName(dto.getName());
+ List<Map<String,String>> timeSlotVo = new ArrayList<>();
+ List<Map<String, Date>> timeSlot = dto.getTimeSlot();
+ for (Map<String, Date> map : timeSlot) {
+ Map<String,String> newMap = new LinkedHashMap<>();
+ map.forEach((key,value)->{
+ String dateStr = DateUtils.dateToDateString(value, "yyyy-MM-dd HH:mm:ss");
+ newMap.put(key,dateStr);
+ });
+ timeSlotVo.add(newMap);
+ }
+ vo.setTimeSlot(timeSlotVo);
+ vos.add(vo);
+ }
+ resultVO.setVos(vos);
+ return resultVO;
+ }
+}
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 7814476..4b663ca 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
@@ -2,6 +2,11 @@
import com.moral.api.entity.HistorySecondUav;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO;
+import com.moral.api.pojo.form.uav.UAVQueryTimeSlotForm;
+
+import java.util.Date;
+import java.util.List;
/**
* <p>
@@ -13,4 +18,23 @@
*/
public interface HistorySecondUavService extends IService<HistorySecondUav> {
+ /**
+ * @Description: ������������id������������������������������������������
+ * @Param: [organizationId]
+ * @return: java.util.List<java.util.Date>
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ List<Date> queryDate(Integer organizationId);
+
+ /**
+ * @Description: ���������������������������������������������������������
+ * @Param: [from]
+ * @return: List<UAVQueryTimeSlotDTO>
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ List<UAVQueryTimeSlotDTO> queryTimeSlot(UAVQueryTimeSlotForm form);
+
+
}
diff --git a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
index ea3f8da..7711c12 100644
--- a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
@@ -22,4 +22,22 @@
//���������������
List<Map<String, Object>> carTrajectory(Map<String, Object> params);
+ /**
+ * @Description: ������mac������������������������
+ * @Param: [mac]
+ * @return: com.moral.api.entity.SpecialDevice
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ Map<String,Object> getSpecialDeviceMapByMac(String mac);
+
+ /**
+ * @Description: ������mac������������������������
+ * @Param: [mac]
+ * @return: com.moral.api.entity.SpecialDevice
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ SpecialDevice getSpecialDeviceByMac(String mac);
+
}
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 c0da684..1565dc3 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,10 +1,21 @@
package com.moral.api.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondUav;
+import com.moral.api.entity.Organization;
import com.moral.api.mapper.HistorySecondUavMapper;
+import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO;
+import com.moral.api.pojo.form.uav.UAVQueryTimeSlotForm;
import com.moral.api.service.HistorySecondUavService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.service.OrganizationService;
+import com.moral.api.service.SpecialDeviceService;
+import com.moral.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.function.Predicate;
/**
* <p>
@@ -17,4 +28,125 @@
@Service
public class HistorySecondUavServiceImpl extends ServiceImpl<HistorySecondUavMapper, HistorySecondUav> implements HistorySecondUavService {
+ @Autowired
+ HistorySecondUavMapper historySecondUavMapper;
+ @Autowired
+ OrganizationService organizationService;
+ @Autowired
+ SpecialDeviceService specialDeviceService;
+
+ @Override
+ public List<Date> queryDate(Integer organizationId) {
+ //������������������
+ QueryWrapper<HistorySecondUav> queryWrapper = new QueryWrapper<>();
+ //���������������id
+ List<Organization> children = organizationService.getChildrenOrganizationsById(organizationId);
+ List<Integer> childrenId = new ArrayList<>();
+ for (Organization child : children) {
+ childrenId.add(child.getId());
+ }
+ childrenId.add(organizationId);
+ queryWrapper.in("organization_id",childrenId);
+ //���������������������������180���
+ Date endDate = new Date();
+ Date startDate = DateUtils.addDays(endDate, -180);
+ queryWrapper.between("batch",startDate,endDate);
+ //������������������
+ queryWrapper.select("DISTINCT batch");
+ //������������
+ List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(queryWrapper);
+ //������������Date������
+ List<Date> result = new ArrayList<>();
+ for (HistorySecondUav historySecondUav : historySecondUavs) {
+ result.add(historySecondUav.getBatch());
+ }
+ return result;
+ }
+
+ @Override
+ public List<UAVQueryTimeSlotDTO> queryTimeSlot(UAVQueryTimeSlotForm form) {
+ //������
+ Integer organizationId = form.getOrganizationId();
+ Date startDate = form.getStartDate();
+ Date endDate = form.getEndDate();
+ QueryWrapper<HistorySecondUav> wrapper = new QueryWrapper<>();
+ //���������������id
+ List<Organization> children = organizationService.getChildrenOrganizationsById(organizationId);
+ List<Integer> childrenId = new ArrayList<>();
+ for (Organization child : children) {
+ childrenId.add(child.getId());
+ }
+ childrenId.add(organizationId);
+ wrapper.in("organization_id",childrenId);
+ //������������batch������������������������������������������������
+ wrapper.between("batch",startDate,endDate);
+ //������������������
+ wrapper.select("mac,time,batch");
+ //������������
+ List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(wrapper);
+ //������batch������������
+ Map<String,List<HistorySecondUav>> batchMap = new LinkedHashMap<>();//key���batch���string
+ for (HistorySecondUav historySecondUav : historySecondUavs) {
+ //������batch���������������������
+ List<HistorySecondUav> list = batchMap.get(historySecondUav.getBatch().toString());
+ if(list!=null){
+ list.add(historySecondUav);
+ }else{
+ ArrayList<HistorySecondUav> newList = new ArrayList<>();
+ newList.add(historySecondUav);
+ batchMap.put(historySecondUav.getBatch().toString(),newList);
+ }
+ }
+ //������������30������������������
+ batchMap.values().removeIf(new Predicate<List<HistorySecondUav>>() {
+ @Override
+ public boolean test(List<HistorySecondUav> historySecondUavs) {
+ if(historySecondUavs.size()<=30)
+ return true;
+ return false;
+ }
+ });
+ //������mac������������
+ Map<String,List<Map<String,List<HistorySecondUav>>>> macBatchMap = new LinkedHashMap<>();//key���mac
+ //������batchMap���mac���������������������macBatchMap���key���batch���������map���������������������value
+ batchMap.forEach((key,value)->{
+ String mac = value.get(0).getMac();
+ List<Map<String, List<HistorySecondUav>>> maps = macBatchMap.get(mac);
+ if(maps!=null){
+ Map<String,List<HistorySecondUav>> map = new LinkedHashMap<>();
+ map.put(key,value);
+ maps.add(map);
+ }else{
+ List<Map<String,List<HistorySecondUav>>> list = new ArrayList<>();
+ Map<String,List<HistorySecondUav>> map = new LinkedHashMap<>();
+ map.put(key,value);
+ list.add(map);
+ macBatchMap.put(value.get(0).getMac(),list);
+ }
+ });
+ //������������������
+ List<UAVQueryTimeSlotDTO> dtos = new ArrayList<>();
+ macBatchMap.forEach((key,value)->{
+ UAVQueryTimeSlotDTO dto = new UAVQueryTimeSlotDTO();
+ List<Map<String,Date>> timeSlots = new ArrayList<>();
+ dto.setMac(key);
+ //������mac������������������
+ dto.setName((String) specialDeviceService.getSpecialDeviceMapByMac(key).get("name"));
+ //���������������
+ value.forEach(listValue->{
+ listValue.forEach((mKey,mValue)->{
+ Date slotStartDate = mValue.get(0).getTime();
+ Date slotEndDate = mValue.get(mValue.size()-1).getTime();
+ Map<String,Date> dateMap = new HashMap<>();
+ dateMap.put("startTime",slotStartDate);
+ dateMap.put("endTime",slotEndDate);
+ timeSlots.add(dateMap);
+ });
+ });
+ dto.setTimeSlot(timeSlots);
+ dtos.add(dto);
+ });
+ return dtos;
+ }
+
}
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 ce1ee37..0d730ba 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
@@ -27,6 +27,7 @@
@Autowired
OrganizationMapper organizationMapper;
+
@Override
public List<Organization> getChildrenOrganizationsById(Integer id) {
List<Organization> childrenOrganization = new ArrayList<>();
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 4ff6a07..fd19d65 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -2,18 +2,23 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.HistorySecondSpecial;
+import com.moral.api.entity.Organization;
import com.moral.api.entity.SpecialDevice;
import com.moral.api.entity.SpecialDeviceHistory;
import com.moral.api.mapper.HistorySecondSpecialMapper;
import com.moral.api.mapper.SpecialDeviceMapper;
+import com.moral.api.service.OrganizationService;
import com.moral.api.service.SpecialDeviceHistoryService;
import com.moral.api.service.SpecialDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
import com.moral.util.GeodesyUtils;
import com.moral.util.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -37,6 +42,14 @@
@Autowired
private SpecialDeviceHistoryService specialDeviceHistoryService;
+
+ @Autowired
+ OrganizationService organizationService;
+
+ @Autowired
+ SpecialDeviceMapper specialDeviceMapper;
+ @Autowired
+ RedisTemplate redisTemplate;
private final static Double dis = 50d;
@@ -84,6 +97,23 @@
return filterData(data);
}
+ @Override
+ public Map<String,Object> getSpecialDeviceMapByMac(String mac) {
+ //������������������
+ Map<String,Object> specialDeviceMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE,mac);
+ return specialDeviceMap;
+ }
+
+ @Override
+ public SpecialDevice getSpecialDeviceByMac(String mac) {
+ QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper();
+ queryWrapper.eq("mac",mac);
+ queryWrapper.eq("is_delete",Constants.NOT_DELETE);
+ SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
+ return specialDevice;
+ }
+
+
//������������������������
private List<Map<String, Object>> filterData(List<Map<String, Object>> data) {
List<Map<String, Object>> result = new ArrayList<>();
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 38b3a9a..4346d0d 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -218,5 +218,6 @@
* ������������������������������
* */
public static final String SPECIAL_DEVICE_UAV = "1";
+
}
diff --git a/screen-common/src/main/java/com/moral/constant/RedisConstants.java b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
index e449781..69de65a 100644
--- a/screen-common/src/main/java/com/moral/constant/RedisConstants.java
+++ b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
@@ -78,5 +78,10 @@
* */
public static final String SPECIAL_DEVICE_INFO = "special_device_alarm_info";
+ /*
+ * redis���������������������key
+ * */
+ public static final String GOV_MONITOR_POINT = "gov_monitor_point";
+
}
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 9af501f..7b313a8 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -92,6 +92,26 @@
/**
+ * @Description: ������������������������������������������������
+ * @Param: [date]
+ * @return: java.util.List<java.util.Date>
+ * @Author: ���������
+ * @Date: 2021/9/8
+ */
+ public static List<Date> dateToStartAndEndTime(Date date){
+ String dateStr = dateToDateString(date, "yyyy-MM-dd");
+ String startDateStr = dateStr+" 00:00:00";
+ String endDateStr = dateStr+" 23:59:59";
+ Date startDate = getDate(startDateStr, "yyyy-MM-dd HH:mm:ss");
+ Date endDate = getDate(endDateStr, "yyyy-MM-dd HH:mm:ss");
+ ArrayList<Date> dates = new ArrayList<>();
+ dates.add(startDate);
+ dates.add(endDate);
+ return dates;
+ }
+
+
+ /**
* @Description: Date���toString������������Date
* @Param: []
* @return: java.util.Date
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
new file mode 100644
index 0000000..6bfbc14
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java
@@ -0,0 +1,107 @@
+package com.moral.api.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.moral.api.entity.GovMonitorPoint;
+import com.moral.api.mapper.GovMonitorPointMapper;
+import com.moral.api.service.GovMonitorPointService;
+import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.WebUtils;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: screen
+ * @description: ������������
+ * @author: lizijie
+ * @create: 2021-09-09 11:31
+ **/
+@Slf4j
+@Api(tags = {"������������"})
+@RestController
+@RequestMapping("/govMonitorPoint")
+public class GovMonitorPoionController {
+
+ @Resource
+ private GovMonitorPointService govMonitorPointService;
+
+ @Resource
+ private GovMonitorPointMapper govMonitorPointMapper;
+
+ @RequestMapping(value = "getGovMonitorPointByCondition", method = RequestMethod.GET)
+ @ResponseBody
+ public ResultMessage getSpecialDeviceByCondition(HttpServletRequest request) {
+ Map<String,Object> parameters = WebUtils.getParametersStartingWith(request,null);
+ Map<String,Object> resultMap = govMonitorPointService.getDataByCondition(parameters);
+ if (!resultMap.containsKey("code")){
+ return ResultMessage.ok(resultMap);
+ }
+ return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
+ }
+
+ @RequestMapping(value = "insert", method = RequestMethod.POST)
+ @ResponseBody
+ public ResultMessage insert(@RequestBody GovMonitorPoint govMonitorPoint){
+ String guid = govMonitorPoint.getGuid();
+ String name = govMonitorPoint.getName();
+ double longitude = govMonitorPoint.getLongitude();
+ double latitude = govMonitorPoint.getLatitude();
+ String station_level = govMonitorPoint.getStationLevel();
+ if (ObjectUtils.isEmpty(guid) && ObjectUtils.isEmpty(name) && ObjectUtils.isEmpty(longitude) && ObjectUtils.isEmpty(latitude) && ObjectUtils.isEmpty(station_level)){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+ wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+ wrapper_govMonitorPoint.eq("guid",guid).or().eq("name",name);
+ List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
+ if (govMonitorPoints.size()>0){
+ return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getMsg());
+ }
+ govMonitorPointService.insert(govMonitorPoint);
+ return ResultMessage.ok();
+ }
+
+ @RequestMapping(value = "update", method = RequestMethod.POST)
+ @ResponseBody
+ public ResultMessage update(@RequestBody GovMonitorPoint govMonitorPoint){
+ int id = govMonitorPoint.getId();
+ if (ObjectUtils.isEmpty(id)){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ 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){
+ return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
+ }
+ govMonitorPointService.update(govMonitorPoint);
+ return ResultMessage.ok();
+ }
+
+ @RequestMapping(value = "delete", method = RequestMethod.POST)
+ @ResponseBody
+ public ResultMessage delete(@RequestBody Map map){
+ int id = Integer.parseInt(map.get("id").toString());
+ if (ObjectUtils.isEmpty(id)){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ 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){
+ return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
+ }
+ govMonitorPointService.delete(id);
+ return ResultMessage.ok();
+ }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java b/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java
new file mode 100644
index 0000000..192517b
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java
@@ -0,0 +1,101 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GovMonitorPoint extends Model<GovMonitorPoint> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * ������������code
+ */
+ private String guid;
+
+ /**
+ * ������
+ */
+ private String name;
+
+ /**
+ * ������
+ */
+ private Double longitude;
+
+ /**
+ * ������
+ */
+ private Double latitude;
+
+ /**
+ * ���������
+ */
+ private Integer provinceCode;
+
+ /**
+ * ���������
+ */
+ private Integer cityCode;
+
+ /**
+ * ���/���������
+ */
+ private Integer areaCode;
+
+ /**
+ * ���������������������������������������������
+ */
+ private String stationLevel;
+
+ /**
+ * ������������
+ */
+ private Date createTime;
+
+ /**
+ * ������������
+ */
+ private Date updateTime;
+
+ /**
+ * ������������
+ */
+ private String isDelete;
+
+ /**
+ * ������
+ */
+ @TableField("`desc`")
+ private String desc;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/GovMonitorPointMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/GovMonitorPointMapper.java
new file mode 100644
index 0000000..e261c0c
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/mapper/GovMonitorPointMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.GovMonitorPoint;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-09
+ */
+public interface GovMonitorPointMapper extends BaseMapper<GovMonitorPoint> {
+
+}
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
new file mode 100644
index 0000000..dc7c625
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java
@@ -0,0 +1,67 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.GovMonitorPoint;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-09
+ */
+public interface GovMonitorPointService extends IService<GovMonitorPoint> {
+
+ /**
+ *@Description: ������������������������������������
+ *@Param: [map]
+ *@return: java.util.Map<java.lang.String,java.lang.Object>
+ *@Author: lizijie
+ *@Date: 2021/9/9 11:28
+ **/
+ Map<String,Object> getDataByCondition(Map map);
+
+ /**
+ *@Description: ������������������
+ *@Param: [govMonitorPoint]
+ *@return: void
+ *@Author: lizijie
+ *@Date: 2021/9/9 15:09
+ **/
+ @Transactional
+ void insert(GovMonitorPoint govMonitorPoint);
+
+ /**
+ *@Description: ������������������
+ *@Param: [govMonitorPoint]
+ *@return: void
+ *@Author: lizijie
+ *@Date: 2021/9/10 10:10
+ **/
+ @Transactional
+ void update(GovMonitorPoint govMonitorPoint);
+
+ /**
+ *@Description: ������������������
+ *@Param: [id]
+ *@return: void
+ *@Author: lizijie
+ *@Date: 2021/9/10 13:11
+ **/
+ @Transactional
+ void delete(Integer id);
+
+ /**
+ *@Description: ������id������������������������
+ *@Param: [id]
+ *@return: com.moral.api.entity.GovMonitorPoint
+ *@Author: lizijie
+ *@Date: 2021/9/9 16:35
+ **/
+ GovMonitorPoint selectGovMonitorPointInfoById(int id);
+
+}
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
new file mode 100644
index 0000000..9cac6b4
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -0,0 +1,222 @@
+package com.moral.api.service.impl;
+
+import com.alibaba.fastjson.JSON;
+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.plugins.pagination.Page;
+import com.moral.api.entity.GovMonitorPoint;
+import com.moral.api.entity.SysArea;
+import com.moral.api.mapper.GovMonitorPointMapper;
+import com.moral.api.mapper.SysAreaMapper;
+import com.moral.api.service.GovMonitorPointService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.util.LogUtils;
+import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
+import com.moral.constant.ResponseCodeEnum;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-09
+ */
+@Service
+public class GovMonitorPointServiceImpl extends ServiceImpl<GovMonitorPointMapper, GovMonitorPoint> implements GovMonitorPointService {
+
+ @Autowired(required = false)
+ private GovMonitorPointMapper govMonitorPointMapper;
+
+ @Autowired(required = false)
+ private SysAreaMapper sysAreaMapper;
+
+ @Autowired(required = false)
+ private RedisTemplate redisTemplate;
+
+ @Autowired
+ private LogUtils logUtils;
+
+ /*
+ * ���redis������������������
+ * */
+ private Map<String, Object> getGovMonitorPointInfoFromRedis(String id) {
+ return (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.GOV_MONITOR_POINT, id);
+ }
+
+ /*
+ * ������������������redis
+ */
+ private void setGovMonitorPointInfoToRedis(String id, GovMonitorPoint govMonitorPointInfo) {
+ redisTemplate.opsForHash().put(RedisConstants.GOV_MONITOR_POINT, id, govMonitorPointInfo);
+ }
+
+ /*
+ * ���redis������������������
+ */
+ private void delGovMonitorPointInfoFromRedis(String id) {
+ redisTemplate.opsForHash().delete(RedisConstants.GOV_MONITOR_POINT, id);
+ }
+
+ @Override
+ public Map<String, Object> getDataByCondition(Map map) {
+ Map<String,Object> resultMap = new HashMap<>();
+ if (!map.containsKey("current")||!map.containsKey("size")){
+ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+ resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ return resultMap;
+ }
+ int current = Integer.parseInt(map.get("current").toString());
+ int size = Integer.parseInt(map.get("size").toString());
+ Page<GovMonitorPoint> page = new Page<>(current,size);
+ QueryWrapper<GovMonitorPoint> wrapper_Condition = new QueryWrapper<>();
+ wrapper_Condition.eq("is_delete",Constants.NOT_DELETE);
+ if (!ObjectUtils.isEmpty(map.get("name"))){
+ wrapper_Condition.like("name",map.get("name").toString());
+ }
+ if (!ObjectUtils.isEmpty(map.get("stationLevel"))){
+ wrapper_Condition.like("station_level",map.get("stationLevel").toString());
+ }
+ wrapper_Condition.orderByDesc("create_time");
+ Page resultPage = govMonitorPointMapper.selectPage(page,wrapper_Condition);
+ int totalNumber = govMonitorPointMapper.selectCount(wrapper_Condition);
+ List<GovMonitorPoint> govMonitorPoints = resultPage.getRecords();
+ SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ List<Map<String,Object>> govMonitorPointList = new ArrayList<>();
+ for (GovMonitorPoint govMonitorPoint:govMonitorPoints) {
+ Map govMonitorPointMap = JSON.parseObject(JSON.toJSONString(govMonitorPoint),Map.class);
+ String createTime = SDF.format(govMonitorPoint.getCreateTime());
+ String updateTime = SDF.format(govMonitorPoint.getUpdateTime());
+ govMonitorPointMap.put("createTime",createTime);
+ govMonitorPointMap.put("updateTime",updateTime);
+ String position = "";
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())){
+ QueryWrapper<SysArea> wrapper_province = new QueryWrapper<>();
+ wrapper_province.eq("area_code",govMonitorPoint.getProvinceCode());
+ SysArea sysArea_provice = sysAreaMapper.selectOne(wrapper_province);
+ if (!ObjectUtils.isEmpty(sysArea_provice)){
+ position = position+sysArea_provice.getAreaName();
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())){
+ QueryWrapper<SysArea> wrapper_city = new QueryWrapper<>();
+ wrapper_city.eq("area_code",govMonitorPoint.getCityCode());
+ SysArea sysArea_city = sysAreaMapper.selectOne(wrapper_city);
+ if (!ObjectUtils.isEmpty(sysArea_city)){
+ position = position+"/"+sysArea_city.getAreaName();
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())){
+ QueryWrapper<SysArea> wrapper_area = new QueryWrapper<>();
+ wrapper_area.eq("area_code",govMonitorPoint.getAreaCode());
+ SysArea sysArea_area = sysAreaMapper.selectOne(wrapper_area);
+ if (!ObjectUtils.isEmpty(sysArea_area)){
+ position = position+"/"+sysArea_area.getAreaName();
+ }
+ }
+ }
+ }
+ }
+ }
+ govMonitorPointMap.put("position",position);
+ govMonitorPointList.add(govMonitorPointMap);
+ }
+ resultMap.put("govMonitorPointList",govMonitorPointList);
+ resultMap.put("totalNumber",totalNumber);
+ resultMap.put("current",current);
+ int totalPageNumber = totalNumber/size;
+ if(totalNumber%size != 0){
+ totalPageNumber += 1;
+ }
+ resultMap.put("totalPageNumber",totalPageNumber);
+ return resultMap;
+ }
+
+ @Transactional
+ @Override
+ public void insert(GovMonitorPoint govMonitorPoint) {
+ int count = govMonitorPointMapper.insert(govMonitorPoint);
+ //������������redis
+ setGovMonitorPointInfoToRedis(govMonitorPoint.getId().toString(),selectGovMonitorPointInfoById(govMonitorPoint.getId()));
+ if (count > 0){
+ //������������������
+ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+ StringBuilder content = new StringBuilder();
+ content.append("������������������������").append("id:").append(govMonitorPoint.getId()+";").append(govMonitorPoint.getName()+";").append(":").append("guid���").append(govMonitorPoint.getGuid()+";");
+ logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+ }
+ }
+
+ @Transactional
+ @Override
+ public void update(GovMonitorPoint govMonitorPoint) {
+ Integer id = govMonitorPoint.getId();
+ GovMonitorPoint oldGovMonitorPoint = govMonitorPointMapper.selectById(id);
+ 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(oldGovMonitorPoint.getGuid()).append("->").append(govMonitorPoint.getGuid()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getName())){
+ content.append("name:").append(oldGovMonitorPoint.getName()).append("->").append(govMonitorPoint.getName()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getLongitude())){
+ content.append("longitude:").append(oldGovMonitorPoint.getLongitude()).append("->").append(govMonitorPoint.getLongitude()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getLatitude())){
+ content.append("latitude:").append(oldGovMonitorPoint.getLatitude()).append("->").append(govMonitorPoint.getLatitude()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())){
+ content.append("provinceCode:").append(oldGovMonitorPoint.getProvinceCode()).append("->").append(govMonitorPoint.getProvinceCode()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())){
+ content.append("cityCode:").append(oldGovMonitorPoint.getCityCode()).append("->").append(govMonitorPoint.getCityCode()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())){
+ content.append("areaCode:").append(oldGovMonitorPoint.getAreaCode()).append("->").append(govMonitorPoint.getAreaCode()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getStationLevel())){
+ content.append("stationLevel:").append(oldGovMonitorPoint.getStationLevel()).append("->").append(govMonitorPoint.getStationLevel()).append(";");
+ }
+ if (!ObjectUtils.isEmpty(govMonitorPoint.getDesc())){
+ content.append("desc:").append(oldGovMonitorPoint).append("->").append(govMonitorPoint.getDesc()).append(";");
+ }
+ logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+ }
+
+ @Override
+ public void delete(Integer id) {
+ UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>();
+ wrapper_delete.eq("id",id).set("is_delete",Constants.DELETE);
+ govMonitorPointMapper.update(null,wrapper_delete);
+ //������redis
+ delGovMonitorPointInfoFromRedis(id.toString());
+ //������������������
+ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+ StringBuilder content = new StringBuilder();
+ content.append("������������������").append("id:").append(id).append(";");
+ logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
+ }
+
+ @Override
+ public GovMonitorPoint selectGovMonitorPointInfoById(int id) {
+ GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectById(id);
+ return govMonitorPoint;
+ }
+}
diff --git a/screen-manage/src/main/resources/mapper/GovMonitorPointMapper.xml b/screen-manage/src/main/resources/mapper/GovMonitorPointMapper.xml
new file mode 100644
index 0000000..1bd2fcc
--- /dev/null
+++ b/screen-manage/src/main/resources/mapper/GovMonitorPointMapper.xml
@@ -0,0 +1,22 @@
+<?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.GovMonitorPointMapper">
+
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.GovMonitorPoint">
+ <id column="id" property="id" />
+ <result column="gov_code" property="govCode" />
+ <result column="name" property="name" />
+ <result column="longitude" property="longitude" />
+ <result column="latitude" property="latitude" />
+ <result column="province_code" property="provinceCode" />
+ <result column="city_code" property="cityCode" />
+ <result column="area_code" property="areaCode" />
+ <result column="gov_type" property="govType" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="is_delete" property="isDelete" />
+ <result column="desc" property="desc" />
+ </resultMap>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0