2018-02-22 12:46:50 +08:00
|
|
|
package com.nis.web.controller.configuration;
|
|
|
|
|
|
2018-03-04 19:20:32 +08:00
|
|
|
import java.util.Arrays;
|
2018-02-22 12:46:50 +08:00
|
|
|
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.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;
|
2018-03-04 19:20:32 +08:00
|
|
|
import com.nis.domain.configuration.ServiceDictInfo;
|
2018-02-22 12:46:50 +08:00
|
|
|
import com.nis.domain.configuration.SysDictInfo;
|
|
|
|
|
import com.nis.util.StringUtil;
|
|
|
|
|
import com.nis.util.StringUtils;
|
|
|
|
|
import com.nis.web.controller.BaseController;
|
|
|
|
|
|
|
|
|
|
@Controller
|
|
|
|
|
@RequestMapping(value = "${adminPath}/configuration/sysDictInfo")
|
|
|
|
|
public class SysDictInfoController extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ModelAttribute
|
|
|
|
|
public SysDictInfo get(@RequestParam(required=false) Integer sysDictId) {
|
|
|
|
|
if (!StringUtil.isEmpty(sysDictId)){
|
|
|
|
|
return sysDictInfoService.getDictById(sysDictId);
|
|
|
|
|
}else{
|
|
|
|
|
return new SysDictInfo();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据sysDictId查出配置对象
|
|
|
|
|
* @param sysDictId
|
|
|
|
|
* @param request
|
|
|
|
|
* @param response
|
|
|
|
|
* @param model
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping(value = "loadDataDict")
|
|
|
|
|
public SysDictInfo loadDataDict(@RequestParam(required=false) Integer sysDictId,HttpServletRequest request, HttpServletResponse response, Model model){
|
|
|
|
|
|
|
|
|
|
return sysDictInfoService.getDictById(sysDictId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2018-03-04 19:20:32 +08:00
|
|
|
* 查询业务辅助表-生效范围系统字典信息列表(无条件分页查询)
|
2018-02-22 12:46:50 +08:00
|
|
|
* @param sysDictInfo
|
|
|
|
|
* @param request
|
|
|
|
|
* @param response
|
|
|
|
|
* @param model
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequiresPermissions("sys:dict:view")
|
|
|
|
|
@RequestMapping(value = {"list", ""})
|
2018-03-04 19:20:32 +08:00
|
|
|
public String list(String itType, SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model, Integer selectedType) {
|
|
|
|
|
//处理数据
|
|
|
|
|
String[] strArr = itType.split("-");
|
|
|
|
|
Integer[] intArr = new Integer[strArr.length];
|
|
|
|
|
for(int i=0;i<strArr.length;i++){
|
|
|
|
|
intArr[i] = Integer.valueOf(strArr[i]);
|
|
|
|
|
}
|
|
|
|
|
if(sysDictInfo.getItemType()!=null){
|
|
|
|
|
model.addAttribute("selectedType", sysDictInfo.getItemType());
|
|
|
|
|
}else{
|
|
|
|
|
model.addAttribute("selectedType", selectedType);
|
|
|
|
|
}
|
2018-02-22 12:46:50 +08:00
|
|
|
|
2018-03-04 19:20:32 +08:00
|
|
|
//查出顶层分页数据
|
|
|
|
|
Page<SysDictInfo> page = sysDictInfoService.findTopDictList(new Page<SysDictInfo>(request, response), sysDictInfo,intArr);
|
|
|
|
|
model.addAttribute("page", page);
|
|
|
|
|
//查出所有数据
|
|
|
|
|
List<SysDictInfo> allList = sysDictInfoService.findAllDictList();
|
|
|
|
|
//处理数据,保留顶层中的所有下层数据
|
|
|
|
|
List<SysDictInfo> list = Lists.newArrayList();
|
|
|
|
|
boolean flag = false;
|
|
|
|
|
for(int i=allList.size()-1;i>=0;i--){
|
|
|
|
|
SysDictInfo temp = allList.get(i);
|
|
|
|
|
if(temp.getParent()!=null&&temp.getParent().getSysDictId()!=null&&temp.getParent().getSysDictId()==0){
|
|
|
|
|
for(SysDictInfo topTemp:page.getList()){
|
|
|
|
|
if(temp.getSysDictId()==topTemp.getSysDictId()){
|
|
|
|
|
flag = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!flag){
|
|
|
|
|
allList.remove(temp);
|
|
|
|
|
flag=false;
|
|
|
|
|
}else{
|
|
|
|
|
flag=false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SysDictInfo.sortList(list,allList,0,true);
|
|
|
|
|
|
|
|
|
|
model.addAttribute("itType", itType);
|
|
|
|
|
model.addAttribute("intArr", Arrays.asList(intArr));
|
|
|
|
|
model.addAttribute("list", list);
|
|
|
|
|
return "/cfg/sysDictList";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询业务辅助表-系统字典信息列表(含条件查询)
|
|
|
|
|
* @param sysDictInfo
|
|
|
|
|
* @param request
|
|
|
|
|
* @param response
|
|
|
|
|
* @param model
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequiresPermissions("sys:dict:view")
|
|
|
|
|
@RequestMapping(value = {"searchList"})
|
|
|
|
|
public String searchList(String itType, SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
|
if(StringUtils.strIsBlank(sysDictInfo.getItemValue())
|
|
|
|
|
&&sysDictInfo.getItemCode()==null
|
|
|
|
|
&&sysDictInfo.getBeginDate()==null
|
|
|
|
|
&&sysDictInfo.getEndDate()==null){
|
|
|
|
|
Integer selectedType = null;
|
|
|
|
|
if(sysDictInfo.getItemType()!=null){
|
|
|
|
|
selectedType = sysDictInfo.getItemType();
|
|
|
|
|
return "redirect:"+ adminPath + "/configuration/sysDictInfo/list?itType="+itType+"&selectedType="+selectedType;
|
|
|
|
|
}
|
|
|
|
|
return "redirect:"+ adminPath + "/configuration/sysDictInfo/list?itType="+itType;
|
|
|
|
|
}
|
|
|
|
|
String[] strArr = itType.split("-");
|
|
|
|
|
Integer[] intArr = new Integer[strArr.length];
|
|
|
|
|
for(int i=0;i<strArr.length;i++){
|
|
|
|
|
intArr[i] = Integer.valueOf(strArr[i]);
|
|
|
|
|
}
|
|
|
|
|
model.addAttribute("itType", itType);
|
|
|
|
|
model.addAttribute("intArr", Arrays.asList(intArr));
|
|
|
|
|
Page<SysDictInfo> page = sysDictInfoService.findDictSearchList(new Page<SysDictInfo>(request, response), sysDictInfo,intArr);
|
2018-02-22 12:46:50 +08:00
|
|
|
model.addAttribute("page", page);
|
2018-03-04 19:20:32 +08:00
|
|
|
|
2018-02-22 12:46:50 +08:00
|
|
|
|
2018-03-04 19:20:32 +08:00
|
|
|
return "/cfg/sysDictInfoSearchList";
|
2018-02-22 12:46:50 +08:00
|
|
|
}
|
|
|
|
|
|
2018-03-04 19:20:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-22 12:46:50 +08:00
|
|
|
/**
|
|
|
|
|
* 进入添加或修改页面
|
|
|
|
|
* @param sysDictInfo
|
|
|
|
|
* @param model
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value={"form"})
|
2018-03-04 19:20:32 +08:00
|
|
|
public String form(SysDictInfo sysDictInfo, Model model, String doAction, String itType) {
|
2018-02-22 12:46:50 +08:00
|
|
|
if(doAction!=null&&doAction.equals("0")){
|
|
|
|
|
return "/cfg/sysDictInfo";
|
|
|
|
|
}
|
2018-03-04 19:20:32 +08:00
|
|
|
if (sysDictInfo.getParent() == null || sysDictInfo.getParent().getSysDictId() == null||sysDictInfo.getParent().getSysDictId() == 0) {
|
|
|
|
|
SysDictInfo parent = new SysDictInfo();
|
|
|
|
|
parent.setSysDictId(0);
|
|
|
|
|
parent.setItemValue("无上级");
|
|
|
|
|
sysDictInfo.setParent(parent);
|
|
|
|
|
}
|
|
|
|
|
String[] strArr = itType.split("-");
|
|
|
|
|
Integer[] intArr = new Integer[strArr.length];
|
|
|
|
|
for(int i=0;i<strArr.length;i++){
|
|
|
|
|
intArr[i] = Integer.valueOf(strArr[i]);
|
|
|
|
|
}
|
|
|
|
|
model.addAttribute("intArr", Arrays.asList(intArr));
|
|
|
|
|
model.addAttribute("sysDictInfo", sysDictInfo);
|
|
|
|
|
model.addAttribute("itType", itType);
|
2018-02-22 12:46:50 +08:00
|
|
|
return "/cfg/sysDictForm";
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 新增或修改
|
|
|
|
|
* @param sysDictInfo
|
|
|
|
|
* @param model
|
|
|
|
|
* @param redirectAttributes
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequiresPermissions("sys:dict:edit")
|
|
|
|
|
@RequestMapping(value = "saveOrUpdate")
|
2018-03-04 19:20:32 +08:00
|
|
|
public String saveOrUpdate(SysDictInfo sysDictInfo,Model model, RedirectAttributes redirectAttributes, String itType) {
|
2018-02-22 12:46:50 +08:00
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
sysDictInfoService.saveOrUpdate(sysDictInfo);
|
|
|
|
|
addMessage(redirectAttributes, "保存配置成功");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
addMessage(redirectAttributes, "保存配置失败!");
|
|
|
|
|
}
|
|
|
|
|
|
2018-03-04 19:20:32 +08:00
|
|
|
return "redirect:" + adminPath + "/configuration/sysDictInfo/list?itType="+itType;
|
2018-02-22 12:46:50 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除
|
|
|
|
|
* @param sysDictInfo
|
|
|
|
|
* @param model
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value={"delete"})
|
2018-03-04 19:20:32 +08:00
|
|
|
public String delete(SysDictInfo sysDictInfo, RedirectAttributes redirectAttributes, String itType) {
|
2018-02-22 12:46:50 +08:00
|
|
|
try {
|
|
|
|
|
sysDictInfoService.deleteDict(sysDictInfo);
|
|
|
|
|
addMessage(redirectAttributes, "删除配置成功");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
addMessage(redirectAttributes, "删除配置失败!");
|
|
|
|
|
}
|
2018-03-04 19:20:32 +08:00
|
|
|
return "redirect:" + adminPath + "/configuration/sysDictInfo/list?itType="+itType;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* isShowHide是否显示隐藏菜单
|
|
|
|
|
* @param extId
|
|
|
|
|
* @param isShowHidden
|
|
|
|
|
* @param response
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequiresPermissions("user")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping(value = "treeData")
|
|
|
|
|
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response, String itType) {
|
|
|
|
|
List<Map<String, Object>> mapList = Lists.newArrayList();
|
|
|
|
|
Map<String, Object> map2 = Maps.newHashMap();
|
|
|
|
|
map2.put("id", -1);
|
|
|
|
|
map2.put("pId", 0);
|
|
|
|
|
map2.put("name","无上级");
|
|
|
|
|
//map2.put("placeholder","0");
|
|
|
|
|
mapList.add(map2);
|
|
|
|
|
//找出该类型所有的非叶子配置
|
|
|
|
|
List<SysDictInfo> list = sysDictInfoService.findAllNoLeafDictList(itType);
|
|
|
|
|
for (int i=0; i<list.size(); i++){
|
|
|
|
|
SysDictInfo sysDictInfo = list.get(i);
|
|
|
|
|
if (StringUtils.isBlank(extId) || (extId !=null && !extId.equals(sysDictInfo.getSysDictId().toString()))) {
|
|
|
|
|
if(sysDictInfo.getIsValid().equals(0)){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Map<String, Object> map = Maps.newHashMap();
|
|
|
|
|
map.put("id", sysDictInfo.getSysDictId());
|
|
|
|
|
map.put("pId", sysDictInfo.getParent().getSysDictId());
|
|
|
|
|
map.put("name",sysDictInfo.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<SysDictInfo> list = Lists.newArrayList();
|
|
|
|
|
if(oldItemCode!=null&&itemCode.trim().equals(oldItemCode.trim())){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if(!StringUtil.isEmpty(itemCode)){
|
|
|
|
|
list = sysDictInfoService.findByItemCode(Integer.valueOf(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;
|
|
|
|
|
}
|
|
|
|
|
SysDictInfo p = sysDictInfoService.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<SysDictInfo> list = sysDictInfoService.getDictByParentId(parent);
|
|
|
|
|
if(list==null||list.size()==0){
|
|
|
|
|
return true;
|
|
|
|
|
}else{
|
|
|
|
|
for(SysDictInfo sysDictInfo:list){
|
|
|
|
|
if(sysDictInfo.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;
|
|
|
|
|
}
|
|
|
|
|
SysDictInfo p = sysDictInfoService.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<SysDictInfo> list = sysDictInfoService.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;
|
2018-02-22 12:46:50 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|