组织管理版本记录0711

pull/193/head
Mlin 2 years ago
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…
Cancel
Save