diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index a229bb30..d587948f 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -130,7 +130,7 @@ public class JobBrowserService extends BrowserService { // 分权 DetachUtil detachUtil = new DetachUtil(user); if (detachUtil.isDETACH()) { - sqlWhere += " AND t.parent_comp in (" + detachUtil.getJclRoleLevels() + ")"; + sqlWhere += " AND t.ec_company in (" + detachUtil.getJclRoleLevels() + ")"; } return sqlWhere; } diff --git a/src/com/engine/organization/entity/danikor/param/ChartParam.java b/src/com/engine/organization/entity/danikor/param/ChartParam.java index 10db9255..d18e6454 100644 --- a/src/com/engine/organization/entity/danikor/param/ChartParam.java +++ b/src/com/engine/organization/entity/danikor/param/ChartParam.java @@ -1,6 +1,9 @@ package com.engine.organization.entity.danikor.param; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author:dxfeng @@ -8,6 +11,9 @@ import lombok.Data; * @version: 1.0 */ @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor public class ChartParam { private String id; private String pid; diff --git a/src/com/engine/organization/service/DanikorResourceBackService.java b/src/com/engine/organization/service/DanikorResourceBackService.java index 8e805aaf..c09246c7 100644 --- a/src/com/engine/organization/service/DanikorResourceBackService.java +++ b/src/com/engine/organization/service/DanikorResourceBackService.java @@ -52,6 +52,8 @@ public interface DanikorResourceBackService { */ String getOrgChartData(HttpServletRequest request, Map params); + List getOrgChartData(Map params); + /** * 人员架构图 * diff --git a/src/com/engine/organization/service/impl/DanikorResourceBackServiceImpl.java b/src/com/engine/organization/service/impl/DanikorResourceBackServiceImpl.java index 54f9f629..3b9ce7f5 100644 --- a/src/com/engine/organization/service/impl/DanikorResourceBackServiceImpl.java +++ b/src/com/engine/organization/service/impl/DanikorResourceBackServiceImpl.java @@ -244,6 +244,77 @@ public class DanikorResourceBackServiceImpl extends Service implements DanikorRe "]"; } + @Override + public List getOrgChartData(Map params) { + String syncDate = Util.null2String(params.get("date")); + List chartParamList = new ArrayList<>(); + String sorgid = Util.null2String((params.get("arg0"))); + String defaultHref = weaver.general.GCONST.getContextPath() + "/spa/hrm/index_mobx.html#/main/hrm/orgStaff?_fromURL=HrmResourceSearchResult&from=hrmorg&virtualtype=" + sorgid; + CompanyComInfo CompanyComInfo = new CompanyComInfo(); + + if (CompanyComInfo.next()) { + chartParamList.add(ChartParam.builder().id("0").pid("").type("company").name(CompanyComInfo.getCompanyname()).title(CompanyComInfo.getCompanyname()).num("0").nTitle("").oDisplay("none").subRCount("0").subTitle("").cOnclick(defaultHref).sOnclick("").build()); + } + + String subCompanySql; + String departmentSql; + if (StringUtils.isNotBlank(syncDate) && !DateUtil.getDate(new Date()).equals(syncDate)) { + subCompanySql = "select t.id, t.subcompanyname, t.supsubcomid, ( select distinct 1 as hasnext from hrmsubcompany_back s where (s.supsubcomid = t.id and (s.CANCELED IS NULL OR s.CANCELED != '1') and s.sync_date = '" + syncDate + "') ) as hassubnext, ( select distinct 1 as hasnext from HrmDepartment_back d where (d.subcompanyid1 = t.id and (d.CANCELED IS NULL OR d.CANCELED != '1') and d.sync_date = '" + syncDate + "')) as hasdeptnext, t.tlevel from hrmsubcompany_back t where (t.canceled IS NULL OR t.canceled != '1') and t.id != t.supsubcomid and tlevel <= 10000 and sync_date = '" + syncDate + "' order by t.supsubcomid, t.showorder, t.subcompanyname"; + departmentSql = "select t.id, t.departmentname, t.subcompanyid1, isnull(t.supdepid,0) as supdepid, (case when t.supdepid != 0 and ( select COUNT(id) from hrmdepartment_back where id = t.supdepid and sync_date = '" + syncDate + "')= 0 then 0 else 1 end) as isExist, ( select distinct 1 as hasnext from hrmdepartment_back d where d.supdepid = t.id and (CANCELED IS NULL OR CANCELED != '1') and sync_date = '" + syncDate + "') as hasnext, t.tlevel from hrmdepartment_back t where t.id != ISNULL(t.supdepid, 0) and tlevel <= 10000 and (t.canceled IS NULL OR t.canceled != '1') and (t.canceled IS NULL OR t.canceled != '1') and sync_date = '" + syncDate + "' order by t.subcompanyid1 asc , t.supdepid asc , t.showorder asc, t.departmentname asc"; + } else { + subCompanySql = "select t.id,t.subcompanyname,t.supsubcomid,(select distinct 1 as hasnext from hrmsubcompany s where (s.supsubcomid=t.id and (s.CANCELED IS NULL OR s.CANCELED !='1')) ) as hassubnext,(select distinct 1 as hasnext from HrmDepartment d where (d.subcompanyid1=t.id and (d.CANCELED IS NULL OR d.CANCELED !='1')) ) as hasdeptnext,t.tlevel from hrmsubcompany t where (t.canceled IS NULL OR t.canceled !='1') and t.id != t.supsubcomid and tlevel <= 10000 order by t.supsubcomid,t.showorder,t.subcompanyname"; + departmentSql = "select t.id,t.departmentname,t.subcompanyid1,isnull(t.supdepid,0) as supdepid,(case when t.supdepid != 0 and (select COUNT(id) from hrmdepartment where id = t.supdepid)=0 then 0 else 1 end) as isExist,(select distinct 1 as hasnext from hrmdepartment d where d.supdepid=t.id and (CANCELED IS NULL OR CANCELED !='1')) as hasnext,t.tlevel from hrmdepartment t where t.id != ISNULL(t.supdepid,0) and tlevel <= 10000 and (t.canceled IS NULL OR t.canceled !='1') order by t.subcompanyid1 asc , t.supdepid asc , t.showorder asc, t.departmentname asc"; + } + + RecordSet rs = new RecordSet(); + //rs.execute(subCompanySql); + //while (rs.next()) { + // int subHasNext = rs.getInt("hassubnext"); + // int deptHasNext = rs.getInt("hasdeptnext"); + // ChartParam chartParam = new ChartParam(); + // chartParam.setId(rs.getString("id")); + // chartParam.setPid(rs.getString("supsubcomid")); + // chartParam.setType("subcompany"); + // chartParam.setName(rs.getString("subcompanyname")); + // chartParam.setTitle(chartParam.getName()); + // chartParam.setNum("0"); + // chartParam.setNTitle(""); + // chartParam.setODisplay("none"); + // chartParam.setSubRCount("0"); + // chartParam.setSubTitle(""); + // chartParam.setHasChild(subHasNext == 1 || deptHasNext == 1 ? "true" : "false"); + // chartParam.setNeedPlus("false"); + // chartParam.setCOnclick(""); + // chartParam.setSOnclick(""); + // chartParamList.add(chartParam); + //} + + // 处理部门数据 + rs.execute(departmentSql); + while (rs.next()) { + int hasNext = rs.getInt("hasnext"); + ChartParam chartParam = new ChartParam(); + chartParam.setId(rs.getString("id")); + chartParam.setPid(rs.getString("supdepid")); + chartParam.setType("dept"); + chartParam.setName(rs.getString("departmentname")); + chartParam.setTitle(chartParam.getName()); + chartParam.setNum("0"); + chartParam.setNTitle(""); + chartParam.setODisplay("none"); + chartParam.setSubRCount("0"); + chartParam.setSubTitle(""); + chartParam.setHasChild(hasNext == 1 ? "true" : "false"); + chartParam.setNeedPlus("false"); + chartParam.setCOnclick(""); + chartParam.setSOnclick(""); + chartParamList.add(chartParam); + } + + return chartParamList; + + } + @Override public List getResourceChartData(Map params) { String syncDate = Util.null2String(params.get("date")); diff --git a/src/com/engine/organization/web/DanikorResourceBackController.java b/src/com/engine/organization/web/DanikorResourceBackController.java index 437ca3c5..9897bcf2 100644 --- a/src/com/engine/organization/web/DanikorResourceBackController.java +++ b/src/com/engine/organization/web/DanikorResourceBackController.java @@ -98,7 +98,7 @@ public class DanikorResourceBackController { try { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); - String orgChartData = getDanikorResourceBackWrapper(user).getOrgChartData(request, map); + String orgChartData = getDanikorResourceBackWrapper(user).getOrgChartData(map); returnMap.put("data", orgChartData); returnMap.put("status", "1"); } catch (Exception e) { diff --git a/src/com/engine/organization/wrapper/DanikorResourceBackWrapper.java b/src/com/engine/organization/wrapper/DanikorResourceBackWrapper.java index 8baad644..3ac782f2 100644 --- a/src/com/engine/organization/wrapper/DanikorResourceBackWrapper.java +++ b/src/com/engine/organization/wrapper/DanikorResourceBackWrapper.java @@ -1,5 +1,6 @@ package com.engine.organization.wrapper; +import com.alibaba.fastjson.JSON; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.danikor.param.ChartParam; import com.engine.organization.service.DanikorResourceBackService; @@ -8,7 +9,6 @@ import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import weaver.hrm.User; -import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -39,8 +39,8 @@ public class DanikorResourceBackWrapper extends OrganizationWrapper { return getDanikorResourceBackService(user).getSummaryData(params); } - public String getOrgChartData(HttpServletRequest request, Map params) { - return getDanikorResourceBackService(user).getOrgChartData(request, params); + public String getOrgChartData(Map params) { + return JSON.toJSONString(getDanikorResourceBackService(user).getOrgChartData(params)); } public List getResourceChartData(Map params) {