package com.gk.hotwork.Service.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gk.hotwork.Domain.Exception.BusinessException; import com.gk.hotwork.Domain.RiskAnaUnit; import com.gk.hotwork.Domain.RiskControlClassify; import com.gk.hotwork.Domain.UserInfo; import com.gk.hotwork.Domain.Utils.StringUtils; import com.gk.hotwork.Mapper.RiskControlClassifyMapper; import com.gk.hotwork.Service.RiskControlClassifyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** * @author celin * @date 2022/3/16 16:42 */ @Service("riskControlClassify") public class RiskControlClassifyServiceImpl extends ServiceImpl implements RiskControlClassifyService { @Autowired private RiskControlClassifyMapper riskControlClassifyMapper; @Override public IPage selectPage(Page page, Map filter, UserInfo user) { return riskControlClassifyMapper.selectPages(page,filter,user); } @Override public List selectAll(UserInfo user) { List allClassify = riskControlClassifyMapper.selectList( new LambdaQueryWrapper() .eq(RiskControlClassify::getValidFlag,Boolean.TRUE)); List root = new ArrayList<>(); List allChildren = new ArrayList<>(); if (allClassify.size() > 0) { for (RiskControlClassify nav : allClassify) { if (nav.getParentId() == null) { root.add(nav); }else{ allChildren.add(nav); } } } //根部排序 root.sort(Comparator.comparingInt(RiskControlClassify::getOrderIndex)); //选用子类 if (root.size() > 0) { for (RiskControlClassify nav : root) { List subClassify = this.getChildren(nav.getId(), allChildren); nav.setSubClassify(subClassify); } } return root; } /** * @Description: 新增 */ @Override public void addOne(RiskControlClassify riskControlClassifyVo, UserInfo user) { if (StringUtils.isBlank(riskControlClassifyVo.getName())) throw new BusinessException("分类名称不能为空"); Date date = new Date(); String operator = user.getRealname(); riskControlClassifyVo.setCreateTime(date); riskControlClassifyVo.setUpdateTime(date); riskControlClassifyVo.setUpdateBy(operator); riskControlClassifyVo.setCreateBy(operator); riskControlClassifyVo.setValidFlag(Boolean.TRUE); this.save(riskControlClassifyVo); } /** * @Description: 修改 */ @Override public void modOne(RiskControlClassify riskControlClassifyVo, UserInfo user) { if (riskControlClassifyVo.getId() == null) throw new BusinessException("id参数不能为空"); int count = this.count(new LambdaQueryWrapper().eq(RiskControlClassify::getId, riskControlClassifyVo.getId())); if (count < 1) throw new BusinessException("找不到相应实体"); riskControlClassifyVo.setUpdateBy(user.getRealname()); riskControlClassifyVo.setUpdateTime(new Date()); this.updateById(riskControlClassifyVo); } /** * @Description: 删除 */ @Override public void delOne(Long id, UserInfo user) { if(id == null) throw new BusinessException("id参数不能为空"); int count = this.count(new LambdaQueryWrapper().eq(RiskControlClassify::getId, id)); if (count < 1) throw new BusinessException("找不到相应实体"); RiskControlClassify delOne = new RiskControlClassify(); delOne.setId(id); delOne.setUpdateBy(user.getRealname()); delOne.setUpdateTime(new Date()); delOne.setValidFlag(Boolean.FALSE); this.updateById(delOne); } private List getChildren(Long id, List allChildren) { List children = new ArrayList<>(); if (allChildren.size() > 0) { for (RiskControlClassify nav : allChildren) { assert nav.getParentId() != null; if (id.equals(nav.getParentId())) { children.add(nav); } } } //排序 children.sort(Comparator.comparingInt(RiskControlClassify::getOrderIndex)); if (children.size() > 0) { for (RiskControlClassify nav : children) { List subClassify = this.getChildren(nav.getId(), allChildren); nav.setSubClassify(subClassify); } } return children; } @Override public RiskControlClassify getByClassify1AndClassify12(String classify1, String classify2) { return riskControlClassifyMapper.getByClassify1AndClassify12(classify1, classify2); } /** * @Description: 查询 by 1、2分级 */ @Override public RiskControlClassify getByClassify1AndClassify2(String classify1, String classify2) { return riskControlClassifyMapper.getByClassify1AndClassify2(classify1, classify2); } /** * @Description: 查询 by 名字 */ @Override public RiskControlClassify getByClassify(String classify) { return riskControlClassifyMapper.getByClassify(classify); } /** * @Description: 查询 by 名字与parentid */ @Override public RiskControlClassify getByClassify2(Long id, String trim) { return riskControlClassifyMapper.getByClassify2(id, trim); } /** * @Description: 查询 by id */ @Override public RiskControlClassify getByControlId(Byte classify2) { return riskControlClassifyMapper.getByControlId(classify2); } }