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 com.google.common.collect.Lists; import com.nis.domain.Page; import com.nis.domain.SysMenu; import com.nis.domain.SysUser; import com.nis.domain.basics.ServiceDictInfo; import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.dao.basics.ServiceDictInfoDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @Service public class ServiceDictInfoService extends BaseService{ @Autowired private ServiceDictInfoDao serviceDictInfoDao; /** * 查询业务字典分页(无条件查询) * @param page * @param serviceDictInfo * @return */ public Page findTopDictList(Page page, ServiceDictInfo serviceDictInfo,Integer[] itType) { // 设置分页参数 serviceDictInfo.setPage(page); List parentList = Lists.newArrayList(); Integer tempType = 0; if(serviceDictInfo.getItemType()!=null){ tempType = serviceDictInfo.getItemType(); } //查出顶层分页查询 if(itType.length==1){ serviceDictInfo.setItemType(itType[0]); parentList = serviceDictInfoDao.findTopDictList(serviceDictInfo); } if(itType.length==2){ if(tempType!=0){ parentList = serviceDictInfoDao.findTopDictList(serviceDictInfo); }else{ List tempList = Lists.newArrayList(); tempList.add(1);tempList.add(2);tempList.add(3); //Map map = DictUtils.getDictOption("SERVICE_DICT_ITM_TYPE"); if(tempList.contains(itType[0])){ tempList.remove(itType[0]); } if(tempList.contains(itType[1])){ tempList.remove(itType[1]); } serviceDictInfo.setItemType(tempList.get(0)); parentList = serviceDictInfoDao.findTopDictListN(serviceDictInfo); } } page.setList(parentList); return page; } /** * 查询所有有效字典配置 * @return */ public List findAllDictList() { return serviceDictInfoDao.findAllDictList(new ServiceDictInfo()); } /** * 查询该类型所有的非叶子配置 */ public List findAllNoLeafDictList(String itType) { List list = Lists.newArrayList(); String[] strArr = itType.split("-"); Integer[] intArr = new Integer[strArr.length]; for(int i=0;i tempList = serviceDictInfoDao.findAllNoLeafDictList(intArr[i]); for(ServiceDictInfo serviceDictInfo:tempList){ list.add(serviceDictInfo); } } return list; } /** * 查询字典分页(含条件查询) * @param page * @param serviceDictInfo * @param itType * @return */ public Page findDictSearchList(Page page, ServiceDictInfo serviceDictInfo, Integer[] itType) { // 设置分页参数 serviceDictInfo.setPage(page); List list = Lists.newArrayList(); Integer tempType = 0; if(serviceDictInfo.getItemType()!=null){ tempType = serviceDictInfo.getItemType(); } //查出分页 if(itType.length==1){ serviceDictInfo.setItemType(itType[0]); list = serviceDictInfoDao.findDictSearchList(serviceDictInfo); } if(itType.length==2){ if(tempType!=0){ list = serviceDictInfoDao.findTopDictList(serviceDictInfo); }else{ List tempList = Lists.newArrayList(); tempList.add(1);tempList.add(2);tempList.add(3); //Map map = DictUtils.getDictOption("SERVICE_DICT_ITM_TYPE"); if(tempList.contains(itType[0])){ tempList.remove(itType[0]); } if(tempList.contains(itType[1])){ tempList.remove(itType[1]); } serviceDictInfo.setItemType(tempList.get(0)); list = serviceDictInfoDao.findDictSearchListN(serviceDictInfo); } } page.setList(list); return page; } /** * 根据主键查询字典详细信息 * @param serviceDictId * @return */ public ServiceDictInfo getDictById(Integer serviceDictId) { return serviceDictInfoDao.getDictById(serviceDictId); } /** * 根据上级id选出所有下级 * @param parentId * @return */ public List getDictByParentId(Integer parentId) { return serviceDictInfoDao.getDictByParentId(parentId); } /** * 新增或修改业务字典表 * @param serviceDictInfo */ public void saveOrUpdate(ServiceDictInfo serviceDictInfo) { if(serviceDictInfo.getParent()==null ||(serviceDictInfo.getParent()!=null&&serviceDictInfo.getParent().getServiceDictId()==null) ||(serviceDictInfo.getParent()!=null&&serviceDictInfo.getParent().getServiceDictId()==-1) ||(serviceDictInfo.getParent()!=null&&serviceDictInfo.getParent().getServiceDictId()==0) ){ ServiceDictInfo parent = new ServiceDictInfo(); parent.setServiceDictId(0); serviceDictInfo.setParent(parent); } SysUser user = UserUtils.getUser(); if(StringUtil.isEmpty(serviceDictInfo.getServiceDictId())) {//新增 Integer maxCode = serviceDictInfoDao.findMaxItemCode(); serviceDictInfo.setItemCode(maxCode==null?1:(maxCode+1)); serviceDictInfo.setIsValid(1); serviceDictInfo.setServiceDictCreator(user); serviceDictInfo.setCreateTime(new Date()); serviceDictInfo.setServiceDictEditor(user); serviceDictInfo.setEditTime(serviceDictInfo.getCreateTime()); serviceDictInfoDao.insertDict(serviceDictInfo); } else {//修改 serviceDictInfo.setServiceDictEditor(user); serviceDictInfo.setEditTime(new Date()); serviceDictInfoDao.update(serviceDictInfo); } } /** * 删除 * @param serviceDictInfo */ public void deleteDict(ServiceDictInfo serviceDictInfo) { List list = Lists.newArrayList(); //找出所有下级 //查出所有节点 ServiceDictInfo.sortList(list, serviceDictInfoDao.findAllDictList(new ServiceDictInfo()), serviceDictInfo.getServiceDictId(), true); list.add(serviceDictInfo); for(ServiceDictInfo se:list){ se.setIsValid(0); serviceDictInfoDao.delete(se); } } /** * 根据itemCode查出对象集合 */ public List findByItemCode(Integer itemCode){ return serviceDictInfoDao.findByItemCode(itemCode); } /** * * findFlDict(查找所有有效的分类) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findFlDict() { return serviceDictInfoDao.findItemDict(Constants.ITEM_TYPE_FL,Constants.VALID_YES); } /** * * findFlDict(查找所有有效的分类) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findAllFlDict() { return serviceDictInfoDao.findAllItemDict(Constants.ITEM_TYPE_FL); } /** * * findFlDict(查找所有有效的性质) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findXzDict() { return serviceDictInfoDao.findItemDict(Constants.ITEM_TYPE_XZ,Constants.VALID_YES); } /** * * findFlDict(查找所有有效的性质) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findAllXzDict() { return serviceDictInfoDao.findAllItemDict(Constants.ITEM_TYPE_XZ); } /** * * findFlDict(查找所有有效的标签) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findLableDict() { return serviceDictInfoDao.findItemDict(Constants.ITEM_TYPE_LABEL,Constants.VALID_YES); } /** * * findFlDict(查找所有有效的标签) * (这里描述这个方法适用条件 – 可选) * @return *List * @exception * @since 1.0.0 */ public List findAllLableDict() { return serviceDictInfoDao.findAllItemDict(Constants.ITEM_TYPE_LABEL); } }