回溯人员架构图接口开发
This commit is contained in:
parent
3191564961
commit
e20d1d57ce
|
|
@ -0,0 +1,26 @@
|
|||
package com.engine.organization.entity.danikor.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/01/31
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class ChartParam {
|
||||
private String id;
|
||||
private String pid;
|
||||
private String type;
|
||||
private String name;
|
||||
private String title;
|
||||
private String num;
|
||||
private String nTitle;
|
||||
private String oDisplay;
|
||||
private String subRCount;
|
||||
private String subTitle;
|
||||
private String hasChild;
|
||||
private String needPlus;
|
||||
private String cOnclick;
|
||||
private String sOnclick;
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ public class DanikorOrgChartManager {
|
|||
|
||||
this.cmd = StringUtil.vString(this.request.getParameter("cmd"));
|
||||
String sorgid = StringUtil.vString(this.request.getParameter("sorgid"));
|
||||
String syncDate = Util.null2String(this.request.getParameter("syncDate"));
|
||||
String syncDate = Util.null2String(this.request.getParameter("date"));
|
||||
if (StringUtils.isNotBlank(syncDate) && !DateUtil.getDate(new Date()).equals(syncDate)) {
|
||||
isCurrentDate = false;
|
||||
syncSearchSql = " and sync_date ='" + syncDate + "'";
|
||||
|
|
@ -221,7 +221,6 @@ public class DanikorOrgChartManager {
|
|||
"(case when t.supdepid != 0 and (select COUNT(id) from " + departmentTableName + " where id = t.supdepid)=0 then 0 else 1 end) as isExist" +
|
||||
hasNextSql + ",t.tlevel from " + departmentTableName + " t where " + checkSupdepid + appendSql + " and (t.canceled IS NULL OR t.canceled !='1') and (t.canceled IS NULL OR t.canceled !='1') " + syncSearchSql + " order by t.subcompanyid1 asc , t.supdepid asc , t.showorder asc, t.departmentname asc";
|
||||
this.rs.execute(this.sql);
|
||||
System.err.println(sql);
|
||||
rs.writeLog("appendDepartment:this.sql:" + this.sql);
|
||||
List<MOrgChart> dList = new ArrayList<>();
|
||||
MOrgChart bean;
|
||||
|
|
@ -367,7 +366,7 @@ public class DanikorOrgChartManager {
|
|||
|
||||
StringBuilder ids = new StringBuilder();
|
||||
|
||||
StringBuffer sql = new StringBuffer();
|
||||
StringBuilder sql = new StringBuilder();
|
||||
if ("oracle".equals(rs.getDBType())) {
|
||||
sql.append(" WITH allSub AS ( SELECT ID FROM ");
|
||||
sql.append(arg1).append(" start with id=").append(arg0).append(" connect by PRIOR id=").append(arg2);
|
||||
|
|
|
|||
|
|
@ -44,8 +44,18 @@ public interface DanikorResourceBackService {
|
|||
Map<String, Object> getSummaryData(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 组织架构图
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
String getOrgChartData(HttpServletRequest request, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 人员架构图
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
String getResourceChartData(Map<String, Object> params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.organization.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.api.browser.bean.SearchConditionGroup;
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.cloudstore.eccom.constant.WeaBoolAttr;
|
||||
|
|
@ -10,6 +11,7 @@ import com.engine.common.util.ServiceUtil;
|
|||
import com.engine.core.impl.Service;
|
||||
import com.engine.organization.component.OrganizationWeaTable;
|
||||
import com.engine.organization.entity.column.TableColumnPO;
|
||||
import com.engine.organization.entity.danikor.param.ChartParam;
|
||||
import com.engine.organization.entity.danikor.vo.ResourceBackVO;
|
||||
import com.engine.organization.manager.DanikorOrgChartManager;
|
||||
import com.engine.organization.mapper.danikor.DanikorResourceMapper;
|
||||
|
|
@ -21,6 +23,7 @@ import com.engine.organization.util.db.MapperProxyFactory;
|
|||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.common.StringUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.appdetach.AppDetachComInfo;
|
||||
import weaver.hrm.chart.domain.HrmChartSet;
|
||||
|
|
@ -234,9 +237,49 @@ public class DanikorResourceBackServiceImpl extends Service implements DanikorRe
|
|||
String showTitle = showName + SystemEnv.getHtmlLabelNames(chartManager.getLabelIndex() + ",523", user.getLanguage()) + showCount;
|
||||
|
||||
String defaultHref = weaver.general.GCONST.getContextPath() + "/spa/hrm/index_mobx.html#/main/hrm/orgStaff?_fromURL=HrmResourceSearchResult&from=hrmorg&virtualtype=" + sorgid;
|
||||
StringBuffer data = new StringBuffer("[");
|
||||
data.append("{\"id\":\"0\", \"pid\":\"\", \"type\":\"company\", \"name\":\"").append(StringUtil.vString(showName, 12)).append("\", \"title\":\"").append(showName).append("\", \"num\":\"" + showCount + "\", \"nTitle\":\"" + showTitle + "\", \"oDisplay\":\"none\", \"subRCount\":\"0\", \"subTitle\":\"\", \"cOnclick\":\"" + defaultHref + "\", \"sOnclick\":\"\"}").append(chartManager.getData());
|
||||
data.append("]");
|
||||
return data.toString();
|
||||
return "[" + "{\"id\":\"0\", \"pid\":\"\", \"type\":\"company\", \"name\":\"" + StringUtil.vString(showName, 12) + "\", \"title\":\"" + showName +
|
||||
"\", \"num\":\"" + showCount + "\", \"nTitle\":\"" + showTitle + "\", \"oDisplay\":\"none\", \"subRCount\":\"0\", \"subTitle\":\"\", \"cOnclick\":\"" + defaultHref + "\", \"sOnclick\":\"\"}" + chartManager.getData() +
|
||||
"]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResourceChartData(Map<String, Object> params) {
|
||||
String syncDate = Util.null2String(params.get("date"));
|
||||
List<ChartParam> chartParamList = new ArrayList<>();
|
||||
// 查询安全级别大于等于40的人员
|
||||
String sql;
|
||||
if (StringUtils.isNotBlank(syncDate) && !DateUtil.getDate(new Date()).equals(syncDate)) {
|
||||
sql = "select a.id, a.managerid , a.lastname , b.jobtitlename, ( select count(1) from HrmResource_back where managerid = a.id and sync_date = '" + syncDate + "') subordinate from HrmResource_back a left join HrmJobTitles b on a.jobtitle = b.id where sync_date = '" + syncDate + "'";
|
||||
} else {
|
||||
sql = "select a.id, a.managerid , a.lastname , b.jobtitlename, ( select count(1) from HrmResource where managerid = a.id) subordinate from HrmResource a left join HrmJobTitles b on a.jobtitle = b.id";
|
||||
}
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.execute(sql);
|
||||
while (rs.next()) {
|
||||
String lastName = rs.getString("lastname");
|
||||
String jobTitleName = rs.getString("jobtitlename");
|
||||
int subordinate = rs.getInt("subordinate");
|
||||
String managerId = rs.getString("managerid");
|
||||
ChartParam chartParam = new ChartParam();
|
||||
chartParam.setId(rs.getString("id"));
|
||||
chartParam.setPid(managerId);
|
||||
chartParam.setType(StringUtils.isBlank(managerId) ? "company" : "subcompany");
|
||||
chartParam.setName(StringUtils.isBlank(jobTitleName) ? lastName : lastName + "(" + jobTitleName + ")");
|
||||
chartParam.setTitle(chartParam.getName());
|
||||
chartParam.setNum("0");
|
||||
chartParam.setNTitle("");
|
||||
chartParam.setODisplay("none");
|
||||
chartParam.setSubRCount("0");
|
||||
chartParam.setSubTitle("");
|
||||
chartParam.setHasChild(subordinate > 0 ? "true" : "false");
|
||||
chartParam.setNeedPlus("false");
|
||||
chartParam.setCOnclick("/spa/hrm/index_mobx.html#/main/hrm/card/cardInfo/" + chartParam.getId());
|
||||
chartParam.setSOnclick("");
|
||||
chartParamList.add(chartParam);
|
||||
}
|
||||
|
||||
return JSON.toJSONString(chartParamList);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import weaver.hrm.User;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
|
|
@ -84,7 +85,7 @@ public class DanikorResourceBackController {
|
|||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@POST
|
||||
@Path("/getOrgChartData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ReturnResult getOrgChartData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
|
|
@ -96,4 +97,17 @@ public class DanikorResourceBackController {
|
|||
return ReturnResult.exceptionHandle(e);
|
||||
}
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getResourceChartData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ReturnResult getResourceChartData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||
return ReturnResult.successed(getDanikorResourceBackWrapper(user).getResourceChartData(map));
|
||||
} catch (Exception e) {
|
||||
return ReturnResult.exceptionHandle(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,4 +41,8 @@ public class DanikorResourceBackWrapper extends OrganizationWrapper {
|
|||
public String getOrgChartData(HttpServletRequest request, Map<String, Object> params) {
|
||||
return getDanikorResourceBackService(user).getOrgChartData(request, params);
|
||||
}
|
||||
|
||||
public String getResourceChartData(Map<String, Object> params) {
|
||||
return getDanikorResourceBackService(user).getResourceChartData(params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue