package com.customization.hrm.dept.impl; import com.alibaba.fastjson.JSON; import com.wbi.util.ParamUtil; import com.wbi.util.StringUtil; import com.weaverboot.frame.ioc.anno.classAnno.WeaIocReplaceComponent; import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceAfter; import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaAfterReplaceParam; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.*; @WeaIocReplaceComponent public class Proxy { @WeaReplaceAfter( value = "/api/hrm/base/getHrmSearchTree", order = 1, description = "qwer" ) public String after(WeaAfterReplaceParam weaAfterReplaceParam) { HttpServletRequest request = weaAfterReplaceParam.getRequest(); HttpServletResponse response = weaAfterReplaceParam.getResponse(); String data = weaAfterReplaceParam.getData(); Map paramMap = ParamUtil.request2Map(request); String type = Util.null2String(paramMap.get("type")); String id = Util.null2String(paramMap.get("id")); User user = HrmUserVarify.getUser(request, response); int userID = user.getUID(); new BaseBean().writeLog("type===" + type); if (!StringUtil.isBlank(type)){ Map result = extracted(paramMap, JSON.parseObject(data, Map.class),userID); return JSON.toJSONString(result); }else { return data; } } private Map extracted(Map params, Map result, int userID) { try { // Map resultNew = result; String type = Util.null2String(params.get("type")); String id = Util.null2String(params.get("id")); RecordSet recordSet = new RecordSet(); ArrayList idlist = new ArrayList<>(); Map bmIdHrmMap = new HashMap<>(); if ("1".equals(type)) { recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where fb = ?",id); while (recordSet.next()){ String bm = Util.null2String(recordSet.getString("BM")); String kjry = Util.null2String(recordSet.getString("KJRY")); // String fb = Util.null2String(recordSet.getString("FB")); idlist.add(bm); bmIdHrmMap.put(bm,kjry); } } if ("2".equals(type)) { recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?",id); while (recordSet.next()){ String bm = Util.null2String(recordSet.getString("BM")); String kjry = Util.null2String(recordSet.getString("KJRY")); // String fb = Util.null2String(recordSet.getString("FB")); idlist.add(bm); bmIdHrmMap.put(bm,kjry); } } List> departmentList = (List>)(result.get("datas")); List> departmentListNew = new ArrayList<>(); new BaseBean().writeLog(departmentList.toString()); new BaseBean().writeLog(idlist.toString()); new BaseBean().writeLog(bmIdHrmMap.toString()); for (Map department : departmentList){ String deptid = department.get("id").toString() ; // deptid = deptid.substring(1, deptid.length()); if (!idlist.contains(deptid)){ departmentListNew.add(department); }else { String kjry = bmIdHrmMap.get(deptid); List kjrylist = Arrays.asList(kjry.split(",")); if (kjrylist.contains(userID+"")){ departmentListNew.add(department); } } } new BaseBean().writeLog(departmentListNew.toString()); result.put("datas",departmentListNew); new BaseBean().writeLog(result.toString()); return result; }catch (Exception e){ new BaseBean().writeLog(e.getMessage()); e.printStackTrace(); return result; } } }