From bb27ba16dbd1b944e5a95c0168871dc4a6cb8273 Mon Sep 17 00:00:00 2001 From: zhangshilin Date: Sun, 4 Mar 2018 19:20:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E8=AE=A2=E4=B8=9A=E5=8A=A1=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E8=A1=A8-=E4=B8=9A=E5=8A=A1=E5=AD=97=E5=85=B8=20=20?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=BE=85=E5=8A=A9=E8=A1=A8=3D-=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=AD=97=E5=85=B8=E7=AE=A1=E7=90=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=202.=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=A1=E9=AA=8C=20=20=20=20=20=20=E2=91=A0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=BF=85=E5=A1=AB=E9=A1=B9=20=20=20=20=20=20?= =?UTF-8?q?=E2=91=A1=E6=A0=A1=E9=AA=8CitemCode=E6=98=AF=E5=90=A6=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=20=20=20=20=20=20=E2=91=A2=E6=A0=A1=E9=AA=8C=E7=88=B6?= =?UTF-8?q?=E7=BA=A7=E4=B8=8E=E6=B7=BB=E5=8A=A0=E6=88=96=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=9A=84=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=80=E8=87=B4=20=20=20=20=20=20=E2=91=A3?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E7=B1=BB=E5=9E=8B=E4=B8=8E?= =?UTF-8?q?=E5=85=B6=E4=B8=8B=E7=BA=A7=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=80=E8=87=B4=20=20=20=20=20=20=E2=91=A4?= =?UTF-8?q?=E6=97=A0=E4=B8=8A=E7=BA=A7=E6=97=B6=E3=80=81=E6=9C=89=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7=E6=97=B6=E4=B8=8D=E5=BE=97=E9=80=89=E4=B8=BA=E5=8F=B6?= =?UTF-8?q?=E5=AD=90=E8=8A=82=E7=82=B9=20=203.=E5=BE=85=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=A1=B9=EF=BC=9A=20=20=20=20=20=E2=91=A0=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=BC=B9=E5=87=BA=E9=A1=B9=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=20=20=20=20=20=E2=91=A1=E6=A0=A1=E9=AA=8C=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=81=B6=E6=9C=89=E5=AD=98=E5=9C=A8=E6=8A=A5=E5=87=BA=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=BD=86=E6=97=A0=E6=B3=95=E9=98=BB=E6=AD=A2=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=20=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/domain/configuration/SysDictInfo.java | 10 +- .../java/com/nis/util/ConfigDictUtils.java | 51 +++ src/main/java/com/nis/util/MyBeanUtils.java | 311 +++++++++++++++ .../ServiceDictInfoController.java | 366 +++++++++--------- .../configuration/SysDictInfoController.java | 294 +++++++++++++- .../dao/configuration/ServiceDictInfoDao.java | 59 +-- .../dao/configuration/ServiceDictInfoDao.xml | 108 +++--- .../web/dao/configuration/SysDictInfoDao.java | 58 ++- .../web/dao/configuration/SysDictInfoDao.xml | 89 ++++- .../configuration/ServiceDictInfoService.java | 173 +++++---- .../configuration/SysDictInfoService.java | 136 +++++-- src/main/webapp/WEB-INF/tlds/fns.tld | 16 + .../WEB-INF/views/cfg/serviceDictForm.jsp | 137 ++++++- .../WEB-INF/views/cfg/serviceDictInfo.jsp | 8 +- .../views/cfg/serviceDictInfoSearchList.jsp | 218 ++++++----- .../cfg/serviceDictInfoSearchMarkList.jsp | 122 ------ .../WEB-INF/views/cfg/serviceDictList.jsp | 54 +-- .../WEB-INF/views/cfg/serviceDictMarkForm.jsp | 165 -------- .../WEB-INF/views/cfg/serviceDictMarkInfo.jsp | 91 ----- .../webapp/WEB-INF/views/cfg/sysDictForm.jsp | 140 +++++-- .../webapp/WEB-INF/views/cfg/sysDictInfo.jsp | 10 +- .../views/cfg/sysDictInfoSearchList.jsp | 136 +++++++ .../webapp/WEB-INF/views/cfg/sysDictList.jsp | 243 ++++++------ src/main/webapp/static/pages/css/dictInfo.css | 15 +- src/main/webapp/static/pages/scripts/dict.js | 36 +- 25 files changed, 1925 insertions(+), 1121 deletions(-) create mode 100644 src/main/java/com/nis/util/ConfigDictUtils.java create mode 100644 src/main/java/com/nis/util/MyBeanUtils.java delete mode 100644 src/main/webapp/WEB-INF/views/cfg/serviceDictInfoSearchMarkList.jsp delete mode 100644 src/main/webapp/WEB-INF/views/cfg/serviceDictMarkForm.jsp delete mode 100644 src/main/webapp/WEB-INF/views/cfg/serviceDictMarkInfo.jsp create mode 100644 src/main/webapp/WEB-INF/views/cfg/sysDictInfoSearchList.jsp diff --git a/src/main/java/com/nis/domain/configuration/SysDictInfo.java b/src/main/java/com/nis/domain/configuration/SysDictInfo.java index ca520ddcf..5653f1e56 100644 --- a/src/main/java/com/nis/domain/configuration/SysDictInfo.java +++ b/src/main/java/com/nis/domain/configuration/SysDictInfo.java @@ -20,7 +20,7 @@ public class SysDictInfo extends BaseEntity{ 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{ 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; diff --git a/src/main/java/com/nis/util/ConfigDictUtils.java b/src/main/java/com/nis/util/ConfigDictUtils.java new file mode 100644 index 000000000..7276de78f --- /dev/null +++ b/src/main/java/com/nis/util/ConfigDictUtils.java @@ -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); + } + +} diff --git a/src/main/java/com/nis/util/MyBeanUtils.java b/src/main/java/com/nis/util/MyBeanUtils.java new file mode 100644 index 000000000..3b27b2785 --- /dev/null +++ b/src/main/java/com/nis/util/MyBeanUtils.java @@ -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; + +/** + *

Title:

+ *

Description:

+ * @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 page = serviceDictInfoService.findTopDictList(new Page(request, response), serviceDictInfo); + Page page = serviceDictInfoService.findTopDictList(new Page(request, response), serviceDictInfo,intArr); model.addAttribute("page", page); //查出所有数据 List 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 page = serviceDictInfoService.findDictSearchList(new Page(request, response), serviceDictInfo); + String[] strArr = itType.split("-"); + Integer[] intArr = new Integer[strArr.length]; + for(int i=0;i page = serviceDictInfoService.findDictSearchList(new Page(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> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) { + public List> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response, String itType) { List> mapList = Lists.newArrayList(); - //找出所有的非叶子配置 - List list = serviceDictInfoService.findAllNoLeafDictList(); + Map map2 = Maps.newHashMap(); + map2.put("id", -1); + map2.put("pId", 0); + map2.put("name","无上级"); + //map2.put("placeholder","0"); + mapList.add(map2); + //找出该类型所有的非叶子配置 + List list = serviceDictInfoService.findAllNoLeafDictList(itType); for (int i=0; i page = serviceDictInfoService.findTopDictMarkList(new Page(request, response), serviceDictInfo); - model.addAttribute("page", page); - //查出所有数据 - List allList = serviceDictInfoService.findAllDictMarkList(); - //处理数据,保留顶层中的所有下层数据 - List 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 page = serviceDictInfoService.findDictSearchMarkList(new Page(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> treeMarkData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) { - List> mapList = Lists.newArrayList(); - //找出所有的非叶子配置 - List list = serviceDictInfoService.findAllNoLeafDictMarkList(); - for (int i=0; i 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 list = serviceDictInfoService.getDictByParentId(parent); + if(list==null||list.size()==0){ + return true; + }else{ + for(ServiceDictInfo serviceDictInfo:list){ + if(serviceDictInfo.getItemType()==newItemType){ + return true; } - Map 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 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; } } diff --git a/src/main/java/com/nis/web/controller/configuration/SysDictInfoController.java b/src/main/java/com/nis/web/controller/configuration/SysDictInfoController.java index 9c3377d98..cbd3ab6c5 100644 --- a/src/main/java/com/nis/web/controller/configuration/SysDictInfoController.java +++ b/src/main/java/com/nis/web/controller/configuration/SysDictInfoController.java @@ -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 page = sysDictInfoService.findDictList(new Page(request, response), sysDictInfo); - model.addAttribute("page", page); - + //查出顶层分页数据 + Page page = sysDictInfoService.findTopDictList(new Page(request, response), sysDictInfo,intArr); + model.addAttribute("page", page); + //查出所有数据 + List allList = sysDictInfoService.findAllDictList(); + //处理数据,保留顶层中的所有下层数据 + List 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 page = sysDictInfoService.findDictSearchList(new Page(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> 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", -1); + map2.put("pId", 0); + map2.put("name","无上级"); + //map2.put("placeholder","0"); + mapList.add(map2); + //找出该类型所有的非叶子配置 + List list = sysDictInfoService.findAllNoLeafDictList(itType); + for (int i=0; i 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 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 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 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; } diff --git a/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.java b/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.java index 31760377a..12271901f 100644 --- a/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.java +++ b/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.java @@ -13,25 +13,43 @@ import com.nis.web.dao.MyBatisDao; public interface ServiceDictInfoDao extends CrudDao { /** - * 查询分类性质顶层字典列表(无条件查询) + * 查询顶层字典列表(无条件查询(==)) * @param serviceDictInfo * @return */ List findTopDictList(ServiceDictInfo serviceDictInfo); /** - * 查出所有分类性质 + * 查询顶层字典列表(无条件查询(!=)) + * @param serviceDictInfo + * @return + */ + List findTopDictListN(ServiceDictInfo serviceDictInfo); + /** + * 查出所有有效数据 */ List findAllDictList(ServiceDictInfo serviceDictInfo); /** * 查询所有的非叶子配置 */ - List findAllNoLeafDictList(); + List findAllNoLeafDictList(@Param("itemType")Integer itemType); /** - * 查询分类性质字典列表(含条件查询) + * 根据上级id选出所有下级 + * @param parentId + * @return + */ + List getDictByParentId(Integer parentId); + /** + * 查询字典列表(含条件查询(==)) * @param serviceDictInfo * @return */ List findDictSearchList(ServiceDictInfo serviceDictInfo); + /** + * 查询字典列表(含条件查询(!=)) + * @param serviceDictInfo + * @return + */ + List findDictSearchListN(ServiceDictInfo serviceDictInfo); /** @@ -46,34 +64,21 @@ public interface ServiceDictInfoDao extends CrudDao { * @return */ ServiceDictInfo getDictById(Integer serviceDictId); - + /** + * 根据itemCode查询字典对象列表 + * @param itemCode + * @return + */ + List findByItemCode(Integer itemCode); - //标签管理 - /** - * 查询标签顶层字典列表(无条件查询) - * @param serviceDictInfo - * @return - */ - List findTopDictMarkList(ServiceDictInfo serviceDictInfo); - /** - * 查出所有标签 - */ - List findAllDictMarkList(ServiceDictInfo serviceDictInfo); - /** - * 查询标签字典列表(条件查询) - * @param serviceDictInfo - * @return - */ - List findDictSearchMarkList(ServiceDictInfo serviceDictInfo); - /** - * 查询所有的非叶子配置 - * @return - */ - List findAllNoLeafDictMarkList(); + List findItemDict(@Param("itemType")int itemType,@Param("isValid")int isValid); List findAllItemDict(@Param("itemType")int itemType); + + + diff --git a/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.xml b/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.xml index 3e207f2c6..23c70259a 100644 --- a/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/ServiceDictInfoDao.xml @@ -52,22 +52,24 @@ - + - - - + SELECT * FROM service_dict_info WHERE is_valid=1 AND parent_id = 0 - + AND item_value like '%${itemValue}%' AND item_code like '%${itemCode}%' - + + AND item_type != #{itemType} + AND create_time >= #{beginDate,jdbcType=TIMESTAMP} - AND create_time <= #{endDate,jdbcType=TIMESTAMP} + AND create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) @@ -110,48 +113,32 @@ + - + - - - - - + - SELECT FROM service_dict_info s - WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type ]]> 3 + WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type = #{itemType} - - - + - + - - - - - + SELECT * FROM service_dict_info WHERE is_valid=1 - - AND item_type like '%${itemType}%' - AND item_code like '%${itemCode}%' AND item_value like '%${itemValue}%' + + AND item_type != ${itemType} + AND create_time >= #{beginDate,jdbcType=TIMESTAMP} - AND create_time <= #{endDate,jdbcType=TIMESTAMP} + AND create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + @@ -213,6 +199,7 @@ + @@ -222,6 +209,22 @@ from service_dict_info s where s.service_dict_id = #{serviceDictId} + + + + + + + + + @@ -235,14 +238,7 @@ #{serviceDictEditor.id,jdbcType=INTEGER}, #{editTime,jdbcType=TIMESTAMP}) - - - + diff --git a/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.java b/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.java index 1571febc0..7dbe4cb04 100644 --- a/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.java +++ b/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.java @@ -9,12 +9,29 @@ import com.nis.web.dao.MyBatisDao; @MyBatisDao public interface SysDictInfoDao extends CrudDao { + + /** - * 查询生效范围字典列表, + * 查询顶层字典列表(无条件查询(==)) * @param sysDictInfo * @return */ - List findDictList(SysDictInfo sysDictInfo); + List findTopDictList(SysDictInfo sysDictInfo); + + /** + * 查出所有有效数据 + * @param sysDictInfo + * @return + */ + List findAllDictList(SysDictInfo sysDictInfo); + + /** + * 查询字典列表(含条件查询(==) + * @param sysDictInfo + * @return + */ + List findDictSearchList(SysDictInfo sysDictInfo); + /** @@ -30,11 +47,38 @@ public interface SysDictInfoDao extends CrudDao { */ SysDictInfo getDictById(Integer sysDictId); - /** - * 查询所有非叶子节点字典配置信息 - * @return - */ - List findAllDict(); + + /** + * 查询所有的非叶子配置 + * @param itemType + * @return + */ + List findAllNoLeafDictList(Integer itemType); + + /** + * 根据itemCode查询字典对象列表 + * @param itemCode + * @return + */ + List findByItemCode(Integer itemCode); + + /** + * 根据上级id选出所有下级 + * @param parentId + * @return + */ + List getDictByParentId(Integer parentId); + + + + + + + + + + + } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.xml b/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.xml index 44b88d8e3..63968cd75 100644 --- a/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/SysDictInfoDao.xml @@ -34,7 +34,6 @@ - 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 + + + LEFT JOIN sys_dict_info p ON p.sys_dict_id = s.parent_id + - - + SELECT * FROM sys_dict_info WHERE is_valid=1 AND parent_id = 0 + + + AND item_value like '%${itemValue}%' + + + AND item_code like '%${itemCode}%' + + + AND item_type = #{itemType} + + + AND create_time >= #{beginDate,jdbcType=TIMESTAMP} + + + AND create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + + + + + ORDER BY ${page.orderBy} + + + ORDER BY create_time desc + + + + + + + + + + - select - - from sys_dict_info s where s.is_leaf = 0; - + + + @@ -129,5 +176,21 @@ UPDATE sys_dict_info s set s.is_valid = #{isValid} where s.sys_dict_id = #{sysDictId} + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/ServiceDictInfoService.java b/src/main/java/com/nis/web/service/configuration/ServiceDictInfoService.java index 01ef35013..e2d6bd865 100644 --- a/src/main/java/com/nis/web/service/configuration/ServiceDictInfoService.java +++ b/src/main/java/com/nis/web/service/configuration/ServiceDictInfoService.java @@ -24,16 +24,44 @@ public class ServiceDictInfoService extends BaseService{ private ServiceDictInfoDao serviceDictInfoDao; /** - * 查询分类性质字典分页(无条件查询) + * 查询业务字典分页(无条件查询) * @param page * @param serviceDictInfo * @return */ - public Page findTopDictList(Page page, ServiceDictInfo serviceDictInfo) { + 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(); + } //查出顶层分页查询 - List 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 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; } @@ -47,22 +75,62 @@ public class ServiceDictInfoService extends BaseService{ } /** - * 查询所有的非叶子配置 + * 查询该类型所有的非叶子配置 */ - public List findAllNoLeafDictList() { - return serviceDictInfoDao.findAllNoLeafDictList(); + 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) { + public Page findDictSearchList(Page page, ServiceDictInfo serviceDictInfo, Integer[] itType) { // 设置分页参数 serviceDictInfo.setPage(page); - List parentList = serviceDictInfoDao.findDictSearchList(serviceDictInfo); - page.setList(parentList); + + 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; } @@ -77,12 +145,31 @@ public class ServiceDictInfoService extends BaseService{ 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())) {//新增 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 findAllDict() { - - return serviceDictInfoDao.findAllDict(); - }*/ - /** * 删除 * @param serviceDictInfo @@ -133,55 +204,13 @@ public class ServiceDictInfoService extends BaseService{ } - - - //标签管理 - /** - * 查询标签分页(无条件查询) - * @param page - * @param serviceDictInfo - * @return + * 根据itemCode查出对象集合 */ - public Page findTopDictMarkList(Page page, ServiceDictInfo serviceDictInfo) { - // 设置分页参数 - serviceDictInfo.setPage(page); - //查出顶层分页查询 - List parentList = serviceDictInfoDao.findTopDictMarkList(serviceDictInfo); - page.setList(parentList); - return page; - } - /** - * 查询所有有效标签配置 - * @return - */ - public List findAllDictMarkList() { - - return serviceDictInfoDao.findAllDictMarkList(new ServiceDictInfo()); + public List findByItemCode(Integer itemCode){ + return serviceDictInfoDao.findByItemCode(itemCode); } - /** - * 查询标签字典分页(含条件查询) - * @param page - * @param serviceDictInfo - * @return - */ - public Page findDictSearchMarkList(Page page, ServiceDictInfo serviceDictInfo) { - // 设置分页参数 - serviceDictInfo.setPage(page); - List parentList = serviceDictInfoDao.findDictSearchMarkList(serviceDictInfo); - page.setList(parentList); - return page; - } - - - - /** - * 查询所有的非叶子配置 - */ - public List findAllNoLeafDictMarkList() { - return serviceDictInfoDao.findAllNoLeafDictMarkList(); - } @@ -265,5 +294,7 @@ public class ServiceDictInfoService extends BaseService{ + + } diff --git a/src/main/java/com/nis/web/service/configuration/SysDictInfoService.java b/src/main/java/com/nis/web/service/configuration/SysDictInfoService.java index faf396199..6b1b93d8e 100644 --- a/src/main/java/com/nis/web/service/configuration/SysDictInfoService.java +++ b/src/main/java/com/nis/web/service/configuration/SysDictInfoService.java @@ -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 findDictList(Page page, SysDictInfo sysDictInfo) { + public Page findTopDictList(Page page, SysDictInfo sysDictInfo, Integer[] intArr) { // 设置分页参数 sysDictInfo.setPage(page); - // 执行分页查询 - List list = Lists.newArrayList(); - List sourcelist = sysDictInfoDao.findDictList(sysDictInfo); - SysDictInfo.sortList(list, sourcelist, 0, true); - page.setList(sourcelist); + List parentList = Lists.newArrayList(); + Integer tempType = 0; + //预留以后分开用 + if(sysDictInfo.getItemType()!=null){ + tempType = sysDictInfo.getItemType(); + } + //查出顶层分页查询 + parentList = sysDictInfoDao.findTopDictList(sysDictInfo); + + page.setList(parentList); return page; } + /** + * 查询所有有效字典配置 + */ + public List findAllDictList() { + return sysDictInfoDao.findAllDictList(new SysDictInfo()); + + } + /** + * 查询字典分页(含条件查询) + * @param page + * @param sysDictInfo + * @param intArr + * @return + */ + public Page findDictSearchList(Page page, SysDictInfo sysDictInfo, Integer[] itType) { + // 设置分页参数 + sysDictInfo.setPage(page); + + List 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 findAllDict() { - - return sysDictInfoDao.findAllDict(); - } - /** * 删除 * @param sysDictInfo */ public void deleteDict(SysDictInfo sysDictInfo) { - sysDictInfo.setIsValid(0); - sysDictInfoDao.delete(sysDictInfo); + List 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 findAllNoLeafDictList(String itType) { + List list = Lists.newArrayList(); + String[] strArr = itType.split("-"); + Integer[] intArr = new Integer[strArr.length]; + for(int i=0;i tempList = sysDictInfoDao.findAllNoLeafDictList(intArr[i]); + for(SysDictInfo sysDictInfo:tempList){ + list.add(sysDictInfo); + } + } + return list; + } + /** + * 根据itemCode查出对象集合 + * @param itemCode + * @return + */ + public List findByItemCode(Integer itemCode) { + return sysDictInfoDao.findByItemCode(itemCode); + } + /** + * 根据上级id选出所有下级 + * @param parent + * @return + */ + public List getDictByParentId(Integer parentId) { + + return sysDictInfoDao.getDictByParentId(parentId); + } + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/tlds/fns.tld b/src/main/webapp/WEB-INF/tlds/fns.tld index 78a75fc41..cbb6529c4 100644 --- a/src/main/webapp/WEB-INF/tlds/fns.tld +++ b/src/main/webapp/WEB-INF/tlds/fns.tld @@ -295,4 +295,20 @@ ${fns:toJson(object)} + + 根据id获取服务字典配置 + getServiceDictInfoById + com.nis.util.ConfigDictUtils + java.lang.String getServiceDictInfoById(java.lang.Integer) + ${fns:getServiceDictInfoById(id)} + + + + 根据id获取系统字典配置 + getSysDictInfoById + com.nis.util.ConfigDictUtils + java.lang.String getSysDictInfoById(java.lang.Integer) + ${fns:getSysDictInfoById(id)} + + diff --git a/src/main/webapp/WEB-INF/views/cfg/serviceDictForm.jsp b/src/main/webapp/WEB-INF/views/cfg/serviceDictForm.jsp index edb42c577..272ac27a7 100644 --- a/src/main/webapp/WEB-INF/views/cfg/serviceDictForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/serviceDictForm.jsp @@ -2,12 +2,90 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%> - - 分类性质配置管理 + + + 配置管理 + + - - -
-

- 分类性质管理 -

+

+ 配置管理 +

-
-
-
-
-
- 分类性质搜索结果 +
+
+
+
+
+ 搜索结果 +
-
-
- -
- - - -
- - - + +
+ + + + - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
配置内容配置编码描述信息数据类型叶子节点创建人员创建时间最近修改人员最近修改时间操作
${serviceDictInfo.itemValue}${serviceDictInfo.itemCode}${fns:abbr(serviceDictInfo.itemDesc,15)}${fns:getDictLabel("SERVICE_DICT_ITM_TYPE",serviceDictInfo.itemType,"0")}${fns:getDictLabel("SYS_YES_NO",serviceDictInfo.isLeaf,"0")}${serviceDictInfo.serviceDictCreator.id}${serviceDictInfo.serviceDictEditor.name} -
- - -
-
-
${page}
-
-
-
+ :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + + +
+ + + + + + + + + + + + + + + + + +
配置内容配置编码描述信息数据类型叶子节点创建人员创建时间最近修改人员最近修改时间操作
${serviceDictInfo.itemValue}${serviceDictInfo.itemCode}${fns:abbr(serviceDictInfo.itemDesc,15)}${fns:getDictLabel("SERVICE_DICT_ITM_TYPE",serviceDictInfo.itemType,"0")}${fns:getDictLabel("SYS_YES_NO",serviceDictInfo.isLeaf,"0")} + ${fns:getUserById(serviceDictInfo.serviceDictCreator.id).name} + + ${fns:getUserById(serviceDictInfo.serviceDictEditor.id).name} + +
+ 操作 + +
+
+ + +
+
+
+ +
+
- - - +
${page}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/serviceDictInfoSearchMarkList.jsp b/src/main/webapp/WEB-INF/views/cfg/serviceDictInfoSearchMarkList.jsp deleted file mode 100644 index 579cb1552..000000000 --- a/src/main/webapp/WEB-INF/views/cfg/serviceDictInfoSearchMarkList.jsp +++ /dev/null @@ -1,122 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8"%> -<%@ include file="/WEB-INF/include/taglib.jsp"%> - - -标签配置信息 - - - - - - -
- - -

- 标签管理 -

- -
-
-
-
-
- 标签搜索结果 -
-
-
- -
- - - -
- - - - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
配置内容配置编码描述信息数据类型叶子节点创建人员创建时间最近修改人员最近修改时间操作
${serviceDictInfo.itemValue}${serviceDictInfo.itemCode}${fns:abbr(serviceDictInfo.itemDesc,15)}${fns:getDictLabel("SERVICE_DICT_ITM_TYPE",serviceDictInfo.itemType,"0")}${fns:getDictLabel("SYS_YES_NO",serviceDictInfo.isLeaf,"0")}${serviceDictInfo.serviceDictCreator.id}${serviceDictInfo.serviceDictEditor.name} -
- - -
-
-
${page}
-
-
-
-
-
- - - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/serviceDictList.jsp b/src/main/webapp/WEB-INF/views/cfg/serviceDictList.jsp index 8ac7b72c9..974909b41 100644 --- a/src/main/webapp/WEB-INF/views/cfg/serviceDictList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/serviceDictList.jsp @@ -2,7 +2,7 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%> -分类性质配置信息 +配置信息 @@ -16,7 +16,7 @@ $("#intype").attr("name",$("#seltype").val()); $("#pageNo").val(n); $("#pageSize").val(s); - $("#searchForm").attr("action","${ctx}/configuration/serviceDictInfo/list"); + $("#searchForm").attr("action","${ctx}/configuration/serviceDictInfo/list?itType=${itType}"); $("#searchForm").submit(); return false; } @@ -24,7 +24,7 @@ $("#intype").attr("name",$("#seltype").val()); $("#pageNo").val(n); $("#pageSize").val(s); - $("#searchForm").attr("action","${ctx}/configuration/serviceDictInfo/searchList"); + $("#searchForm").attr("action","${ctx}/configuration/serviceDictInfo/searchList?itType=${itType}"); $("#searchForm").submit(); return false; } @@ -37,13 +37,13 @@

- 分类性质管理 + 配置管理

@@ -51,36 +51,36 @@
- 分类性质配置列表 + 列表信息
- +
- - - + + + - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - : " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - -
- - -

- 标签配置管理 -

- -
-
-
-
-
- 标签配置${not empty serviceDictInfo.serviceDictId?'修改':'添加'}查看
-
- -
-
- -
- - -
- - - - - -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- <%-- --%> - - - -
-
-
- -
- -
-
-
-
-
- - -
-
-
-
- -
- -
- -
-
-
-
- - - - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/serviceDictMarkInfo.jsp b/src/main/webapp/WEB-INF/views/cfg/serviceDictMarkInfo.jsp deleted file mode 100644 index 6cb7198cb..000000000 --- a/src/main/webapp/WEB-INF/views/cfg/serviceDictMarkInfo.jsp +++ /dev/null @@ -1,91 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" %> -<%@ include file="/WEB-INF/include/taglib.jsp"%> - - - - 标签配置管理 - - - - -
- - - - -

- 标签配置管理 -

- -
-
-
-
-
- 标签配置查看
-
- -
- - -
- - - - - -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
- -
-
-
-
- - - - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/sysDictForm.jsp b/src/main/webapp/WEB-INF/views/cfg/sysDictForm.jsp index b59199f0f..18f257834 100644 --- a/src/main/webapp/WEB-INF/views/cfg/sysDictForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/sysDictForm.jsp @@ -2,12 +2,90 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%> - - 生效范围配置管理 + + + 配置管理 + + + + + + + +

+ 配置管理 +

+ +
+
+
+
+
+ 搜索结果 +
+
+
+
+
+ + + + +
+ + + + + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + + +
+
+ + + + + + + + + + + + + + + + +
配置内容配置编码描述信息数据类型叶子节点创建人员创建时间最近修改人员最近修改时间操作
${sysDictInfo.itemValue}${sysDictInfo.itemCode}${fns:abbr(sysDictInfo.itemDesc,15)}${fns:getDictLabel("SYS_DICT_ITM_TYPE",sysDictInfo.itemType,"0")}${fns:getDictLabel("SYS_YES_NO",sysDictInfo.isLeaf,"0")} + ${fns:getUserById(sysDictInfo.sysDictCreator.id).name} + + ${fns:getUserById(sysDictInfo.sysDictEditor.id).name} + +
+ 操作 + +
+
+ + +
+
+
+ +
+
+
+
${page}
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/sysDictList.jsp b/src/main/webapp/WEB-INF/views/cfg/sysDictList.jsp index 4b473a1ef..3798fe30a 100644 --- a/src/main/webapp/WEB-INF/views/cfg/sysDictList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/sysDictList.jsp @@ -2,138 +2,135 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%> -生效范围配置信息 - - - + - - -
-
-
-
-
-
- -
-
-
- -
- - - -
- - - - " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> - - +

+ 配置管理 +

+ +
+
+
+
+
+ 列表信息
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- --%> - - - - - -
编码编码对应值描述信息数据类型创建时间操作
${sysDictInfo.itemCode}${sysDictInfo.itemValue}${fns:abbr(sysDictInfo.itemDesc,15)}${fns:getDictLabel("SYS_DICT_ITM_TYPE",sysDictInfo.itemType,"0")} - - -
- 操作 - - -
- -
-
${page}
-
-
-
-
+
+
+
+ + + + +
+ + + + + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + :" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/> + + +
+
+ + + + + + + + + + + + + + + + +
配置内容配置编码描述信息数据类型叶子节点创建人员创建时间最近修改人员最近修改时间操作
${sysDictInfo.itemValue}${sysDictInfo.itemCode}${fns:abbr(sysDictInfo.itemDesc,15)}${fns:getDictLabel("SYS_DICT_ITM_TYPE",sysDictInfo.itemType,"0")}${fns:getDictLabel("SYS_YES_NO",sysDictInfo.isLeaf,"0")} + ${fns:getUserById(sysDictInfo.sysDictCreator.id).name} + + ${fns:getUserById(sysDictInfo.sysDictEditor.id).name} + +
+ 操作 + +
+
+ + +
+
+
+ +
+
+
${page}
\ No newline at end of file diff --git a/src/main/webapp/static/pages/css/dictInfo.css b/src/main/webapp/static/pages/css/dictInfo.css index 3e9220df3..bb853b89b 100644 --- a/src/main/webapp/static/pages/css/dictInfo.css +++ b/src/main/webapp/static/pages/css/dictInfo.css @@ -3,10 +3,18 @@ sysDict serviceDict ***/ .search-lable { -margin-right: 5px; -margin-left: 8px; +margin-right: 3px; +margin-left: 5px; +} + .itemType { + margin-right: 5px; +} + #itemType { + margin-right: 5px; +} +.input-medium { + margin-left: 8px; } - .input-medium { width: 155px !important; } @@ -19,3 +27,4 @@ margin-left: 8px; min-width: 50px; } + diff --git a/src/main/webapp/static/pages/scripts/dict.js b/src/main/webapp/static/pages/scripts/dict.js index 321cc231d..1d3b53f38 100644 --- a/src/main/webapp/static/pages/scripts/dict.js +++ b/src/main/webapp/static/pages/scripts/dict.js @@ -1,34 +1,2 @@ -$(document).ready(function() { - jQuery.validator.addMethod("codeNumber",function(value,element){ - return value>=0&value<=20000000},"请填写正确的数值"); - $("#name").focus(); - $("#searchForm").validate({ - //需验证 item_code item_value - rules: { - 'itemCode':{ - digits:true, - codeNumber:true - } - }, - messages: { - 'itemCode':{ - digits:'请填写整数值', - codeNumber:'请填写合适的数值(0~200000000)' - } - }, - - submitHandler: function(form){ - loading('正在处理,请稍等...'); - form.submit(); - }, - errorContainer: "#messageBox", - errorPlacement: function(error, element) { - $("#messageBox").text("输入有误,请先更正。"); - if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){ - error.appendTo(element.parent().parent()); - } else { - error.insertAfter(element); - } - } - }); - }); \ No newline at end of file + + \ No newline at end of file