From eb0e0847f4030ec96d18ab0e632aa1668ff6126d Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 24 六月 2021 16:55:48 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/test_esay_photo' into test_esay_photo --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 290 insertions(+), 4 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 937df4a..838950e 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,24 +1,33 @@ package com.panzhihua.service_grid.service.impl; +import com.alibaba.fastjson.JSONObject; +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.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.EventVisitingTasksDetailsVO; -import com.panzhihua.common.model.vos.grid.EventVisitingTasksVO; +import com.panzhihua.common.model.vos.visit.*; +import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_grid.dao.*; import com.panzhihua.service_grid.model.dos.*; import com.panzhihua.service_grid.service.EventVisitingTasksService; import lombok.extern.slf4j.Slf4j; +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.Date; +import java.util.*; /** * @auther lyq @@ -31,6 +40,12 @@ @Resource private EventVisitingTasksMapper eventVisitingTasksMapper; + + @Resource + private EventResourceMapper eventResourceMapper; + + @Value("${domain.aesKey:}") + private String aesKey; /** * 新增重点人群走访记录 * @param eventVisitingTasksAddDTO @@ -74,7 +89,7 @@ if(pageEventVisitingTasksDTO.getPageSize()!=null) { page.setSize(pageEventVisitingTasksDTO.getPageSize()); } - return R.ok(eventVisitingTasksMapper.findByPage(page, pageEventVisitingTasksDTO)); + return R.ok(); } /** @@ -96,9 +111,280 @@ if(eventVisitingTasksDO!=null) { EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO(); BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO); + eventVisitingTasksDetailsVO.setImgList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,1)); + eventVisitingTasksDetailsVO.setVosList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,2)); + eventVisitingTasksDetailsVO.setVideoList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,3)); return R.ok(eventVisitingTasksDetailsVO); } return R.fail(); } + @Override + public R count(Long communityId) { + + Map<String,Long> countMap = eventVisitingTasksMapper.count(communityId); + EventVisitCountVO eventVisitCountVO = new EventVisitCountVO(); + eventVisitCountVO.setVisit(countMap.get("visit")); + eventVisitCountVO.setVisited(countMap.get("visited")); + eventVisitCountVO.setCanceled(countMap.get("canceled")); + return R.ok(eventVisitCountVO); + } + + @Override + public R taskList(EventTasksQuery query) { + + IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query); + + return R.ok(page); + } + + @Transactional + @Override + public R delete(String ids, Long communityId) { + String[] idarr = ids.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("无权限"); + } + eventVisitingTasksMapper.deleteById(Long.valueOf(id)); + } + return R.ok(); + } + + @Override + public R visitorList(EventVisitListQuery query) { + IPage<EventVisitListVO> page = eventVisitingTasksMapper.visitorList(new Page(query.getPageNum(),query.getPageSize()),query); + return R.ok(page); + } + + @Override + public R list(EventTasksQuery query) { + IPage<AppVisitTasksVO> page = eventVisitingTasksMapper.list(new Page(query.getPageNum(),query.getPageSize()),query); + return R.ok(page); + } + + @Override + public R detail(Long id) throws Exception { + EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id); + if(eventVisitingTasksDO!=null) { + EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO(); + BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO); + eventVisitingTasksDetailsVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey)); + eventVisitingTasksDetailsVO.setTableContentJson(JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson())); + return R.ok(eventVisitingTasksDetailsVO); + } + return R.fail(); + } + + @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(","); + for(String idstr:id){ + if(StringUtils.isEmpty(idstr)){ + continue; + } + addVisitingTask(Long.valueOf(idstr),map,communityId,userId); + } + + return R.ok(); + } + + @Override + public List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) { + IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query); + + return page.getRecords(); + } + + + + private void addVisitingTask(Long id, Map<String, Object> gridMap,Long communityId,Long userId) { + + Integer count = eventVisitingTasksMapper.countNoneComplete(id); + if(count > 0){ + return; + } + Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id); + if(CollectionUtils.isEmpty(map)){ + return ; + } + EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO(); +// visitingTasksDO.setGridMemberStreet(Long.valueOf(gridMap.get("street_id").toString())); +// visitingTasksDO.setGridMemberCommunity(communityId); +// visitingTasksDO.setGridMember(Long.valueOf(gridMap.get("user_id").toString())); +// visitingTasksDO.setGridMemberName(gridMap.get("name").toString()); +// visitingTasksDO.setGridMenberTele(gridMap.get("phone") ==null?"":gridMap.get("phone").toString()); + 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()); + 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.setEventStatus(EventTasksStatusEnum.DZF.getCode()); + visitingTasksDO.setReporting(0); + visitingTasksDO.setInvalid(false); + visitingTasksDO.setUrgent(false); + visitingTasksDO.setUrgentDell(false); + visitingTasksDO.setCreateBy(userId); + visitingTasksDO.setOutOrLocal(map.get("out_or_local") == null?null:Integer.valueOf(map.get("out_or_local").toString())); + + if(map.get("label") != null){ + List<String> option = getOption(map.get("label").toString()); + if(!CollectionUtils.isEmpty(option)){ + JSONObject json = new JSONObject(); + json.put("option",option); + visitingTasksDO.setTableContentJson(json.toJSONString()); + } + } + + eventVisitingTasksMapper.insert(visitingTasksDO); + } + + private List<String> getOption(String label) { + List<String> option = new ArrayList<>(); + if(!Objects.isNull(label)) { + if (label.contains("精神障碍")) { + option.add("精神障碍异常1"); + option.add("精神障碍异常2"); + option.add("精神障碍异常3"); + option.add("精神障碍异常4"); + + } else if (label.contains("吸毒")) { + option.add("疑似复吸"); + option.add("失联"); + option.add("复吸"); + option.add("空挂户"); + } else if (label.contains("刑满释放")) { + option.add("刑满释放异常1"); + option.add("刑满释放异常2"); + option.add("刑满释放异常3"); + option.add("刑满释放异常4"); + } else if (label.contains("社区矫正")) { + option.add("社区矫正异常1"); + option.add("社区矫正异常2"); + option.add("社区矫正异常3"); + option.add("社区矫正异常4"); + } + } + return option; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public R cancel(Long id) { + + EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id); + if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){ + return R.fail("当前状态不可撤销"); + } + int rt = eventVisitingTasksMapper.cancel(id,EventTasksStatusEnum.YCX.getCode()); + if(rt > 0){ + return R.ok(); + } + return R.fail(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public R reset(Long id) { + + EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id); + if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.YCX.getCode()){ + return R.fail("当前状态不可恢复"); + } + int rt = eventVisitingTasksMapper.updateEventStatus(id,EventTasksStatusEnum.DZF.getCode()); + if(rt > 0){ + return R.ok(); + } + return R.fail(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public synchronized R start(Long id,Long userId) { + EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id); + if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){ + return R.fail("当前状态不可开始走访"); + } + Map<String,Object> map = eventVisitingTasksMapper.findUserById(userId); + EventVisitingTasksDO start = new EventVisitingTasksDO(); + start.setId(id); + start.setGridMemberStreet(Long.valueOf(map.get("street_id").toString())); + start.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString())); + start.setGridMember(Long.valueOf(map.get("user_id").toString())); + start.setGridMemberName(map.get("name").toString()); + start.setGridMenberTele(map.get("phone") ==null?"":map.get("phone").toString()); + start.setEventStatus(EventTasksStatusEnum.JXZ.getCode()); + int rt = eventVisitingTasksMapper.start(start); + if(rt > 0){ + return R.ok(); + } + return R.fail(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public R complete(EventVisitCompleteDTO taskCompleteDTO) { + EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(taskCompleteDTO.getId()); + if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.JXZ.getCode()){ + return R.fail("当前状态不可完成走访"); + } + if(taskCompleteDTO.getException().intValue() == 0){ + taskCompleteDTO.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode()); + }else{ + taskCompleteDTO.setEventStatus(EventTasksStatusEnum.YC.getCode()); + } + + JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson()); + json.put("check",taskCompleteDTO.getOption()); + taskCompleteDTO.setOption(json.toJSONString()); + + if(!CollectionUtils.isEmpty(taskCompleteDTO.getImgList())){ + taskCompleteDTO.getImgList().forEach(e->{ + createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,1,e); + }); + } + if(!CollectionUtils.isEmpty(taskCompleteDTO.getVosList())){ + taskCompleteDTO.getVosList().forEach(e->{ + createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,2,e); + }); + } + if(!CollectionUtils.isEmpty(taskCompleteDTO.getVideoList())){ + taskCompleteDTO.getVosList().forEach(e->{ + createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,3,e); + }); + } + + int rt = eventVisitingTasksMapper.complete(taskCompleteDTO); + if(rt > 0){ + return R.ok(); + } + return R.fail(); + } + + private void createResource(Long id, Long dellUserId, int classification, int type,String url) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setRefId(id); + eventResourceDO.setClassification(classification); + eventResourceDO.setType(type); + eventResourceDO.setCreateBy(dellUserId); + eventResourceDO.setUrl(url); + eventResourceMapper.insert(eventResourceDO); + } + } -- Gitblit v1.7.1