| package com.doumee.service.business.impl; | 
|   | 
| import cn.emay.sdk.util.StringUtil; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.LoginUserInfo; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.HiddenDangerMapper; | 
| import com.doumee.dao.business.HiddenDangerParamMapper; | 
| import com.doumee.dao.business.model.HiddenDanger; | 
| import com.doumee.dao.business.model.HiddenDangerParam; | 
| import com.doumee.dao.system.MultifileMapper; | 
| import com.doumee.dao.system.model.Multifile; | 
| import com.doumee.service.business.HiddenDangerParamService; | 
| import com.doumee.dao.business.MemberMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.service.business.HiddenDangerService; | 
| 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 org.apache.commons.lang3.StringUtils; | 
| import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.apache.shiro.SecurityUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.util.CollectionUtils; | 
|   | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| /** | 
|  * 隐患信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @since 2024/04/28 16:06 | 
|  */ | 
| @Service | 
| public class HiddenDangerServiceImpl implements HiddenDangerService { | 
|   | 
|     @Autowired | 
|     private HiddenDangerMapper hiddenDangerMapper; | 
|     @Autowired | 
|     private MemberMapper memberMapper; | 
|   | 
|     @Autowired | 
|     private HiddenDangerParamMapper hiddenDangerParamMapper; | 
|   | 
|     @Autowired | 
|     private MultifileMapper multifileMapper; | 
|   | 
|     @Override | 
|     public Integer create(HiddenDanger hiddenDanger) { | 
|         if(Objects.isNull(hiddenDanger) | 
|             || Objects.isNull(hiddenDanger.getCreator()) | 
|             || Objects.isNull(hiddenDanger.getAreaId()) | 
|             || Objects.isNull(hiddenDanger.getCateId()) | 
|             || Objects.isNull(hiddenDanger.getApplyCheckUserId()) | 
|             || Objects.isNull(hiddenDanger.getSubmitTime()) | 
|             || StringUtils.isBlank(hiddenDanger.getContent()) | 
|         ){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         hiddenDanger.setIsdeleted(Constants.ZERO); | 
|         hiddenDanger.setCreateDate(new Date()); | 
|         HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(hiddenDanger.getAreaId()); | 
|         if(Objects.isNull(hiddenDangerParam)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患区域"); | 
|         } | 
|         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(),"隐患区域与处理人不匹配"); | 
|         } | 
|         hiddenDangerMapper.insert(hiddenDanger); | 
|         List<Multifile> multifiles  = hiddenDanger.getMultifileList(); | 
|         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.multifileObjType.zero); | 
|                 multifile.setSortnum(i+1); | 
|                 multifileMapper.insert(multifile); | 
|             } | 
|         } | 
|   | 
|   | 
|         return hiddenDanger.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         hiddenDangerMapper.deleteById(id); | 
|     } | 
|   | 
|     @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) { | 
|         return hiddenDangerMapper.selectById(id); | 
|     } | 
|   | 
|     @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()); | 
|         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("t3.phone",HiddenDanger::getCheckorPhone) | 
|                 .select("t4.company_name_path",HiddenDanger::getCompanyName); | 
|         queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) | 
|                 .leftJoin("company t4 on t1.company_id=t4.id") | 
|                 .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) | 
|                 .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId); | 
|         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().getChecklInfo() != null, HiddenDanger::getChecklInfo, pageWrap.getModel().getChecklInfo()) | 
|                 .eq(pageWrap.getModel().getCheckUserId() != null, HiddenDanger::getCheckUserId, pageWrap.getModel().getCheckUserId()) | 
|                 .eq(pageWrap.getModel().getAreaName() != null, HiddenDanger::getAreaName, pageWrap.getModel().getAreaName()) | 
|                 .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()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime()) | 
|                 .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),Empower::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.selectPage(page, queryWrapper)); | 
|     } | 
|   | 
|     @Override | 
|     public long count(HiddenDanger hiddenDanger) { | 
|         QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); | 
|         return hiddenDangerMapper.selectCount(wrapper); | 
|     } | 
| } |