1.修订业务辅助表-业务字典 业务辅助表=-系统字典管理平台

2.新增修改页面添加校验
     ①校验必填项
     ②校验itemCode是否重复
     ③校验父级与添加或修改配置的数据类型是否一致
     ④校验修改配置的数据类型类型与其下级数据类型是否一致
     ⑤无上级时、有下级时不得选为叶子节点
 3.待解决项:
    ①点击操作弹出项样式
    ②校验程序偶有存在报出提示但无法阻止提交 情况
This commit is contained in:
zhangshilin
2018-03-04 19:20:32 +08:00
parent 5517d78ce1
commit bb27ba16db
25 changed files with 1925 additions and 1121 deletions

View File

@@ -20,7 +20,7 @@ public class SysDictInfo extends BaseEntity<SysDictInfo>{
private Integer itemType; //item_type 数据类型 int N 1分类 2性质 3标签
private Integer itemCode; //item_code编码 int N
private String itemValue; //item_value 编码对应值 varchar2(64) N
private String desc; //desc 描述信息 varcahr2(128) Y
private String itemDesc; //item_desc 描述信息 varcahr2(128) Y
private SysDictInfo parent; //parent_id 父ID number(9) N 无父属性默认填0
private Integer isLeaf; //is_leaf 是否叶子节点 int N 0-否 1-是只有一级填0
private Integer isValid; //is_valid 有效标志 int N 1-有效 0-无效
@@ -58,11 +58,11 @@ public class SysDictInfo extends BaseEntity<SysDictInfo>{
public void setItemValue(String itemValue) {
this.itemValue = itemValue;
}
public String getDesc() {
return desc;
public String getItemDesc() {
return itemDesc;
}
public void setDesc(String desc) {
this.desc = desc;
public void setItemDesc(String itemDesc) {
this.itemDesc = itemDesc;
}
public SysDictInfo getParent() {
return parent;

View File

@@ -0,0 +1,51 @@
package com.nis.util;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.domain.configuration.ServiceDictInfo;
import com.nis.domain.configuration.SysDictInfo;
import com.nis.web.dao.SysDictDao;
import com.nis.web.dao.configuration.ServiceDictInfoDao;
import com.nis.web.dao.configuration.SysDictInfoDao;
import com.nis.web.service.SpringContextHolder;
/**
* 系统数据字典工具类
* @author Administrator
*
*/
public class ConfigDictUtils {
private final static ServiceDictInfoDao serviceDictInfoDao = SpringContextHolder.getBean(ServiceDictInfoDao.class);
private final static SysDictInfoDao sysDictInfoDao = SpringContextHolder.getBean(SysDictInfoDao.class);
/**
* 根据主键查询配置详情
* @param serviceDictId
* @return
*/
public static ServiceDictInfo getServiceDictInfoById(Integer serviceDictId){
return serviceDictInfoDao.getDictById(serviceDictId);
}
/**
* 根据主键查询配置详情
* @param sysDictId
* @return
*/
public static SysDictInfo getSysDictInfoById(Integer sysDictId){
return sysDictInfoDao.getDictById(sysDictId);
}
}

View File

@@ -0,0 +1,311 @@
package com.nis.util;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.beanutils.PropertyUtilsBean;
/**
* <p>Title: </p>
* <p>Description: </p>
* @author 刘高峰
* @version 2.0
*/
public class MyBeanUtils
extends PropertyUtilsBean {
private static void convert(Object dest, Object orig) throws
IllegalAccessException, InvocationTargetException {
// Validate existence of the specified beans
if (dest == null) {
throw new IllegalArgumentException
("No destination bean specified");
}
if (orig == null) {
throw new IllegalArgumentException("No origin bean specified");
}
// Copy the properties, converting as necessary
if (orig instanceof DynaBean) {
DynaProperty origDescriptors[] =
( (DynaBean) orig).getDynaClass().getDynaProperties();
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
if (PropertyUtils.isWriteable(dest, name)) {
Object value = ( (DynaBean) orig).get(name);
try {
getInstance().setSimpleProperty(dest, name, value);
}
catch (Exception e) {
; // Should not happen
}
}
}
}
else if (orig instanceof Map) {
Iterator names = ( (Map) orig).keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
if (PropertyUtils.isWriteable(dest, name)) {
Object value = ( (Map) orig).get(name);
try {
getInstance().setSimpleProperty(dest, name, value);
}
catch (Exception e) {
; // Should not happen
}
}
}
}
else
/* if (orig is a standard JavaBean) */
{
PropertyDescriptor origDescriptors[] =
PropertyUtils.getPropertyDescriptors(orig);
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
// String type = origDescriptors[i].getPropertyType().toString();
if ("class".equals(name)) {
continue; // No point in trying to set an object's class
}
if (PropertyUtils.isReadable(orig, name) &&
PropertyUtils.isWriteable(dest, name)) {
try {
Object value = PropertyUtils.getSimpleProperty(orig, name);
getInstance().setSimpleProperty(dest, name, value);
}
catch (java.lang.IllegalArgumentException ie) {
; // Should not happen
}
catch (Exception e) {
; // Should not happen
}
}
}
}
}
/**
* 对象拷贝
* 数据对象空值不拷贝到目标对象
*
* @param dataObject
* @param toObject
* @throws NoSuchMethodException
* copy
*/
public static void copyBeanNotNull2Bean(Object databean,Object tobean)throws Exception
{
PropertyDescriptor origDescriptors[] = PropertyUtils.getPropertyDescriptors(databean);
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
// String type = origDescriptors[i].getPropertyType().toString();
if ("class".equals(name)) {
continue; // No point in trying to set an object's class
}
if (PropertyUtils.isReadable(databean, name) &&PropertyUtils.isWriteable(tobean, name)) {
try {
Object value = PropertyUtils.getSimpleProperty(databean, name);
if(value!=null){
getInstance().setSimpleProperty(tobean, name, value);
}
}
catch (java.lang.IllegalArgumentException ie) {
; // Should not happen
}
catch (Exception e) {
; // Should not happen
}
}
}
}
/**
* 把orig和dest相同属性的value复制到dest中
* @param dest
* @param orig
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void copyBean2Bean(Object dest, Object orig) throws Exception {
convert(dest, orig);
}
public static void copyBean2Map(Map map, Object bean){
PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(bean);
for (int i =0;i<pds.length;i++)
{
PropertyDescriptor pd = pds[i];
String propname = pd.getName();
try {
Object propvalue = PropertyUtils.getSimpleProperty(bean,propname);
map.put(propname, propvalue);
} catch (IllegalAccessException e) {
//e.printStackTrace();
} catch (InvocationTargetException e) {
//e.printStackTrace();
} catch (NoSuchMethodException e) {
//e.printStackTrace();
}
}
}
/**
* 将Map内的key与Bean中属性相同的内容复制到BEAN中
* @param bean Object
* @param properties Map
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void copyMap2Bean(Object bean, Map properties) throws
IllegalAccessException, InvocationTargetException {
// Do nothing unless both arguments have been specified
if ( (bean == null) || (properties == null)) {
return;
}
// Loop through the property name/value pairs to be set
Iterator names = properties.keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
// Identify the property name and value(s) to be assigned
if (name == null) {
continue;
}
Object value = properties.get(name);
try {
Class clazz = PropertyUtils.getPropertyType(bean, name);
if (null == clazz) {
continue;
}
String className = clazz.getName();
if (className.equalsIgnoreCase("java.sql.Timestamp")) {
if (value == null || value.equals("")) {
continue;
}
}
getInstance().setSimpleProperty(bean, name, value);
}
catch (NoSuchMethodException e) {
continue;
}
}
}
/**
* 自动转Map key值大写
* 将Map内的key与Bean中属性相同的内容复制到BEAN中
* @param bean Object
* @param properties Map
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void copyMap2Bean_Nobig(Object bean, Map properties) throws
IllegalAccessException, InvocationTargetException {
// Do nothing unless both arguments have been specified
if ( (bean == null) || (properties == null)) {
return;
}
// Loop through the property name/value pairs to be set
Iterator names = properties.keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
// Identify the property name and value(s) to be assigned
if (name == null) {
continue;
}
Object value = properties.get(name);
// 命名应该大小写应该敏感(否则取不到对象的属性)
//name = name.toLowerCase();
try {
if (value == null) { // 不光Date类型好多类型在null时会出错
continue; // 如果为null不用设 (对象如果有特殊初始值也可以保留?)
}
Class clazz = PropertyUtils.getPropertyType(bean, name);
if (null == clazz) { // 在bean中这个属性不存在
continue;
}
String className = clazz.getName();
// 临时对策(如果不处理默认的类型转换时会出错)
if (className.equalsIgnoreCase("java.util.Date")) {
value = new java.util.Date(((java.sql.Timestamp)value).getTime());// wait to do貌似有时区问题, 待进一步确认
}
// if (className.equalsIgnoreCase("java.sql.Timestamp")) {
// if (value == null || value.equals("")) {
// continue;
// }
// }
getInstance().setSimpleProperty(bean, name, value);
}
catch (NoSuchMethodException e) {
continue;
}
}
}
/**
* Map内的key与Bean中属性相同的内容复制到BEAN中
* 对于存在空值的取默认值
* @param bean Object
* @param properties Map
* @param defaultValue String
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void copyMap2Bean(Object bean, Map properties, String defaultValue) throws
IllegalAccessException, InvocationTargetException {
// Do nothing unless both arguments have been specified
if ( (bean == null) || (properties == null)) {
return;
}
// Loop through the property name/value pairs to be set
Iterator names = properties.keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
// Identify the property name and value(s) to be assigned
if (name == null) {
continue;
}
Object value = properties.get(name);
try {
Class clazz = PropertyUtils.getPropertyType(bean, name);
if (null == clazz) {
continue;
}
String className = clazz.getName();
if (className.equalsIgnoreCase("java.sql.Timestamp")) {
if (value == null || value.equals("")) {
continue;
}
}
if (className.equalsIgnoreCase("java.lang.String")) {
if (value == null) {
value = defaultValue;
}
}
getInstance().setSimpleProperty(bean, name, value);
}
catch (NoSuchMethodException e) {
continue;
}
}
}
public MyBeanUtils() {
super();
}
}

View File

@@ -1,5 +1,6 @@
package com.nis.web.controller.configuration;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -19,6 +20,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.configuration.ServiceDictInfo;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
@@ -65,9 +67,21 @@ public class ServiceDictInfoController extends BaseController {
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"list", ""})
public String list(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
public String list(String itType, ServiceDictInfo serviceDictInfo,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(serviceDictInfo.getItemType()!=null){
model.addAttribute("selectedType", serviceDictInfo.getItemType());
}else{
model.addAttribute("selectedType", selectedType);
}
//查出顶层分页数据
Page<ServiceDictInfo> page = serviceDictInfoService.findTopDictList(new Page<ServiceDictInfo>(request, response), serviceDictInfo);
Page<ServiceDictInfo> page = serviceDictInfoService.findTopDictList(new Page<ServiceDictInfo>(request, response), serviceDictInfo,intArr);
model.addAttribute("page", page);
//查出所有数据
List<ServiceDictInfo> allList = serviceDictInfoService.findAllDictList();
@@ -94,7 +108,9 @@ public class ServiceDictInfoController extends BaseController {
}
ServiceDictInfo.sortList(list,allList,0,true);
//ServiceDictInfo.sortList(list, allList, 0, true);
model.addAttribute("itType", itType);
model.addAttribute("intArr", Arrays.asList(intArr));
model.addAttribute("list", list);
return "/cfg/serviceDictList";
}
@@ -110,17 +126,28 @@ public class ServiceDictInfoController extends BaseController {
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"searchList"})
public String searchList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
public String searchList(String itType, ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
if(StringUtils.strIsBlank(serviceDictInfo.getItemValue())
&&serviceDictInfo.getItemCode()==null
&&serviceDictInfo.getItemType()==null
&&serviceDictInfo.getBeginDate()==null
&&serviceDictInfo.getEditTime()==null){
return "redirect:"+ adminPath + "/configuration/serviceDictInfo/list";
&&serviceDictInfo.getEndDate()==null){
Integer selectedType = null;
if(serviceDictInfo.getItemType()!=null){
selectedType = serviceDictInfo.getItemType();
return "redirect:"+ adminPath + "/configuration/serviceDictInfo/list?itType="+itType+"&selectedType="+selectedType;
}
return "redirect:"+ adminPath + "/configuration/serviceDictInfo/list?itType="+itType;
}
Page<ServiceDictInfo> page = serviceDictInfoService.findDictSearchList(new Page<ServiceDictInfo>(request, response), serviceDictInfo);
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<ServiceDictInfo> page = serviceDictInfoService.findDictSearchList(new Page<ServiceDictInfo>(request, response), serviceDictInfo,intArr);
model.addAttribute("page", page);
return "/cfg/serviceDictInfoSearchList";
}
@@ -133,17 +160,24 @@ public class ServiceDictInfoController extends BaseController {
* @return
*/
@RequestMapping(value={"form"})
public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction) {
public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction,String itType) {
if(doAction!=null&&doAction.equals("0")){
return "/cfg/serviceDictInfo";
}
if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getId() == null) {
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<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
}
model.addAttribute("intArr", Arrays.asList(intArr));
model.addAttribute("serviceDictInfo", serviceDictInfo);
model.addAttribute("itType", itType);
return "/cfg/serviceDictForm";
}
/**
@@ -155,7 +189,7 @@ public class ServiceDictInfoController extends BaseController {
*/
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(ServiceDictInfo serviceDictInfo,Model model, RedirectAttributes redirectAttributes) {
public String saveOrUpdate(ServiceDictInfo serviceDictInfo,Model model, RedirectAttributes redirectAttributes,String itType) {
try {
serviceDictInfoService.saveOrUpdate(serviceDictInfo);
@@ -164,11 +198,9 @@ public class ServiceDictInfoController extends BaseController {
e.printStackTrace();
addMessage(redirectAttributes, "保存配置失败!");
}
if(serviceDictInfo.getItemType()==3){
return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList";
}else{
return "redirect:" + adminPath + "/configuration/serviceDictInfo/list";
}
return "redirect:" + adminPath + "/configuration/serviceDictInfo/list?itType="+itType;
}
@@ -180,7 +212,7 @@ public class ServiceDictInfoController extends BaseController {
* @return
*/
@RequestMapping(value={"delete"})
public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes) {
public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes,String itType) {
try {
serviceDictInfoService.deleteDict(serviceDictInfo);
addMessage(redirectAttributes, "删除配置成功");
@@ -188,7 +220,7 @@ public class ServiceDictInfoController extends BaseController {
e.printStackTrace();
addMessage(redirectAttributes, "删除配置失败!");
}
return "redirect:" + adminPath + "/configuration/serviceDictInfo/list";
return "redirect:" + adminPath + "/configuration/serviceDictInfo/list?itType="+itType;
}
@@ -202,10 +234,16 @@ public class ServiceDictInfoController extends BaseController {
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) {
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();
//找出所有的非叶子配置
List<ServiceDictInfo> list = serviceDictInfoService.findAllNoLeafDictList();
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<ServiceDictInfo> list = serviceDictInfoService.findAllNoLeafDictList(itType);
for (int i=0; i<list.size(); i++){
ServiceDictInfo serviceDictInfo = list.get(i);
if (StringUtils.isBlank(extId) || (extId !=null && !extId.equals(serviceDictInfo.getServiceDictId().toString()))) {
@@ -216,182 +254,136 @@ public class ServiceDictInfoController extends BaseController {
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;
}
//标签配置
/**
* 进入添加或修改页面
* @param serviceDictInfo
* @param model
* 校验itemCode是否重复
* @param itemCode
* @return
*/
@RequestMapping(value={"markForm"})
public String markForm(ServiceDictInfo serviceDictInfo, Model model,String doAction) {
if(doAction!=null&&doAction.equals("0")){
return "/cfg/serviceDictMarkInfo";
}
if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getId() == null) {
ServiceDictInfo parent = new ServiceDictInfo();
parent.setServiceDictId(0);
serviceDictInfo.setParent(parent);
}
model.addAttribute("serviceDictInfo", serviceDictInfo);
return "/cfg/serviceDictMarkForm";
}
/**
* 查询标签列表(无条件分页查询)
* @param serviceDictInfo
* @param request
* @param response
* @param model
* @return
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"markList", ""})
public String markList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
//查出顶层分页数据
Page<ServiceDictInfo> page = serviceDictInfoService.findTopDictMarkList(new Page<ServiceDictInfo>(request, response), serviceDictInfo);
model.addAttribute("page", page);
//查出所有数据
List<ServiceDictInfo> allList = serviceDictInfoService.findAllDictMarkList();
//处理数据,保留顶层中的所有下层数据
List<ServiceDictInfo> list = Lists.newArrayList();
boolean flag = false;
for(int i=allList.size()-1;i>=0;i--){
ServiceDictInfo temp = allList.get(i);
if(temp.getParent()!=null&&temp.getParent().getServiceDictId()!=null&&temp.getParent().getServiceDictId()==0){
for(ServiceDictInfo topTemp:page.getList()){
if(temp.getServiceDictId()==topTemp.getServiceDictId()){
flag = true;
break;
}
}
if(!flag){
allList.remove(temp);
flag=false;
}else{
flag=false;
}
}
}
ServiceDictInfo.sortList(list,allList,0,true);
//ServiceDictInfo.sortList(list, allList, 0, true);
model.addAttribute("list", list);
return "/cfg/serviceDictMarkList";
}
/**
* 查询业务辅助表-业务字典信息列表(含条件查询)
* @param serviceDictInfo
* @param request
* @param response
* @param model
* @return
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"searchMarkList"})
public String searchMarkList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
if(StringUtils.strIsBlank(serviceDictInfo.getItemValue())
&&serviceDictInfo.getItemCode()==null
&&serviceDictInfo.getItemType()==null
&&serviceDictInfo.getBeginDate()==null
&&serviceDictInfo.getEditTime()==null){
return "redirect:"+ adminPath + "/configuration/serviceDictInfo/markList";
}
Page<ServiceDictInfo> page = serviceDictInfoService.findDictSearchMarkList(new Page<ServiceDictInfo>(request, response), serviceDictInfo);
model.addAttribute("page", page);
return "/cfg/serviceDictInfoSearchMarkList";
}
/**
* 新增或修改
* @param serviceDictInfo
* @param model
* @param redirectAttributes
* @return
*/
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "markSaveOrUpdate")
public String markSaveOrUpdate(ServiceDictInfo serviceDictInfo,Model model, RedirectAttributes redirectAttributes) {
try {
serviceDictInfoService.saveOrUpdate(serviceDictInfo);
addMessage(redirectAttributes, "保存配置成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "保存配置失败!");
}
return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList";
}
/**
* 删除
* @param serviceDictInfo
* @param model
* @return
*/
@RequestMapping(value={"markDelete"})
public String markDelete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes) {
try {
serviceDictInfoService.deleteDict(serviceDictInfo);
addMessage(redirectAttributes, "删除配置成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "删除配置失败!");
}
return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList";
}
/**
* isShowHide是否显示隐藏菜单
* @param extId
* @param isShowHidden
* @param response
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeMarkData")
public List<Map<String, Object>> treeMarkData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
//找出所有的非叶子配置
List<ServiceDictInfo> list = serviceDictInfoService.findAllNoLeafDictMarkList();
for (int i=0; i<list.size(); i++){
ServiceDictInfo serviceDictInfo = list.get(i);
if (StringUtils.isBlank(extId) || (extId !=null && !extId.equals(serviceDictInfo.getServiceDictId().toString()))) {
if(serviceDictInfo.getIsValid().equals(0)){
continue;
@RequestMapping(value = "isItemCodeRepeat")
public boolean isItemCodeRepeat(String itemCode,String oldItemCode) {
List<ServiceDictInfo> list = Lists.newArrayList();
if(oldItemCode!=null&&itemCode.trim().equals(oldItemCode.trim())){
return true;
}
if(!StringUtil.isEmpty(itemCode)){
list = serviceDictInfoService.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;
}
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<ServiceDictInfo> list = serviceDictInfoService.getDictByParentId(parent);
if(list==null||list.size()==0){
return true;
}else{
for(ServiceDictInfo serviceDictInfo:list){
if(serviceDictInfo.getItemType()==newItemType){
return true;
}
Map<String, Object> map = Maps.newHashMap();
map.put("id", serviceDictInfo.getServiceDictId());
map.put("pId", serviceDictInfo.getParent().getServiceDictId());
map.put("name",serviceDictInfo.getItemValue());
mapList.add(map);
}
}
return mapList;
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<ServiceDictInfo> 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;
}
}

View File

@@ -1,5 +1,6 @@
package com.nis.web.controller.configuration;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -18,6 +19,7 @@ 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.configuration.ServiceDictInfo;
import com.nis.domain.configuration.SysDictInfo;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
@@ -56,7 +58,7 @@ public class SysDictInfoController extends BaseController {
/**
* 查询业务辅助表-生效范围系统字典信息列表
* 查询业务辅助表-生效范围系统字典信息列表(无条件分页查询)
* @param sysDictInfo
* @param request
* @param response
@@ -65,14 +67,99 @@ public class SysDictInfoController extends BaseController {
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"list", ""})
public String list(SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
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);
}
Page<SysDictInfo> page = sysDictInfoService.findDictList(new Page<SysDictInfo>(request, response), sysDictInfo);
model.addAttribute("page", page);
//查出顶层分页数据
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);
model.addAttribute("page", page);
return "/cfg/sysDictInfoSearchList";
}
/**
* 进入添加或修改页面
* @param sysDictInfo
@@ -80,10 +167,24 @@ public class SysDictInfoController extends BaseController {
* @return
*/
@RequestMapping(value={"form"})
public String form(SysDictInfo sysDictInfo, Model model,String doAction) {
public String form(SysDictInfo sysDictInfo, Model model, String doAction, String itType) {
if(doAction!=null&&doAction.equals("0")){
return "/cfg/sysDictInfo";
}
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);
return "/cfg/sysDictForm";
}
/**
@@ -95,7 +196,7 @@ public class SysDictInfoController extends BaseController {
*/
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysDictInfo sysDictInfo,Model model, RedirectAttributes redirectAttributes) {
public String saveOrUpdate(SysDictInfo sysDictInfo,Model model, RedirectAttributes redirectAttributes, String itType) {
try {
sysDictInfoService.saveOrUpdate(sysDictInfo);
@@ -105,10 +206,9 @@ public class SysDictInfoController extends BaseController {
addMessage(redirectAttributes, "保存配置失败!");
}
return "redirect:" + adminPath + "/configuration/sysDictInfo/list";
return "redirect:" + adminPath + "/configuration/sysDictInfo/list?itType="+itType;
}
/**
* 删除
* @param sysDictInfo
@@ -116,7 +216,7 @@ public class SysDictInfoController extends BaseController {
* @return
*/
@RequestMapping(value={"delete"})
public String delete(SysDictInfo sysDictInfo, RedirectAttributes redirectAttributes) {
public String delete(SysDictInfo sysDictInfo, RedirectAttributes redirectAttributes, String itType) {
try {
sysDictInfoService.deleteDict(sysDictInfo);
addMessage(redirectAttributes, "删除配置成功");
@@ -124,7 +224,179 @@ public class SysDictInfoController extends BaseController {
e.printStackTrace();
addMessage(redirectAttributes, "删除配置失败!");
}
return "redirect:" + adminPath + "/configuration/sysDictInfo/list";
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;
}

View File

@@ -13,25 +13,43 @@ import com.nis.web.dao.MyBatisDao;
public interface ServiceDictInfoDao extends CrudDao<ServiceDictInfo> {
/**
* 查询分类性质顶层字典列表(无条件查询)
* 查询顶层字典列表(无条件查询(==)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findTopDictList(ServiceDictInfo serviceDictInfo);
/**
* 查出所有分类性质
* 查询顶层字典列表(无条件查询(!=)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findTopDictListN(ServiceDictInfo serviceDictInfo);
/**
* 查出所有有效数据
*/
List<ServiceDictInfo> findAllDictList(ServiceDictInfo serviceDictInfo);
/**
* 查询所有的非叶子配置
*/
List<ServiceDictInfo> findAllNoLeafDictList();
List<ServiceDictInfo> findAllNoLeafDictList(@Param("itemType")Integer itemType);
/**
* 查询分类性质字典列表(含条件查询)
* 根据上级id选出所有下级
* @param parentId
* @return
*/
List<ServiceDictInfo> getDictByParentId(Integer parentId);
/**
* 查询字典列表(含条件查询(==)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findDictSearchList(ServiceDictInfo serviceDictInfo);
/**
* 查询字典列表(含条件查询(!=)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findDictSearchListN(ServiceDictInfo serviceDictInfo);
/**
@@ -46,34 +64,21 @@ public interface ServiceDictInfoDao extends CrudDao<ServiceDictInfo> {
* @return
*/
ServiceDictInfo getDictById(Integer serviceDictId);
/**
* 根据itemCode查询字典对象列表
* @param itemCode
* @return
*/
List<ServiceDictInfo> findByItemCode(Integer itemCode);
//标签管理
/**
* 查询标签顶层字典列表(无条件查询)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findTopDictMarkList(ServiceDictInfo serviceDictInfo);
/**
* 查出所有标签
*/
List<ServiceDictInfo> findAllDictMarkList(ServiceDictInfo serviceDictInfo);
/**
* 查询标签字典列表(条件查询)
* @param serviceDictInfo
* @return
*/
List<ServiceDictInfo> findDictSearchMarkList(ServiceDictInfo serviceDictInfo);
/**
* 查询所有的非叶子配置
* @return
*/
List<ServiceDictInfo> findAllNoLeafDictMarkList();
List<ServiceDictInfo> findItemDict(@Param("itemType")int itemType,@Param("isValid")int isValid);
List<ServiceDictInfo> findAllItemDict(@Param("itemType")int itemType);

View File

@@ -52,22 +52,24 @@
<!-- 查询分类性质顶层分页列表 -->
<!-- 查询顶层分页列表 (==)-->
<select id="findTopDictList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1 AND item_type <![CDATA[<>]]> 3 AND parent_id = 0
SELECT * FROM service_dict_info WHERE is_valid=1 AND parent_id = 0
<if test="itemType != null and itemType != '' " >
<if test="itemValue != null and itemValue != '' " >
AND item_value like '%${itemValue}%'
</if>
<if test="itemCode != null and itemCode != '' " >
AND item_code like '%${itemCode}%'
</if>
<if test="itemType != null and itemType != '' " >
AND item_type = #{itemType}
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
@@ -81,23 +83,24 @@
</select>
<!-- 查询标签顶层分页列表 -->
<select id="findTopDictMarkList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1 AND item_type = 3 AND parent_id = 0
<!-- 查询顶层分页列表 (!=)-->
<select id="findTopDictListN" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1 AND parent_id = 0
<if test="itemType != null and itemType != '' " >
<if test="itemValue != null and itemValue != '' " >
AND item_value like '%${itemValue}%'
</if>
<if test="itemCode != null and itemCode != '' " >
AND item_code like '%${itemCode}%'
</if>
<if test="itemType != null and itemType != '' " >
AND item_type != #{itemType}
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
@@ -110,48 +113,32 @@
</choose>
</select>
<!-- 查出所有分类性质 -->
<!-- 查出所有 -->
<select id="findAllDictList" resultType="serviceDictInfo">
SELECT
<include refid="serviceDictInfoColumns"/>
FROM service_dict_info s
<include refid="menuJoins"/>
WHERE s.is_valid =1 AND s.item_type <![CDATA[<>]]> 3
WHERE s.is_valid =1
</select>
<!-- 查出所有标签-->
<select id="findAllDictMarkList" resultType="serviceDictInfo">
SELECT
<include refid="serviceDictInfoColumns"/>
FROM service_dict_info s
<include refid="menuJoins"/>
WHERE s.is_valid =1 AND s.item_type = 3
</select>
<!-- 查询所有非叶子配置 -->
<select id="findAllNoLeafDictList" resultType="com.nis.domain.configuration.ServiceDictInfo">
<select id="findAllNoLeafDictList" resultType="com.nis.domain.configuration.ServiceDictInfo" parameterType="java.lang.Integer">
SELECT
<include refid="serviceDictInfoColumns"/>
FROM service_dict_info s
WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type <![CDATA[<>]]> 3
WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type = #{itemType}
</select>
<!-- 查询所有非叶子标签配置 -->
<select id="findAllNoLeafDictMarkList" resultType="com.nis.domain.configuration.ServiceDictInfo">
SELECT
<include refid="serviceDictInfoColumns"/>
FROM service_dict_info s
WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type = 3
</select>
<!-- 分类性质条件查询 -->
<!-- 条件查询分页(==) -->
<select id="findDictSearchList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1 AND item_type <![CDATA[<>]]> 3
SELECT * FROM service_dict_info WHERE is_valid=1
<if test="itemType != null and itemType != '' " >
AND item_type like '%${itemType}%'
@@ -166,7 +153,8 @@
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
@@ -180,27 +168,25 @@
</select>
<!-- 标签条件查询 -->
<select id="findDictSearchMarkList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1 AND item_type=3
<!-- 条件查询分页(!=) -->
<select id="findDictSearchListN" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.ServiceDictInfo">
SELECT * FROM service_dict_info WHERE is_valid=1
<if test="itemType != null and itemType != '' " >
AND item_type like '%${itemType}%'
</if>
<if test="itemCode != null and itemCode != '' " >
AND item_code like '%${itemCode}%'
</if>
<if test="itemValue!= null and itemValue != '' " >
AND item_value like '%${itemValue}%'
</if>
<if test="itemType != null and itemType != '' " >
AND item_type != ${itemType}
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
@@ -213,6 +199,7 @@
</choose>
</select>
<!-- 根据主键查询字典详细信息 -->
@@ -222,6 +209,22 @@
from service_dict_info s where s.service_dict_id = #{serviceDictId}
</select>
<!-- 根据上级id选出所有下级 -->
<select id="getDictByParentId" resultMap="dictResultMap">
select *
from service_dict_info s where parent_id = #{parentId}
</select>
<!-- 根据itemCode查询字典对象列表 -->
<select id="findByItemCode" resultType="com.nis.domain.configuration.ServiceDictInfo">
select
<include refid="serviceDictInfoColumns"/>
from service_dict_info s where s.item_code = #{itemCode}
</select>
<!-- 新增字典信息 -->
@@ -235,14 +238,7 @@
#{serviceDictEditor.id,jdbcType=INTEGER}, #{editTime,jdbcType=TIMESTAMP})
</insert>
<!-- 查询非叶子节点的所有字典信息 -->
<!--
<select id="findAllDict">
select
<include refid="serviceDictInfoColumns" />
from service_dict_info s where s.is_leaf = 0;
</select> -->
<!-- 修改 -->
<update id="update">

View File

@@ -9,12 +9,29 @@ import com.nis.web.dao.MyBatisDao;
@MyBatisDao
public interface SysDictInfoDao extends CrudDao<SysDictInfo> {
/**
* 查询生效范围字典列表,
* 查询顶层字典列表(无条件查询(==)
* @param sysDictInfo
* @return
*/
List<SysDictInfo> findDictList(SysDictInfo sysDictInfo);
List<SysDictInfo> findTopDictList(SysDictInfo sysDictInfo);
/**
* 查出所有有效数据
* @param sysDictInfo
* @return
*/
List<SysDictInfo> findAllDictList(SysDictInfo sysDictInfo);
/**
* 查询字典列表(含条件查询(==)
* @param sysDictInfo
* @return
*/
List<SysDictInfo> findDictSearchList(SysDictInfo sysDictInfo);
/**
@@ -30,11 +47,38 @@ public interface SysDictInfoDao extends CrudDao<SysDictInfo> {
*/
SysDictInfo getDictById(Integer sysDictId);
/**
* 查询所有非叶子节点字典配置信息
* @return
*/
List<SysDictInfo> findAllDict();
/**
* 查询所有的非叶子配置
* @param itemType
* @return
*/
List<SysDictInfo> findAllNoLeafDictList(Integer itemType);
/**
* 根据itemCode查询字典对象列表
* @param itemCode
* @return
*/
List<SysDictInfo> findByItemCode(Integer itemCode);
/**
* 根据上级id选出所有下级
* @param parentId
* @return
*/
List<SysDictInfo> getDictByParentId(Integer parentId);
}

View File

@@ -34,7 +34,6 @@
<result property="name" column="name"/>
</association>
</resultMap>
<sql id="sysDictInfoColumns">
s.sys_dict_id AS sysDictId,
s.item_type AS itemType,
@@ -49,10 +48,54 @@
s.editor_id AS "sysDictEditor.id",
s.edit_time AS editTime
</sql>
<sql id="menuJoins">
LEFT JOIN sys_dict_info p ON p.sys_dict_id = s.parent_id
</sql>
<!-- 查询分类性质列表 -->
<select id="findDictList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.SysDictInfo">
SELECT * FROM sys_dict_info WHERE is_valid=1
<!-- 查询顶层分页列表 (==)-->
<select id="findTopDictList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.SysDictInfo">
SELECT * FROM sys_dict_info WHERE is_valid=1 AND parent_id = 0
<if test="itemValue != null and itemValue != '' " >
AND item_value like '%${itemValue}%'
</if>
<if test="itemCode != null and itemCode != '' " >
AND item_code like '%${itemCode}%'
</if>
<if test="itemType != null and itemType != '' " >
AND item_type = #{itemType}
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY create_time desc
</otherwise>
</choose>
</select>
<!-- 查出所有 -->
<select id="findAllDictList" resultType="sysDictInfo">
SELECT
<include refid="sysDictInfoColumns"/>
FROM sys_dict_info s
<include refid="menuJoins"/>
WHERE s.is_valid =1
</select>
<!-- 条件查询分页(==) -->
<select id="findDictSearchList" resultMap="dictResultMap" parameterType="com.nis.domain.configuration.SysDictInfo">
SELECT * FROM sys_dict_info WHERE is_valid=1
<if test="itemType != null and itemType != '' " >
AND item_type like '%${itemType}%'
@@ -60,12 +103,15 @@
<if test="itemCode != null and itemCode != '' " >
AND item_code like '%${itemCode}%'
</if>
<if test="itemValue!= null and itemValue != '' " >
AND item_value like '%${itemValue}%'
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
AND create_time &lt;= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
<choose>
@@ -99,13 +145,14 @@
</insert>
<!-- 查询非叶子节点的所有字典信息 -->
<select id="findAllDict">
select
<include refid="sysDictInfoColumns" />
from sys_dict_info s where s.is_leaf = 0;
</select>
<!-- 查询所有非叶子配置 -->
<select id="findAllNoLeafDictList" resultType="com.nis.domain.configuration.SysDictInfo" parameterType="java.lang.Integer">
SELECT
<include refid="sysDictInfoColumns"/>
FROM sys_dict_info s
WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type = #{itemType}
</select>
<!-- 修改 -->
<update id="update">
@@ -129,5 +176,21 @@
UPDATE sys_dict_info s set s.is_valid = #{isValid} where s.sys_dict_id = #{sysDictId}
</update>
<!-- 根据itemCode查询字典对象列表 -->
<select id="findByItemCode" resultType="com.nis.domain.configuration.SysDictInfo">
select
<include refid="sysDictInfoColumns"/>
from sys_dict_info s where s.item_code = #{itemCode}
</select>
<!-- 根据上级id选出所有下级 -->
<select id="getDictByParentId" resultMap="dictResultMap">
select *
from sys_dict_info s where parent_id = #{parentId}
</select>
</mapper>

View File

@@ -24,16 +24,44 @@ public class ServiceDictInfoService extends BaseService{
private ServiceDictInfoDao serviceDictInfoDao;
/**
* 查询分类性质字典分页(无条件查询)
* 查询业务字典分页(无条件查询)
* @param page
* @param serviceDictInfo
* @return
*/
public Page<ServiceDictInfo> findTopDictList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo) {
public Page<ServiceDictInfo> findTopDictList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo,Integer[] itType) {
// 设置分页参数
serviceDictInfo.setPage(page);
List<ServiceDictInfo> parentList = Lists.newArrayList();
Integer tempType = 0;
if(serviceDictInfo.getItemType()!=null){
tempType = serviceDictInfo.getItemType();
}
//查出顶层分页查询
List<ServiceDictInfo> parentList = serviceDictInfoDao.findTopDictList(serviceDictInfo);
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<Integer> tempList = Lists.newArrayList();
tempList.add(1);tempList.add(2);tempList.add(3);
//Map<String,String> 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;
}
@@ -47,22 +75,62 @@ public class ServiceDictInfoService extends BaseService{
}
/**
* 查询所有的非叶子配置
* 查询该类型所有的非叶子配置
*/
public List<ServiceDictInfo> findAllNoLeafDictList() {
return serviceDictInfoDao.findAllNoLeafDictList();
public List<ServiceDictInfo> findAllNoLeafDictList(String itType) {
List<ServiceDictInfo> list = Lists.newArrayList();
String[] strArr = itType.split("-");
Integer[] intArr = new Integer[strArr.length];
for(int i=0;i<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
List<ServiceDictInfo> tempList = serviceDictInfoDao.findAllNoLeafDictList(intArr[i]);
for(ServiceDictInfo serviceDictInfo:tempList){
list.add(serviceDictInfo);
}
}
return list;
}
/**
* 查询分类性质字典分页(含条件查询)
* 查询字典分页(含条件查询)
* @param page
* @param serviceDictInfo
* @param itType
* @return
*/
public Page<ServiceDictInfo> findDictSearchList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo) {
public Page<ServiceDictInfo> findDictSearchList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo, Integer[] itType) {
// 设置分页参数
serviceDictInfo.setPage(page);
List<ServiceDictInfo> parentList = serviceDictInfoDao.findDictSearchList(serviceDictInfo);
page.setList(parentList);
List<ServiceDictInfo> 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<Integer> tempList = Lists.newArrayList();
tempList.add(1);tempList.add(2);tempList.add(3);
//Map<String,String> 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;
}
@@ -77,12 +145,31 @@ public class ServiceDictInfoService extends BaseService{
public ServiceDictInfo getDictById(Integer serviceDictId) {
return serviceDictInfoDao.getDictById(serviceDictId);
}
/**
* 根据上级id选出所有下级
* @param parentId
* @return
*/
public List<ServiceDictInfo> 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())) {//新增
serviceDictInfo.setIsValid(1);
@@ -90,15 +177,8 @@ public class ServiceDictInfoService extends BaseService{
serviceDictInfo.setCreateTime(new Date());
serviceDictInfo.setServiceDictEditor(user);
serviceDictInfo.setEditTime(serviceDictInfo.getCreateTime());
if(serviceDictInfo.getParent()==null||(serviceDictInfo.getParent()!=null&&serviceDictInfo.getParent().getServiceDictId()==null)){
ServiceDictInfo parent = new ServiceDictInfo();
parent.setServiceDictId(0);
serviceDictInfo.setParent(parent);
}
serviceDictInfoDao.insertDict(serviceDictInfo);
}
else {//修改
serviceDictInfo.setServiceDictEditor(user);
serviceDictInfo.setEditTime(new Date());
@@ -107,15 +187,6 @@ public class ServiceDictInfoService extends BaseService{
}
/**
* 查询所有非叶子节点字典配置信息
* @return
*/
/* public List<ServiceDictInfo> findAllDict() {
return serviceDictInfoDao.findAllDict();
}*/
/**
* 删除
* @param serviceDictInfo
@@ -133,55 +204,13 @@ public class ServiceDictInfoService extends BaseService{
}
//标签管理
/**
* 查询标签分页(无条件查询)
* @param page
* @param serviceDictInfo
* @return
* 根据itemCode查出对象集合
*/
public Page<ServiceDictInfo> findTopDictMarkList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo) {
// 设置分页参数
serviceDictInfo.setPage(page);
//查出顶层分页查询
List<ServiceDictInfo> parentList = serviceDictInfoDao.findTopDictMarkList(serviceDictInfo);
page.setList(parentList);
return page;
}
/**
* 查询所有有效标签配置
* @return
*/
public List<ServiceDictInfo> findAllDictMarkList() {
return serviceDictInfoDao.findAllDictMarkList(new ServiceDictInfo());
public List<ServiceDictInfo> findByItemCode(Integer itemCode){
return serviceDictInfoDao.findByItemCode(itemCode);
}
/**
* 查询标签字典分页(含条件查询)
* @param page
* @param serviceDictInfo
* @return
*/
public Page<ServiceDictInfo> findDictSearchMarkList(Page<ServiceDictInfo> page, ServiceDictInfo serviceDictInfo) {
// 设置分页参数
serviceDictInfo.setPage(page);
List<ServiceDictInfo> parentList = serviceDictInfoDao.findDictSearchMarkList(serviceDictInfo);
page.setList(parentList);
return page;
}
/**
* 查询所有的非叶子配置
*/
public List<ServiceDictInfo> findAllNoLeafDictMarkList() {
return serviceDictInfoDao.findAllNoLeafDictMarkList();
}
@@ -265,5 +294,7 @@ public class ServiceDictInfoService extends BaseService{
}

View File

@@ -9,6 +9,8 @@ import org.springframework.stereotype.Service;
import com.google.common.collect.Lists;
import com.nis.domain.Page;
import com.nis.domain.SysUser;
import com.nis.domain.configuration.ServiceDictInfo;
import com.nis.domain.configuration.SysDictInfo;
import com.nis.domain.configuration.SysDictInfo;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.SysDictInfoDao;
@@ -21,23 +23,62 @@ public class SysDictInfoService extends BaseService{
@Autowired
private SysDictInfoDao sysDictInfoDao;
/**
* 查询生效范围字典分页
* 查询顶层分页(无条件查询)
* @param page
* @param sysDictInfo
* @param intArr
* @return
*/
public Page<SysDictInfo> findDictList(Page<SysDictInfo> page, SysDictInfo sysDictInfo) {
public Page<SysDictInfo> findTopDictList(Page<SysDictInfo> page, SysDictInfo sysDictInfo, Integer[] intArr) {
// 设置分页参数
sysDictInfo.setPage(page);
// 执行分页查询
List<SysDictInfo> list = Lists.newArrayList();
List<SysDictInfo> sourcelist = sysDictInfoDao.findDictList(sysDictInfo);
SysDictInfo.sortList(list, sourcelist, 0, true);
page.setList(sourcelist);
List<SysDictInfo> parentList = Lists.newArrayList();
Integer tempType = 0;
//预留以后分开用
if(sysDictInfo.getItemType()!=null){
tempType = sysDictInfo.getItemType();
}
//查出顶层分页查询
parentList = sysDictInfoDao.findTopDictList(sysDictInfo);
page.setList(parentList);
return page;
}
/**
* 查询所有有效字典配置
*/
public List<SysDictInfo> findAllDictList() {
return sysDictInfoDao.findAllDictList(new SysDictInfo());
}
/**
* 查询字典分页(含条件查询)
* @param page
* @param sysDictInfo
* @param intArr
* @return
*/
public Page<SysDictInfo> findDictSearchList(Page<SysDictInfo> page, SysDictInfo sysDictInfo, Integer[] itType) {
// 设置分页参数
sysDictInfo.setPage(page);
List<SysDictInfo> list = Lists.newArrayList();
/*Integer tempType = 0;
if(sysDictInfo.getItemType()!=null){
tempType = sysDictInfo.getItemType();
}*/
//查出分页
list = sysDictInfoDao.findDictSearchList(sysDictInfo);
page.setList(list);
return page;
}
/**
* 根据主键查询生效范围字典详细信息
@@ -53,6 +94,15 @@ public class SysDictInfoService extends BaseService{
* @param sysDictInfo
*/
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);
sysDictInfo.setParent(parent);
}
SysUser user = UserUtils.getUser();
if(StringUtil.isEmpty(sysDictInfo.getSysDictId())) {//新增
sysDictInfo.setIsValid(1);
@@ -60,11 +110,6 @@ public class SysDictInfoService extends BaseService{
sysDictInfo.setCreateTime(new Date());
sysDictInfo.setSysDictEditor(user);
sysDictInfo.setEditTime(sysDictInfo.getCreateTime());
if(sysDictInfo.getParent()==null||(sysDictInfo.getParent()!=null&&sysDictInfo.getParent().getSysDictId()==null)){
SysDictInfo parent = new SysDictInfo();
parent.setSysDictId(0);
sysDictInfo.setParent(parent);
}
sysDictInfoDao.insertDict(sysDictInfo);
}
@@ -77,23 +122,68 @@ public class SysDictInfoService extends BaseService{
}
/**
* 查询所有非叶子节点生效范围字典配置信息
* @return
*/
public List<SysDictInfo> findAllDict() {
return sysDictInfoDao.findAllDict();
}
/**
* 删除
* @param sysDictInfo
*/
public void deleteDict(SysDictInfo sysDictInfo) {
sysDictInfo.setIsValid(0);
sysDictInfoDao.delete(sysDictInfo);
List<SysDictInfo> list = Lists.newArrayList();
SysDictInfo.sortList(list, sysDictInfoDao.findAllDictList(new SysDictInfo()), sysDictInfo.getSysDictId(), true);
list.add(sysDictInfo);
for(SysDictInfo se:list){
se.setIsValid(0);
sysDictInfoDao.delete(sysDictInfo);
}
}
/**
* 查询该类型所有的非叶子配置
* @param itType
* @return
*/
public List<SysDictInfo> findAllNoLeafDictList(String itType) {
List<SysDictInfo> list = Lists.newArrayList();
String[] strArr = itType.split("-");
Integer[] intArr = new Integer[strArr.length];
for(int i=0;i<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
List<SysDictInfo> tempList = sysDictInfoDao.findAllNoLeafDictList(intArr[i]);
for(SysDictInfo sysDictInfo:tempList){
list.add(sysDictInfo);
}
}
return list;
}
/**
* 根据itemCode查出对象集合
* @param itemCode
* @return
*/
public List<SysDictInfo> findByItemCode(Integer itemCode) {
return sysDictInfoDao.findByItemCode(itemCode);
}
/**
* 根据上级id选出所有下级
* @param parent
* @return
*/
public List<SysDictInfo> getDictByParentId(Integer parentId) {
return sysDictInfoDao.getDictByParentId(parentId);
}