From da9488337f2f350c08b068fe1fcf31c82710c54c Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期三, 13 十月 2021 09:42:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test
---
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 138 insertions(+), 25 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
index 4c5749b..1694d3a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
@@ -1,24 +1,35 @@
package com.panzhihua.service_grid.service.impl;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogAddDTO;
-import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogDeleteDTO;
-import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogEditDTO;
-import com.panzhihua.common.model.dtos.grid.PageEventGridMemberWarnLogDTO;
+import com.panzhihua.common.model.dtos.grid.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogDetailsVO;
import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO;
-import com.panzhihua.service_grid.dao.*;
-import com.panzhihua.service_grid.model.dos.*;
+import com.panzhihua.common.model.vos.grid.LatLngVO;
+import com.panzhihua.common.utlis.LngLatUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_grid.dao.EventGridDataMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberGpsLogMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberRelationMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberWarnLogMapper;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberWarnLogDO;
import com.panzhihua.service_grid.service.EventGridMemberWarnLogService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
-import javax.annotation.Resource;
-import java.util.Date;
+import lombok.extern.slf4j.Slf4j;
/**
* @auther lyq
@@ -27,20 +38,29 @@
*/
@Slf4j
@Service
-public class EventGridMemberWarnLogServiceImpl extends ServiceImpl<EventGridMemberWarnLogMapper, EventGridMemberWarnLogDO> implements EventGridMemberWarnLogService {
+public class EventGridMemberWarnLogServiceImpl extends
+ ServiceImpl<EventGridMemberWarnLogMapper, EventGridMemberWarnLogDO> implements EventGridMemberWarnLogService {
@Resource
private EventGridMemberWarnLogMapper eventGridMemberWarnLogMapper;
+ @Resource
+ private EventGridMemberGpsLogMapper eventGridMemberGpsLogMapper;
+ @Resource
+ private EventGridDataMapper eventGridDataMapper;
+ @Resource
+ private EventGridMemberRelationMapper eventGridMemberRelationMapper;
+
/**
* 新增网格员定时上报地理预警记录
+ *
* @param eventGridMemberWarnLogAddDTO
* @return 新增结果
*/
- public R add(EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO){
+ public R add(EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO) {
EventGridMemberWarnLogDO eventGridMemberWarnLogDO = new EventGridMemberWarnLogDO();
BeanUtils.copyProperties(eventGridMemberWarnLogAddDTO, eventGridMemberWarnLogDO);
eventGridMemberWarnLogDO.setCreateAt(new Date());
- if(eventGridMemberWarnLogMapper.insert(eventGridMemberWarnLogDO)>0){
+ if (eventGridMemberWarnLogMapper.insert(eventGridMemberWarnLogDO) > 0) {
return R.ok();
}
return R.fail();
@@ -48,14 +68,15 @@
/**
* 修改网格员定时上报地理预警记录
+ *
* @param eventGridMemberWarnLogEditDTO
* @return 维护结果
*/
- public R edit(EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO){
+ public R edit(EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO) {
EventGridMemberWarnLogDO eventGridMemberWarnLogDO = new EventGridMemberWarnLogDO();
BeanUtils.copyProperties(eventGridMemberWarnLogEditDTO, eventGridMemberWarnLogDO);
- //eventGridMemberWarnLogDO.setUpdateAt(new Date());
- if(eventGridMemberWarnLogMapper.updateById(eventGridMemberWarnLogDO)>0){
+ // eventGridMemberWarnLogDO.setUpdateAt(new Date());
+ if (eventGridMemberWarnLogMapper.updateById(eventGridMemberWarnLogDO) > 0) {
return R.ok();
}
return R.fail();
@@ -63,15 +84,16 @@
/**
* 分页查找网格员定时上报地理预警记录
+ *
* @param pageEventGridMemberWarnLogDTO
* @return 维护结果
*/
- public R<IPage<EventGridMemberWarnLogVO>> query(PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO){
- Page page = new Page(1,10);
- if(pageEventGridMemberWarnLogDTO.getPageNum()!=null) {
+ public R<IPage<EventGridMemberWarnLogVO>> query(PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO) {
+ Page page = new Page(1, 10);
+ if (pageEventGridMemberWarnLogDTO.getPageNum() != null) {
page.setCurrent(pageEventGridMemberWarnLogDTO.getPageNum());
}
- if(pageEventGridMemberWarnLogDTO.getPageSize()!=null) {
+ if (pageEventGridMemberWarnLogDTO.getPageSize() != null) {
page.setSize(pageEventGridMemberWarnLogDTO.getPageSize());
}
return R.ok(eventGridMemberWarnLogMapper.findByPage(page, pageEventGridMemberWarnLogDTO));
@@ -79,21 +101,24 @@
/**
* 删除网格员定时上报地理预警记录
+ *
* @param EventGridMemberWarnLogDeleteDTO
* @return 平台用户信息
*/
- public R delete(EventGridMemberWarnLogDeleteDTO EventGridMemberWarnLogDeleteDTO){
+ public R delete(EventGridMemberWarnLogDeleteDTO EventGridMemberWarnLogDeleteDTO) {
return R.fail();
}
/**
* 查询网格员定时上报地理预警记录详细信息
- * @param id 网格员定时上报地理预警记录 id
+ *
+ * @param id
+ * 网格员定时上报地理预警记录 id
* @return 查找结果
*/
- public R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(Long id){
+ public R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(Long id) {
EventGridMemberWarnLogDO eventGridMemberWarnLogDO = eventGridMemberWarnLogMapper.selectById(id);
- if(eventGridMemberWarnLogDO!=null) {
+ if (eventGridMemberWarnLogDO != null) {
EventGridMemberWarnLogDetailsVO eventGridMemberWarnLogDetailsVO = new EventGridMemberWarnLogDetailsVO();
BeanUtils.copyProperties(eventGridMemberWarnLogDO, eventGridMemberWarnLogDetailsVO);
return R.ok(eventGridMemberWarnLogDetailsVO);
@@ -101,4 +126,92 @@
return R.fail();
}
+ /**
+ * 后台获取网格员预警记录
+ *
+ * @param gridMemberWainDTO
+ * 请求参数
+ * @return 预警记录
+ */
+ @Override
+ public R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO) {
+ return R.ok(this.baseMapper.gridMemberWorkWarning(
+ new Page(gridMemberWainDTO.getPageNum(), gridMemberWainDTO.getPageSize()), gridMemberWainDTO));
+ }
+
+ /**
+ * 定时任务扫描网格员工作状态
+ *
+ * @return 定时任务扫描结果
+ */
+ @Override
+ public R timedTaskGridMember() {
+
+ // 查询所有网格数据
+ List<EventGridDataDO> gridDataDOList = eventGridDataMapper.selectList(
+ new QueryWrapper<EventGridDataDO>().lambda().eq(EventGridDataDO::getType, EventGridDataDO.type.sq));
+ if (gridDataDOList.isEmpty()) {
+ return R.fail("未查询到网格数据");
+ }
+
+ List<EventGridMemberGpsLogDO> memberGpsLogDOS =
+ eventGridMemberGpsLogMapper.selectList(new QueryWrapper<EventGridMemberGpsLogDO>().lambda()
+ .eq(EventGridMemberGpsLogDO::getPositionStation, EventGridMemberGpsLogDO.positionStation.no));
+ if (!memberGpsLogDOS.isEmpty()) {
+ memberGpsLogDOS.forEach(memberGpsLog -> {
+ if (StringUtils.isNotEmpty(memberGpsLog.getLngLat())) {
+ String[] lngLat = memberGpsLog.getLngLat().split(",");
+ Double lat = Double.valueOf(lngLat[0]);
+ Double lng = Double.valueOf(lngLat[1]);
+ // 遍历所有网格信息匹配网格员的坐标点是否在网格内
+ Boolean isOk = true;
+
+ Integer workStatus = 2;
+
+ for (EventGridDataDO gridData : gridDataDOList) {
+ if (StringUtils.isNotEmpty(gridData.getData())) {
+ List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(gridData.getData());
+ if (LngLatUtils.isInPolygon(latLngList, lng, lat)) {// 匹配通过
+ // 判断当前网格员与此网格是否有关系
+ Integer count = eventGridMemberRelationMapper
+ .selectCount(new QueryWrapper<EventGridMemberRelationDO>().lambda()
+ .eq(EventGridMemberRelationDO::getGridMemberId, memberGpsLog.getGridMemberId())
+ .eq(EventGridMemberRelationDO::getGridId, memberGpsLog.getGridId()));
+ if (count > 0) {
+ isOk = false;
+ workStatus = 1;
+ memberGpsLog.setGridId(gridData.getId());
+ memberGpsLog.setGridCommunityId(gridData.getGridCommunityId());
+ memberGpsLog.setGridStreetId(gridData.getGridStreetId());
+ memberGpsLog.setGridName(gridData.getGridName());
+ memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal);
+ eventGridMemberGpsLogMapper.updateById(memberGpsLog);
+ // 修改用户工作状态
+ this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus);
+ break;
+ }
+ }
+ }
+ }
+ if (isOk) {// 此网格员脱岗
+ memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal);
+ workStatus = 2;
+ // 新增网格员预警信息
+ EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO();
+ BeanUtils.copyProperties(memberGpsLog, memberWarnLogDO);
+ memberWarnLogDO.setId(null);
+ memberWarnLogDO.setContent("工作时间未在网格内预警");
+ memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt());
+ this.baseMapper.insert(memberWarnLogDO);
+
+ eventGridMemberGpsLogMapper.updateById(memberGpsLog);
+ // 修改用户工作状态
+ this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus);
+ }
+ }
+ });
+ }
+ return R.ok();
+ }
+
}
--
Gitblit v1.7.1