package com.smartor.service.impl;
|
|
import com.ruoyi.common.exception.base.BaseException;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DtoConversionUtils;
|
import com.smartor.domain.*;
|
import com.smartor.mapper.IvrLibaTargetAssortMapper;
|
import com.smartor.service.IIvrLibaTargetAssortService;
|
import io.jsonwebtoken.lang.Collections;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 指标分类Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-12-14
|
*/
|
@Slf4j
|
@Service
|
public class IvrLibaTargetAssortServiceImpl implements IIvrLibaTargetAssortService {
|
@Autowired
|
private IvrLibaTargetAssortMapper ivrLibaTargetAssortMapper;
|
|
/**
|
* 查询指标分类
|
*
|
* @param id 指标分类主键
|
* @return 指标分类
|
*/
|
@Override
|
public IvrLibaTargetAssort selectIvrLibaTargetAssortById(Long id) {
|
return ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortById(id);
|
}
|
|
/**
|
* 查询指标分类列表
|
*
|
* @param ivrLibaTargetAssort 指标分类
|
* @return 指标分类
|
*/
|
@Override
|
public List<IvrLibaTargetAssortVO> selectIvrLibaTargetAssortList(IvrLibaTargetAssort ivrLibaTargetAssort) {
|
List<IvrLibaTargetAssort> ivrLibaTargetAssorts = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort);
|
//将pid为空的,过滤掉
|
List<IvrLibaTargetAssort> ivrLibaTargetAssortList = new ArrayList<>();
|
for (IvrLibaTargetAssort ivrLibaTargetAssort1 : ivrLibaTargetAssorts) {
|
// if (ivrLibaTargetAssort1.getPid() != null) {
|
ivrLibaTargetAssortList.add(ivrLibaTargetAssort1);
|
// }
|
}
|
|
List<IvrLibaTargetAssortVO> ivrLibaTargetAssortVOS = DtoConversionUtils.sourceToTarget(ivrLibaTargetAssortList, IvrLibaTargetAssortVO.class);
|
//遍历查出来的数据,通过 id=pid 获取他们的子数据
|
List<IvrLibaTargetAssortVO> ivrLibaTargetAssortVOS1 = new ArrayList<>();
|
for (IvrLibaTargetAssortVO ivrLibaTargetAssortVO : ivrLibaTargetAssortVOS) {
|
// if (ivrLibaTargetAssortVO.getPid() != -1) {
|
// continue;
|
// }
|
IvrLibaTargetAssort ivrLibaTargetAssort1 = new IvrLibaTargetAssort();
|
ivrLibaTargetAssort1.setPid(ivrLibaTargetAssortVO.getId());
|
List<IvrLibaTargetAssort> ivrLibaTargetAssorts2 = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort1);
|
if (!Collections.isEmpty(ivrLibaTargetAssorts2)) {
|
ivrLibaTargetAssortVO.setIvrLibaTargetAssortList(ivrLibaTargetAssorts2);
|
}
|
ivrLibaTargetAssortVOS1.add(ivrLibaTargetAssortVO);
|
}
|
return ivrLibaTargetAssortVOS1;
|
}
|
|
/**
|
* 新增指标分类
|
*
|
* @param ivrLibaTargetAssort 指标分类
|
* @return 结果
|
*/
|
@Override
|
public int insertIvrLibaTargetAssort(IvrLibaTargetAssort ivrLibaTargetAssort) {
|
ivrLibaTargetAssort.setCreateTime(DateUtils.getNowDate());
|
return ivrLibaTargetAssortMapper.insertIvrLibaTargetAssort(ivrLibaTargetAssort);
|
}
|
|
@Override
|
public int insertIvrLibaTargetAssortTree(IvrLibaTargetAssortVO ivrLibaTargetAssortVO) {
|
Integer i = null;
|
if (ObjectUtils.isEmpty(ivrLibaTargetAssortVO)) {
|
throw new BaseException("入参为空,请检查后,再新增");
|
}
|
|
//获取序号最大值
|
Integer seqMax = null;
|
try {
|
seqMax = ivrLibaTargetAssortMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax = 0;
|
}
|
IvrLibaTargetAssort ivrLibaTargetAssort = DtoConversionUtils.sourceToTarget(ivrLibaTargetAssortVO, IvrLibaTargetAssort.class);
|
ivrLibaTargetAssort.setSeqno(1);
|
if (seqMax != null) {
|
ivrLibaTargetAssort.setSeqno(seqMax + 1);
|
}
|
//-1代表主树
|
if (ivrLibaTargetAssort.getPid() == null) ivrLibaTargetAssort.setPid((long) -1);
|
i = ivrLibaTargetAssortMapper.insertIvrLibaTargetAssort(ivrLibaTargetAssort);
|
log.info("指标分类一级树的主键:{}", ivrLibaTargetAssort.getId());
|
|
//新增二级树
|
if (CollectionUtils.isNotEmpty(ivrLibaTargetAssortVO.getIvrLibaTargetAssortList())) {
|
for (IvrLibaTargetAssort ivrLibaTargetAssort1 : ivrLibaTargetAssortVO.getIvrLibaTargetAssortList()) {
|
//获取序号最大值
|
Integer seqMax1 = null;
|
try {
|
seqMax1 = ivrLibaTargetAssortMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax1 = 0;
|
}
|
ivrLibaTargetAssort1.setPid(ivrLibaTargetAssort.getId());
|
ivrLibaTargetAssort1.setSeqno(1);
|
if (seqMax != null) {
|
ivrLibaTargetAssort1.setSeqno(seqMax1 + 1);
|
}
|
ivrLibaTargetAssort1.setGuid(ivrLibaTargetAssortVO.getGuid());
|
ivrLibaTargetAssort1.setOrgid(ivrLibaTargetAssortVO.getOrgid());
|
ivrLibaTargetAssortMapper.insertIvrLibaTargetAssort(ivrLibaTargetAssort1);
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 修改指标分类
|
*
|
* @param ivrLibaTargetAssort 指标分类
|
* @return 结果
|
*/
|
@Override
|
public int updateIvrLibaTargetAssort(IvrLibaTargetAssort ivrLibaTargetAssort) {
|
ivrLibaTargetAssort.setUpdateTime(DateUtils.getNowDate());
|
return ivrLibaTargetAssortMapper.updateIvrLibaTargetAssort(ivrLibaTargetAssort);
|
}
|
|
/**
|
* 批量删除指标分类
|
*
|
* @param ids 需要删除的指标分类主键
|
* @return 结果
|
*/
|
@Override
|
public Integer deleteIvrLibaTargetAssortByIds(Long[] ids) {
|
Integer i = null;
|
for (Long id : ids) {
|
if (id < 0) {
|
log.info("该指标分类id为默认ID,不能删除,id:{}", id);
|
continue;
|
}
|
i = ivrLibaTargetAssortMapper.deleteIvrLibaTargetAssortById(id);
|
IvrLibaTargetAssort ivrLibaTargetAssort = new IvrLibaTargetAssort();
|
ivrLibaTargetAssort.setPid(id);
|
|
//将删除的id的二级菜单,放到未分类中
|
List<IvrLibaTargetAssort> ivrLibaTargetAssorts = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort);
|
if (CollectionUtils.isNotEmpty(ivrLibaTargetAssorts)) {
|
for (IvrLibaTargetAssort ivrLibaTargetAssort1 : ivrLibaTargetAssorts) {
|
ivrLibaTargetAssort1.setPid(-1L);
|
ivrLibaTargetAssortMapper.updateIvrLibaTargetAssort(ivrLibaTargetAssort1);
|
}
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 删除指标分类信息
|
*
|
* @param id 指标分类主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteIvrLibaTargetAssortById(Long id) {
|
return ivrLibaTargetAssortMapper.deleteIvrLibaTargetAssortById(id);
|
}
|
}
|