|
|
@ -4,16 +4,22 @@ import com.engine.common.util.ServiceUtil;
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
import com.engine.organization.entity.chart.ChartPO;
|
|
|
|
import com.engine.organization.entity.chart.ChartPO;
|
|
|
|
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
|
|
|
|
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
|
|
|
|
|
|
|
|
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
|
|
|
|
import com.engine.organization.service.ChartService;
|
|
|
|
import com.engine.organization.service.ChartService;
|
|
|
|
|
|
|
|
import com.engine.organization.service.OrgChartService;
|
|
|
|
import com.engine.organization.util.HasRightUtil;
|
|
|
|
import com.engine.organization.util.HasRightUtil;
|
|
|
|
import com.engine.organization.util.OrganizationAssert;
|
|
|
|
import com.engine.organization.util.OrganizationAssert;
|
|
|
|
|
|
|
|
import com.engine.organization.util.OrganizationDateUtil;
|
|
|
|
import com.engine.organization.util.db.MapperProxyFactory;
|
|
|
|
import com.engine.organization.util.db.MapperProxyFactory;
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
|
|
|
import weaver.conn.RecordSetTrans;
|
|
|
|
import weaver.general.Util;
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
import weaver.hrm.resource.ResourceComInfo;
|
|
|
|
import weaver.hrm.resource.ResourceComInfo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -40,6 +46,15 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
boolean hasVirtualFields;
|
|
|
|
boolean hasVirtualFields;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private JclOrgMapper getJclOrgMapMapper() {
|
|
|
|
|
|
|
|
return MapperProxyFactory.getProxy(JclOrgMapper.class,true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private OrgChartService getOrgChartService(User user) {
|
|
|
|
|
|
|
|
return ServiceUtil.getService(OrgChartServiceImpl.class, user);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public Map<String, Object> getCompanyData(Map<String, Object> params) {
|
|
|
|
public Map<String, Object> getCompanyData(Map<String, Object> params) {
|
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
@ -307,6 +322,200 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Map<String, Object> versionRecord(Map<String, Object> params, User user) {
|
|
|
|
|
|
|
|
RecordSetTrans recordSetTrans = new RecordSetTrans();
|
|
|
|
|
|
|
|
recordSetTrans.setAutoCommit(false);//关闭自动提交
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 维度
|
|
|
|
|
|
|
|
String dimension = Util.null2String(params.get("fclass"));
|
|
|
|
|
|
|
|
dimension = StringUtils.isBlank(dimension) ? "0" : dimension;
|
|
|
|
|
|
|
|
//描述
|
|
|
|
|
|
|
|
String description = Util.null2String(params.get("description"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当前日期
|
|
|
|
|
|
|
|
String currentDate = OrganizationDateUtil.getFormatLocalDateTime(new Date());
|
|
|
|
|
|
|
|
//当前用户
|
|
|
|
|
|
|
|
String currentUser = String.valueOf(user.getUID());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//版本记录表数据存储
|
|
|
|
|
|
|
|
getOrgChartService(user).insertChartVersion(Integer.valueOf(dimension),description);
|
|
|
|
|
|
|
|
String versionId = "";
|
|
|
|
|
|
|
|
String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now());
|
|
|
|
|
|
|
|
rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createdate = ?",dimension,createDate);
|
|
|
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
|
|
|
versionId = Util.null2String(rs.getString("id"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String subCompanyQuerySql;//分部查询数据sql
|
|
|
|
|
|
|
|
String deptQuerySql;//部门查询数据sql
|
|
|
|
|
|
|
|
//判断是否有虚拟组织字段
|
|
|
|
|
|
|
|
boolean virtualFlag = isHasVirtualFields();
|
|
|
|
|
|
|
|
if (virtualFlag) {
|
|
|
|
|
|
|
|
subCompanyQuerySql = "select a.id as subcompanyid,\n" +
|
|
|
|
|
|
|
|
" a.subcompanyname,\n" +
|
|
|
|
|
|
|
|
" a.subcompanydesc,\n" +
|
|
|
|
|
|
|
|
" a.companyid as company,\n" +
|
|
|
|
|
|
|
|
" b.supsubcomid as supsubcompanyid,\n" +
|
|
|
|
|
|
|
|
" b.subcompanyname as supsubcompany,\n" +
|
|
|
|
|
|
|
|
" a.canceled,\n" +
|
|
|
|
|
|
|
|
" a.subcompanycode,\n" +
|
|
|
|
|
|
|
|
" a.limitusers,\n" +
|
|
|
|
|
|
|
|
" a.tlevel,\n" +
|
|
|
|
|
|
|
|
" c.fblx as type\n" +
|
|
|
|
|
|
|
|
" from hrmsubcompany a\n" +
|
|
|
|
|
|
|
|
" left join hrmsubcompany b on a.supsubcomid = b.id\n" +
|
|
|
|
|
|
|
|
" left join hrmsubcompanydefined c on a.id = c.subcomid ";
|
|
|
|
|
|
|
|
deptQuerySql = " select a.id as departmentid,\n" +
|
|
|
|
|
|
|
|
" a.departmentmark,\n" +
|
|
|
|
|
|
|
|
" a.departmentname,\n" +
|
|
|
|
|
|
|
|
" a.subcompanyid1 as subcompanyid,\n" +
|
|
|
|
|
|
|
|
" b.SUBCOMPANYNAME as subcompany,\n" +
|
|
|
|
|
|
|
|
" a.supdepid as supdepartmentid,\n" +
|
|
|
|
|
|
|
|
" c.departmentname as supdepartment,\n" +
|
|
|
|
|
|
|
|
" a.canceled,\n" +
|
|
|
|
|
|
|
|
" a.departmentcode,\n" +
|
|
|
|
|
|
|
|
" a.coadjutant,\n" +
|
|
|
|
|
|
|
|
" a.tlevel,\n" +
|
|
|
|
|
|
|
|
" d.bmlx as type,\n" +
|
|
|
|
|
|
|
|
" a.bmfzr as fleader\n" +
|
|
|
|
|
|
|
|
" from hrmdepartment a\n" +
|
|
|
|
|
|
|
|
" left join hrmsubcompany b on a.subcompanyid1 = b.id\n" +
|
|
|
|
|
|
|
|
" left join hrmdepartment c on a.supdepid = c.id\n" +
|
|
|
|
|
|
|
|
" left join hrmdepartmentdefined d on a.id=d.deptid;left join hrmdepartmentdefined d on a.id=d.deptid";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
subCompanyQuerySql = "select a.id as subcompanyid,\n" +
|
|
|
|
|
|
|
|
" a.subcompanyname,\n" +
|
|
|
|
|
|
|
|
" a.subcompanydesc,\n" +
|
|
|
|
|
|
|
|
" a.companyid as company,\n" +
|
|
|
|
|
|
|
|
" b.supsubcomid as supsubcompanyid,\n" +
|
|
|
|
|
|
|
|
" b.subcompanyname as supsubcompany,\n" +
|
|
|
|
|
|
|
|
" a.canceled,\n" +
|
|
|
|
|
|
|
|
" a.subcompanycode,\n" +
|
|
|
|
|
|
|
|
" a.limitusers,\n" +
|
|
|
|
|
|
|
|
" a.tlevel,\n" +
|
|
|
|
|
|
|
|
" from hrmsubcompany a\n" +
|
|
|
|
|
|
|
|
" left join hrmsubcompany b on a.supsubcomid = b.id";
|
|
|
|
|
|
|
|
deptQuerySql = " select a.id as departmentid,\n" +
|
|
|
|
|
|
|
|
" a.departmentmark,\n" +
|
|
|
|
|
|
|
|
" a.departmentname,\n" +
|
|
|
|
|
|
|
|
" a.subcompanyid1 as subcompanyid,\n" +
|
|
|
|
|
|
|
|
" b.SUBCOMPANYNAME as subcompany,\n" +
|
|
|
|
|
|
|
|
" a.supdepid as supdepartmentid,\n" +
|
|
|
|
|
|
|
|
" c.departmentname as supdepartment,\n" +
|
|
|
|
|
|
|
|
" a.canceled,\n" +
|
|
|
|
|
|
|
|
" a.departmentcode,\n" +
|
|
|
|
|
|
|
|
" a.coadjutant,\n" +
|
|
|
|
|
|
|
|
" a.tlevel,\n" +
|
|
|
|
|
|
|
|
" a.bmfzr as fleader\n" +
|
|
|
|
|
|
|
|
" from hrmdepartment a\n" +
|
|
|
|
|
|
|
|
" left join hrmsubcompany b on a.subcompanyid1 = b.id\n" +
|
|
|
|
|
|
|
|
" left join hrmdepartment c on a.supdepid = c.id";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当前分部版本存储
|
|
|
|
|
|
|
|
rs.executeQuery(subCompanyQuerySql);
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
|
|
|
rs.getString("subcompanyid");
|
|
|
|
|
|
|
|
rs.getString("subcompanyname");
|
|
|
|
|
|
|
|
rs.getString("subcompanydesc");
|
|
|
|
|
|
|
|
rs.getString("company");
|
|
|
|
|
|
|
|
rs.getString("supsubcompanyid");
|
|
|
|
|
|
|
|
rs.getString("supsubcompany");
|
|
|
|
|
|
|
|
rs.getString("canceled");
|
|
|
|
|
|
|
|
rs.getString("subcompanycode");
|
|
|
|
|
|
|
|
rs.getString("limitusers");
|
|
|
|
|
|
|
|
rs.getString("tlevel");
|
|
|
|
|
|
|
|
if (virtualFlag) {
|
|
|
|
|
|
|
|
rs.getString("type");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建者、当前时间、versionId
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int subFlag = getJclOrgMapMapper().insertSubVersionRecord(currentDate,currentUser);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当前部门版本存储
|
|
|
|
|
|
|
|
rs.executeQuery(deptQuerySql);
|
|
|
|
|
|
|
|
while (rs.next()){
|
|
|
|
|
|
|
|
rs.getString("departmentid");
|
|
|
|
|
|
|
|
rs.getString("departmentmark");
|
|
|
|
|
|
|
|
rs.getString("departmentname");
|
|
|
|
|
|
|
|
rs.getString("subcompanyid");
|
|
|
|
|
|
|
|
rs.getString("subcompany");
|
|
|
|
|
|
|
|
rs.getString("supdepartmentid");
|
|
|
|
|
|
|
|
rs.getString("supdepartment");
|
|
|
|
|
|
|
|
rs.getString("canceled");
|
|
|
|
|
|
|
|
rs.getString("departmentcode");
|
|
|
|
|
|
|
|
rs.getString("coadjutant");
|
|
|
|
|
|
|
|
rs.getString("tlevel");
|
|
|
|
|
|
|
|
rs.getString("fleader");
|
|
|
|
|
|
|
|
if (virtualFlag){
|
|
|
|
|
|
|
|
rs.getString("type");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建者、当前日期、versionId
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int deptFlag = getJclOrgMapMapper().insertDeptVersionRecord(currentDate,currentDate);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//虚拟总部存储
|
|
|
|
|
|
|
|
rs.executeQuery("select id as companyvirtualid,companyname,companycode,companydesc,showorder,canceled," +
|
|
|
|
|
|
|
|
"virtualtype,virtualtypedesc from hrmcompanyvirtual");
|
|
|
|
|
|
|
|
while (rs.next()){
|
|
|
|
|
|
|
|
rs.getString("companyvirtualid");
|
|
|
|
|
|
|
|
rs.getString("companyname");
|
|
|
|
|
|
|
|
rs.getString("companycode");
|
|
|
|
|
|
|
|
rs.getString("companydesc");
|
|
|
|
|
|
|
|
rs.getString("canceled");
|
|
|
|
|
|
|
|
rs.getString("virtualtype");
|
|
|
|
|
|
|
|
rs.getString("virtualtypedesc");
|
|
|
|
|
|
|
|
//创建者、当前时间
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//虚拟分部版本存储
|
|
|
|
|
|
|
|
rs.executeQuery("select a.id as subcompanyvirtualid,a.subcompanyname,a.subcompanycode,a.subcompanydesc," +
|
|
|
|
|
|
|
|
"b.subcompanyname as supsubcompany,a.supsubcomid,c.companyname as company,a.companyid,a.canceled," +
|
|
|
|
|
|
|
|
"a.virtualtypeid as virtualtype,a.tlevel,a.showorder from hrmsubcompanyvirtual a " +
|
|
|
|
|
|
|
|
"left join hrmsubcompanyvirtual b on a.supsubcomid = b.id\n" +
|
|
|
|
|
|
|
|
"left join hrmcompanyvirtual c on a.companyid = c.id");
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
|
|
|
rs.getString("subcompanyvirtualid");
|
|
|
|
|
|
|
|
rs.getString("subcompanyname");
|
|
|
|
|
|
|
|
rs.getString("subcompanycode");
|
|
|
|
|
|
|
|
rs.getString("subcompanydesc");
|
|
|
|
|
|
|
|
rs.getString("supsubcompany");
|
|
|
|
|
|
|
|
rs.getString("supsubcomid");
|
|
|
|
|
|
|
|
rs.getString("company");
|
|
|
|
|
|
|
|
rs.getString("companyid");
|
|
|
|
|
|
|
|
rs.getString("canceled");
|
|
|
|
|
|
|
|
rs.getString("virtualtype");
|
|
|
|
|
|
|
|
rs.getString("tlevel");
|
|
|
|
|
|
|
|
rs.getString("showorder");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//虚拟部门版本存储
|
|
|
|
|
|
|
|
int deptVirtualFlag = getJclOrgMapMapper().insertDeptVirtualVersionRecord(currentDate,currentUser);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当前岗位版本存储
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isHasVirtualFields() {
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
boolean flag = false;
|
|
|
|
|
|
|
|
rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')");
|
|
|
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
|
|
|
String num = rs.getString("num");
|
|
|
|
|
|
|
|
flag = "2".equals(num);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return flag;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询实时数据,顶级元素SQL
|
|
|
|
* 查询实时数据,顶级元素SQL
|
|
|
|
*
|
|
|
|
*
|
|
|
|