| | |
| | | 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.panzhihua.common.model.vos.grid.LatLngVO; |
| | | import com.panzhihua.common.utlis.LngLatUtils; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.service_grid.dao.*; |
| | | import com.panzhihua.service_grid.model.dos.*; |
| | | 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 java.util.List; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @auther lyq |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class EventGridMemberWarnLogServiceImpl extends ServiceImpl<EventGridMemberWarnLogMapper, EventGridMemberWarnLogDO> implements EventGridMemberWarnLogService { |
| | | public class EventGridMemberWarnLogServiceImpl extends |
| | | ServiceImpl<EventGridMemberWarnLogMapper, EventGridMemberWarnLogDO> implements EventGridMemberWarnLogService { |
| | | |
| | | @Resource |
| | | private EventGridMemberWarnLogMapper eventGridMemberWarnLogMapper; |
| | |
| | | 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(); |
| | |
| | | |
| | | /** |
| | | * 修改网格员定时上报地理预警记录 |
| | | * |
| | | * @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(); |
| | |
| | | |
| | | /** |
| | | * 分页查找网格员定时上报地理预警记录 |
| | | * |
| | | * @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)); |
| | |
| | | |
| | | /** |
| | | * 删除网格员定时上报地理预警记录 |
| | | * |
| | | * @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); |
| | |
| | | |
| | | /** |
| | | * 后台获取网格员预警记录 |
| | | * @param gridMemberWainDTO 请求参数 |
| | | * @return 预警记录 |
| | | * |
| | | * @param gridMemberWainDTO |
| | | * 请求参数 |
| | | * @return 预警记录 |
| | | */ |
| | | @Override |
| | | public R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO){ |
| | | return R.ok(this.baseMapper.gridMemberWorkWarning(new Page(gridMemberWainDTO.getPageNum(),gridMemberWainDTO.getPageSize()),gridMemberWainDTO)); |
| | | public R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO) { |
| | | return R.ok(this.baseMapper.gridMemberWorkWarning( |
| | | new Page(gridMemberWainDTO.getPageNum(), gridMemberWainDTO.getPageSize()), gridMemberWainDTO)); |
| | | } |
| | | |
| | | /** |
| | | * 定时任务扫描网格员工作状态 |
| | | * @return 定时任务扫描结果 |
| | | * |
| | | * @return 定时任务扫描结果 |
| | | */ |
| | | @Override |
| | | public R timedTaskGridMember(){ |
| | | public R timedTaskGridMember() { |
| | | |
| | | //查询所有网格数据 |
| | | List<EventGridDataDO> gridDataDOList = eventGridDataMapper.selectList(new QueryWrapper<EventGridDataDO>() |
| | | .lambda().eq(EventGridDataDO::getType,EventGridDataDO.type.sq)); |
| | | if(gridDataDOList.isEmpty()){ |
| | | // 查询所有网格数据 |
| | | 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(","); |
| | | 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())){ |
| | | 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){ |
| | | 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.setGridName(gridData.getGridName()); |
| | | memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal); |
| | | eventGridMemberGpsLogMapper.updateById(memberGpsLog); |
| | | //修改用户工作状态 |
| | | this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus); |
| | | // 修改用户工作状态 |
| | | this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(isOk){//此网格员脱岗 |
| | | if (isOk) {// 此网格员脱岗 |
| | | memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal); |
| | | workStatus = 2; |
| | | //新增网格员预警信息 |
| | | // 新增网格员预警信息 |
| | | EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO(); |
| | | BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO); |
| | | 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); |
| | | // 修改用户工作状态 |
| | | this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus); |
| | | } |
| | | } |
| | | }); |