This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/web/service/basics/SysDictInfoService.java

232 lines
6.3 KiB
Java
Raw Normal View History

package com.nis.web.service.basics;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.google.common.collect.Lists;
import com.nis.domain.Page;
import com.nis.domain.SysUser;
import com.nis.domain.basics.SysDictInfo;
import com.nis.util.ConfigDictUtils;
import com.nis.util.Configurations;
import com.nis.util.StringUtil;
import com.nis.web.dao.basics.SysDictInfoDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@Service
public class SysDictInfoService extends BaseService{
@Autowired
private SysDictInfoDao sysDictInfoDao;
/**
* 查询顶层分页()
* @param page
* @param sysDictInfo
* @param itType
* @return
*/
public Page<SysDictInfo> findTopDictList(Page<SysDictInfo> page, SysDictInfo sysDictInfo, List<Integer> itType) {
// 设置分页参数
sysDictInfo.setPage(page);
//根据条件查询符合数据
sysDictInfo.setConditionType(itType);
List<SysDictInfo> allList = sysDictInfoDao.findTopDictList(sysDictInfo);
SysDictInfo tempSe = new SysDictInfo();
tempSe.setSysDictId(0);
for(SysDictInfo se:allList){
se.setParent(tempSe);
}
page.setList(allList);
return page;
}
/**
* 根据条件查询所有数据
* @param page
* @param sysDictInfo
* @param intArr
* @return
*/
public List<SysDictInfo> findAllSysDictInfo(SysDictInfo sysDictInfo, List<Integer> itType,String orderBy) {
sysDictInfo.setConditionType(itType);
return sysDictInfoDao.findAllSysDictInfo(sysDictInfo,orderBy);
}
/**
* 查询所有有效字典配置
*/
public List<SysDictInfo> findAllDictList() {
return sysDictInfoDao.findAllDictList(new SysDictInfo());
}
/**
* 根据主键查询生效范围字典详细信息
* @param sysDictId
* @return
*/
public SysDictInfo getDictById(Integer sysDictId) {
return sysDictInfoDao.getDictById(sysDictId);
}
/**
* 新增或修改生效范围字典表
* @param sysDictInfo
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdate(SysDictInfo sysDictInfo) {
if(sysDictInfo.getParent()==null
||(sysDictInfo.getParent()!=null&&sysDictInfo.getParent().getSysDictId()==null)
||(sysDictInfo.getParent()!=null&&sysDictInfo.getParent().getSysDictId()==-1)
||(sysDictInfo.getParent()!=null&&sysDictInfo.getParent().getSysDictId()==0)
){
SysDictInfo parent = new SysDictInfo();
parent.setSysDictId(0);
parent.setLevelNo(0);
sysDictInfo.setParent(parent);
}
if(sysDictInfo.getParent().getSysDictId()!=0){
SysDictInfo parent = sysDictInfoDao.getDictById(sysDictInfo.getParent().getSysDictId());
sysDictInfo.setParent(parent);
}
SysUser user = UserUtils.getUser();
if(StringUtil.isEmpty(sysDictInfo.getSysDictId())) {//新增
sysDictInfo.setLevelNo(sysDictInfo.getParent().getLevelNo()+1);
sysDictInfo.setIsValid(1);
sysDictInfo.setSysDictCreator(user);
sysDictInfo.setCreateTime(new Date());
sysDictInfo.setSysDictEditor(user);
sysDictInfo.setEditTime(sysDictInfo.getCreateTime());
sysDictInfoDao.insertDict(sysDictInfo);
}
else {//修改
List<SysDictInfo> resultList = Lists.newArrayList();
List<SysDictInfo> list = sysDictInfoDao.getDictByParentId(sysDictInfo.getSysDictId());
//处理层级
if(sysDictInfo.getParent().getSysDictId()==0){
sysDictInfo.setLevelNo(1);
//处理子集
childLevel(sysDictInfo,list,resultList);
}else{
sysDictInfo.setLevelNo(sysDictInfo.getParent().getLevelNo()+1);
//处理子集
childLevel(sysDictInfo,list,resultList);
}
sysDictInfo.setSysDictEditor(user);
sysDictInfo.setEditTime(new Date());
for(SysDictInfo sc:resultList){
sysDictInfoDao.updateLevelNo(sc);
}
sysDictInfoDao.update(sysDictInfo);
}
}
//处理子集层级
public void childLevel(SysDictInfo sysDictInfo, List<SysDictInfo> list,List<SysDictInfo> resultList){
for(SysDictInfo se:list){
se.setLevelNo(sysDictInfo.getLevelNo()+1);
resultList.add(se);
List<SysDictInfo> newList = sysDictInfoDao.getDictByParentId(se.getSysDictId());
childLevel(se,newList,resultList);
}
}
/**
* 删除
* @param sysDictInfo
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void deleteDict(String mulitId) {
String[] ids = mulitId.split(",");
for(String id:ids){
if (!id.equals("")) {
List<SysDictInfo> list = Lists.newArrayList();
SysDictInfo sysDictInfo = sysDictInfoDao.getDictById(Integer.valueOf(id));
if(sysDictInfo!=null){
SysDictInfo.sortList(list, sysDictInfoDao.findAllDictList(new SysDictInfo()), sysDictInfo.getSysDictId(), true);
list.add(sysDictInfo);
for(SysDictInfo se:list){
se.setIsValid(0);
sysDictInfoDao.delete(se);
}
}
}
}
}
/**
* 查询该类型所有的非叶子配置
* @param itType
* @return
*/
public List<SysDictInfo> findAllNoLeafDictList(String itType) {
List<SysDictInfo> list = Lists.newArrayList();
List<Integer> intArr = ConfigDictUtils.dealTypeCondition(Configurations.getStringProperty("SYS_DICT_ITM_TYPE", ""), itType);
for(Integer intType:intArr){
List<SysDictInfo> tempList = sysDictInfoDao.findAllNoLeafDictList(intType);
list.addAll(tempList);
}
return list;
}
/**
* 根据itemCode查出对象集合
* @param itemCode
* @return
*/
public List<SysDictInfo> findByItemCode(String itemCode) {
return sysDictInfoDao.findByItemCode(itemCode);
}
/**
* 根据上级id选出所有下级
* @param parent
* @return
*/
public List<SysDictInfo> getDictByParentId(Integer parentId) {
return sysDictInfoDao.getDictByParentId(parentId);
}
public List<SysDictInfo> getDistrictDict(String tableName){
return sysDictInfoDao.getDistrictDict(tableName);
}
}