package com.ruoyi.system.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.system.domain.AiAlarmType;
|
import com.ruoyi.system.domain.SysUserPost;
|
import com.ruoyi.system.mapper.AiAlarmTypeMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
import com.ruoyi.common.utils.DictUtils;
|
import com.ruoyi.system.mapper.SysDictDataMapper;
|
import com.ruoyi.system.service.ISysDictDataService;
|
|
/**
|
* 字典 业务层处理
|
*
|
* @author ruoyi
|
*/
|
@Service
|
public class SysDictDataServiceImpl implements ISysDictDataService
|
{
|
@Autowired
|
private SysDictDataMapper dictDataMapper;
|
@Autowired
|
private AiAlarmTypeMapper alarmTypeMapper;
|
|
/**
|
* 根据条件分页查询字典数据
|
*
|
* @param dictData 字典数据信息
|
* @return 字典数据集合信息
|
*/
|
@Override
|
public List<SysDictData> selectDictDataList(SysDictData dictData)
|
{
|
return dictDataMapper.selectDictDataList(dictData);
|
}
|
|
/**
|
* 根据字典类型和字典键值查询字典数据信息
|
*
|
* @param dictType 字典类型
|
* @param dictValue 字典键值
|
* @return 字典标签
|
*/
|
@Override
|
public String selectDictLabel(String dictType, String dictValue)
|
{
|
return dictDataMapper.selectDictLabel(dictType, dictValue);
|
}
|
|
/**
|
* 根据字典数据ID查询信息
|
*
|
* @param dictCode 字典数据ID
|
* @return 字典数据
|
*/
|
@Override
|
public SysDictData selectDictDataById(Long dictCode)
|
{
|
return dictDataMapper.selectDictDataById(dictCode);
|
}
|
|
/**
|
* 批量删除字典数据信息
|
*
|
* @param dictCodes 需要删除的字典数据ID
|
*/
|
@Override
|
public void deleteDictDataByIds(Long[] dictCodes)
|
{
|
for (Long dictCode : dictCodes)
|
{
|
SysDictData data = selectDictDataById(dictCode);
|
dictDataMapper.deleteDictDataById(dictCode);
|
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
|
DictUtils.setDictCache(data.getDictType(), dictDatas);
|
}
|
}
|
|
/**
|
* 新增保存字典数据信息
|
*
|
* @param data 字典数据信息
|
* @return 结果
|
*/
|
@Override
|
public int insertDictData(SysDictData data)
|
{
|
int row = dictDataMapper.insertDictData(data);
|
if (row > 0)
|
{
|
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
|
DictUtils.setDictCache(data.getDictType(), dictDatas);
|
}
|
return row;
|
}
|
|
/**
|
* 修改保存字典数据信息
|
*
|
* @param data 字典数据信息
|
* @return 结果
|
*/
|
@Override
|
public int updateDictData(SysDictData data)
|
{
|
int row = dictDataMapper.updateDictData(data);
|
if (row > 0)
|
{
|
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
|
DictUtils.setDictCache(data.getDictType(), dictDatas);
|
}
|
return row;
|
}
|
/**
|
* 新增/保存报警类型大类信息
|
*
|
* @param data 字典数据信息
|
* @return 结果
|
*/
|
@Override
|
public int typeAdd(SysDictData data)
|
{
|
int row = dictDataMapper.insertDictData(data);
|
if(data.getTypeIds()!=null&&data.getTypeIds().length>0){
|
insertAlarmType(data);
|
}
|
|
if (row > 0)
|
{
|
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
|
DictUtils.setDictCache(data.getDictType(), dictDatas);
|
}
|
return row;
|
}
|
/**
|
* 修改报警类型大类信息
|
*
|
* @param data 字典数据信息
|
* @return 结果
|
*/
|
@Override
|
public int typeEdit(SysDictData data)
|
{
|
int row = dictDataMapper.updateDictData(data);
|
//删除关联报警小类
|
deleteAlarmType(data);
|
//新增关联报警小类
|
if(data.getTypeIds()!=null&&data.getTypeIds().length>0){
|
insertAlarmType(data);
|
}
|
if (row > 0)
|
{
|
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
|
DictUtils.setDictCache(data.getDictType(), dictDatas);
|
}
|
return row;
|
}
|
/**
|
* 新增报警类型大类,小类关联信息
|
*
|
* @param data 字典数据信息
|
*/
|
public void insertAlarmType(SysDictData data)
|
{
|
String[] types = data.getTypeIds();
|
if (StringUtils.isNotEmpty(types))
|
{
|
// 报警类型大类与报警类型小类
|
List<AiAlarmType> list = new ArrayList<AiAlarmType>(types.length);
|
for (String small : types)
|
{
|
AiAlarmType type = new AiAlarmType();
|
type.setAlarmBigType(data.getDictValue());
|
type.setAlarmSmallType(small);
|
list.add(type);
|
}
|
alarmTypeMapper.AlarmTypeAdd(list);
|
}
|
}
|
/**
|
* 删除报警类型大类,小类关联信息
|
*
|
* @param data 字典数据信息
|
*/
|
public void deleteAlarmType(SysDictData data){
|
alarmTypeMapper.deleteAlarmTypeByBigType(Long.parseLong(data.getDictValue()));
|
}
|
}
|