package com.doumee.service.business.impl; 
 | 
  
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 
 | 
import com.baomidou.mybatisplus.core.metadata.IPage; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.core.constants.ResponseStatus; 
 | 
import com.doumee.core.exception.BusinessException; 
 | 
import com.doumee.dao.business.dao.*; 
 | 
import com.doumee.dao.business.vo.GeneralDataVO; 
 | 
import com.doumee.dao.business.vo.HiddenDangerDataVO; 
 | 
import com.doumee.service.business.third.model.LoginUserInfo; 
 | 
import com.doumee.service.business.third.model.PageData; 
 | 
import com.doumee.service.business.third.model.PageWrap; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.DateUtil; 
 | 
import com.doumee.core.utils.SmsConstants; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.core.wx.wxPlat.WxPlatConstants; 
 | 
import com.doumee.core.wx.wxPlat.WxPlatNotice; 
 | 
import com.doumee.dao.business.*; 
 | 
import com.doumee.dao.business.model.*; 
 | 
import com.doumee.dao.business.model.Member; 
 | 
import com.doumee.dao.system.MultifileMapper; 
 | 
  
 | 
import com.doumee.dao.system.SystemUserMapper; 
 | 
import com.doumee.dao.system.join.NoticesJoinMapper; 
 | 
import com.doumee.dao.system.model.Multifile; 
 | 
import com.doumee.dao.system.model.Notices; 
 | 
import com.doumee.dao.system.model.SystemUser; 
 | 
import com.doumee.service.business.HiddenDangerService; 
 | 
import com.doumee.service.business.third.EmayService; 
 | 
import com.github.yulichang.wrapper.MPJLambdaWrapper; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.BeanUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.util.CollectionUtils; 
 | 
  
 | 
import java.math.BigDecimal; 
 | 
import java.util.*; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * 隐患信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @since 2024/04/28 16:06 
 | 
 */ 
 | 
@Service 
 | 
public class HiddenDangerServiceImpl implements HiddenDangerService { 
 | 
  
 | 
    @Autowired 
 | 
    private HiddenDangerMapper hiddenDangerMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private MultifileMapper multifileMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    @Autowired 
 | 
    private SystemUserMapper systemUserMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private MemberMapper memberMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private HiddenDangerParamMapper hiddenDangerParamMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private HiddenDangerLogMapper hiddenDangerLogMapper; 
 | 
    @Autowired 
 | 
    private UserActionMapper userActionMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private CompanyMapper companyMapper; 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private NoticesJoinMapper noticesJoinMapper; 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private SmsConfigMapper smsConfigMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private SmsEmailMapper smsEmailMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private EmayService emayService; 
 | 
  
 | 
    @Autowired 
 | 
    private WxNoticeConfigMapper wxNoticeConfigMapper; 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public Integer create(HiddenDanger hiddenDanger) { 
 | 
        if(Objects.isNull(hiddenDanger) 
 | 
            || Objects.isNull(hiddenDanger.getLoginUserInfo()) 
 | 
            || Objects.isNull(hiddenDanger.getAreaId()) 
 | 
            || Objects.isNull(hiddenDanger.getCateId()) 
 | 
            || Objects.isNull(hiddenDanger.getApplyCheckUserId()) 
 | 
            || Objects.isNull(hiddenDanger.getCheckUserId()) 
 | 
            || Objects.isNull(hiddenDanger.getSubmitTime()) 
 | 
            || StringUtils.isBlank(hiddenDanger.getContent()) 
 | 
        ){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        hiddenDanger.setMemberId(hiddenDanger.getLoginUserInfo().getMemberId()); 
 | 
        Member createMember = memberMapper.selectById(hiddenDanger.getMemberId()); 
 | 
        if(Objects.isNull(createMember)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到创建人信息"); 
 | 
        } 
 | 
        hiddenDanger.setIsdeleted(Constants.ZERO); 
 | 
        hiddenDanger.setCreateDate(new Date()); 
 | 
        hiddenDanger.setEditDate(new Date()); 
 | 
        HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(hiddenDanger.getAreaId()); 
 | 
        if(Objects.isNull(hiddenDangerParam)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患区域"); 
 | 
        } 
 | 
  
 | 
        HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(hiddenDanger.getCateId()); 
 | 
        if(Objects.isNull(hiddenDangerCate)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型"); 
 | 
        } 
 | 
        hiddenDanger.setCategoryName(hiddenDangerCate.getName()); 
 | 
        hiddenDanger.setCreator(hiddenDanger.getLoginUserInfo().getId()); 
 | 
        hiddenDanger.setAreaName(hiddenDangerParam.getName()); 
 | 
        hiddenDanger.setStatus(Constants.ZERO); 
 | 
        if(StringUtils.isBlank(hiddenDangerParam.getMemberIds()) 
 | 
        || hiddenDangerParam.getMemberIds().indexOf(hiddenDanger.getApplyCheckUserId().toString())<0){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"隐患区域与处理人不匹配"); 
 | 
        } 
 | 
        Member member = memberMapper.selectById(hiddenDanger.getCheckUserId()); 
 | 
        if(Objects.isNull(member)|| !Constants.equalsInteger(member.getStatus(),Constants.ZERO) || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到隐患处理人员信息或已被禁用"); 
 | 
        } 
 | 
        hiddenDangerMapper.insert(hiddenDanger); 
 | 
        //存储 操作日志 
 | 
        HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); 
 | 
        hiddenDangerLog.setIsdeleted(Constants.ZERO); 
 | 
        hiddenDangerLog.setCreateDate(new Date()); 
 | 
        hiddenDangerLog.setCreator(hiddenDanger.getCreator()); 
 | 
        hiddenDangerLog.setTitle("隐患提交"); 
 | 
        hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); 
 | 
        hiddenDangerLog.setObjType(Constants.ZERO); 
 | 
        hiddenDangerLogMapper.insert(hiddenDangerLog); 
 | 
  
 | 
        List<Multifile> multifiles  = hiddenDanger.getSubmitFileList(); 
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifiles)){ 
 | 
            for (int i = 0; i < multifiles.size(); i++) { 
 | 
                    Multifile multifile = multifiles.get(i); 
 | 
                multifile.setCreateDate(hiddenDanger.getCreateDate()); 
 | 
                multifile.setCreator(hiddenDanger.getCreator()); 
 | 
                multifile.setIsdeleted(Constants.ZERO); 
 | 
                multifile.setObjId(hiddenDanger.getId()); 
 | 
                multifile.setObjType(Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey()); 
 | 
                multifile.setSortnum(i+1); 
 | 
                multifileMapper.insert(multifile); 
 | 
            } 
 | 
        } 
 | 
        String title = "[隐患随手拍]提报人-"+hiddenDanger.getLoginUserInfo().getRealname(); 
 | 
        //json数据 
 | 
        Map<String,Object> jsonMap = new HashMap<>(); 
 | 
        jsonMap.put("area", "发现区域:" + hiddenDangerParam.getName()); 
 | 
        jsonMap.put("cate", "隐患类型:" + hiddenDangerCate.getName()); 
 | 
        jsonMap.put("sTime", "发现时间:" + DateUtil.DateToStr(hiddenDanger.getSubmitTime() , "yyyy-MM-dd HH:mm")); 
 | 
        //默认生成一条 申请人的数据 标记删除状态用于处理到 任务中心(我发起)使用 
 | 
        Notices createNotices = new Notices(); 
 | 
        createNotices.setCreateDate(new Date()); 
 | 
        createNotices.setIsdeleted(Constants.ONE); 
 | 
        createNotices.setObjId(hiddenDanger.getId()); 
 | 
        createNotices.setObjType(Constants.THREE); 
 | 
        createNotices.setType(Constants.THREE); 
 | 
        createNotices.setTitle(title); 
 | 
        createNotices.setParam1(JSONObject.toJSONString(jsonMap)); 
 | 
        createNotices.setStatus(Constants.ZERO); 
 | 
        createNotices.setReaded(Constants.ZERO); 
 | 
        createNotices.setSendacopy(Constants.ZERO); 
 | 
        createNotices.setParam2("0"); 
 | 
        createNotices.setParam3(hiddenDanger.getLoginUserInfo().getMemberId().toString()); 
 | 
        createNotices.setInfo("待"+member.getName()+"处理"); 
 | 
        noticesJoinMapper.insert(createNotices); 
 | 
  
 | 
        //存储处理人的通知消息 
 | 
        Notices notices = new Notices(); 
 | 
        notices.setId(null); 
 | 
        notices.setCreateDate(new Date()); 
 | 
        notices.setIsdeleted(Constants.ZERO); 
 | 
        notices.setTitle(title); 
 | 
        notices.setParam1(JSONObject.toJSONString(jsonMap)); 
 | 
        notices.setParam2("0"); 
 | 
        notices.setObjId(hiddenDanger.getId()); 
 | 
        notices.setObjType(Constants.THREE); 
 | 
        notices.setType(Constants.THREE); 
 | 
        notices.setEditDate(new Date()); 
 | 
        notices.setUserId(hiddenDanger.getCheckUserId()); 
 | 
        notices.setStatus(Constants.ZERO); 
 | 
        notices.setSendacopy(Constants.ZERO); 
 | 
        notices.setReaded(Constants.ZERO); 
 | 
        notices.setInfo("待"+member.getName()+"处理"); 
 | 
        noticesJoinMapper.insert(notices); 
 | 
  
 | 
  
 | 
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){ 
 | 
            //发送短信通知 
 | 
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, 
 | 
                    emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), 
 | 
                    SmsConstants.hiddenDangerContent.hiddenDangerDealUser, 
 | 
                    Arrays.asList(member.getPhone().split(",")) 
 | 
            ); 
 | 
        } 
 | 
  
 | 
        WxPlatNotice wxPlatNotice = new WxPlatNotice(); 
 | 
        SystemUser systemUser = systemUserMapper.selectById(hiddenDanger.getLoginUserInfo().getId()); 
 | 
        hiddenDanger.setMemberName(systemUser.getRealname()); 
 | 
        //提交人的微信公众号通知 
 | 
        if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ 
 | 
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, 
 | 
                    wxNoticeConfigMapper,hiddenDanger, 
 | 
                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, 
 | 
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), 
 | 
                    Arrays.asList(systemUser.getOpenid().split(","))); 
 | 
        } 
 | 
  
 | 
        SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() 
 | 
                .eq(SystemUser::getDeleted, Constants.ZERO) 
 | 
                .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId()) 
 | 
                .last(" limit 1 ")); 
 | 
  
 | 
        //处理人的微信公众号通知 
 | 
        if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){ 
 | 
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, 
 | 
                    wxNoticeConfigMapper,hiddenDanger, 
 | 
                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, 
 | 
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), 
 | 
                    Arrays.asList(checkUser.getOpenid().split(","))); 
 | 
        } 
 | 
        return hiddenDanger.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(Integer id) { 
 | 
        hiddenDangerMapper.deleteById(id); 
 | 
    } 
 | 
    @Override 
 | 
    public void deleteById(Integer id,LoginUserInfo user) { 
 | 
        if( Objects.isNull(id)   ){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>() 
 | 
                .selectAll(HiddenDanger.class) 
 | 
                .selectAs(Member::getName,HiddenDanger::getCheckorName) 
 | 
                .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) 
 | 
                .eq(HiddenDanger::getId,id) 
 | 
                .eq(HiddenDanger::getIsdeleted,Constants.ZERO) 
 | 
        ); 
 | 
        if(Objects.isNull(model)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患数据"); 
 | 
        } 
 | 
       /* if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) { 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转,请刷新查看!"); 
 | 
        }*/ 
 | 
        HiddenDanger hiddenDanger  = new HiddenDanger(); 
 | 
        hiddenDanger.setIsdeleted(Constants.ONE); 
 | 
        hiddenDanger.setId(id); 
 | 
        hiddenDanger.setEditor(user.getId()); 
 | 
        Date date =new Date(); 
 | 
  
 | 
        hiddenDanger.setEditDate(date); 
 | 
        hiddenDangerMapper.updateById(hiddenDanger); 
 | 
        //存储 操作日志 
 | 
        HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); 
 | 
        hiddenDangerLog.setIsdeleted(Constants.ZERO); 
 | 
        hiddenDangerLog.setCreateDate(date); 
 | 
        hiddenDangerLog.setCreator(hiddenDanger.getEditor()); 
 | 
        hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate()); 
 | 
        hiddenDangerLog.setEditor(hiddenDanger.getCreator()); 
 | 
        hiddenDangerLog.setTitle("由【"+user.getRealname()+"】删除记录"); 
 | 
        hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); 
 | 
        hiddenDangerLog.setObjType(Constants.FIVE); 
 | 
        hiddenDangerLogMapper.insert(hiddenDangerLog); 
 | 
  
 | 
        String[] params = new String[3]; 
 | 
        params[0] = user.getRealname(); 
 | 
        params[1]=DateUtil.getPlusTime2(date); 
 | 
        params[2]=model.getAreaName()+"-【"+model.getContent()+"】"; 
 | 
        //记录删除日志 
 | 
        UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.HIDEN_DANGER_DEL,userActionMapper,date,params,JSONObject.toJSONString(model)); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(HiddenDanger hiddenDanger) { 
 | 
        UpdateWrapper<HiddenDanger> deleteWrapper = new UpdateWrapper<>(hiddenDanger); 
 | 
        hiddenDangerMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<Integer> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        hiddenDangerMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(HiddenDanger hiddenDanger) { 
 | 
        hiddenDangerMapper.updateById(hiddenDanger); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<HiddenDanger> hiddenDangers) { 
 | 
        if (CollectionUtils.isEmpty(hiddenDangers)) { 
 | 
            return; 
 | 
        } 
 | 
        for (HiddenDanger hiddenDanger: hiddenDangers) { 
 | 
            this.updateById(hiddenDanger); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public HiddenDanger findById(Integer id) { 
 | 
        MPJLambdaWrapper<HiddenDanger> queryWrapper = new MPJLambdaWrapper<>(); 
 | 
        queryWrapper.selectAll(HiddenDanger.class) 
 | 
                .selectAs(HiddenDangerParam::getName,HiddenDanger::getCategoryName) 
 | 
                .select("t1.name", HiddenDanger::getMemberName) 
 | 
                .select("t1.phone",HiddenDanger::getMemberPhone) 
 | 
                .select("t2.name",HiddenDanger::getCheckorName) 
 | 
                .select("t2.phone",HiddenDanger::getCheckorPhone) 
 | 
                .select("t5.company_name_path",HiddenDanger::getDutyCompanyName) 
 | 
                .select("t4.company_name_path",HiddenDanger::getCompanyName); 
 | 
        queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) 
 | 
                .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) 
 | 
                .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) 
 | 
                .leftJoin("company t4 on t1.company_id=t4.id") 
 | 
                .leftJoin("company t5 on t2.company_id=t5.id"); 
 | 
        queryWrapper 
 | 
                .eq(HiddenDanger::getId, id) 
 | 
                .eq(HiddenDanger::getIsdeleted, Constants.ZERO) 
 | 
                .last("limit 1"); 
 | 
  
 | 
        HiddenDanger model =  hiddenDangerMapper.selectJoinOne(HiddenDanger.class,queryWrapper); 
 | 
        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ 
 | 
            throw  new BusinessException(ResponseStatus.DATA_EMPTY); 
 | 
        } 
 | 
        initFiles(model); 
 | 
  
 | 
  
 | 
  
 | 
        return model; 
 | 
    } 
 | 
    private void initFiles(HiddenDanger unionChange) { 
 | 
        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() 
 | 
                .eq(Multifile::getObjId, unionChange.getId() ) 
 | 
                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey() 
 | 
                        ,Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey() 
 | 
                        ,Constants.MultiFile.HIDDEN_DANGER_DEAL_AFTER.getKey()})) 
 | 
                .eq(Multifile::getIsdeleted,Constants.ZERO)); 
 | 
        if(multifiles!=null){ 
 | 
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() 
 | 
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.HIDDEN_DANGER_FILE).getCode(); 
 | 
            for(Multifile f : multifiles){ 
 | 
                if(StringUtils.isBlank(f.getFileurl())){ 
 | 
                    continue; 
 | 
                } 
 | 
                if(f.getType() == null){ 
 | 
                    if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".mp4")){ 
 | 
                        f.setType(Constants.ONE); 
 | 
                    }else if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpg") 
 | 
                            ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpeg") 
 | 
                            ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".png")){ 
 | 
                        f.setType(Constants.ZERO); 
 | 
                    }else{ 
 | 
                        f.setType(Constants.TWO); 
 | 
                    } 
 | 
                } 
 | 
                f.setFileurlFull(path+f.getFileurl()); 
 | 
                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey())){ 
 | 
                    //现场情况 
 | 
                    if(unionChange.getSubmitFileList() == null){ 
 | 
                        unionChange.setSubmitFileList(new ArrayList<>()); 
 | 
                    } 
 | 
                    unionChange.getSubmitFileList().add(f); 
 | 
                } 
 | 
                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey())){ 
 | 
                    //处理前附件 
 | 
                    if(unionChange.getDealBeforeFileList() == null){ 
 | 
                        unionChange.setDealBeforeFileList(new ArrayList<>()); 
 | 
                    } 
 | 
                    unionChange.getDealBeforeFileList().add(f); 
 | 
                } 
 | 
                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_DEAL_AFTER.getKey())){ 
 | 
                    //处理后附件 
 | 
                    if(unionChange.getDealAfterFileList() == null){ 
 | 
                        unionChange.setDealAfterFileList(new ArrayList<>()); 
 | 
                    } 
 | 
                    unionChange.getDealAfterFileList().add(f); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    @Override 
 | 
    public HiddenDanger findOne(HiddenDanger hiddenDanger) { 
 | 
        QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); 
 | 
        return hiddenDangerMapper.selectOne(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<HiddenDanger> findList(HiddenDanger hiddenDanger) { 
 | 
        QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); 
 | 
        return hiddenDangerMapper.selectList(wrapper); 
 | 
    } 
 | 
   
 | 
    @Override 
 | 
    public PageData<HiddenDanger> findPage(PageWrap<HiddenDanger> pageWrap) { 
 | 
        IPage<HiddenDanger> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        MPJLambdaWrapper<HiddenDanger> queryWrapper = new MPJLambdaWrapper<>(); 
 | 
        Utils.MP.blankToNull(pageWrap.getModel()); 
 | 
        pageWrap.getModel().setIsdeleted(Constants.ZERO); 
 | 
        queryWrapper.selectAll(HiddenDanger.class) 
 | 
                .selectAs(HiddenDangerParam::getName,HiddenDanger::getCategoryName) 
 | 
                .select("t1.name", HiddenDanger::getMemberName) 
 | 
                .select("t1.phone",HiddenDanger::getMemberPhone) 
 | 
                .select("t2.name",HiddenDanger::getCheckorName) 
 | 
                .select("t2.phone",HiddenDanger::getCheckorPhone) 
 | 
                .select("t5.company_name_path",HiddenDanger::getDutyCompanyName) 
 | 
                .select("t4.company_name_path",HiddenDanger::getCompanyName); 
 | 
        queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) 
 | 
                .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) 
 | 
                .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) 
 | 
                .leftJoin("company t4 on t1.company_id=t4.id") 
 | 
                .leftJoin("company t5 on t2.company_id=t5.id"); 
 | 
  
 | 
        //数据权限开始--------------------start---------------- 
 | 
        LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); 
 | 
  
 | 
        if(userInfo!=null && userInfo.getCompanyIdList()!=null){ 
 | 
            if(  userInfo.getCompanyIdList().size() ==0){ 
 | 
                //只能看自己 
 | 
                queryWrapper.and(w->{ 
 | 
                    w.eq(HiddenDanger::getCreator,userInfo.getId()).or(). 
 | 
                    eq(HiddenDanger::getCheckUserId,userInfo.getMemberId()); 
 | 
                }); 
 | 
            }else{ 
 | 
                queryWrapper.in("t1.company_id" ,userInfo.getCompanyIdList()); 
 | 
            } 
 | 
        } 
 | 
        //数据权限开始--------------------end---------------- 
 | 
        queryWrapper 
 | 
                .eq(pageWrap.getModel().getId() != null, HiddenDanger::getId, pageWrap.getModel().getId()) 
 | 
                .eq(pageWrap.getModel().getCreator() != null, HiddenDanger::getCreator, pageWrap.getModel().getCreator()) 
 | 
                .ge(pageWrap.getModel().getCreateDate() != null, HiddenDanger::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())) 
 | 
                .le(pageWrap.getModel().getCreateDate() != null, HiddenDanger::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())) 
 | 
                .eq(pageWrap.getModel().getEditor() != null, HiddenDanger::getEditor, pageWrap.getModel().getEditor()) 
 | 
                .ge(pageWrap.getModel().getEditDate() != null, HiddenDanger::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())) 
 | 
                .le(pageWrap.getModel().getEditDate() != null, HiddenDanger::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())) 
 | 
                .eq(pageWrap.getModel().getIsdeleted() != null, HiddenDanger::getIsdeleted, pageWrap.getModel().getIsdeleted()) 
 | 
                .eq(pageWrap.getModel().getRemark() != null, HiddenDanger::getRemark, pageWrap.getModel().getRemark()) 
 | 
                .eq(pageWrap.getModel().getAreaId() != null, HiddenDanger::getAreaId, pageWrap.getModel().getAreaId()) 
 | 
                .eq(pageWrap.getModel().getStatus() != null, HiddenDanger::getStatus, pageWrap.getModel().getStatus()) 
 | 
                .eq(pageWrap.getModel().getApplyCheckUserId() != null, HiddenDanger::getApplyCheckUserId, pageWrap.getModel().getApplyCheckUserId()) 
 | 
                .eq(pageWrap.getModel().getCateId() != null, HiddenDanger::getCateId, pageWrap.getModel().getCateId()) 
 | 
                .eq(pageWrap.getModel().getContent() != null, HiddenDanger::getContent, pageWrap.getModel().getContent()) 
 | 
                .eq(pageWrap.getModel().getMemberId() != null, HiddenDanger::getMemberId, pageWrap.getModel().getMemberId()) 
 | 
                .ge(pageWrap.getModel().getCheckDate() != null, HiddenDanger::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate())) 
 | 
                .le(pageWrap.getModel().getCheckDate() != null, HiddenDanger::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate())) 
 | 
                .eq(pageWrap.getModel().getCheckInfo() != null, HiddenDanger::getCheckInfo, pageWrap.getModel().getCheckInfo()) 
 | 
                .eq(pageWrap.getModel().getCheckUserId() != null, HiddenDanger::getCheckUserId, pageWrap.getModel().getCheckUserId()) 
 | 
                .eq(pageWrap.getModel().getAreaName() != null, HiddenDanger::getAreaName, pageWrap.getModel().getAreaName()) 
 | 
                .like(pageWrap.getModel().getCompanyName() != null,"t4.company_name_path",pageWrap.getModel().getCompanyName()) 
 | 
                .like(pageWrap.getModel().getDutyCompanyName() != null,"t5.company_name_path",pageWrap.getModel().getDutyCompanyName()) 
 | 
  
 | 
                .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) 
 | 
                        .or().like(Member::getPhone,pageWrap.getModel().getMemberName())) 
 | 
                .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), HiddenDanger::getCreateDate,pageWrap.getModel().getQueryStartTime()) 
 | 
                .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),HiddenDanger::getCreateDate,pageWrap.getModel().getQueryEndTime()) 
 | 
                .orderByDesc(Visits::getCreateDate) 
 | 
        ; 
 | 
        for(PageWrap.SortData sortData: pageWrap.getSorts()) { 
 | 
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { 
 | 
                queryWrapper.orderByDesc(sortData.getProperty()); 
 | 
            } else { 
 | 
                queryWrapper.orderByAsc(sortData.getProperty()); 
 | 
            } 
 | 
        } 
 | 
        return PageData.from(hiddenDangerMapper.selectJoinPage(page,HiddenDanger.class, queryWrapper)); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(HiddenDanger hiddenDanger) { 
 | 
        QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); 
 | 
        return hiddenDangerMapper.selectCount(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {Exception.class,BusinessException.class}) 
 | 
    public void dealHiddenDanger(HiddenDanger hiddenDanger){ 
 | 
        isParamValid(hiddenDanger); 
 | 
        dealFileBiz(hiddenDanger); 
 | 
        hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId()); 
 | 
        hiddenDanger.setEditDate(new Date()); 
 | 
        hiddenDanger.setCheckDate(hiddenDanger.getEditDate()); 
 | 
        hiddenDangerMapper.updateById(hiddenDanger); 
 | 
        HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId()); 
 | 
        if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY ); 
 | 
        } 
 | 
        HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId()); 
 | 
        if(Objects.isNull(hiddenDangerCate)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型"); 
 | 
        } 
 | 
        model.setCategoryName(hiddenDangerCate.getName()); 
 | 
        //存储 操作日志 
 | 
        HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); 
 | 
        hiddenDangerLog.setIsdeleted(Constants.ZERO); 
 | 
        hiddenDangerLog.setCreateDate(new Date()); 
 | 
        hiddenDangerLog.setCreator(hiddenDanger.getEditor()); 
 | 
        hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); 
 | 
        hiddenDangerLog.setContent(hiddenDanger.getCheckInfo()); 
 | 
        hiddenDangerLog.setTitle(hiddenDanger.getStatus().equals(Constants.ONE)?"隐患处理":"隐患退回"); 
 | 
        hiddenDangerLog.setObjType(hiddenDanger.getStatus().equals(Constants.ONE)?Constants.FOUR:Constants.TWO); 
 | 
        hiddenDangerLogMapper.insert(hiddenDangerLog); 
 | 
        //处理待办信息 
 | 
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>() 
 | 
                .lambda() 
 | 
                .set(Notices::getReaded,Constants.ONE) 
 | 
                .set(Notices::getStatus,Constants.ONE) 
 | 
                .set(Notices::getInfo,hiddenDanger.getStatus().equals(Constants.ONE)?"已整改":"已退回") 
 | 
                .set(Notices::getParam2,hiddenDanger.getStatus()) 
 | 
                .set(Notices::getParam4,hiddenDanger.getLoginUserInfo().getMemberId()) 
 | 
                .eq(Notices::getObjId,hiddenDanger.getId()) 
 | 
                .eq(Notices::getObjType,Constants.THREE) 
 | 
                .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId())); 
 | 
        //发起人代办标题修改为处理结果 
 | 
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>() 
 | 
                .lambda() 
 | 
                .set(Notices::getInfo,hiddenDanger.getStatus().equals(Constants.ONE)?"已整改":"已退回") 
 | 
                .set(Notices::getParam2,hiddenDanger.getStatus()) 
 | 
                .eq(Notices::getObjId,hiddenDanger.getId()) 
 | 
                .eq(Notices::getObjType,Constants.THREE) 
 | 
                .eq(Notices::getParam3,hiddenDanger.getMemberId().toString()) ); 
 | 
  
 | 
        SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() 
 | 
                .eq(SystemUser::getDeleted, Constants.ZERO) 
 | 
                .eq(SystemUser::getMemberId,model.getMemberId())); 
 | 
        if(Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)){ 
 | 
            if(Objects.nonNull(memberUser) && StringUtils.isNotBlank(memberUser.getMobile())){ 
 | 
                //发送短信通知 
 | 
                SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, 
 | 
                        emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), 
 | 
                        SmsConstants.hiddenDangerContent.hiddenDangerDealOver, 
 | 
                        Arrays.asList(memberUser.getMobile().split(",")) 
 | 
                ); 
 | 
            } 
 | 
        } 
 | 
        model.setCheckorName(hiddenDanger.getLoginUserInfo().getRealname()); 
 | 
        model.setMemberName(memberUser.getRealname()); 
 | 
        //处理人的微信公众号通知 
 | 
        if(Objects.nonNull(memberUser)&&StringUtils.isNotBlank(memberUser.getOpenid())){ 
 | 
            WxPlatNotice wxPlatNotice = new WxPlatNotice(); 
 | 
            wxPlatNotice.sendHiddenDangerDealTemplateNotice(systemDictDataBiz, 
 | 
                    wxNoticeConfigMapper,model, 
 | 
                    WxPlatConstants.hiddenDangerContent.hiddenDangerDeal, 
 | 
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), 
 | 
                    Arrays.asList(memberUser.getOpenid().split(","))); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    private void isParamValid(HiddenDanger hiddenDanger) { 
 | 
        if(Objects.isNull(hiddenDanger) 
 | 
                || Objects.isNull(hiddenDanger.getId()) 
 | 
                || Objects.isNull(hiddenDanger.getDealTime()) 
 | 
                || Objects.isNull(hiddenDanger.getLoginUserInfo()) 
 | 
                || Objects.isNull(hiddenDanger.getStatus()) 
 | 
        ){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId()); 
 | 
        if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患数据"); 
 | 
        } 
 | 
        if (!model.getStatus().equals(Constants.ZERO)) { 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转,请刷新查看!"); 
 | 
        } 
 | 
        if (!model.getCheckUserId().equals(hiddenDanger.getLoginUserInfo().getMemberId())) { 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"处理人非当前人员!"); 
 | 
        } 
 | 
        if(!(hiddenDanger.getStatus().equals(Constants.ONE)||hiddenDanger.getStatus().equals(Constants.TWO))){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态错误,请刷新查看!"); 
 | 
        } 
 | 
        hiddenDanger.setMemberId(model.getMemberId());//发起人 
 | 
    } 
 | 
  
 | 
    private void dealFileBiz(HiddenDanger hiddenDanger) {//整改前文件 
 | 
        List<Multifile> beforList = hiddenDanger.getDealBeforeFileList(); 
 | 
        List<Multifile> fileList = new ArrayList<>(); 
 | 
  
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(beforList)){ 
 | 
            boolean isTrue = false; 
 | 
            for (int i = 0; i < beforList.size(); i++) { 
 | 
                Multifile multifile = beforList.get(i); 
 | 
                if(StringUtils.isBlank(multifile.getFileurl())){ 
 | 
                    continue; 
 | 
                } 
 | 
                multifile.setId(null); 
 | 
                multifile.setCreateDate(new Date()); 
 | 
                multifile.setCreator(hiddenDanger.getEditor()); 
 | 
                multifile.setIsdeleted(Constants.ZERO); 
 | 
                if(multifile.getType() == null){ 
 | 
                    if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".mp4")){ 
 | 
                        multifile.setType(Constants.ONE); 
 | 
                    }else if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpg") 
 | 
                    ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpeg") 
 | 
                    ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".png")){ 
 | 
                        multifile.setType(Constants.ZERO); 
 | 
                    }else{ 
 | 
                        multifile.setType(Constants.TWO); 
 | 
                    } 
 | 
                } 
 | 
                multifile.setObjId(hiddenDanger.getId()); 
 | 
                multifile.setCreator(hiddenDanger.getLoginUserInfo().getId()); 
 | 
                multifile.setObjType(Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey()); 
 | 
                multifile.setSortnum(i+1); 
 | 
                fileList.add(multifile); 
 | 
                isTrue=true; 
 | 
            } 
 | 
            if(hiddenDanger.getStatus().equals(Constants.ONE) && !isTrue){ 
 | 
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请按要求填写处理数据"); 
 | 
            } 
 | 
            multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() 
 | 
                    .set(Multifile::getIsdeleted,Constants.ONE ) 
 | 
                    .eq(Multifile::getObjType,Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey()) 
 | 
                    .eq(Multifile::getObjId,hiddenDanger.getId()) 
 | 
            ); 
 | 
        } 
 | 
        if(hiddenDanger.getStatus().equals(Constants.ONE)){ 
 | 
            boolean isTrue = false; 
 | 
            List<Multifile> afterList = hiddenDanger.getDealAfterFileList(); 
 | 
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(afterList)){ 
 | 
                for (int i = 0; i < afterList.size(); i++) { 
 | 
                    Multifile multifile = afterList.get(i); 
 | 
                    if(StringUtils.isBlank(multifile.getFileurl())){ 
 | 
                        continue; 
 | 
                    } 
 | 
                    multifile.setId(null); 
 | 
                    multifile.setCreateDate(new Date()); 
 | 
                    multifile.setCreator(hiddenDanger.getEditor()); 
 | 
                    multifile.setIsdeleted(Constants.ZERO); 
 | 
                    multifile.setCreator(hiddenDanger.getLoginUserInfo().getId()); 
 | 
                    multifile.setObjId(hiddenDanger.getId()); 
 | 
                    multifile.setObjType(Constants.MultiFile.HIDDEN_DANGER_DEAL_AFTER.getKey()); 
 | 
                    multifile.setSortnum(i+1); 
 | 
                    fileList.add(multifile); 
 | 
                    isTrue = true; 
 | 
                } 
 | 
            } 
 | 
            if(!isTrue){ 
 | 
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请按要求填写处理数据"); 
 | 
            } 
 | 
        } 
 | 
        if(fileList.size()>0){ 
 | 
            multifileMapper.insert(fileList); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {Exception.class,BusinessException.class}) 
 | 
    public void transferHiddenDanger(HiddenDanger hiddenDanger){ 
 | 
        if(Objects.isNull(hiddenDanger) 
 | 
                || Objects.isNull(hiddenDanger.getId()) 
 | 
                || Objects.isNull(hiddenDanger.getCheckUserId()) 
 | 
        ){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>() 
 | 
                .selectAll(HiddenDanger.class) 
 | 
                .selectAs(Member::getName,HiddenDanger::getCheckorName) 
 | 
                        .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) 
 | 
                .eq(HiddenDanger::getId,hiddenDanger.getId()) 
 | 
        ); 
 | 
        if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患数据"); 
 | 
        } 
 | 
        if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) { 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转,请刷新查看!"); 
 | 
        } 
 | 
        if (!Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getLoginUserInfo().getMemberId())) { 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"处理人非当前人员!"); 
 | 
        } 
 | 
        if(Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getCheckUserId())){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无法转交给自己"); 
 | 
        } 
 | 
        Member member = memberMapper.selectById(hiddenDanger.getCheckUserId()); 
 | 
        if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ONE,member.getIsdeleted())){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,转交人信息不存在,请刷新页面重试!"); 
 | 
        } 
 | 
        HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId()); 
 | 
        if(Objects.isNull(hiddenDangerCate)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型"); 
 | 
        } 
 | 
        model.setCategoryName(hiddenDangerCate.getName()); 
 | 
        hiddenDanger.setCategoryName(hiddenDangerCate.getName()); 
 | 
        hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId()); 
 | 
        hiddenDanger.setEditDate(new Date()); 
 | 
        hiddenDangerMapper.updateById(hiddenDanger); 
 | 
        //存储 操作日志 
 | 
        HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); 
 | 
        hiddenDangerLog.setIsdeleted(Constants.ZERO); 
 | 
        hiddenDangerLog.setCreateDate(new Date()); 
 | 
        hiddenDangerLog.setCreator(hiddenDanger.getEditor()); 
 | 
        hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate()); 
 | 
        hiddenDangerLog.setEditor(hiddenDanger.getCreator()); 
 | 
        hiddenDangerLog.setTitle("转交给"+StringUtils.defaultString(member.getName())); 
 | 
        hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); 
 | 
        hiddenDangerLog.setObjType(Constants.ONE); 
 | 
        hiddenDangerLogMapper.insert(hiddenDangerLog); 
 | 
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>() 
 | 
                .lambda() 
 | 
                .eq(Notices::getObjId,hiddenDanger.getId()) 
 | 
                .eq(Notices::getObjType,Constants.THREE) 
 | 
                .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId()) 
 | 
                .orderByDesc(Notices::getId) 
 | 
                .last(" limit  1 ") 
 | 
        ); 
 | 
        if(Objects.nonNull(notices)){ 
 | 
            Notices newNotices = new Notices(); 
 | 
            BeanUtils.copyProperties(notices,newNotices); 
 | 
            newNotices.setId(null); 
 | 
            newNotices.setCreateDate(new Date()); 
 | 
            newNotices.setParam2("0"); 
 | 
            newNotices.setUserId(hiddenDanger.getCheckUserId()); 
 | 
            newNotices.setInfo("待"+member.getName()+"处理"); 
 | 
            noticesJoinMapper.insert(newNotices); 
 | 
            notices.setStatus(Constants.ONE); 
 | 
            notices.setParam2("3"); 
 | 
            notices.setEditDate(new Date()); 
 | 
            notices.setReaded(Constants.ONE); 
 | 
            notices.setInfo("待"+member.getName()+"处理"); 
 | 
            noticesJoinMapper.updateById(notices); 
 | 
        } 
 | 
  
 | 
        SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() 
 | 
                .eq(SystemUser::getDeleted, Constants.ZERO) 
 | 
                .eq(SystemUser::getMemberId,model.getMemberId())); 
 | 
        if(Objects.isNull(memberUser)||StringUtils.isBlank(memberUser.getRealname())){ 
 | 
          return; 
 | 
        } 
 | 
        hiddenDanger.setMemberName(memberUser.getRealname()); 
 | 
        model.setMemberName(memberUser.getRealname()); 
 | 
        SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() 
 | 
                .eq(SystemUser::getDeleted, Constants.ZERO) 
 | 
                .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId())); 
 | 
        if(Objects.nonNull(checkUser) && StringUtils.isNotBlank(checkUser.getMobile())){ 
 | 
            //发送短信通知 
 | 
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, 
 | 
                    emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), 
 | 
                    SmsConstants.hiddenDangerContent.hiddenDangerDealUser, 
 | 
                    Arrays.asList(checkUser.getMobile().split(",")) 
 | 
            ); 
 | 
        } 
 | 
  
 | 
        //处理人的微信公众号通知 
 | 
        if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){ 
 | 
            WxPlatNotice wxPlatNotice = new WxPlatNotice(); 
 | 
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, 
 | 
                    wxNoticeConfigMapper,model, 
 | 
                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, 
 | 
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), 
 | 
                    Arrays.asList(checkUser.getOpenid().split(","))); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 随手拍统计数据 
 | 
     */ 
 | 
    @Override 
 | 
    public HiddenDangerDataVO hiddenDangerData(HiddenDanger hiddenDanger){ 
 | 
        HiddenDangerDataVO hiddenDangerDataVO = new HiddenDangerDataVO(); 
 | 
        List<HiddenDanger> hiddenDangerAllList = hiddenDangerMapper.selectJoinList(HiddenDanger.class, 
 | 
                new MPJLambdaWrapper<HiddenDanger>() 
 | 
                        .selectAll(HiddenDanger.class) 
 | 
                .selectAs(HiddenDangerParam::getCompanyId, HiddenDanger::getAreaCompanyId) 
 | 
                .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) //隐患区域 
 | 
                .eq(HiddenDanger::getIsdeleted,Constants.ZERO) 
 | 
                .eq(Objects.nonNull(hiddenDanger.getStatus()),HiddenDanger::getStatus,hiddenDanger.getStatus()) 
 | 
                .ge(Objects.nonNull(hiddenDanger.getQueryStartTime()), HiddenDanger::getCreateDate,hiddenDanger.getQueryStartTime()) 
 | 
                .le(Objects.nonNull(hiddenDanger.getQueryEndTime()),HiddenDanger::getCreateDate,hiddenDanger.getQueryEndTime()) 
 | 
        ); 
 | 
        hiddenDangerDataVO.setTotal(hiddenDangerAllList.size()); 
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerAllList)){ 
 | 
            List<Integer> cateList =  hiddenDangerAllList.stream().map(i->i.getCateId()).collect(Collectors.toList()); 
 | 
            //全部隐患分类数据 
 | 
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cateList)){ 
 | 
                List<GeneralDataVO> cateGeneralDataList = new ArrayList<>(); 
 | 
                Set<Integer> cateSetList = new HashSet<>(cateList); 
 | 
                List<HiddenDangerParam> hiddenDangerParamList = hiddenDangerParamMapper.selectList(new QueryWrapper<HiddenDangerParam>() 
 | 
                        .lambda().eq(HiddenDangerParam::getIsdeleted,Constants.ZERO).eq(HiddenDangerParam::getType,Constants.ONE)); 
 | 
                for (Integer cateId:cateSetList) { 
 | 
                    if(Objects.isNull(cateId)){ 
 | 
                        continue; 
 | 
                    } 
 | 
                    Optional<HiddenDangerParam> optionalHiddenDanger = hiddenDangerParamList.stream().filter(i->Constants.equalsInteger(i.getId(),cateId)).findAny(); 
 | 
                    if(optionalHiddenDanger.isPresent()){ 
 | 
                        GeneralDataVO generalDataVO = new GeneralDataVO(); 
 | 
                        HiddenDangerParam hiddenDangerParam = optionalHiddenDanger.get(); 
 | 
                        Integer total = hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getCateId(),hiddenDangerParam.getId())).collect(Collectors.toList()).size(); 
 | 
                        generalDataVO.setName(hiddenDangerParam.getName()); 
 | 
                        generalDataVO.setTotal(total); 
 | 
                        generalDataVO.setRata( 
 | 
                                    Constants.equalsInteger(total,Constants.ZERO)? 
 | 
                                        BigDecimal.ZERO:new BigDecimal(total.toString()) 
 | 
                                            .divide(new BigDecimal(hiddenDangerDataVO.getTotal().toString()),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) 
 | 
                                ); 
 | 
                        cateGeneralDataList.add(generalDataVO); 
 | 
                    } 
 | 
                } 
 | 
                hiddenDangerDataVO.setCateList(cateGeneralDataList); 
 | 
            } 
 | 
            //全部隐患区域部门数据 
 | 
            List<Integer> companyIdList =  hiddenDangerAllList.stream().map(i->i.getAreaCompanyId()).collect(Collectors.toList()); 
 | 
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(companyIdList)){ 
 | 
                List<GeneralDataVO> companyGeneralDataList = new ArrayList<>(); 
 | 
                Set<Integer> companyIdSetList = new HashSet<>(companyIdList); 
 | 
                List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>() 
 | 
                        .lambda().eq(Company::getIsdeleted,Constants.ZERO)); 
 | 
                for (Integer companyId:companyIdSetList) { 
 | 
                    if(Objects.isNull(companyId)){ 
 | 
                        continue; 
 | 
                    } 
 | 
                    Optional<Company> optionalCompany = companyList.stream().filter(i->Constants.equalsInteger(i.getId(),companyId)).findAny(); 
 | 
                    if(optionalCompany.isPresent()){ 
 | 
                        GeneralDataVO generalDataVO = new GeneralDataVO(); 
 | 
                        Company company = optionalCompany.get(); 
 | 
                        Integer total = hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getAreaCompanyId(),company.getId())).collect(Collectors.toList()).size(); 
 | 
                        generalDataVO.setName(company.getName()); 
 | 
                        generalDataVO.setTotal(total); 
 | 
                        companyGeneralDataList.add(generalDataVO); 
 | 
                    } 
 | 
                } 
 | 
                hiddenDangerDataVO.setDepartmentList(companyGeneralDataList); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return hiddenDangerDataVO; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
} 
 |