huanghongfa
2021-10-09 1d1ee8c13e61958c6d5fc1a6bc3b819c68c19c04
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -4,6 +4,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.utlis.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -241,22 +242,28 @@
    }
    @Override
    public R detail(Long id) throws Exception {
    public R detail(Long id){
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
        if (eventVisitingTasksDO != null) {
            EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
            BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
            if (StringUtils.isNotEmpty(eventVisitingTasksDO.getVisiterTele())) {
                eventVisitingTasksDetailsVO
                    .setVisiterPhone(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
                eventVisitingTasksDetailsVO
                    .setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
                try {
                    eventVisitingTasksDetailsVO
                            .setVisiterPhone(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
                    eventVisitingTasksDetailsVO
                            .setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
                }catch (Exception e){
                    log.error("手机号码转义失败");
                }
            }
            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());
            if(StringUtils.isNotEmpty(eventVisitingTasksDO.getTableContentJson())){
                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());
                }
            }
            // 查询资源文件
@@ -390,6 +397,7 @@
                option.add("社区矫正异常3");
                option.add("社区矫正异常4");
            }
            option.add("无异常");
        }
        return option;
    }
@@ -463,9 +471,12 @@
        String label = this.baseMapper.getPopulationLabel(eventVisitingTasksDO.getVisiterId());
        if (StringUtils.isNotEmpty(label)) {
            if (label.contains("精神障碍") || label.contains("吸毒") || label.contains("刑满释放") || label.contains("社区矫正")) {
                if (StringUtils.isNotEmpty(taskCompleteDTO.getOption())) {
                if(taskCompleteDTO.getException().equals(EventVisitingTasksDO.exception.yes) && StringUtils.isNotEmpty(taskCompleteDTO.getOption())){
                    return R.fail("请选择异常状态");
                }
//                if (StringUtils.isNotEmpty(taskCompleteDTO.getOption())) {
//                    return R.fail("请选择异常状态");
//                }
            }
        }
@@ -580,4 +591,69 @@
        return false;
    }
    /**
     * 定时任务-给上月已走访的人员创建定时任务
     * @return  执行结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R timedTaskVisitingJobHandler(){
        //需要创建的走访任务列表
        List<EventVisitingTasksDO> saveList = new ArrayList<>();
        //获取上月第一天时间
        Date lastMonthFirst = DateUtils.getLastMonthFirst();
        //获取上月最后一天时间
        Date lastMonthEnd = DateUtils.getLastMonthEnd();
        //查询上月已走访任务
        List<EventVisitingTasksDO> visitingTasksList = this.baseMapper.selectList(new QueryWrapper<EventVisitingTasksDO>().lambda()
                .eq(EventVisitingTasksDO::getEventStatus,EventVisitingTasksDO.eventStatus.yzf)
                .ge(EventVisitingTasksDO::getSubmitDate,lastMonthFirst)
                .le(EventVisitingTasksDO::getSubmitDate,lastMonthEnd));
        visitingTasksList.forEach(visitingTask -> {
            EventVisitingTasksDO visitingTasksDO = dataConversion(visitingTask);
            saveList.add(visitingTasksDO);
        });
        if(saveList.size() > 0){
            this.saveBatch(saveList);
        }
        return R.ok();
    }
    /**
     * 数据转换
     * @param oldVisitingTasksDO    请求参数
     * @return  转换后的对象
     */
    private EventVisitingTasksDO dataConversion(EventVisitingTasksDO oldVisitingTasksDO){
        //创建走访任务新对象
        EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
        visitingTasksDO.setGridId(oldVisitingTasksDO.getGridId());
        visitingTasksDO.setGridMemberCommunity(oldVisitingTasksDO.getGridMemberCommunity());
        visitingTasksDO.setGridMemberStreet(oldVisitingTasksDO.getGridMemberStreet());
        visitingTasksDO.setVisiterId(oldVisitingTasksDO.getVisiterId());
        visitingTasksDO.setVisiterName(oldVisitingTasksDO.getVisiterName());
        visitingTasksDO.setVisiterSex(oldVisitingTasksDO.getVisiterSex());
        visitingTasksDO.setVisiterTele(oldVisitingTasksDO.getVisiterTele());
        visitingTasksDO.setVisiterAddress(oldVisitingTasksDO.getVisiterAddress());
        visitingTasksDO.setVisiterType(0);
        visitingTasksDO.setActOpara(0);
        visitingTasksDO.setHappentLatLng(oldVisitingTasksDO.getHappentLatLng());
        visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
        visitingTasksDO.setReporting(0);
        visitingTasksDO.setInvalid(false);
        visitingTasksDO.setUrgent(false);
        visitingTasksDO.setUrgentDell(false);
        visitingTasksDO.setCreateBy(oldVisitingTasksDO.getCreateBy());
        visitingTasksDO.setOutOrLocal(oldVisitingTasksDO.getOutOrLocal());
        if(oldVisitingTasksDO.getTableContentJson() != null){
            visitingTasksDO.setTableContentJson(oldVisitingTasksDO.getTableContentJson());
        }
        return visitingTasksDO;
    }
}