回溯人员架构图接口开发

danikor
dxfeng 2 years ago
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…
Cancel
Save