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().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 ids = model.getMemberIdList(); if(ids==null || ids.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); } List memberList = memberMapper.selectList(new QueryWrapper().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 deleteWrapper = new UpdateWrapper<>(hiddenDangerParam); hiddenDangerParamMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List 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().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 ids =model.getMemberIdList(); if(ids==null || ids.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); } List memberList = memberMapper.selectList(new QueryWrapper().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 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 wrapper = new QueryWrapper<>(hiddenDangerParam); return hiddenDangerParamMapper.selectOne(wrapper); } @Override public List findList(HiddenDangerParam hiddenDangerParam) { hiddenDangerParam.setIsdeleted(Constants.ZERO); QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); wrapper.lambda().orderByAsc(HiddenDangerParam::getSortnum); return hiddenDangerParamMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper 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 result = PageData.from(hiddenDangerParamMapper.selectJoinPage(page,HiddenDangerParam.class, queryWrapper)); return result; } @Override public long count(HiddenDangerParam hiddenDangerParam) { QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); return hiddenDangerParamMapper.selectCount(wrapper); } @Override public List findHiddenAreaMemberList(HiddenDangerParam pageWrap) { HiddenDangerParam hiddenDangerParam = new HiddenDangerParam(); hiddenDangerParam.setIsdeleted(Constants.ZERO); if(Objects.nonNull(pageWrap.getId())){ hiddenDangerParam.setId(pageWrap.getId()); } QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); List list = hiddenDangerParamMapper.selectList(wrapper); List memberList = new ArrayList<>(); if(list!=null){ List 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(). 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; } }