已完成:

①字典列表,配置编码移到配置内容前一列
    ②系统字典与业务字典的item_code字段int类型改为varchar(64)
    ③业务字典和系统字典表增加一个字段,level_no,层级(新增、修改已加入)
    ④完成条件分页查询(折叠逻辑与无条件查询一致,)
    ⑤优化分页查询代码(预留介入条件排序),
  
  待完善:修改、删除时下层级递归处理待添加事务性及测试(待手动抛异常重点测试)
                      生效范围测试尚未完毕,待处理
         jquery Validate验证层级关系受<sys:treeselect>影响,待处理
                      样式调整:分页样式(尚未调整),
This commit is contained in:
zhangshilin
2018-03-08 20:30:01 +08:00
parent fb383e8cf1
commit 67645d21ca
15 changed files with 717 additions and 185 deletions

View File

@@ -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<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
}
if(sysDictInfo.getItemType()!=null){
model.addAttribute("selectedType", sysDictInfo.getItemType());
}else{
model.addAttribute("selectedType", selectedType);
sysDictInfo.setItemType(selectedType);
}
//先查出条件查询所有数据(注意顺序)
List<SysDictInfo> allList = sysDictInfoService.findAllDictSearchList(sysDictInfo,intArr);
//查出条件查询顶层分页数据
Page<SysDictInfo> page = sysDictInfoService.findDictTopSearchList(new Page<SysDictInfo>(request, response), sysDictInfo,intArr);
model.addAttribute("page", page);
//处理数据,保留顶层中的所有下层数据
List<SysDictInfo> list = Lists.newArrayList();
//取出主键优化处理
List<Integer> 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<SysDictInfo> page = sysDictInfoService.findDictSearchList(new Page<SysDictInfo>(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;
}
}