package cn.ksource.web.facade.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.beans.AC_ROLE; import cn.ksource.beans.GG_ZZJG; 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.web.facade.XtpzFacade; import cn.ksource.web.service.UserService; @Service("xtpzFacade") public class XtpzFacadeImpl implements XtpzFacade { @Resource(name="baseDao") private BaseDao baseDao; @Autowired private UserService userService; public void insertSingleZb(String row_id,String column_id,String value,int type){ String delSql = "DELETE FROM REPORT_EXCEPTION WHERE ROW_ID=:ROW_ID and COLUMN_ID=:COLUMN_ID"; String sql = "INSERT INTO REPORT_EXCEPTION(ID,ROW_ID,COLUMN_ID,INPUT_VALUE,TYPE) " + "VALUES(:ID,:ROW_ID,:COLUMN_ID,:INPUT_VALUE,:TYPE)"; SqlParameter param = new SqlParameter("ID",StringUtil.getUUID()); param.addValue("ROW_ID", row_id).addValue("COLUMN_ID",column_id).addValue("INPUT_VALUE", value) .addValue("TYPE", type); baseDao.execute(delSql, param); baseDao.execute(sql, param); } public Map getZBYCMap(){ String sql = "select * from REPORT_EXCEPTION"; List list = baseDao.queryForList(sql); Map map = new HashMap(); for (Map tem : list) { map.put(tem.get("ROW_ID")+"_"+tem.get("COLUMN_ID"), tem.get("INPUT_VALUE")); } return map; } public String getAllJsListForJson(){ List list = baseDao.queryForList("SELECT * FROM AC_ROLE ORDER BY SXH ASC"); return JsonUtil.list2Json(list); } public int delRole(String roleid) { updateRolePermission(roleid); new AC_ROLE(roleid).deleteById(); return 1; } @Override public List getQxList(String roleid) { String sql = "SELECT ID,GNMC,TYPE,SXH,SMALL_IMAGE,SJBH FROM GG_XTGN ORDER BY TYPE ASC,SXH ASC"; Map roleMap = new HashMap(); if (StringUtils.isNotBlank(roleid)) { List roleQxList = baseDao.queryForList("SELECT GNBH FROM AC_ROLE_QX WHERE JSBH =:jsbh",new SqlParameter("jsbh",roleid)); for (Map map2 : roleQxList) { roleMap.put(map2.get("GNBH"), ""); } } List xtgnList = baseDao.queryForList(sql, new SqlParameter()); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : xtgnList) { if (roleMap.containsKey(map.get("ID"))) { map.put("CHECKED", true); } //一级功能 if (map.get("TYPE").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("GNLIST", ejgnList); resultList.add(map); continue; } if (map.get("TYPE").toString().equalsIgnoreCase("2")) { Map yjgnMap = yjgnCache.get(map.get("SJBH").toString()); List list = (List)yjgnMap.get("GNLIST"); map.put("GNLIST", new LinkedList()); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } if (map.get("TYPE").toString().equalsIgnoreCase("3")) { Map ejgnMap = ejgnCache.get(map.get("SJBH").toString()); List list = (List)ejgnMap.get("GNLIST"); map.put("GNLIST", new LinkedList()); list.add(map); sjgnCache.put(map.get("ID").toString(), map); continue; } if (map.get("TYPE").toString().equalsIgnoreCase("4")) { Map sjgnMap = sjgnCache.get(map.get("SJBH").toString()); List list = (List)sjgnMap.get("GNLIST"); list.add(map); } } return resultList; } public void doQxInRoleSubmit(String[] yjgnbhs,String[] ejgnbhs,String[] sjgnbhs,String[] sijgnbhs,String roleid){ baseDao.execute("delete from AC_ROLE_QX where JSBH=:JSBH", new SqlParameter("JSBH",roleid)); List paramList = new ArrayList(); String sql = "INSERT INTO AC_ROLE_QX (ID,JSBH,GNBH) VALUES(:ID,:JSBH,:GNBH)"; if (yjgnbhs != null) { for (String gnbh : yjgnbhs) { paramList.add(new SqlParameter("ID",StringUtil.getUUID()) .addValue("JSBH", roleid) .addValue("GNBH", gnbh) ); } } if (ejgnbhs != null) { for (String gnbh : ejgnbhs) { paramList.add(new SqlParameter("ID",StringUtil.getUUID()) .addValue("JSBH", roleid) .addValue("GNBH", gnbh) ); } } if (sjgnbhs != null) { for (String gnbh : sjgnbhs) { paramList.add(new SqlParameter("ID",StringUtil.getUUID()) .addValue("JSBH", roleid) .addValue("GNBH", gnbh) ); } } if (sijgnbhs != null) { for (String gnbh : sijgnbhs) { paramList.add(new SqlParameter("ID",StringUtil.getUUID()) .addValue("JSBH", roleid) .addValue("GNBH", gnbh) ); } } baseDao.executeBatch(sql, paramList); updateRolePermission(roleid); } private void updateRolePermission(String roleid) { List list = baseDao.queryForList("SELECT * FROM AC_USER_REF_ROLE WHERE JSBH=:roleid",new SqlParameter("roleid",roleid)); for (Map map : list) { String userid = map.get("YHBH").toString(); /*userService.updateUserPermission(userid);*/ } } @Override public Map getUserInRole(String roleid) { //所有用户 String userSql = "SELECT ID,ZSXM,SSBMBH FROM GG_USER WHERE ZT=1 ORDER BY BMPX ASC"; List allUserList = baseDao.queryForList(userSql); Map roleMap = new HashMap(); if (StringUtils.isNotBlank(roleid)) { List roleQxList = baseDao.queryForList("SELECT YHBH FROM AC_USER_REF_ROLE WHERE JSBH =:jsbh",new SqlParameter("jsbh",roleid)); for (Map map2 : roleQxList) { roleMap.put(map2.get("YHBH"), ""); } } //如果人员在角色中,则增加CHECKED属性 for (Map map3 : allUserList) { if (roleMap.containsKey(map3.get("ID"))) { map3.put("CHECKED", true); } } //所有部门 String sql = "SELECT * FROM GG_ZZJG ORDER BY CENGJ ASC,SXH ASC"; List bmList = baseDao.queryForList(sql, new SqlParameter()); List resultList = new LinkedList(); Map yjbmCache = new HashMap(); Map ejbmCache = new HashMap(); Map sjbmCache = new HashMap(); for (Map map : bmList) { List userList = new LinkedList(); map.put("USERLIST", userList); for (Map userMap : allUserList) { if (userMap.get("SSBMBH").toString().equalsIgnoreCase(map.get("ID").toString())) { userList.add(userMap); } } //一级功能 if (map.get("CENGJ").toString().equalsIgnoreCase("1")) { yjbmCache.put(map.get("ID").toString(), map); List ejbmList = new LinkedList(); map.put("BMLIST", ejbmList); resultList.add(map); continue; } if (map.get("CENGJ").toString().equalsIgnoreCase("2")) { Map yjbmMap = yjbmCache.get(map.get("SJBH").toString()); List list = (List)yjbmMap.get("BMLIST"); map.put("BMLIST", new LinkedList()); list.add(map); ejbmCache.put(map.get("ID").toString(), map); continue; } if (map.get("CENGJ").toString().equalsIgnoreCase("3")) { Map ejbmMap = ejbmCache.get(map.get("SJBH").toString()); List list = (List)ejbmMap.get("BMLIST"); map.put("BMLIST", new LinkedList()); list.add(map); sjbmCache.put(map.get("ID").toString(), map); continue; } if (map.get("CENGJ").toString().equalsIgnoreCase("4")) { Map sjbmMap = sjbmCache.get(map.get("SJBH").toString()); List list = (List)sjbmMap.get("BMLIST"); list.add(map); } } Map resultMap = new HashMap(); resultMap.put("BMLIST", resultList); return resultMap; } public void doUserInRoleSubmit(String[] userids,String roleid){ baseDao.execute("DELETE FROM AC_USER_REF_ROLE WHERE JSBH =:JSBH", new SqlParameter("JSBH",roleid)); if (userids != null && userids.length > 0) { String sql = "insert into AC_USER_REF_ROLE(ID,JSBH,YHBH) VALUES(:ID,:JSBH,:YHBH)"; List paramList = new ArrayList(); for (String userid : userids) { paramList.add(new SqlParameter("ID",StringUtil.getUUID()) .addValue("JSBH", roleid) .addValue("YHBH", userid) ); } baseDao.executeBatch(sql, paramList); /*for (String userid : userids) { userService.updateUserPermission(userid); }*/ } } public boolean delBm(String bmbh){ String sql = "SELECT COUNT(*) FROM GG_USER WHERE ZT=1 ANd SSBMBH=:bmbh"; int count = baseDao.queryForInteger(sql,new SqlParameter("bmbh",bmbh)); if (count > 0) { return false; } new GG_ZZJG(bmbh).setZt(2).update(); return true; } @Override public List getBmList(String sjbh) { String sql = "SELECT * FROM GG_ZZJG WHERE ZT=1 "; if (StringUtils.isNotBlank(sjbh) && !sjbh.toString().equalsIgnoreCase("0")) { sql += " AND SJBH=:sjbh "; } else { sql += " AND SJBH IS NULL "; } sql += " ORDER BY SXH ASC "; List list = baseDao.queryForList(sql,new SqlParameter("sjbh",sjbh)); return list; } @Override public TreeNode getBmTree() { 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, new SqlParameter()); 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; } if (map.get("CENGJ").toString().equalsIgnoreCase("2")) { TreeNode ejTree = new TreeNode(map.get("ID").toString(),map.get("JGMC").toString()); yjgnCache.get(ConvertUtil.obj2Str(map.get("SJBH"))).addChild(ejTree); ejgnCache.put(ConvertUtil.obj2Str(map.get("ID")), ejTree); continue; } if (map.get("CENGJ").toString().equalsIgnoreCase("3")) { TreeNode sjTree = new TreeNode(map.get("ID").toString(),map.get("JGMC").toString()); ejgnCache.get(ConvertUtil.obj2Str(map.get("SJBH"))).addChild(sjTree); sjgnCache.put(map.get("ID").toString(), sjTree); } /*if (map.get("CENGJ").toString().equalsIgnoreCase("4")) { TreeNode sijTree = new TreeNode(map.get("ID").toString(),map.get("JGMC").toString()); sjgnCache.get(ConvertUtil.obj2Str(map.get("SJBH"))).addChild(sijTree); }*/ } return root; } }