package cn.ksource.web.facade.impl; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.TreeNode; import cn.ksource.core.web.WebUtil; import cn.ksource.web.facade.BmglFacade; import cn.ksource.web.service.ZzjgService; @Service("bmglFacade") public class BmglFacadeImpl implements BmglFacade { @Autowired private BaseDao baseDao; @Autowired private ZzjgService zzjgService; @Override public TreeNode getBmTree() { return zzjgService.getZzjgTree(); } /** * 根据id得到某些部门 * @param ids * @return */ public List getDeptList(String ids){ return zzjgService.getDeptList(ids); } @Override public List queryBmYjList(HttpServletRequest request) { Map paramMap = new HashMap(); String selectSubSql = "SELECT * FROM GG_ZZJG WHERE ZT=1 ORDER BY CENGJ,SXH "; List cates = baseDao.queryForList(selectSubSql,paramMap); Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : cates) { String level = map.get("CENGJ").toString(); String id = map.get("ID").toString(); //一级树 if (level.equalsIgnoreCase("1")) { yjgnCache.put(id, map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (level.equalsIgnoreCase("2")) { String pId = map.get("SJBH").toString(); if(yjgnCache.containsKey(pId)) { Map yjgnMap = yjgnCache.get(pId); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(id, map); } continue; } //三级树 if (level.equalsIgnoreCase("3")) { if(null!=map.get("SJBH")){ String pId = map.get("SJBH").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("SJBH").toString()); List list = (List)ejgnMap.get("sjTree"); map.put("fjTree", new LinkedList()); list.add(map); sjgnCache.put(id, map); } } } } System.out.println(JsonUtil.list2Json(resultList)); return resultList; } @Override public List bmData(HttpServletRequest request) { Map paramMap = new HashMap(); String pId = request.getParameter("pId"); StringBuilder builder = new StringBuilder(" SELECT * FROM GG_ZZJG WHERE 1=1 "); if(StringUtil.notEmpty(pId)) { builder.append(" AND SJBH = :pId "); paramMap.put("pId", pId); } else { builder.append(" AND SJBH IS NULL "); } builder.append(" ORDER BY SXH"); List bms = baseDao.queryForList(builder.toString(),paramMap); return bms; } @Override public TreeNode getBmTree(HttpServletRequest request) { TreeNode root = new TreeNode("0","部门管理"); String sql = "select * from gg_zzjg where ZT=1 order by CENGJ asc,sxh asc"; List xtgnList = baseDao.queryForList(sql); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : xtgnList) { //一级功能 if (map.get("CENGJ").toString().equalsIgnoreCase("1")) { TreeNode yjTree = new TreeNode(map.get("ID").toString(),map.get("JGMC").toString()); root.addChild(yjTree); yjgnCache.put(ConvertUtil.obj2Str(map.get("ID")), yjTree); continue; } } return root; } @Override public String getBmNameById(String bmId) { String sql = new String("SELECT JGMC FROM GG_ZZJG WHERE ID = :bmId"); return baseDao.queryForString(sql,new SqlParameter("bmId",bmId)); } public List getBmtree() { String sql="SELECT * FROM GG_ZZJG WHERE ZT=1 ORDER BY CENGJ,SXH"; List categoryList = baseDao.queryForList(sql); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : categoryList) { String level = map.get("CENGJ").toString(); //一级树 if (level.equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (level.equalsIgnoreCase("2")) { Map yjgnMap = yjgnCache.get(map.get("SJBH").toString()); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } //三级树 if (level.equalsIgnoreCase("3")) { if(null!=map.get("SJBH")){ Map ejgnMap = ejgnCache.get(map.get("SJBH").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } return resultList; } }