| package com.doumee.service.business.impl; | 
|   | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| 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.Utils; | 
| import com.doumee.dao.business.HiddenDangerParamMapper; | 
| import com.doumee.dao.business.dao.MemberMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.dao.business.model.Member; | 
| import com.doumee.service.business.HiddenDangerParamService; | 
| 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.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.*; | 
|   | 
| /** | 
|  * 隐患区域配置类型信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @since 2024/04/28 16:06 | 
|  */ | 
| @Service | 
| public class HiddenDangerParamServiceImpl implements HiddenDangerParamService { | 
|     @Autowired | 
|     private HiddenDangerParamMapper hiddenDangerParamMapper; | 
|     @Autowired | 
|     private MemberMapper memberMapper; | 
|   | 
|   | 
|     @Override | 
|     public Integer create(HiddenDangerParam model) { | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(loginUserInfo == null){ | 
|             loginUserInfo = model.getLoginUserInfo(); | 
|         } | 
|       /*  if(hiddenDangerParamMapper.selectCount(new QueryWrapper<HiddenDangerParam>().lambda() | 
|                 .eq(HiddenDangerParam::getType,model.getType()) | 
|                 .eq(HiddenDangerParam::getName,model.getName()) | 
|                 .eq(HiddenDangerParam::getIsdeleted,Constants.ZERO) | 
|         )>Constants.ZERO){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该名称已存在!"); | 
|         }*/ | 
|         if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ | 
|             //如果是区域配置 | 
|             if(model.getCompanyId() == null){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择责任部门!"); | 
|             } | 
|             List<Integer> ids = model.getMemberIdList(); | 
|             if(ids==null || ids.size() ==0){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); | 
|             } | 
|            List<Member>  memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() | 
| //                    .eq(Member::getType,Constants.TWO) | 
|                     .eq(Member::getCompanyId,model.getCompanyId()) | 
|                     .in(Member::getId,ids) | 
|                     .eq(Member::getIsdeleted,Constants.ZERO)); | 
|             if(memberList == null || memberList.size() == 0 || memberList.size() != ids.size() ){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择正确的安全员信息!"); | 
|             } | 
|             String names = ""; | 
|             String idss = ""; | 
|             for(Member member : memberList){ | 
|                 if(StringUtils.isNotBlank(names)){ | 
|                     names += ","; | 
|                 } | 
|                 if(StringUtils.isNotBlank(idss)){ | 
|                     idss += ","; | 
|                 } | 
|                 names += member.getName(); | 
|                 idss += member.getId(); | 
|             } | 
|             model.setMemberNames(names); | 
|             model.setMemberIds(idss); | 
|         } | 
|         model.setType(Constants.formatIntegerNum(model.getType())); | 
|         model.setCreateDate(new Date()); | 
|         model.setCreator(loginUserInfo.getId()); | 
|         model.setEditDate(new Date()); | 
|         model.setEditor(loginUserInfo.getId()); | 
|         model.setStatus(Constants.ZERO); | 
|         model.setIsdeleted(Constants.ZERO); | 
|         hiddenDangerParamMapper.insert(model); | 
|         return model.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id, LoginUserInfo userInfo) { | 
|         HiddenDangerParam  model = new HiddenDangerParam(); | 
|         model.setEditDate(new Date()); | 
|         model.setEditor(userInfo.getId()); | 
|         model.setId(id); | 
|         model.setIsdeleted(Constants.ONE); | 
|         hiddenDangerParamMapper.updateById(model); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(HiddenDangerParam hiddenDangerParam) { | 
|         UpdateWrapper<HiddenDangerParam> deleteWrapper = new UpdateWrapper<>(hiddenDangerParam); | 
|         hiddenDangerParamMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo userInfo) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         for(Integer id :ids){ | 
|             deleteById(id,userInfo); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(HiddenDangerParam model) { | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(loginUserInfo == null){ | 
|             loginUserInfo = model.getLoginUserInfo(); | 
|         } | 
|         HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(model.getId()); | 
|         if(hiddenDangerParam == null || Constants.equalsInteger(hiddenDangerParam.getIsdeleted(),Constants.ONE)){ | 
|             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该配置信息不存在,请返回刷新页面重试!"); | 
|         } | 
|     /*    if(hiddenDangerParamMapper.selectCount(new QueryWrapper<HiddenDangerParam>().lambda() | 
|                 .eq(HiddenDangerParam::getType,model.getType()) | 
|                 .eq(HiddenDangerParam::getName,model.getName()) | 
|                 .eq(HiddenDangerParam::getIsdeleted,Constants.ZERO) | 
|                 .ne(HiddenDangerParam::getId,model.getId()) | 
|         )>Constants.ZERO){ | 
|             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该名称已存在!"); | 
|         }*/ | 
|         if(Constants.equalsInteger(hiddenDangerParam.getType(),Constants.ZERO)){ | 
|             //如果是区域配置,校验安全员信息是否正确 | 
|             if(model.getCompanyId() == null){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择责任部门!"); | 
|             } | 
|             List<Integer> ids =model.getMemberIdList(); | 
|             if(ids==null || ids.size() ==0){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); | 
|             } | 
|             List<Member>  memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() | 
|                     .eq(Member::getType,Constants.TWO) | 
|                     .eq(Member::getCompanyId,model.getCompanyId()) | 
|                     .in(Member::getId,ids) | 
|                     .eq(Member::getIsdeleted,Constants.ZERO)); | 
|             if(memberList == null || memberList.size() == 0 || memberList.size() != ids.size() ){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择正确的安全员信息!"); | 
|             } | 
|             String names = ""; | 
|             String idss = ""; | 
|             for(Member member : memberList){ | 
|                 if(StringUtils.isNotBlank(names)){ | 
|                     names += ","; | 
|                 } | 
|                 if(StringUtils.isNotBlank(idss)){ | 
|                     idss += ","; | 
|                 } | 
|                 names += member.getName(); | 
|                 idss += member.getId(); | 
|             } | 
|             model.setMemberNames(names); | 
|             model.setMemberIds(idss); | 
|         } | 
|         model.setType(Constants.formatIntegerNum(model.getType())); | 
|         model.setEditDate(new Date()); | 
|         model.setEditor(loginUserInfo.getId()); | 
|         model.setStatus(Constants.ZERO); | 
|         hiddenDangerParamMapper.updateById(model); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<HiddenDangerParam> hiddenDangerParams) { | 
|         if (CollectionUtils.isEmpty(hiddenDangerParams)) { | 
|             return; | 
|         } | 
|         for (HiddenDangerParam hiddenDangerParam: hiddenDangerParams) { | 
|             this.updateById(hiddenDangerParam); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public HiddenDangerParam findById(Integer id) { | 
|         return hiddenDangerParamMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public HiddenDangerParam findOne(HiddenDangerParam hiddenDangerParam) { | 
|         QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam); | 
|         return hiddenDangerParamMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<HiddenDangerParam> findList(HiddenDangerParam hiddenDangerParam) { | 
|   | 
|         hiddenDangerParam.setIsdeleted(Constants.ZERO); | 
|         QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam); | 
|         wrapper.lambda().orderByAsc(HiddenDangerParam::getSortnum); | 
|         return hiddenDangerParamMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<HiddenDangerParam> findPage(PageWrap<HiddenDangerParam> pageWrap) { | 
|         IPage<HiddenDangerParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         MPJLambdaWrapper<HiddenDangerParam> queryWrapper = new MPJLambdaWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         pageWrap.getModel().setIsdeleted(Constants.ZERO); | 
|         queryWrapper. selectAll(HiddenDangerParam.class) | 
|                 .selectAs(Company::getCompanyNamePath,HiddenDangerParam::getCompanyName) | 
|                 .leftJoin(Company.class,Company::getId,HiddenDangerParam::getCompanyId) | 
|                 .eq(pageWrap.getModel().getId() != null, HiddenDangerParam::getId, pageWrap.getModel().getId()) | 
|                 .eq(pageWrap.getModel().getCreator() != null, HiddenDangerParam::getCreator, pageWrap.getModel().getCreator()) | 
|                 .eq(pageWrap.getModel().getEditor() != null, HiddenDangerParam::getEditor, pageWrap.getModel().getEditor()) | 
|                 .eq(pageWrap.getModel().getIsdeleted() != null, HiddenDangerParam::getIsdeleted, pageWrap.getModel().getIsdeleted()) | 
|                 .like(pageWrap.getModel().getName() != null, HiddenDangerParam::getName, pageWrap.getModel().getName()) | 
|                 .like(pageWrap.getModel().getCompanyName() != null, Company::getName, pageWrap.getModel().getCompanyName()) | 
|                 .eq(pageWrap.getModel().getRemark() != null, HiddenDangerParam::getRemark, pageWrap.getModel().getRemark()) | 
|                 .eq(pageWrap.getModel().getStatus() != null, HiddenDangerParam::getStatus, pageWrap.getModel().getStatus()) | 
|                 .eq(pageWrap.getModel().getSortnum() != null, HiddenDangerParam::getSortnum, pageWrap.getModel().getSortnum()) | 
|                 .eq(pageWrap.getModel().getImgurl() != null, HiddenDangerParam::getImgurl, pageWrap.getModel().getImgurl()) | 
|                 .eq(pageWrap.getModel().getMemberIds() != null, HiddenDangerParam::getMemberIds, pageWrap.getModel().getMemberIds()) | 
|                 .eq(pageWrap.getModel().getMemberNames() != null, HiddenDangerParam::getMemberNames, pageWrap.getModel().getMemberNames()) | 
|                 .eq(pageWrap.getModel().getType() != null, HiddenDangerParam::getType, pageWrap.getModel().getType()) | 
|                 .orderByAsc(HiddenDangerParam::getSortnum) | 
|                 .orderByDesc(HiddenDangerParam::getCreateDate) | 
|                 .eq( HiddenDangerParam::getIsdeleted, Constants.ZERO) | 
|         ; | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         PageData<HiddenDangerParam> result = PageData.from(hiddenDangerParamMapper.selectJoinPage(page,HiddenDangerParam.class, queryWrapper)); | 
|   | 
|         return result; | 
|     } | 
|   | 
|     @Override | 
|     public long count(HiddenDangerParam hiddenDangerParam) { | 
|         QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam); | 
|         return hiddenDangerParamMapper.selectCount(wrapper); | 
|     } | 
|     @Override | 
|     public   List<Member> findHiddenAreaMemberList(HiddenDangerParam pageWrap) { | 
|         HiddenDangerParam hiddenDangerParam = new HiddenDangerParam(); | 
|         hiddenDangerParam.setIsdeleted(Constants.ZERO); | 
|         if(Objects.nonNull(pageWrap.getId())){ | 
|             hiddenDangerParam.setId(pageWrap.getId()); | 
|         } | 
|         QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam); | 
|         List<HiddenDangerParam> list = hiddenDangerParamMapper.selectList(wrapper); | 
|         List<Member> memberList = new ArrayList<>(); | 
|         if(list!=null){ | 
|             List<Integer> idList = new ArrayList<>(); | 
|             for(HiddenDangerParam m : list){ | 
|                 String ids = m.getMemberIds(); | 
|                 if(StringUtils.isNotBlank(ids)){ | 
|                     String[] t = ids.split(","); | 
|                     for(String d : t){ | 
|                         try { | 
|                             idList.add(Integer.parseInt(d)); | 
|                         }catch (Exception e){} | 
|                     } | 
|                 } | 
|             } | 
|             if(idList.size()>0){ | 
|                 memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>(). | 
|                         selectAll(Member.class) | 
|                         .selectAs(Company::getCompanyNamePath,Member::getCompanyName) | 
|                         .leftJoin(Company.class, Company::getId,Member::getCompanyId) | 
|                         .eq(Member::getType,Constants.TWO) | 
|                         .eq(Member::getIsdeleted,Constants.ZERO) | 
|                         .like(StringUtils.isNotBlank(pageWrap.getName()),Member::getName,pageWrap.getName()) | 
|                         .in(Member::getId,idList) | 
|                 ); | 
|             } | 
|         } | 
|         return memberList; | 
|     } | 
| } |