package com.nis.web.controller.basics; import java.util.Arrays; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.zookeeper.ZooDefs.Ids; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.nis.domain.Page; import com.nis.domain.basics.ServiceDictInfo; import com.nis.util.Configurations; import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.BaseController; @Controller @RequestMapping(value = "${adminPath}/basics/serviceDictInfo") public class ServiceDictInfoController extends BaseController { @ModelAttribute public ServiceDictInfo get(@RequestParam(required=false) Integer serviceDictId) { if (!StringUtil.isEmpty(serviceDictId)){ return serviceDictInfoService.getDictById(serviceDictId); }else{ return new ServiceDictInfo(); } } /** * 根据serviceDictId查出配置对象 * @param serviceDictId * @param request * @param response * @param model * @return */ @ResponseBody @RequestMapping(value = "loadDataDict") public ServiceDictInfo loadDataDict(@RequestParam(required=false) Integer serviceDictId,HttpServletRequest request, HttpServletResponse response, Model model){ return serviceDictInfoService.getDictById(serviceDictId); } /** * 查询业务辅助表-业务字典信息列表(无条件分页查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"list", ""}) public String list(String itType, ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model,Integer selectedType,boolean isFilterAction) { //处理数据 serviceDictInfo.setIsFilterAction(isFilterAction); String[] strArr = itType.split("-"); Integer[] intArr = new Integer[strArr.length]; for(int i=0;i page = serviceDictInfoService.findTopDictList(new Page(request, response), serviceDictInfo,intArr); model.addAttribute("page", page); //查出所有数据 List allList = serviceDictInfoService.findAllDictList(); //处理数据,保留顶层中的所有下层数据 List list = Lists.newArrayList(); for(int i=allList.size()-1;i>=0;i--){ ServiceDictInfo se = allList.get(i); if(se!=null&&se.getParent()!=null&&se.getParent().getServiceDictId()!=null&&se.getParent().getServiceDictId()==0){ allList.remove(se); } } allList.addAll(page.getList()); ServiceDictInfo.sortList(list,allList,0,true); model.addAttribute("itType", itType); model.addAttribute("intArr", Arrays.asList(intArr)); model.addAttribute("list", list); return "/basics/serviceDictList"; } /** * 查询业务辅助表-业务字典信息列表(含条件查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"searchList"}) public String searchList(String itType, ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model,Integer selectedType) { if(StringUtils.strIsBlank(serviceDictInfo.getItemValue()) &&StringUtils.strIsBlank(serviceDictInfo.getItemCode()) &&serviceDictInfo.getBeginDate()==null &&serviceDictInfo.getEndDate()==null &&serviceDictInfo.getEditBeginDate()==null &&serviceDictInfo.getEditEndDate()==null){ if(serviceDictInfo.getItemType()!=null){ selectedType = serviceDictInfo.getItemType(); return "redirect:"+ adminPath + "/basics/serviceDictInfo/list?itType="+itType+"&selectedType="+selectedType+"&isFilterAction="+serviceDictInfo.getIsFilterAction(); } return "redirect:"+ adminPath + "/basics/serviceDictInfo/list?itType="+itType+"&isFilterAction="+serviceDictInfo.getIsFilterAction(); } String[] strArr = itType.split("-"); Integer[] intArr = new Integer[strArr.length]; for(int i=0;i allList = serviceDictInfoService.findAllDictSearchList(serviceDictInfo,intArr); //查出条件查询顶层分页数据 Page page = serviceDictInfoService.findDictTopSearchList(new Page(request, response), serviceDictInfo,intArr); model.addAttribute("page", page); //处理数据,保留顶层中的所有下层数据 List list = Lists.newArrayList(); //取出主键优化处理 List tempList = Lists.newArrayList(); for(ServiceDictInfo se:page.getList()){ if(se!=null&&se.getServiceDictId()!=null){ tempList.add(se.getServiceDictId()); } } //删除所有重复 for(int i=allList.size()-1;i>=0;i--){ ServiceDictInfo se = allList.get(i); if(se!=null&&se.getServiceDictId()!=null){ if(tempList.contains(se.getServiceDictId())||se.getParent().getServiceDictId()==0){ allList.remove(se); } } } allList.addAll(page.getList()); ServiceDictInfo.sortList(list,allList,0,true); //serviceDictInfo.setItemType(selectedType); model.addAttribute("itType", itType); model.addAttribute("intArr", Arrays.asList(intArr)); model.addAttribute("list", list); return "/basics/serviceDictInfoSearchList"; } /** * 进入添加或修改页面 * @param serviceDictInfo * @param model * @return */ @RequestMapping(value={"form"}) public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction,String itType, String mulitId) { if(doAction!=null&&doAction.equals("0")){ return "/basics/serviceDictInfo"; } Integer id=0; if(mulitId!=null){ String[] ids = mulitId.split(","); id = Integer.valueOf(ids[0]); } if(id!=0){ serviceDictInfo = serviceDictInfoService.getDictById(id); } if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getServiceDictId() == null||serviceDictInfo.getParent().getServiceDictId() == 0) { ServiceDictInfo parent = new ServiceDictInfo(); parent.setServiceDictId(0); parent.setItemValue("根节点"); serviceDictInfo.setParent(parent); } String[] strArr = itType.split("-"); Integer[] intArr = new Integer[strArr.length]; for(int i=0;i> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response, String itType) { List> mapList = Lists.newArrayList(); Map map2 = Maps.newHashMap(); map2.put("id", 0); map2.put("pId", 0); map2.put("name","根节点"); //map2.put("placeholder","0"); mapList.add(map2); //找出该类型所有的非叶子配置 List list = serviceDictInfoService.findAllNoLeafDictList(itType); for (int i=0; i map = Maps.newHashMap(); map.put("id", serviceDictInfo.getServiceDictId()); map.put("pId", serviceDictInfo.getParent().getServiceDictId()); map.put("name",serviceDictInfo.getItemValue()); /*if(serviceDictInfo.getParent().getServiceDictId()!=0){ ServiceDictInfo parent = serviceDictInfoService.getDictById(serviceDictInfo.getParent().getServiceDictId()); //map.put("placeholder",parent.getItemType().toString()); }*/ mapList.add(map); } } return mapList; } /** * 校验itemCode是否重复 * @param itemCode * @return */ @ResponseBody @RequestMapping(value = "isItemCodeRepeat") public boolean isItemCodeRepeat(String itemCode,String oldItemCode) { List list = Lists.newArrayList(); if(oldItemCode!=null&&itemCode.trim().equals(oldItemCode.trim())){ return true; } if(!StringUtil.isEmpty(itemCode)){ list = serviceDictInfoService.findByItemCode(itemCode); } if(list==null||list.size()==0){ return true; } return false; } /** * 校验上下级配置数据类型 * @param parent 父级id * param parent 子级类型 * @return */ @ResponseBody @RequestMapping(value = "ajaxType") public boolean ajaxType(Integer parent,Integer child) { if(parent==-1||parent==0){ return true; } ServiceDictInfo p = serviceDictInfoService.getDictById(parent); if(p.getItemType()==child){ return true; } return false; } /** * 校验更改数据类型后校验数据类型是否与下级冲突 * @param parent 父级id * param parent 子级类型 * @return */ @ResponseBody @RequestMapping(value = "ajaxChildrenType") public boolean ajaxChildrenType(Integer parent,Integer newItemType) { if(parent==null){ return true; } //比较下级任意一个对象 List list = serviceDictInfoService.getDictByParentId(parent); if(list==null||list.size()==0){ return true; }else{ for(ServiceDictInfo serviceDictInfo:list){ if(serviceDictInfo.getItemType()==newItemType){ return true; } } } return false; } /** * 根据id取itemType * @return */ @ResponseBody @RequestMapping(value = "ajaxItemType") public Integer ajaxItemType(Integer parent) { if(parent==0||parent==-1){ return 0; } ServiceDictInfo p = serviceDictInfoService.getDictById(parent); return p.getItemType(); } /** * 校验叶子节点有下级不得更改为叶子节点 * @return */ @ResponseBody @RequestMapping(value = "ajaxLeafChange") public boolean ajaxLeafChange(Integer parent,Integer newIsLeaf) { if(parent==null||parent==0){ return true; } List list = serviceDictInfoService.getDictByParentId(parent); if(list==null||list.size()==0){ return true; }else{ if(newIsLeaf==0){ return true; } } return false; } /** * 校验叶子节点无父级不得更改为叶子节点 * @return */ @ResponseBody @RequestMapping(value = "ajaxLeafHasTree") public boolean ajaxLeafHasTree(Integer serviceDictId,Integer newIsLeaf,Integer parentId) { if(parentId==null||parentId==0||parentId==-1){ if(newIsLeaf==0){ return true; } } if(parentId!=null&&parentId!=0){ return true; } return false; } /** * 校验层级关系 * @return */ @ResponseBody @RequestMapping(value = "isLevelTotalSure") public boolean isLevelTotalSure(Integer parentId,Integer currentId) { //获取层级配置 int max = Integer.valueOf(Configurations.getIntProperty("maxLevelNo", 4)); if(parentId==-1||parentId==0){ return true; }else{ ServiceDictInfo p = serviceDictInfoService.getDictById(parentId); if(currentId==null){ if(p.getLevelNo()