组织架构图搜索条件优化
This commit is contained in:
parent
0148d99314
commit
e8d6f2ea73
|
|
@ -0,0 +1,34 @@
|
|||
package com.engine.organization.entity.chart;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/06/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class CompanyTreePO {
|
||||
private String id;
|
||||
private String pId;
|
||||
private String value;
|
||||
private String title;
|
||||
private boolean isLeaf;
|
||||
|
||||
public boolean getIsLeaf() {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from hrmsubcompany where (canceled is null or canceled != '1') and supsubcomid = ?",id);
|
||||
return rs.next();
|
||||
}
|
||||
|
||||
public String getpId() {
|
||||
return pId;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,6 +21,14 @@ public interface OrgChartService {
|
|||
*/
|
||||
Map<String, Object> getOptionCondition(Map<String, Object> request2Map, User user);
|
||||
|
||||
/**
|
||||
* 分部树下级数据
|
||||
* @param params [params]
|
||||
* @return java.util.Map<java.lang.String,java.lang.Object>
|
||||
*/
|
||||
Map<String, Object> getSubCompanyTree(Map<String, Object> params);
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 组织架构图
|
||||
* @Author: liang.cheng
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.engine.organization.service.impl;
|
|||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.organization.entity.chart.CompanyTreePO;
|
||||
import com.engine.organization.entity.map.JclOrgMap;
|
||||
import com.engine.organization.entity.scheme.po.GradePO;
|
||||
import com.engine.organization.entity.scheme.po.LevelPO;
|
||||
|
|
@ -46,13 +47,13 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
List<Map<String, Object>> fclasslist = new ArrayList<>();
|
||||
Map<String, Object> defaultItem = new HashMap<>();
|
||||
int fkey = 0;
|
||||
defaultItem.put("key",fkey++);
|
||||
defaultItem.put("key", fkey++);
|
||||
defaultItem.put("id", "0");
|
||||
defaultItem.put("companyname", "行政维度");
|
||||
fclasslist.add(defaultItem);
|
||||
while (rs.next()) {
|
||||
Map<String, Object> item = new HashMap<>();
|
||||
item.put("key",fkey++);
|
||||
item.put("key", fkey++);
|
||||
item.put("id", rs.getString("id"));
|
||||
item.put("companyname", rs.getString("companyname"));
|
||||
fclasslist.add(item);
|
||||
|
|
@ -80,9 +81,40 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
item.setFname(rs.getString("fname"));
|
||||
companySet.add(item);
|
||||
}
|
||||
|
||||
List<CompanyTreePO> companyTree = new ArrayList<>();
|
||||
sql = "select id as 'id', id as 'value', subcompanyname as 'title', supsubcomid as 'pId' from hrmsubcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '0'";
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build());
|
||||
}
|
||||
result.put("api_status", true);
|
||||
result.put("fclasslist", fclasslist);
|
||||
result.put("companylist", companySet);
|
||||
result.put("companyTree", companyTree);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getSubCompanyTree(Map<String, Object> params) {
|
||||
Map<String, Object> result = new HashMap<>(2);
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
List<CompanyTreePO> companyTree = new ArrayList<>();
|
||||
String subcompany = Util.null2String(params.get("subcompany"));
|
||||
if (StringUtils.isBlank(subcompany)) {
|
||||
subcompany = "0";
|
||||
}
|
||||
String fclass = Util.null2String(params.get("fclass"));
|
||||
String sql = "select id as 'id', id as 'value', subcompanyname as 'title', supsubcomid as 'pId' from hrmsubcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'";
|
||||
if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) {
|
||||
sql = "select id as 'id', id as 'value', subcompanyname as 'title', supsubcomid as 'pId' from hrmsubcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'";
|
||||
}
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build());
|
||||
}
|
||||
result.put("companyTree", companyTree);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -100,7 +132,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
String whereSql = " where 1 = 1 ";
|
||||
if (DBType.isOracle()) {
|
||||
whereSql += " and ((fdatebegin <= to_date('" + date + "','yyyy-MM-DD') and fdateend >= to_date('" + date + "','yyyy-MM-DD')) or (fdatebegin <= to_date('" + date + "','yyyy-MM-DD') and fdateend is null )) ";
|
||||
}else {
|
||||
} else {
|
||||
whereSql += " and ((fdatebegin <= '" + date + "' and fdateend >= '" + date + "') or (fdatebegin <= '" + date + "' and fdateend is null )) ";
|
||||
}
|
||||
whereSql += " and fclass = " + fclass + " ";
|
||||
|
|
@ -227,7 +259,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
String whereSql = " where 1 = 1 ";
|
||||
if (DBType.isOracle()) {
|
||||
whereSql += " and ((t.fdatebegin <= to_date('" + date + "','yyyy-MM-DD') and t.fdateend >= to_date('" + date + "','yyyy-MM-DD')) or (t.fdatebegin <= to_date('" + date + "','yyyy-MM-DD') and t.fdateend is null )) ";
|
||||
}else {
|
||||
} else {
|
||||
whereSql += " and ((t.fdatebegin <= '" + date + "' and t.fdateend >= '" + date + "') or (t.fdatebegin <= '" + date + "' and t.fdateend is null )) ";
|
||||
}
|
||||
whereSql += " and t.fclass = " + fclass + " ";
|
||||
|
|
|
|||
|
|
@ -47,6 +47,25 @@ public class OrgChartController {
|
|||
return JSONObject.toJSONString(apidatas);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getSubCompanyTree")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getSubCompanyTree(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
Map<String, Object> apidatas = new HashMap<>();
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
//实例化Service 并调用业务类处理
|
||||
apidatas = getOrgChartWrapper(user).getSubCompanyTree(ParamUtil.request2Map(request), user);
|
||||
} catch (Exception e) {
|
||||
//异常处理
|
||||
e.printStackTrace();
|
||||
apidatas.put("api_status", false);
|
||||
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
|
||||
}
|
||||
//数据转换
|
||||
return JSONObject.toJSONString(apidatas);
|
||||
}
|
||||
|
||||
/**
|
||||
* 组织架构数据
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@ public class OrgChartWrapper extends Service {
|
|||
return getOrgChartService(user).getOptionCondition(request2Map, user);
|
||||
}
|
||||
|
||||
public Map<String, Object> getSubCompanyTree(Map<String, Object> request2Map, User user) {
|
||||
return getOrgChartService(user).getSubCompanyTree(request2Map);
|
||||
}
|
||||
|
||||
public Map<String, Object> getCompanyData(Map<String, Object> request2Map, User user) {
|
||||
return getOrgChartService(user).getCompanyData(request2Map, user);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue