diff --git a/src/main/java/com/nis/domain/basics/ServiceDictInfo.java b/src/main/java/com/nis/domain/basics/ServiceDictInfo.java index 596d15bcd..4d801df15 100644 --- a/src/main/java/com/nis/domain/basics/ServiceDictInfo.java +++ b/src/main/java/com/nis/domain/basics/ServiceDictInfo.java @@ -20,7 +20,7 @@ public class ServiceDictInfo extends BaseEntity{ private Integer serviceDictId; //service_dict_id 字典ID int N 主键,自增 private Integer itemType; //item_type 数据类型 int N 1:分类 2:性质 3:标签 - private Integer itemCode; //item_code编码 int N + private String itemCode; //item_code编码 varchar(64) N private String itemValue; //item_value 编码对应值 varchar2(64) N private String itemDesc; //item_desc 描述信息 varcahr2(128) Y private ServiceDictInfo parent; //parent_id 父ID number(9) N 无父属性,默认填0 @@ -30,7 +30,8 @@ public class ServiceDictInfo extends BaseEntity{ private Date createTime; //create_time 配置时间 date N private SysUser serviceDictEditor; //editor_id 修改人员 int Y 取自sys_user.id private Date editTime; //edit_time 修改时间 date Y - private List ChildrenList = new ArrayList();//字列表 + private Integer levelNo; //层级 + private List ChildrenList = new ArrayList();//子列表 private Date beginDate; // 开始日期 private Date endDate; // 结束日期 @@ -47,12 +48,18 @@ public class ServiceDictInfo extends BaseEntity{ public void setItemType(Integer itemType) { this.itemType = itemType; } - public Integer getItemCode() { + public String getItemCode() { return itemCode; } - public void setItemCode(Integer itemCode) { + public void setItemCode(String itemCode) { this.itemCode = itemCode; } + public Integer getLevelNo() { + return levelNo; + } + public void setLevelNo(Integer levelNo) { + this.levelNo = levelNo; + } public String getItemValue() { return itemValue; } @@ -175,5 +182,4 @@ public class ServiceDictInfo extends BaseEntity{ return listTemp.size(); } - } diff --git a/src/main/java/com/nis/domain/basics/SysDictInfo.java b/src/main/java/com/nis/domain/basics/SysDictInfo.java index c30a440f6..98107fd4f 100644 --- a/src/main/java/com/nis/domain/basics/SysDictInfo.java +++ b/src/main/java/com/nis/domain/basics/SysDictInfo.java @@ -18,7 +18,7 @@ public class SysDictInfo extends BaseEntity{ private Integer sysDictId; //service_dict_id 字典ID int N 主键,自增 private Integer itemType; //item_type 数据类型 int N 1:分类 2:性质 3:标签 - private Integer itemCode; //item_code编码 int N + private String itemCode; //item_code编码 varchar N private String itemValue; //item_value 编码对应值 varchar2(64) N private String itemDesc; //item_desc 描述信息 varcahr2(128) Y private SysDictInfo parent; //parent_id 父ID number(9) N 无父属性,默认填0 @@ -28,6 +28,7 @@ public class SysDictInfo extends BaseEntity{ private Date createTime; //create_time 配置时间 date N private SysUser sysDictEditor; //editor_id 修改人员 int Y 取自sys_user.id private Date editTime; //edit_time 修改时间 date Y + private Integer levelNo; //层级 private List ChildrenList = new ArrayList();//字列表 private Date beginDate; // 开始日期 @@ -46,10 +47,10 @@ public class SysDictInfo extends BaseEntity{ public void setItemType(Integer itemType) { this.itemType = itemType; } - public Integer getItemCode() { + public String getItemCode() { return itemCode; } - public void setItemCode(Integer itemCode) { + public void setItemCode(String itemCode) { this.itemCode = itemCode; } public String getItemValue() { @@ -124,6 +125,12 @@ public class SysDictInfo extends BaseEntity{ public void setEndDate(Date endDate) { this.endDate = endDate; } + public Integer getLevelNo() { + return levelNo; + } + public void setLevelNo(Integer levelNo) { + this.levelNo = levelNo; + } @JsonIgnore public static void sortList(List list, List sourcelist, Integer parentId, boolean cascade){ for (int i=0; i allList = serviceDictInfoService.findAllDictSearchList(serviceDictInfo,intArr); + + //查出条件查询顶层分页数据 + Page page = serviceDictInfoService.findDictTopSearchList(new Page(request, response), serviceDictInfo,intArr); + model.addAttribute("page", page); + + //处理数据,保留顶层中的所有下层数据 + List list = Lists.newArrayList(); + //取出主键优化处理 + List tempList = Lists.newArrayList(); + for(ServiceDictInfo se:page.getList()){ + if(se!=null&&se.getServiceDictId()!=null){ + tempList.add(se.getServiceDictId()); + } + } + //删除所有重复 + for(int i=allList.size()-1;i>=0;i--){ + ServiceDictInfo se = allList.get(i); + if(se!=null&&se.getServiceDictId()!=null){ + if(tempList.contains(se.getServiceDictId())){ + allList.remove(se); + } + } + } + + allList.addAll(page.getList()); + ServiceDictInfo.sortList(list,allList,0,true); + model.addAttribute("itType", itType); model.addAttribute("intArr", Arrays.asList(intArr)); - Page page = serviceDictInfoService.findDictSearchList(new Page(request, response), serviceDictInfo,intArr); - model.addAttribute("page", page); - + model.addAttribute("list", list); return "/basics/serviceDictInfoSearchList"; } @@ -180,10 +213,10 @@ public class ServiceDictInfoController extends BaseController { try { serviceDictInfoService.saveOrUpdate(serviceDictInfo); - addMessage(redirectAttributes, "保存配置成功"); + addMessage(redirectAttributes, "保存成功"); } catch (Exception e) { e.printStackTrace(); - addMessage(redirectAttributes, "保存配置失败!"); + addMessage(redirectAttributes, "保存失败!"); } return "redirect:" + adminPath + "/basics/serviceDictInfo/list?itType="+itType; @@ -202,10 +235,10 @@ public class ServiceDictInfoController extends BaseController { public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes,String itType) { try { serviceDictInfoService.deleteDict(serviceDictInfo); - addMessage(redirectAttributes, "删除配置成功"); + addMessage(redirectAttributes, "删除成功"); } catch (Exception e) { e.printStackTrace(); - addMessage(redirectAttributes, "删除配置失败!"); + addMessage(redirectAttributes, "删除失败!"); } return "redirect:" + adminPath + "/basics/serviceDictInfo/list?itType="+itType; } @@ -266,7 +299,7 @@ public class ServiceDictInfoController extends BaseController { return true; } if(!StringUtil.isEmpty(itemCode)){ - list = serviceDictInfoService.findByItemCode(Integer.valueOf(itemCode)); + list = serviceDictInfoService.findByItemCode(itemCode); } if(list==null||list.size()==0){ return true; @@ -373,4 +406,31 @@ public class ServiceDictInfoController extends BaseController { return false; } + /** + * 校验层级关系 + * @return + */ + @ResponseBody + @RequestMapping(value = "isLevelTotalSure") + public boolean isLevelTotalSure(Integer parentId,Integer currentId) { + if(parentId==-1||parentId==0){ + return true; + }else{ + ServiceDictInfo p = serviceDictInfoService.getDictById(parentId); + if(currentId==null){ + if(p.getLevelNo()<4){ + return true; + } + }else{ + ServiceDictInfo c = serviceDictInfoService.getDictById(currentId); + if((p.getLevelNo()+c.getLevelNo())<5){ + return true; + } + } + } + return false; + } + + + } diff --git a/src/main/java/com/nis/web/controller/basics/SysDictInfoController.java b/src/main/java/com/nis/web/controller/basics/SysDictInfoController.java index ef5541ecb..46d5d712f 100644 --- a/src/main/java/com/nis/web/controller/basics/SysDictInfoController.java +++ b/src/main/java/com/nis/web/controller/basics/SysDictInfoController.java @@ -112,12 +112,11 @@ public class SysDictInfoController extends BaseController { */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"searchList"}) - public String searchList(String itType, SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) { + public String searchList(String itType, SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model, Integer selectedType) { if(StringUtils.strIsBlank(sysDictInfo.getItemValue()) - &&sysDictInfo.getItemCode()==null + &&StringUtils.strIsBlank(sysDictInfo.getItemCode()) &&sysDictInfo.getBeginDate()==null &&sysDictInfo.getEndDate()==null){ - Integer selectedType = null; if(sysDictInfo.getItemType()!=null){ selectedType = sysDictInfo.getItemType(); return "redirect:"+ adminPath + "/basics/sysDictInfo/list?itType="+itType+"&selectedType="+selectedType; @@ -129,11 +128,46 @@ public class SysDictInfoController extends BaseController { for(int i=0;i allList = sysDictInfoService.findAllDictSearchList(sysDictInfo,intArr); + + //查出条件查询顶层分页数据 + Page page = sysDictInfoService.findDictTopSearchList(new Page(request, response), sysDictInfo,intArr); + model.addAttribute("page", page); + + //处理数据,保留顶层中的所有下层数据 + List list = Lists.newArrayList(); + //取出主键优化处理 + List tempList = Lists.newArrayList(); + for(SysDictInfo se:page.getList()){ + if(se!=null&&se.getSysDictId()!=null){ + tempList.add(se.getSysDictId()); + } + } + //删除所有重复 + for(int i=allList.size()-1;i>=0;i--){ + SysDictInfo se = allList.get(i); + System.out.println("山前顺序"+se.getSysDictId()); + if(se!=null&&se.getSysDictId()!=null){ + if(tempList.contains(se.getSysDictId())){ + allList.remove(se); + } + } + } + + + allList.addAll(page.getList()); + SysDictInfo.sortList(list,allList,0,true); + model.addAttribute("itType", itType); model.addAttribute("intArr", Arrays.asList(intArr)); - Page page = sysDictInfoService.findDictSearchList(new Page(request, response), sysDictInfo,intArr); - model.addAttribute("page", page); - + model.addAttribute("list", list); return "/basics/sysDictInfoSearchList"; } @@ -187,10 +221,10 @@ public class SysDictInfoController extends BaseController { try { sysDictInfoService.saveOrUpdate(sysDictInfo); - addMessage(redirectAttributes, "保存配置成功"); + addMessage(redirectAttributes, "保存成功"); } catch (Exception e) { e.printStackTrace(); - addMessage(redirectAttributes, "保存配置失败!"); + addMessage(redirectAttributes, "保存失败!"); } return "redirect:" + adminPath + "/basics/sysDictInfo/list?itType="+itType; @@ -206,10 +240,10 @@ public class SysDictInfoController extends BaseController { public String delete(SysDictInfo sysDictInfo, RedirectAttributes redirectAttributes, String itType) { try { sysDictInfoService.deleteDict(sysDictInfo); - addMessage(redirectAttributes, "删除配置成功"); + addMessage(redirectAttributes, "删除成功"); } catch (Exception e) { e.printStackTrace(); - addMessage(redirectAttributes, "删除配置失败!"); + addMessage(redirectAttributes, "删除失败!"); } return "redirect:" + adminPath + "/basics/sysDictInfo/list?itType="+itType; } @@ -245,10 +279,6 @@ public class SysDictInfoController extends BaseController { 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); } @@ -276,7 +306,7 @@ public class SysDictInfoController extends BaseController { return true; } if(!StringUtil.isEmpty(itemCode)){ - list = sysDictInfoService.findByItemCode(Integer.valueOf(itemCode)); + list = sysDictInfoService.findByItemCode(itemCode); } if(list==null||list.size()==0){ return true; @@ -385,6 +415,30 @@ public class SysDictInfoController extends BaseController { } return false; } + /** + * 校验层级关系 + * @return + */ + @ResponseBody + @RequestMapping(value = "isLevelTotalSure") + public boolean isLevelTotalSure(Integer parentId,Integer currentId) { + if(parentId==-1||parentId==0){ + return true; + }else{ + SysDictInfo p = sysDictInfoService.getDictById(parentId); + if(currentId==null){ + if(p.getLevelNo()<4){ + return true; + } + }else{ + SysDictInfo c = sysDictInfoService.getDictById(currentId); + if((p.getLevelNo()+c.getLevelNo())<5){ + return true; + } + } + } + return false; + } } diff --git a/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.java b/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.java index 828aff23a..8516bd740 100644 --- a/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.java +++ b/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.java @@ -39,17 +39,29 @@ public interface ServiceDictInfoDao extends CrudDao { */ List getDictByParentId(Integer parentId); /** - * 查询字典列表(含条件查询(==)) + * 查询条件查询顶层字典列表(含条件查询(==)) * @param serviceDictInfo * @return */ - List findDictSearchList(ServiceDictInfo serviceDictInfo); + List findDictTopSearchList(ServiceDictInfo serviceDictInfo); /** - * 查询字典列表(含条件查询(!=)) + * 查询条件查询顶层字典列表(含条件查询(!=)) * @param serviceDictInfo * @return */ - List findDictSearchListN(ServiceDictInfo serviceDictInfo); + List findDictTopSearchListN(ServiceDictInfo serviceDictInfo); + /** + * 查询条件查询所有字典列表(含条件查询(==)) + * @param serviceDictInfo + * @return + */ + List findAllDictSearchList(ServiceDictInfo serviceDictInfo); + /** + * 查询条件查询所有字典列表(含条件查询(!=)) + * @param serviceDictInfo + * @return + */ + List findAllDictSearchListN(ServiceDictInfo serviceDictInfo); /** @@ -57,6 +69,11 @@ public interface ServiceDictInfoDao extends CrudDao { * @param serviceDictInfo */ void insertDict(ServiceDictInfo serviceDictInfo); + /** + * 保存层级 + * @param serviceDictInfo + */ + void updateLevelNo(ServiceDictInfo serviceDictInfo); /** * 根据主键查询字典详细信息 @@ -69,7 +86,7 @@ public interface ServiceDictInfoDao extends CrudDao { * @param itemCode * @return */ - List findByItemCode(Integer itemCode); + List findByItemCode(String itemCode); /** * 查询itemCode最大值 * @return diff --git a/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.xml b/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.xml index d783f0415..6a319b3b7 100644 --- a/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/ServiceDictInfoDao.xml @@ -5,10 +5,11 @@ - + + @@ -46,6 +47,7 @@ s.item_desc AS itemDesc, s.parent_id AS "parent.serviceDictId", s.is_leaf AS isLeaf, + s.level_no AS levelNo, s.is_valid AS isValid, s.creator_id AS "serviceDictCreator.id", s.create_time AS createTime, @@ -137,7 +139,7 @@ FROM service_dict_info s - WHERE s.is_valid =1 + WHERE s.is_valid =1 AND s.parent_id != 0 @@ -146,72 +148,151 @@ FROM service_dict_info s WHERE s.is_valid = 1 AND s.is_leaf = 0 AND item_type = #{itemType} + ORDER BY s.create_time desc - - - - - - + SELECT * FROM service_dict_info s WHERE s.is_valid=1 - AND item_code like '%${itemCode}%' + AND s.item_code like '%${itemCode}%' - AND item_value like '%${itemValue}%' + AND s.item_value like '%${itemValue}%' - AND item_type != ${itemType} + AND s.item_type = ${itemType} + + + AND s.create_time >= #{beginDate,jdbcType=TIMESTAMP} + + + AND s.create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + + AND s.parent_id not in ( + SELECT s2.service_dict_id FROM service_dict_info s2 WHERE s2.is_valid=1 + + AND s2.item_code like '%${itemCode}%' + + + AND s2.item_value like '%${itemValue}%' + + + AND s2.item_type = ${itemType} + + + AND s2.create_time >= #{beginDate,jdbcType=TIMESTAMP} + + + AND s2.create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + + ) + + + ORDER BY s.${page.orderBy} + + + ORDER BY s.create_time desc + + + + + + + + + + + + + + + + + + @@ -246,10 +327,10 @@ - insert into service_dict_info (item_type, item_code, item_value, item_desc, parent_id, is_leaf, is_valid, creator_id, create_time, editor_id, edit_time) + insert into service_dict_info (item_type, item_code, item_value, item_desc, parent_id, is_leaf, level_no, is_valid, creator_id, create_time, editor_id, edit_time) values ( #{itemType,jdbcType=INTEGER}, #{itemCode,jdbcType=INTEGER}, #{itemValue,jdbcType=VARCHAR}, #{itemDesc,jdbcType=VARCHAR}, - #{parent.serviceDictId,jdbcType=INTEGER}, #{isLeaf,jdbcType=INTEGER}, #{isValid,jdbcType=INTEGER}, + #{parent.serviceDictId,jdbcType=INTEGER}, #{isLeaf,jdbcType=INTEGER},#{levelNo,jdbcType=VARCHAR}, #{isValid,jdbcType=INTEGER}, #{serviceDictCreator.id,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{serviceDictEditor.id,jdbcType=INTEGER}, #{editTime,jdbcType=TIMESTAMP}) @@ -266,11 +347,19 @@ s.item_desc = #{itemDesc}, s.parent_id = #{parent.serviceDictId}, s.is_leaf = #{isLeaf}, + s.level_no = #{levelNo}, s.creator_id = #{serviceDictCreator.id}, s.editor_id = #{serviceDictEditor.id}, s.edit_time = #{editTime} WHERE s.service_dict_id = #{serviceDictId} + + + + UPDATE service_dict_info s SET + s.level_no = #{levelNo} + WHERE s.service_dict_id = #{serviceDictId} + @@ -296,7 +385,5 @@ - - \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java index af3dcaca9..755964083 100644 --- a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java +++ b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java @@ -24,13 +24,18 @@ public interface SysDictInfoDao extends CrudDao { * @return */ List findAllDictList(SysDictInfo sysDictInfo); - /** - * 查询字典列表(含条件查询(==) + * 查询条件查询顶层字典列表(含条件查询(==)) * @param sysDictInfo * @return */ - List findDictSearchList(SysDictInfo sysDictInfo); + List findDictTopSearchList(SysDictInfo sysDictInfo); + /** + * 查询字典列表(含条件查询(==)) + * @param sysDictInfo + * @return + */ + List findAllDictSearchList(SysDictInfo sysDictInfo); @@ -60,7 +65,7 @@ public interface SysDictInfoDao extends CrudDao { * @param itemCode * @return */ - List findByItemCode(Integer itemCode); + List findByItemCode(String itemCode); /** * 根据上级id选出所有下级 @@ -74,6 +79,11 @@ public interface SysDictInfoDao extends CrudDao { * @return */ Integer findMaxItemCode(); + /** + * 保存层级 + * @param sysDictInfo + */ + void updateLevelNo(SysDictInfo sysDictInfo); diff --git a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml index 06473de7a..997881f4a 100644 --- a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml @@ -5,10 +5,11 @@ - + + @@ -37,6 +38,7 @@ s.item_desc AS itemDesc, s.parent_id AS "parent.sysDictId", s.is_leaf AS isLeaf, + s.level_no AS levelNo, s.is_valid AS isValid, s.creator_id AS "sysDictCreator.id", s.create_time AS createTime, @@ -88,12 +90,60 @@ WHERE s.is_valid =1 - - + SELECT * FROM sys_dict_info s WHERE s.is_valid=1 + + + AND s.item_code like '%${itemCode}%' + + + AND s.item_value like '%${itemValue}%' + + + AND s.item_type = ${itemType} + + + AND s.create_time >= #{beginDate,jdbcType=TIMESTAMP} + + + AND s.create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + + AND s.parent_id not in ( + SELECT s2.sys_dict_id FROM sys_dict_info s2 WHERE s2.is_valid=1 + + AND s2.item_code like '%${itemCode}%' + + + AND s2.item_value like '%${itemValue}%' + + + AND s2.item_type = ${itemType} + + + AND s2.create_time >= #{beginDate,jdbcType=TIMESTAMP} + + + AND s2.create_time <= DATE_ADD(#{endDate,jdbcType=TIMESTAMP},INTERVAL 1 DAY) + + ) + + + ORDER BY s.${page.orderBy} + + + ORDER BY s.create_time desc + + + + + + + @@ -131,10 +170,10 @@ - insert into sys_dict_info (item_type, item_code, item_value, item_desc, parent_id, is_leaf, is_valid, creator_id, create_time, editor_id, edit_time) - values ( #{itemType,jdbcType=INTEGER}, #{itemCode,jdbcType=INTEGER}, + insert into sys_dict_info (item_type, item_code, item_value, item_desc, parent_id, is_leaf,level_no, is_valid, creator_id, create_time, editor_id, edit_time) + values ( #{itemType,jdbcType=INTEGER}, #{itemCode,jdbcType=VARCHAR}, #{itemValue,jdbcType=VARCHAR}, #{itemDesc,jdbcType=VARCHAR}, - #{parent.sysDictId,jdbcType=INTEGER}, #{isLeaf,jdbcType=INTEGER}, #{isValid,jdbcType=INTEGER}, + #{parent.sysDictId,jdbcType=INTEGER}, #{isLeaf,jdbcType=INTEGER}, #{levelNo,jdbcType=INTEGER}, #{isValid,jdbcType=INTEGER}, #{sysDictCreator.id,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{sysDictEditor.id,jdbcType=INTEGER}, #{editTime,jdbcType=TIMESTAMP}) @@ -159,6 +198,7 @@ s.item_desc = #{itemDesc}, s.parent_id = #{parent.sysDictId}, s.is_leaf = #{isLeaf}, + s.level_no = #{levelNo}, s.creator_id = #{sysDictCreator.id}, s.editor_id = #{sysDictEditor.id}, s.edit_time = #{editTime} @@ -191,5 +231,12 @@ + + + + UPDATE sys_dict_info s SET + s.level_no = #{levelNo} + WHERE s.sys_dict_id = #{sysDictId} + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/basics/ServiceDictInfoService.java b/src/main/java/com/nis/web/service/basics/ServiceDictInfoService.java index 6dd6c470a..6b31fc6c2 100644 --- a/src/main/java/com/nis/web/service/basics/ServiceDictInfoService.java +++ b/src/main/java/com/nis/web/service/basics/ServiceDictInfoService.java @@ -91,47 +91,172 @@ public class ServiceDictInfoService extends BaseService{ return list; } /** - * 查询字典分页(含条件查询) + * 查询条件查询顶层分页(含条件查询,考虑排序接入可行性) * @param page * @param serviceDictInfo * @param itType * @return */ - public Page findDictSearchList(Page page, ServiceDictInfo serviceDictInfo, Integer[] itType) { + public Page findDictTopSearchList(Page page, ServiceDictInfo serviceDictInfo, Integer[] itType) { // 设置分页参数 - serviceDictInfo.setPage(page); + serviceDictInfo.setPage(page); + //根据条件查询符合数据 + List allList = Lists.newArrayList(); + List list = Lists.newArrayList(); + Integer tempType = 0; + if(serviceDictInfo.getItemType()!=null){ + tempType = serviceDictInfo.getItemType(); + } + if(itType.length==1){ + serviceDictInfo.setItemType(itType[0]); + allList = serviceDictInfoDao.findDictTopSearchList(serviceDictInfo); + } + if(itType.length==2){ + if(tempType!=0){ + allList = serviceDictInfoDao.findDictTopSearchList(serviceDictInfo); + }else{ + List tempIntegerList = Lists.newArrayList(); + tempIntegerList.add(1);tempIntegerList.add(2);tempIntegerList.add(3); + //Map map = DictUtils.getDictOption("SERVICE_DICT_ITM_TYPE"); + if(tempIntegerList.contains(itType[0])){ + tempIntegerList.remove(itType[0]); + } + if(tempIntegerList.contains(itType[1])){ + tempIntegerList.remove(itType[1]); + } + serviceDictInfo.setItemType(tempIntegerList.get(0)); + allList = serviceDictInfoDao.findDictTopSearchListN(serviceDictInfo); + } + + } + ServiceDictInfo tempSe = new ServiceDictInfo(); + tempSe.setServiceDictId(0); + for(ServiceDictInfo se:allList){ + se.setParent(tempSe); + } + page.setList(allList); + + /*//根据条件查询符合数据 + List allList = Lists.newArrayList(); + List tempList = Lists.newArrayList(); + List list = Lists.newArrayList(); + List listChild = Lists.newArrayList(); + List listParent = Lists.newArrayList(); + Integer tempType = 0; + Integer total = 0; + Integer pageCount = 0; + Integer lostCount = 0; + if(serviceDictInfo.getItemType()!=null){ + tempType = serviceDictInfo.getItemType(); + } + if(itType.length==1){ + serviceDictInfo.setItemType(itType[0]); + allList = serviceDictInfoDao.findDictSearchList(serviceDictInfo); + } + if(itType.length==2){ + if(tempType!=0){ + allList = serviceDictInfoDao.findDictSearchList(serviceDictInfo); + }else{ + List tempIntegerList = Lists.newArrayList(); + tempIntegerList.add(1);tempIntegerList.add(2);tempIntegerList.add(3); + //Map map = DictUtils.getDictOption("SERVICE_DICT_ITM_TYPE"); + if(tempIntegerList.contains(itType[0])){ + tempIntegerList.remove(itType[0]); + } + if(tempIntegerList.contains(itType[1])){ + tempIntegerList.remove(itType[1]); + } + serviceDictInfo.setItemType(tempIntegerList.get(0)); + allList = serviceDictInfoDao.findDictSearchListN(serviceDictInfo); + } + + } + + //处理数据 + //page.list中有多少个不是page.list中的顶层(其上级在page.list) + ServiceDictInfo tempSe = new ServiceDictInfo(); + tempSe.setServiceDictId(0); + //取出主键优化处理 + for(ServiceDictInfo se:allList){ + if(se!=null&&se.getServiceDictId()!=null){ + tempList.add(se.getServiceDictId()); + } + } + + for(ServiceDictInfo se:allList){ + if(se!=null&&se.getParent()!=null&&se.getParent().getServiceDictId()!=null){ + //ServiceDictInfo temp = serviceDictInfoDao.getDictById(se.getParent().getServiceDictId()); + if(tempList.contains(se.getParent().getServiceDictId())){ + listChild.add(se); + lostCount+=lostCount; + }else{ + se.setParent(tempSe); + listParent.add(se); + } + } + } + + //确定总页数 + total = allList.size() - lostCount; + pageCount = total%page.getPageSize()==0?total%page.getPageSize():(total%page.getPageSize()+1); + if(pageCount==0){ + pageCount=1; + } + //取出所有的顶层 + //获取分页 每页数量pageSize、、当前页数pageNo (排序,,,) 每页第一个(pageNo-1)*pageSize+1 最后一个pageNo*pageSize + List parentShow = Lists.newArrayList(); + for(int i=0;i=((page.getPageNo()-1)*page.getPageSize())&&i findAllDictSearchList(ServiceDictInfo serviceDictInfo,Integer[] itType){ 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); + serviceDictInfo.setItemType(itType[0]); + list = serviceDictInfoDao.findAllDictSearchList(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); - } - + if(tempType!=0){ + list = serviceDictInfoDao.findAllDictSearchList(serviceDictInfo); + }else{ + List tempIntegerList = Lists.newArrayList(); + tempIntegerList.add(1);tempIntegerList.add(2);tempIntegerList.add(3); + //Map map = DictUtils.getDictOption("SERVICE_DICT_ITM_TYPE"); + if(tempIntegerList.contains(itType[0])){ + tempIntegerList.remove(itType[0]); + } + if(tempIntegerList.contains(itType[1])){ + tempIntegerList.remove(itType[1]); + } + serviceDictInfo.setItemType(tempIntegerList.get(0)); + list = serviceDictInfoDao.findAllDictSearchListN(serviceDictInfo); + } + } + if(tempType!=0){ + serviceDictInfo.setItemType(tempType); + }else{ + serviceDictInfo.setItemType(null); } - - page.setList(list); - return page; + return list; } @@ -157,7 +282,7 @@ public class ServiceDictInfoService extends BaseService{ } /** - * 新增或修改业务字典表 + * 新增或修改业务字典表(添加层级改变) * @param serviceDictInfo */ public void saveOrUpdate(ServiceDictInfo serviceDictInfo) { @@ -168,12 +293,16 @@ public class ServiceDictInfoService extends BaseService{ ){ ServiceDictInfo parent = new ServiceDictInfo(); parent.setServiceDictId(0); + parent.setLevelNo(0); serviceDictInfo.setParent(parent); } + if(serviceDictInfo.getParent().getServiceDictId()!=0){ + ServiceDictInfo parent = serviceDictInfoDao.getDictById(serviceDictInfo.getParent().getServiceDictId()); + serviceDictInfo.setParent(parent); + } SysUser user = UserUtils.getUser(); if(StringUtil.isEmpty(serviceDictInfo.getServiceDictId())) {//新增 - Integer maxCode = serviceDictInfoDao.findMaxItemCode(); - serviceDictInfo.setItemCode(maxCode==null?1:(maxCode+1)); + serviceDictInfo.setLevelNo(serviceDictInfo.getParent().getLevelNo()+1); serviceDictInfo.setIsValid(1); serviceDictInfo.setServiceDictCreator(user); serviceDictInfo.setCreateTime(new Date()); @@ -182,12 +311,41 @@ public class ServiceDictInfoService extends BaseService{ serviceDictInfoDao.insertDict(serviceDictInfo); } else {//修改 + List resultList = Lists.newArrayList(); + List list = serviceDictInfoDao.getDictByParentId(serviceDictInfo.getServiceDictId()); + + //处理层级 + if(serviceDictInfo.getParent().getServiceDictId()==0){ + serviceDictInfo.setLevelNo(1); + //处理子集 + childLevel(serviceDictInfo,list,resultList); + }else{ + serviceDictInfo.setLevelNo(serviceDictInfo.getParent().getLevelNo()+1); + //处理子集 + childLevel(serviceDictInfo,list,resultList); + } serviceDictInfo.setServiceDictEditor(user); serviceDictInfo.setEditTime(new Date()); + for(ServiceDictInfo sc:resultList){ + serviceDictInfoDao.updateLevelNo(sc); + } serviceDictInfoDao.update(serviceDictInfo); } } + + + //处理子集层级 + + public void childLevel(ServiceDictInfo serviceDictInfo, List list,List resultList){ + for(ServiceDictInfo se:list){ + se.setLevelNo(serviceDictInfo.getLevelNo()+1); + resultList.add(se); + List newList = serviceDictInfoDao.getDictByParentId(se.getServiceDictId()); + childLevel(se,newList,resultList); + } + + } /** * 删除 @@ -209,7 +367,7 @@ public class ServiceDictInfoService extends BaseService{ /** * 根据itemCode查出对象集合 */ - public List findByItemCode(Integer itemCode){ + public List findByItemCode(String itemCode){ return serviceDictInfoDao.findByItemCode(itemCode); } diff --git a/src/main/java/com/nis/web/service/basics/SysDictInfoService.java b/src/main/java/com/nis/web/service/basics/SysDictInfoService.java index 8dbfcf48b..edd784bea 100644 --- a/src/main/java/com/nis/web/service/basics/SysDictInfoService.java +++ b/src/main/java/com/nis/web/service/basics/SysDictInfoService.java @@ -54,28 +54,43 @@ public class SysDictInfoService extends BaseService{ } /** - * 查询字典分页(含条件查询) + * 条件查询所有数据 * @param page * @param sysDictInfo * @param intArr * @return */ - public Page findDictSearchList(Page page, SysDictInfo sysDictInfo, Integer[] itType) { - // 设置分页参数 - sysDictInfo.setPage(page); - + public List findAllDictSearchList(SysDictInfo sysDictInfo, Integer[] itType) { + List list = Lists.newArrayList(); - /*Integer tempType = 0; - if(sysDictInfo.getItemType()!=null){ - tempType = sysDictInfo.getItemType(); - }*/ - //查出分页 - list = sysDictInfoDao.findDictSearchList(sysDictInfo); - page.setList(list); + + list = sysDictInfoDao.findAllDictSearchList(sysDictInfo); + return list; + } + /** + * 查询条件查询顶层分页(含条件查询,考虑排序接入可行性) + * @param page + * @param sysDictInfo + * @param itType + * @return + */ + public Page findDictTopSearchList(Page page, SysDictInfo sysDictInfo, Integer[] itType) { + // 设置分页参数 + sysDictInfo.setPage(page); + //根据条件查询符合数据 + List allList = Lists.newArrayList(); + List list = Lists.newArrayList(); + Integer tempType = 0; + allList = sysDictInfoDao.findDictTopSearchList(sysDictInfo); + SysDictInfo tempSe = new SysDictInfo(); + tempSe.setSysDictId(0); + for(SysDictInfo se:allList){ + se.setParent(tempSe); + } + page.setList(allList); + return page; } - - /** @@ -99,14 +114,16 @@ public class SysDictInfoService extends BaseService{ ){ SysDictInfo parent = new SysDictInfo(); parent.setSysDictId(0); + parent.setLevelNo(0); sysDictInfo.setParent(parent); } + if(sysDictInfo.getParent().getSysDictId()!=0){ + SysDictInfo parent = sysDictInfoDao.getDictById(sysDictInfo.getParent().getSysDictId()); + sysDictInfo.setParent(parent); + } SysUser user = UserUtils.getUser(); if(StringUtil.isEmpty(sysDictInfo.getSysDictId())) {//新增 - if(sysDictInfo.getItemCode()==null){ - Integer maxCode = sysDictInfoDao.findMaxItemCode(); - sysDictInfo.setItemCode(maxCode==null?1:(maxCode+1)); - } + sysDictInfo.setLevelNo(sysDictInfo.getParent().getLevelNo()+1); sysDictInfo.setIsValid(1); sysDictInfo.setSysDictCreator(user); sysDictInfo.setCreateTime(new Date()); @@ -117,12 +134,43 @@ public class SysDictInfoService extends BaseService{ } else {//修改 + List resultList = Lists.newArrayList(); + List list = sysDictInfoDao.getDictByParentId(sysDictInfo.getSysDictId()); + + //处理层级 + if(sysDictInfo.getParent().getSysDictId()==0){ + sysDictInfo.setLevelNo(1); + //处理子集 + childLevel(sysDictInfo,list,resultList); + }else{ + sysDictInfo.setLevelNo(sysDictInfo.getParent().getLevelNo()+1); + //处理子集 + childLevel(sysDictInfo,list,resultList); + } + + sysDictInfo.setSysDictEditor(user); sysDictInfo.setEditTime(new Date()); + for(SysDictInfo sc:resultList){ + sysDictInfoDao.updateLevelNo(sc); + } sysDictInfoDao.update(sysDictInfo); } } + + //处理子集层级 + + public void childLevel(SysDictInfo sysDictInfo, List list,List resultList){ + for(SysDictInfo se:list){ + se.setLevelNo(sysDictInfo.getLevelNo()+1); + resultList.add(se); + List newList = sysDictInfoDao.getDictByParentId(se.getSysDictId()); + childLevel(se,newList,resultList); + } + + } + /** * 删除 @@ -161,7 +209,7 @@ public class SysDictInfoService extends BaseService{ * @param itemCode * @return */ - public List findByItemCode(Integer itemCode) { + public List findByItemCode(String itemCode) { return sysDictInfoDao.findByItemCode(itemCode); } /** diff --git a/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp b/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp index c9319dd98..3bed7e4ea 100644 --- a/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp +++ b/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp @@ -22,11 +22,33 @@ $("#itemType").find("option[value='"+data+"']").attr("selected",true); } }); + + + } $(document).ready(function() { - //校验itemCode数值 - jQuery.validator.addMethod("codeNumber",function(value,element){ - return value>=0&value<=20000000},"请填写正确的数值"); + //层级校验 + jQuery.validator.addMethod("isLevelNoSure",function(value,element){ + var flag2=false; + $.ajax({ + type:'post', + async:true, + cache:false, + url:'${ctx}/basics/serviceDictInfo/isLevelTotalSure', + data:{parentId:$("#serviceDictInfoId").val(),currentId:'${serviceDictInfo.serviceDictId}'}, + success:function(data){ + flag2=data; + /* if(data){ + $("#uploadLevel").css("display","none"); + }else{ + $("#uploadLevel").css("display","block"); + } */ + } + }); + return flag2 + },"选择此配置上下层级数将超过四级"); + + //类型选择与上级是否冲突 jQuery.validator.addMethod("typeSame",function(value,element){ var flag=false; $.ajax({ @@ -85,11 +107,17 @@ },"该配置上级为根节点,不得设为叶子节点"); - $("#name").focus(); $("#inputForm").validate({ //需验证 item_code item_value rules: { + 'parent.itemValue':{ + remote:'${ctx}/basics/serviceDictInfo/isLevelTotalSure?parentId='+$("#serviceDictInfoId").val()+'¤tId=${serviceDictInfo.serviceDictId}' + }, + 'itemCode':{ + required:true, + remote:'${ctx}/basics/serviceDictInfo/isItemCodeRepeat?oldItemCode=${serviceDictInfo.itemCode}' + }, 'itemValue':{ required:true }, @@ -104,6 +132,13 @@ }, messages: { + 'parent.itemValue':{ + remote:"选择此配置上下层级数将超过四级" + }, + 'itemCode':{ + required:'请填写配置编码', + remote:'该配置编码已存在' + }, 'itemValue':{ required:'编码对应值必须填写' }, @@ -178,6 +213,7 @@
+
@@ -196,12 +232,12 @@
- <%--
+
-
--%> +
diff --git a/src/main/webapp/WEB-INF/views/basics/serviceDictInfoSearchList.jsp b/src/main/webapp/WEB-INF/views/basics/serviceDictInfoSearchList.jsp index b9c9c7b92..38e3d78d2 100644 --- a/src/main/webapp/WEB-INF/views/basics/serviceDictInfoSearchList.jsp +++ b/src/main/webapp/WEB-INF/views/basics/serviceDictInfoSearchList.jsp @@ -62,8 +62,8 @@
- +
- +
- <%--
+
-
--%> +
diff --git a/src/main/webapp/WEB-INF/views/basics/sysDictList.jsp b/src/main/webapp/WEB-INF/views/basics/sysDictList.jsp index 3437e428c..33cfd9a18 100644 --- a/src/main/webapp/WEB-INF/views/basics/sysDictList.jsp +++ b/src/main/webapp/WEB-INF/views/basics/sysDictList.jsp @@ -62,8 +62,8 @@
- +