From 83479607bc5ffea9ad5e9be36088c7f742ba00d9 Mon Sep 17 00:00:00 2001
From: xyh <18782104331@139.com>
Date: 星期二, 29 六月 2021 11:03:17 +0800
Subject: [PATCH] 实有人口导入,走访导出

---
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java |  179 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 141 insertions(+), 38 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
index b8489d5..a00d99b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,30 +11,36 @@
 import com.panzhihua.common.enums.EventTasksStatusEnum;
 import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
 import com.panzhihua.common.model.dtos.EventResourceDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
-import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.*;
 import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
 import com.panzhihua.common.model.vos.visit.*;
-import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.CopyUtil;
 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.EventResourceMapper;
+import com.panzhihua.service_grid.dao.EventVisitingTasksMapper;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
+import com.panzhihua.service_grid.service.EventResourceService;
 import com.panzhihua.service_grid.service.EventVisitingTasksService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @auther lyq
@@ -50,10 +57,15 @@
     @Resource
     private EventResourceMapper eventResourceMapper;
 
+    @Resource
+    private EventResourceService eventResourceService;
+
     @Value("${domain.aesKey:}")
     private String aesKey;
+
     /**
      * 新增重点人群走访记录
+     *
      * @param eventVisitingTasksAddDTO
      * @return 新增结果
      */
@@ -100,6 +112,7 @@
 
     /**
      * 删除重点人群走访记录
+     *
      * @param EventVisitingTasksDeleteDTO
      * @return 平台用户信息
      */
@@ -109,6 +122,7 @@
 
     /**
      * 查询重点人群走访记录详细信息
+     *
      * @param id 重点人群走访记录 id
      * @return 查找结果
      */
@@ -144,9 +158,6 @@
             if(eventVisitingTasksVO.getNationCode() != null){
                 eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
             }
-            if(eventVisitingTasksVO.getVisiterTele() != null){
-                eventVisitingTasksVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksVO.getVisiterTele(), aesKey));
-            }
         }
         return R.ok(page);
     }
@@ -159,33 +170,52 @@
             if(eventVisitingTasksVO.getNationCode() != null){
                 eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
             }
-            if(eventVisitingTasksVO.getVisiterTele() != null){
-                eventVisitingTasksVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksVO.getVisiterTele(), aesKey));
-            }
         }
         return R.ok(page);
     }
 
     @Transactional
     @Override
-    public R delete(String ids, Long communityId) {
-        String[] idarr = ids.split(",");
+    public R delete(IdDTO idDTO, Long communityId) {
+        StringBuilder rt = new StringBuilder();
+        String[] idarr = idDTO.getId().split(",");
         for(String id:idarr){
             if(StringUtils.isEmpty(id)){
                 continue;
             }
-            EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectOne(new QueryWrapper<EventVisitingTasksDO>().eq("id",Long.valueOf(id)).eq("grid_member_community",communityId));
-            if(eventVisitingTasksDO == null){
-                throw new RuntimeException("无权限");
+            String error = toDelete(Long.valueOf(id));
+            if(!StringUtils.isEmpty(error)){
+                rt.append(rt);
             }
             eventVisitingTasksMapper.deleteById(Long.valueOf(id));
         }
+        if(!StringUtils.isEmpty(rt)){
+            return R.fail("部分删除失败:"+rt.toString());
+        }
         return R.ok();
+    }
+
+    private String toDelete(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if(eventVisitingTasksDO == null){
+            return "["+id+"]数据不存在;";
+        }
+        if(!Objects.equals(eventVisitingTasksDO.getEventStatus(),EventTasksStatusEnum.DZF.getCode())){
+            return "["+eventVisitingTasksDO.getVisiterName()+"]状态不可删除;";
+        }
+        return null;
     }
 
     @Override
     public R visitorList(EventVisitListQuery query) {
         IPage<EventVisitListVO> page = eventVisitingTasksMapper.visitorList(new Page(query.getPageNum(),query.getPageSize()),query);
+        page.getRecords().stream().forEach(e->{
+            List<EventVisitingTasksDO> list = eventVisitingTasksMapper.selectList(new QueryWrapper<EventVisitingTasksDO>().eq("visiter_id",e.getId()).orderByDesc("id"));
+            if(!CollectionUtils.isEmpty(list)){
+                e.setCreateAt(list.get(0).getCreateAt());
+                e.setEventStatus(list.get(0).getEventStatus());
+            }
+        });
         return R.ok(page);
     }
 
@@ -201,8 +231,11 @@
         if(eventVisitingTasksDO!=null) {
             EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
             BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
-            eventVisitingTasksDetailsVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
+            JSONObject jsonObject = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
             eventVisitingTasksDetailsVO.setTableContentJson(JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson()));
+            if(jsonObject != null && jsonObject.get("check") != null){
+                eventVisitingTasksDetailsVO.setOption(jsonObject.get("check").toString());
+            }
             return R.ok(eventVisitingTasksDetailsVO);
         }
         return R.fail();
@@ -210,19 +243,27 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public R add(String ids, Long communityId, Long userId) throws Exception {
-        Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
-        if(CollectionUtils.isEmpty(map)){
-            return R.fail("网格员不存在");
-        }
-        String[] id = ids.split(",");
+    public R add(IdDTO idDTO, Long communityId, Long userId) throws Exception {
+
+//        Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
+//        if(CollectionUtils.isEmpty(map)){
+//            return R.fail("网格员不存在");
+//        }
+
+        StringBuilder rt = new StringBuilder();
+        String[] id = idDTO.getId().split(",");
         for(String idstr:id){
             if(StringUtils.isEmpty(idstr)){
                 continue;
             }
-            addVisitingTask(Long.valueOf(idstr),map,communityId,userId);
+            String error = addVisitingTask(Long.valueOf(idstr),communityId,userId);
+            if(!StringUtils.isEmpty(error)){
+                rt.append(error);
+            }
         }
-
+        if(!StringUtils.isEmpty(rt)){
+            return R.fail("部分新增失败"+rt.toString());
+        }
         return R.ok();
     }
 
@@ -232,17 +273,16 @@
         return page.getRecords();
     }
 
+    private String addVisitingTask(Long id, Long communityId,Long userId) throws Exception{
 
-
-    private void addVisitingTask(Long id, Map<String, Object> gridMap,Long communityId,Long userId) throws Exception{
+        Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id);
+        if(CollectionUtils.isEmpty(map)){
+            return "被访问人ID["+id+"]不存在;";
+        }
 
         Integer count = eventVisitingTasksMapper.countNoneComplete(id);
         if(count > 0){
-            return;
-        }
-        Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id);
-        if(CollectionUtils.isEmpty(map)){
-            return ;
+            return "被访问人["+map.get("name")+"]只能同时存在一条待走访任务;";
         }
         EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
 //        visitingTasksDO.setGridMemberStreet(Long.valueOf(gridMap.get("street_id").toString()));
@@ -253,9 +293,7 @@
         visitingTasksDO.setVisiterId(Long.valueOf(map.get("id").toString()));
         visitingTasksDO.setVisiterName(map.get("name").toString());
         visitingTasksDO.setVisiterSex(Integer.valueOf(map.get("sex").toString()));
-        if(map.get("phone") != null){
-            visitingTasksDO.setVisiterTele(AESUtil.decrypt128(map.get("phone").toString(),aesKey));
-        }
+        visitingTasksDO.setVisiterTele(map.get("phone") == null ?null:map.get("phone").toString());
         StringBuilder sb = new StringBuilder();
         sb.append(map.get("address")).append(map.get("road")).append(map.get("door_no")).append(map.get("floor")).append("栋").append(map.get("unit_no")).append("单元").append(map.get("house_no")).append("号");
         visitingTasksDO.setVisiterAddress(sb.toString());
@@ -282,6 +320,7 @@
         }
 
         eventVisitingTasksMapper.insert(visitingTasksDO);
+        return null;
     }
 
     private List<String> getOption(String label) {
@@ -415,6 +454,7 @@
         return R.fail();
     }
 
+
     private void createResource(Long id, Long dellUserId, int classification, int type, EventResourceDTO resourceDTO) {
         EventResourceDO eventResourceDO = new EventResourceDO();
         eventResourceDO.setRefId(id);
@@ -426,4 +466,67 @@
         eventResourceMapper.insert(eventResourceDO);
     }
 
+    @Override
+    public List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask() {
+        List<LcEventVisitingTasksListDTO> lcEventVisitingTasksList =new ArrayList<>();
+        List<EventVisitingTasksDO> eventVisitingTasksList = baseMapper.selectList(
+                new QueryWrapper<EventVisitingTasksDO>()
+                        .eq("lc_upload", false)
+                        .eq("event_status",2)
+        );
+        lcEventVisitingTasksList= CopyUtil.beanCopyList(eventVisitingTasksList,LcEventVisitingTasksListDTO.class);
+        lcEventVisitingTasksList.forEach(visitingTasks -> {
+            addVisitingTasksFile(visitingTasks);
+        });
+        return lcEventVisitingTasksList;
+    }
+
+    private LcEventVisitingTasksListDTO addVisitingTasksFile(LcEventVisitingTasksListDTO visitingTasks) {
+        //查询事件关联附件
+        List<EventResourceDO> eventResourceDOList =
+                eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 2)
+                        .eq(EventResourceDO::getRefId, visitingTasks.getId())
+                );
+        List<EventResourceVO> picList = new ArrayList<>();
+        List<EventResourceVO> audioList = new ArrayList<>();
+        List<EventResourceVO> videoList = new ArrayList<>();
+        eventResourceDOList.forEach(eventResourceDO -> {
+            switch (eventResourceDO.getType()) {
+                case 1:
+                    EventResourceVO picEventResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                    picList.add(picEventResourceVO);
+                    break;
+                case 2:
+                    EventResourceVO audioResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                    audioList.add(audioResourceVO);
+                    break;
+                case 3:
+                    EventResourceVO videoResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                    videoList.add(videoResourceVO);
+                    break;
+            }
+        });
+        visitingTasks.setAudios(audioList);
+        visitingTasks.setPics(picList);
+        visitingTasks.setVideos(videoList);
+        return visitingTasks;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateLcUploadFlagVisitingTask(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = baseMapper.selectById(id);
+        eventVisitingTasksDO.setLcUpload(true);
+        int flag = baseMapper.updateById(eventVisitingTasksDO);
+        if (flag > 0) {
+            return true;
+        }
+        return false;
+    }
+
+
 }

--
Gitblit v1.7.1