From f64dd13f70e8cfbc98e734356b81024f537a6e1d Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期一, 27 二月 2023 20:13:58 +0800
Subject: [PATCH] 修改走访任务定时

---
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java |  313 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 271 insertions(+), 42 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
index 74b917c..04c100a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
@@ -1,24 +1,33 @@
 package com.panzhihua.service_grid.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.EventGridDataAddDTO;
-import com.panzhihua.common.model.dtos.grid.EventGridDataDeleteDTO;
-import com.panzhihua.common.model.dtos.grid.EventGridDataEditDTO;
-import com.panzhihua.common.model.dtos.grid.PageEventGridDataDTO;
+import com.panzhihua.common.model.dtos.grid.*;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
-import com.panzhihua.common.model.vos.grid.EventGridDataVO;
-import com.panzhihua.service_grid.dao.*;
-import com.panzhihua.service_grid.model.dos.*;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_grid.dao.EventGridDataMapper;
+import com.panzhihua.service_grid.dao.EventMapper;
+import com.panzhihua.service_grid.dao.LcCompareCodeMapper;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
 import com.panzhihua.service_grid.service.EventGridDataService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
+import com.panzhihua.service_grid.service.EventGridMemberRelationService;
 
-import javax.annotation.Resource;
-import java.util.Date;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @auther lyq
@@ -27,20 +36,29 @@
  */
 @Slf4j
 @Service
-public class EventGridDataServiceImpl extends ServiceImpl<EventGridDataMapper, EventGridDataDO> implements EventGridDataService {
+public class EventGridDataServiceImpl extends ServiceImpl<EventGridDataMapper, EventGridDataDO>
+    implements EventGridDataService {
 
     @Resource
     private EventGridDataMapper eventGridDataMapper;
+    @Resource
+    private EventMapper eventMapper;
+    @Resource
+    private EventGridMemberRelationService eventGridMemberRelationService;
+    @Resource
+    private LcCompareCodeMapper lcCompareCodeMapper;
+
     /**
      * 新增区县/街道/社区/网格员网格数据管理
+     * 
      * @param eventGridDataAddDTO
      * @return 新增结果
      */
-    public R add(EventGridDataAddDTO eventGridDataAddDTO){
+    public R add(EventGridDataAddDTO eventGridDataAddDTO) {
         EventGridDataDO eventGridDataDO = new EventGridDataDO();
         BeanUtils.copyProperties(eventGridDataAddDTO, eventGridDataDO);
         eventGridDataDO.setCreateAt(new Date());
-        if(eventGridDataMapper.insert(eventGridDataDO)>0){
+        if (eventGridDataMapper.insert(eventGridDataDO) > 0) {
             return R.ok();
         }
         return R.fail();
@@ -48,52 +66,40 @@
 
     /**
      * 修改区县/街道/社区/网格员网格数据管理
+     * 
      * @param eventGridDataEditDTO
      * @return 维护结果
      */
-    public R edit(EventGridDataEditDTO eventGridDataEditDTO){
+    public R edit(EventGridDataEditDTO eventGridDataEditDTO) {
         EventGridDataDO eventGridDataDO = new EventGridDataDO();
         BeanUtils.copyProperties(eventGridDataEditDTO, eventGridDataDO);
-        //eventGridDataDO.setUpdateAt(new Date());
-        if(eventGridDataMapper.updateById(eventGridDataDO)>0){
+        // eventGridDataDO.setUpdateAt(new Date());
+        if (eventGridDataMapper.updateById(eventGridDataDO) > 0) {
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 分页查找区县/街道/社区/网格员网格数据管理
-     * @param pageEventGridDataDTO
-     * @return 维护结果
-     */
-    public R<IPage<EventGridDataVO>> query(PageEventGridDataDTO pageEventGridDataDTO){
-        Page page = new Page(1,10);
-        if(pageEventGridDataDTO.getPageNum()!=null) {
-            page.setCurrent(pageEventGridDataDTO.getPageNum());
-        }
-        if(pageEventGridDataDTO.getPageSize()!=null) {
-            page.setSize(pageEventGridDataDTO.getPageSize());
-        }
-        return R.ok(eventGridDataMapper.findByPage(page, pageEventGridDataDTO));
-    }
-
-    /**
      * 删除区县/街道/社区/网格员网格数据管理
+     * 
      * @param EventGridDataDeleteDTO
      * @return 平台用户信息
      */
-    public R delete(EventGridDataDeleteDTO EventGridDataDeleteDTO){
+    public R delete(EventGridDataDeleteDTO EventGridDataDeleteDTO) {
         return R.fail();
     }
 
     /**
      * 查询区县/街道/社区/网格员网格数据管理详细信息
-     * @param id 区县/街道/社区/网格员网格数据管理 id
+     * 
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
      * @return 查找结果
      */
-    public R<EventGridDataDetailsVO> eventGridDataDetails(Long id){
+    public R<EventGridDataDetailsVO> eventGridDataDetails(Long id) {
         EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(id);
-        if(eventGridDataDO!=null) {
+        if (eventGridDataDO != null) {
             EventGridDataDetailsVO eventGridDataDetailsVO = new EventGridDataDetailsVO();
             BeanUtils.copyProperties(eventGridDataDO, eventGridDataDetailsVO);
             return R.ok(eventGridDataDetailsVO);
@@ -103,15 +109,238 @@
 
     @Override
     public R getUserGrid(PageEventGridDataDTO pageEventGridDataDTO) {
-        Page page = new Page(1,10);
-        if(pageEventGridDataDTO.getPageNum()!=null) {
+        Page page = new Page(1, 10);
+        if (pageEventGridDataDTO.getPageNum() != null) {
             page.setCurrent(pageEventGridDataDTO.getPageNum());
         }
-        if(pageEventGridDataDTO.getPageSize()!=null) {
+        if (pageEventGridDataDTO.getPageSize() != null) {
             page.setSize(pageEventGridDataDTO.getPageSize());
         }
 
         return R.ok(eventGridDataMapper.selectUserGrid(page, pageEventGridDataDTO));
     }
 
+    /**
+     * 地图模块-根据网格id查询网格详细信息
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格详细信息
+     */
+    @Override
+    public R getMapGridDetail(Long gridId) {
+        ComMapGridDetailVO gridDetailVO = new ComMapGridDetailVO();
+        // 查询网格信息
+        EventGridDataDO eventGridDataDO = this.baseMapper.selectById(gridId);
+        if (eventGridDataDO == null) {
+            return R.fail("未查询到网格信息");
+        }
+        BeanUtils.copyProperties(eventGridDataDO, gridDetailVO);
+        // 查询网格待办事件
+        List<ComMapGridEventVO> gridEventList = eventMapper.getEventByGridId(gridId);
+        if (!gridEventList.isEmpty()) {
+            gridDetailVO.setGridEventList(gridEventList);
+        }
+        return R.ok(gridDetailVO);
+    }
+
+    @Override
+    public R getGridTodoData(EventGridTodoDataDTO eventGridTodoDataDTO) {
+        List<UserEventGridDataVO> userEventGridDataVO = eventGridDataMapper.getGridTodoData(eventGridTodoDataDTO);
+        return R.ok(userEventGridDataVO);
+    }
+
+    /**
+     * 分页查询网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    @Override
+    public R getGridMemberList(PageEventGridDataAdminDTO eventGridDataDTO) {
+        IPage<EventGridAdminVO> gridAdminVOIPage = this.baseMapper
+            .findByPage(new Page(eventGridDataDTO.getPageNum(), eventGridDataDTO.getPageSize()), eventGridDataDTO);
+        if (!gridAdminVOIPage.getRecords().isEmpty()) {
+            gridAdminVOIPage.getRecords().forEach(gridMember -> {
+                List<GridMemberAdminVO> members = this.baseMapper.getGridMember(gridMember.getId());
+                if (!members.isEmpty()) {
+                    gridMember.setGridMembers(members);
+                }
+            });
+        }
+        return R.ok(gridAdminVOIPage);
+    }
+
+    /**
+     * 查询社区下所有网格员
+     * 
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    @Override
+    public R getGridMemberLists(Long communityId) {
+        return R.ok(this.baseMapper.getGridMemberLists(communityId));
+    }
+
+    /**
+     * 后台新增网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R addGridDataByAdmin(EventGridDataAddAdminDTO eventGridDataDTO) {
+        // 查询社区信息
+        ComGridActVO gridAct = this.baseMapper.getComActByActId(eventGridDataDTO.getGridCommunityId());
+        if (gridAct != null) {
+            EventGridDataDO gridDataDO = new EventGridDataDO();
+            BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
+            gridDataDO.setType(EventGridDataDO.type.sq);
+            gridDataDO.setGridStreetId(gridAct.getStreetId());
+            gridDataDO.setGridCommunityId(gridAct.getCommunityId());
+            gridDataDO.setZoneId(Long.parseLong(gridAct.getAreaCode()));
+            gridDataDO.setCreateBy(eventGridDataDTO.getUserId());
+            if (this.baseMapper.insert(gridDataDO) > 0) {
+                if (!eventGridDataDTO.getMemberIds().isEmpty()) {
+                    List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
+                    // 新增网格成功 绑定网格与网格员关系
+                    eventGridDataDTO.getMemberIds().forEach(memberId -> {
+                        EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
+                        memberRelationDO.setGridId(gridDataDO.getId());
+                        memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
+                        memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
+                        memberRelationDO.setGridName(gridDataDO.getGridName());
+                        memberRelationDO.setGridMemberId(memberId);
+                        memberRelationDOList.add(memberRelationDO);
+                    });
+                    if (!memberRelationDOList.isEmpty()) {
+                        // 添加网格与网格员关联关系
+                        eventGridMemberRelationService.saveBatch(memberRelationDOList);
+                    }
+                }
+
+                if (eventGridDataDTO.getLcGridId() != null) {
+                    // 关联市平台网格
+                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
+                        .lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
+                    if (compareCodeDO != null) {
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setUpdateAt(new Date());
+                        lcCompareCodeMapper.updateById(compareCodeDO);
+                    } else {
+                        compareCodeDO = new LcCompareCodeDO();
+                        compareCodeDO.setId(Snowflake.getId());
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
+                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
+                        compareCodeDO.setCreateAt(new Date());
+                        lcCompareCodeMapper.insert(compareCodeDO);
+                    }
+                }
+                return R.ok();
+            }
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 后台修改网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R editGridDataByAdmin(EventGridDataEditAdminDTO eventGridDataDTO) {
+
+        EventGridDataDO gridDataDO = this.baseMapper.selectById(eventGridDataDTO.getGridId());
+        if (gridDataDO != null) {
+            BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
+            gridDataDO.setRemarks(eventGridDataDTO.getRemarks());
+            gridDataDO.setUpdateBy(eventGridDataDTO.getUserId());
+            if (this.baseMapper.updateById(gridDataDO) > 0) {
+                // 移除网格员和网格关系
+                this.baseMapper.removeGridRelationByGridId(gridDataDO.getId());
+
+                if (!eventGridDataDTO.getMemberIds().isEmpty()) {
+                    List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
+                    // 绑定网格与网格员关系
+                    eventGridDataDTO.getMemberIds().forEach(memberId -> {
+                        EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
+                        memberRelationDO.setGridId(gridDataDO.getId());
+                        memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
+                        memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
+                        memberRelationDO.setGridName(gridDataDO.getGridName());
+                        memberRelationDO.setGridMemberId(memberId);
+                        memberRelationDOList.add(memberRelationDO);
+                    });
+                    if (!memberRelationDOList.isEmpty()) {
+                        // 添加网格与网格员关联关系
+                        eventGridMemberRelationService.saveBatch(memberRelationDOList);
+                    }
+                }
+
+                // 查询已存在的关系需要清除
+                lcCompareCodeMapper.delete(new QueryWrapper<LcCompareCodeDO>().lambda()
+                    .eq(LcCompareCodeDO::getLocalGridId, gridDataDO.getId()));
+                if (eventGridDataDTO.getLcGridId() != null) {
+                    // 关联市平台网格
+                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
+                        .lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
+                    if (compareCodeDO != null) {
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setUpdateAt(new Date());
+                        lcCompareCodeMapper.updateById(compareCodeDO);
+                    } else {
+                        compareCodeDO = new LcCompareCodeDO();
+                        compareCodeDO.setId(Snowflake.getId());
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
+                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
+                        compareCodeDO.setCreateAt(new Date());
+                        lcCompareCodeMapper.insert(compareCodeDO);
+                    }
+                }
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getGridMemberListsByGrid(Long gridId) {
+        List<EventGridMemberAdminVO> eventGridMemberAdminVOList = this.getBaseMapper().getGridMemberListsByGrid(gridId);
+        return R.ok(eventGridMemberAdminVOList);
+    }
+
+    @Override
+    public R getGridDataListByCommunity(Long communityId) {
+        List<EventGridDataAreaVO> eventGridDataAreaVOList =
+            this.getBaseMapper().getGridDataListByCommunity(communityId);
+        return R.ok(eventGridDataAreaVOList);
+    }
+
+    @Override
+    public R deleteGridDataByAdmin(List<Long> Ids) {
+        Integer count = eventMapper.getEventCountByGridIds(Ids);
+        if (count > 0) {
+            return R.fail("您选择的网格已发布过事件,不可删除");
+        }
+        if (this.baseMapper.deleteBatchIds(Ids) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+
+    }
+
 }

--
Gitblit v1.7.1