You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
4.4 KiB
Java

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<String, Object> result = extracted(paramMap, JSON.parseObject(data, Map.class),userID);
return JSON.toJSONString(result);
}else {
return data;
}
}
private Map<String, Object> extracted(Map<String, Object> params, Map<String, Object> result, int userID) {
try {
// Map<String, Object> resultNew = result;
String type = Util.null2String(params.get("type"));
String id = Util.null2String(params.get("id"));
RecordSet recordSet = new RecordSet();
ArrayList<String> idlist = new ArrayList<>();
Map<String,String> 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<Map<String,Object>> departmentList = (List<Map<String, Object>>)(result.get("datas"));
List<Map<String,Object>> departmentListNew = new ArrayList<>();
new BaseBean().writeLog(departmentList.toString());
new BaseBean().writeLog(idlist.toString());
new BaseBean().writeLog(bmIdHrmMap.toString());
for (Map<String, Object> 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<String> 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;
}
}
}