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<Map> 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<Map> 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<Map> 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<Map> 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<Map> xtgnList = baseDao.queryForList(sql, new SqlParameter());
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
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<Map> ejgnList = new LinkedList<Map>();
|
map.put("GNLIST", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
if (map.get("TYPE").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("SJBH").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("GNLIST");
|
map.put("GNLIST", new LinkedList<Map>());
|
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<Map> list = (List<Map>)ejgnMap.get("GNLIST");
|
map.put("GNLIST", new LinkedList<Map>());
|
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<Map> list = (List<Map>)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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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<Map> 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<Map> allUserList = baseDao.queryForList(userSql);
|
|
Map roleMap = new HashMap();
|
if (StringUtils.isNotBlank(roleid)) {
|
List<Map> 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<Map> bmList = baseDao.queryForList(sql, new SqlParameter());
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjbmCache = new HashMap<String, Map>();
|
Map<String, Map> ejbmCache = new HashMap<String, Map>();
|
Map<String, Map> sjbmCache = new HashMap<String, Map>();
|
|
for (Map map : bmList) {
|
|
List<Map> userList = new LinkedList<Map>();
|
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<Map> ejbmList = new LinkedList<Map>();
|
map.put("BMLIST", ejbmList);
|
resultList.add(map);
|
continue;
|
}
|
if (map.get("CENGJ").toString().equalsIgnoreCase("2")) {
|
Map yjbmMap = yjbmCache.get(map.get("SJBH").toString());
|
List<Map> list = (List<Map>)yjbmMap.get("BMLIST");
|
map.put("BMLIST", new LinkedList<Map>());
|
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<Map> list = (List<Map>)ejbmMap.get("BMLIST");
|
map.put("BMLIST", new LinkedList<Map>());
|
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<Map> list = (List<Map>)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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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<Map> 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<Map> 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<Map> xtgnList = baseDao.queryForList(sql, new SqlParameter());
|
Map<String, TreeNode> yjgnCache = new HashMap<String, TreeNode>();
|
Map<String, TreeNode> ejgnCache = new HashMap<String, TreeNode>();
|
Map<String, TreeNode> sjgnCache = new HashMap<String, TreeNode>();
|
|
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;
|
}
|
|
}
|