From cd7bec2448443f88eee6f73df68df829fc95eed9 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期二, 29 六月 2021 11:25:24 +0800
Subject: [PATCH] Merge branch 'test' into 'master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java |  232 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 187 insertions(+), 45 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 838950e..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
@@ -1,33 +1,46 @@
 package com.panzhihua.service_grid.service.impl;
 
+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;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.enums.EventTasksStatusEnum;
-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.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.model.dtos.EventResourceDTO;
+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.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
@@ -44,10 +57,15 @@
     @Resource
     private EventResourceMapper eventResourceMapper;
 
+    @Resource
+    private EventResourceService eventResourceService;
+
     @Value("${domain.aesKey:}")
     private String aesKey;
+
     /**
      * 新增重点人群走访记录
+     *
      * @param eventVisitingTasksAddDTO
      * @return 新增结果
      */
@@ -94,6 +112,7 @@
 
     /**
      * 删除重点人群走访记录
+     *
      * @param EventVisitingTasksDeleteDTO
      * @return 平台用户信息
      */
@@ -103,6 +122,7 @@
 
     /**
      * 查询重点人群走访记录详细信息
+     *
      * @param id 重点人群走访记录 id
      * @return 查找结果
      */
@@ -131,33 +151,71 @@
     }
 
     @Override
-    public R taskList(EventTasksQuery query) {
+    public R taskList(EventTasksQuery query) throws Exception{
 
         IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
+        for(EventVisitingTasksVO eventVisitingTasksVO:page.getRecords()){
+            if(eventVisitingTasksVO.getNationCode() != null){
+                eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
+            }
+        }
+        return R.ok(page);
+    }
 
+    @Override
+    public R appTaskList(EventTasksQuery query) throws Exception{
+
+        IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.appFindListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
+        for(EventVisitingTasksVO eventVisitingTasksVO:page.getRecords()){
+            if(eventVisitingTasksVO.getNationCode() != null){
+                eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
+            }
+        }
         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);
     }
 
@@ -173,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();
@@ -182,40 +243,46 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public R add(String ids, Long communityId, Long userId) {
-        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();
     }
 
     @Override
-    public List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) {
+    public List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) throws Exception {
         IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
-
         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) {
+        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()));
@@ -226,14 +293,14 @@
         visitingTasksDO.setVisiterId(Long.valueOf(map.get("id").toString()));
         visitingTasksDO.setVisiterName(map.get("name").toString());
         visitingTasksDO.setVisiterSex(Integer.valueOf(map.get("sex").toString()));
-        visitingTasksDO.setVisiterTele(map.get("phone") == null?"":map.get("phone").toString());
+        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());
         visitingTasksDO.setVisiterType(0);
         visitingTasksDO.setActOpara(0);
         if(map.get("lat") != null && map.get("lng") != null){
-            visitingTasksDO.setHappentLatLng(map.get("lat")+"-"+map.get("lng"));
+            visitingTasksDO.setHappentLatLng(map.get("lat")+","+map.get("lng"));
         }
         visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
         visitingTasksDO.setReporting(0);
@@ -253,6 +320,7 @@
         }
 
         eventVisitingTasksMapper.insert(visitingTasksDO);
+        return null;
     }
 
     private List<String> getOption(String label) {
@@ -341,50 +409,124 @@
     @Override
     public R complete(EventVisitCompleteDTO taskCompleteDTO) {
         EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(taskCompleteDTO.getId());
-        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.JXZ.getCode()){
+        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
             return R.fail("当前状态不可完成走访");
         }
+        EventVisitingTasksDO complete = new EventVisitingTasksDO();
+        BeanUtils.copyProperties(taskCompleteDTO,complete);
         if(taskCompleteDTO.getException().intValue() == 0){
-            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode());
+            complete.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode());
         }else{
-            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.YC.getCode());
+            complete.setEventStatus(EventTasksStatusEnum.YC.getCode());
         }
-
+        complete.setSubmitDate(DateUtil.parse(taskCompleteDTO.getSubmitDate(), DatePattern.NORM_DATETIME_FORMAT));
         JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
         json.put("check",taskCompleteDTO.getOption());
-        taskCompleteDTO.setOption(json.toJSONString());
+        complete.setTableContentJson(json.toJSONString());
 
-        if(!CollectionUtils.isEmpty(taskCompleteDTO.getImgList())){
+        if(!StringUtils.isEmpty(taskCompleteDTO.getImgList())){
             taskCompleteDTO.getImgList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,1,e);
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,1,e);
             });
         }
         if(!CollectionUtils.isEmpty(taskCompleteDTO.getVosList())){
             taskCompleteDTO.getVosList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,2,e);
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,2,e);
             });
         }
         if(!CollectionUtils.isEmpty(taskCompleteDTO.getVideoList())){
             taskCompleteDTO.getVosList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,3,e);
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,3,e);
             });
         }
 
-        int rt = eventVisitingTasksMapper.complete(taskCompleteDTO);
+        Map<String,Object> map = eventVisitingTasksMapper.findUserById(taskCompleteDTO.getUserId());
+        complete.setGridMemberStreet(Long.valueOf(map.get("street_id").toString()));
+        complete.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString()));
+        complete.setGridMember(Long.valueOf(map.get("user_id").toString()));
+        complete.setGridMemberName(map.get("name").toString());
+        complete.setGridMenberTele(map.get("phone") ==null?"":map.get("phone").toString());
+
+        int rt = eventVisitingTasksMapper.complete(complete);
         if(rt > 0){
             return R.ok();
         }
         return R.fail();
     }
 
-    private void createResource(Long id, Long dellUserId, int classification, int type,String url) {
+
+    private void createResource(Long id, Long dellUserId, int classification, int type, EventResourceDTO resourceDTO) {
         EventResourceDO eventResourceDO = new EventResourceDO();
         eventResourceDO.setRefId(id);
         eventResourceDO.setClassification(classification);
         eventResourceDO.setType(type);
         eventResourceDO.setCreateBy(dellUserId);
-        eventResourceDO.setUrl(url);
+        eventResourceDO.setUrl(resourceDTO.getUrl());
+        eventResourceDO.setResourceTime(resourceDTO.getResourceTime());
         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