组织管理版本记录0711
This commit is contained in:
parent
1dc5f3ce4b
commit
38f3e457ef
|
|
@ -48,4 +48,16 @@ public interface JclOrgMapper {
|
|||
|
||||
JclOrgMap getResInfo(@Param("level") String level, @Param("grade") String grade, @Param("id") String id);
|
||||
|
||||
|
||||
int insertSubVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
|
||||
int insertSubVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
|
||||
int insertDeptVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
|
||||
int insertDeptVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
|
||||
int insertCompanyVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
int insertJobVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -407,4 +407,189 @@
|
|||
left join jcl_org_grade f on d.${grade}=f.id
|
||||
where a.id=#{id}
|
||||
</select>
|
||||
|
||||
|
||||
<!--分部版本历史记录-->
|
||||
<insert id="insertSubVersionRecord">
|
||||
insert into jcl_org_chart_subcompany(creater, subcompanyid, subcompanyname, subcompanydesc, company,
|
||||
supsubcompanyid, supsubcompany, canceled, subcompanycode, limitusers,
|
||||
tlevel, versiondate, type)
|
||||
select #{creator},
|
||||
a.id as subcompanyid,
|
||||
a.subcompanyname,
|
||||
a.subcompanydesc,
|
||||
a.companyid as company,
|
||||
b.supsubcomid as supsubcompanyid,
|
||||
b.subcompanyname as supsubcompany,
|
||||
a.canceled,
|
||||
a.subcompanycode,
|
||||
a.limitusers,
|
||||
a.tlevel,
|
||||
#{currentDate},
|
||||
c.fblx as type
|
||||
from hrmsubcompany a
|
||||
left join hrmsubcompany b on a.supsubcomid = b.id
|
||||
left join hrmsubcompanydefined c on a.id = c.subcomid left join hrmsubcompany b on a.supsubcomid=b.id
|
||||
</insert>
|
||||
|
||||
<!--虚拟分部历史记录-->
|
||||
<insert id="insertSubVirtualVersionRecord">
|
||||
insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, subcompanyname, subcompanycode,
|
||||
subcompanydesc, supsubcompany, supsubcomid, company, companyid,
|
||||
canceled, virtualtype, tlevel, showorder, versiondate)
|
||||
select a.id as subcompanyvirtualid,
|
||||
#{creator},
|
||||
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,
|
||||
#{currentDate}
|
||||
from hrmsubcompanyvirtual a
|
||||
left join hrmsubcompanyvirtual b on a.supsubcomid = b.id
|
||||
left join hrmcompanyvirtual c on a.companyid = c.id
|
||||
</insert>
|
||||
|
||||
<!--部门版本历史记录-->
|
||||
<insert id="insertDeptVersionRecord">
|
||||
insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid,
|
||||
subcompany, supdepartmentid, supdepartment, canceled, departmentcode,
|
||||
coadjutant, tlevel, versiondate, type, fleader)
|
||||
select #{creator},
|
||||
a.id as departmentid,
|
||||
a.departmentmark,
|
||||
a.departmentname,
|
||||
a.subcompanyid1 as subcompanyid,
|
||||
b.SUBCOMPANYNAME as subcompany,
|
||||
a.supdepid as supdepartmentid,
|
||||
c.departmentname as supdepartment,
|
||||
a.canceled,
|
||||
a.departmentcode,
|
||||
a.coadjutant,
|
||||
a.tlevel,
|
||||
#{currentDate},
|
||||
d.bmlx as type,
|
||||
a.bmfzr as fleader
|
||||
from hrmdepartment a
|
||||
left join hrmsubcompany b on a.subcompanyid1 = b.id
|
||||
left join hrmdepartment c on a.supdepid = c.id
|
||||
left join hrmdepartmentdefined d on a.id=d.deptid;left join hrmdepartmentdefined d on a.id=d.deptid
|
||||
</insert>
|
||||
|
||||
<!--虚拟部门版本历史记录-->
|
||||
<insert id="insertDeptVirtualVersionRecord">
|
||||
insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, departmentname, departmentcode,
|
||||
departmentmark, supdeptment, supdepid, allsupdepid, subcompany,
|
||||
subcompanyid, canceled, virtualtype, tlevel, showorder, versiondate)
|
||||
select a.id as departmentvirtualid,
|
||||
#{creator},
|
||||
a.departmentname,
|
||||
a.departmentcode,
|
||||
a.departmentmark,
|
||||
b.DEPARTMENTNAME as supdeptment,
|
||||
b.SUPDEPID as supdepid,
|
||||
a.allsupdepid,
|
||||
c.SUBCOMPANYNAME as subcompany,
|
||||
a.SUBCOMPANYID1 as subcompanyid,
|
||||
a.canceled,
|
||||
a.virtualtype,
|
||||
a.tlevel,
|
||||
a.showorder,
|
||||
#{currentDate}
|
||||
from hrmdepartmentvirtual a
|
||||
left join hrmdepartmentvirtual b on a.SUPDEPID = b.id
|
||||
left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id
|
||||
</insert>
|
||||
|
||||
<!--虚拟总部历史记录-->
|
||||
<insert id="insertCompanyVirtualVersionRecord">
|
||||
INSERT into jcl_chart_companyvirtual(companyvirtualid, creater, companyname, companycode, companydesc,
|
||||
showorder, canceled, virtualtype, virtualtypedesc, versiondate)
|
||||
select id as companyvirtualid,
|
||||
#{creator},
|
||||
companyname,
|
||||
companycode,
|
||||
companydesc,
|
||||
showorder,
|
||||
canceled,
|
||||
virtualtype,
|
||||
virtualtypedesc,
|
||||
#{currentDate}
|
||||
from hrmcompanyvirtual
|
||||
</insert>
|
||||
|
||||
<!--岗位历史记录-->
|
||||
<insert id="insertJobVersionRecord">
|
||||
insert into jcl_org_chart_job(creater, jobname, department, subcompany, jobresponsibility, canceled, jobcode,
|
||||
description, versiondate)
|
||||
select #{creator},
|
||||
a.job_name as jobname,
|
||||
a.ec_department as department,
|
||||
a.ec_company as subcompany,
|
||||
b.jobresponsibility,
|
||||
a.forbidden_tag as canceled,
|
||||
a.job_no as jobcode,
|
||||
a.description,
|
||||
#{currentDate}
|
||||
from jcl_org_job a
|
||||
left join hrmjobtitles b on a.ec_jobtitle = b.id
|
||||
</insert>
|
||||
|
||||
<insert id="insertResourceVersionRecord">
|
||||
insert into jcl_chart_resource(resourceid, creater, workyear, usekind, managerstr, status, sex, accounttype,
|
||||
belongto, loginid, maritalstatus, telephone, mobile, mobilecall, email,
|
||||
locationname, resourcetype, startdate, enddate, jobtitleid, jobtitle, joblevel,
|
||||
seclevel, departmentid, department, subcompanyid, subcompany, costcenter,
|
||||
manager, assistant, workcode, classification, versiondate, policy, degree,
|
||||
versionid)
|
||||
select a.id as resourceid,
|
||||
1,
|
||||
workyear,
|
||||
usekind,
|
||||
managerstr,
|
||||
status,
|
||||
sex,
|
||||
accounttype,
|
||||
belongto,
|
||||
loginid,
|
||||
maritalstatus,
|
||||
a.telephone,
|
||||
mobile,
|
||||
mobilecall,
|
||||
email,
|
||||
b.locationname,
|
||||
resourcetype,
|
||||
startdate,
|
||||
enddate,
|
||||
c.id as jobtitleid,
|
||||
d.JOBTITLENAME as jobtitle,
|
||||
joblevel,
|
||||
seclevel,
|
||||
departmentid,
|
||||
e.departmentname as department,
|
||||
a.subcompanyid1 as subcompanyid,
|
||||
f.subcompanyname as subcompany,
|
||||
a.costcenterid as costcenter,
|
||||
a.managerid as manager,
|
||||
a.assistantid as assistant,
|
||||
workcode,
|
||||
classification,
|
||||
'2023-07-11 15:47',
|
||||
policy,
|
||||
degree,
|
||||
1111
|
||||
from hrmresource a
|
||||
left join hrmlocations b on a.locationid = b.id
|
||||
left join jcl_org_job c on a.jobtitle = c.id
|
||||
left join hrmjobtitles d on c.ec_jobtitle = d.id
|
||||
left join hrmdepartment e on a.departmentid = e.id
|
||||
left join hrmsubcompany f on a.subcompanyid1= f.id;
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
package com.engine.organization.service;
|
||||
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -28,5 +30,10 @@ public interface ChartService {
|
|||
|
||||
Map<String, Object> getDepartmentDetail(Map<String, Object> params);
|
||||
|
||||
|
||||
/**
|
||||
* 组织架构图,版本记录
|
||||
* @param params 请求参数
|
||||
* @return 数据集合
|
||||
*/
|
||||
Map<String, Object> versionRecord(Map<String, Object> params, User user);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,16 +4,22 @@ import com.engine.common.util.ServiceUtil;
|
|||
import com.engine.core.impl.Service;
|
||||
import com.engine.organization.entity.chart.ChartPO;
|
||||
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.OrgChartService;
|
||||
import com.engine.organization.util.HasRightUtil;
|
||||
import com.engine.organization.util.OrganizationAssert;
|
||||
import com.engine.organization.util.OrganizationDateUtil;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.conn.RecordSetTrans;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
|
@ -40,6 +46,15 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
*/
|
||||
boolean hasVirtualFields;
|
||||
|
||||
private JclOrgMapper getJclOrgMapMapper() {
|
||||
return MapperProxyFactory.getProxy(JclOrgMapper.class,true);
|
||||
}
|
||||
|
||||
private OrgChartService getOrgChartService(User user) {
|
||||
return ServiceUtil.getService(OrgChartServiceImpl.class, user);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getCompanyData(Map<String, Object> params) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
|
@ -307,6 +322,200 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
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
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue