组织架构图编制、在岗数据刷新
This commit is contained in:
parent
c3e73c2b44
commit
ab61cde4a7
|
|
@ -0,0 +1,63 @@
|
|||
<%@ page import="com.engine.organization.thread.CompanyTriggerRunnable" %>
|
||||
<%@ page import="com.engine.organization.thread.DepartmentTriggerRunnable" %>
|
||||
<%@ page import="com.engine.organization.thread.JobTriggerRunnable" %>
|
||||
<%@ page import="org.apache.commons.lang3.StringUtils" %>
|
||||
<%@ page import="weaver.conn.RecordSet" %>
|
||||
<%@ page import="weaver.general.Util" %>
|
||||
<%@ page import="java.util.HashSet" %>
|
||||
<%@ page import="java.util.Set" %>
|
||||
<%@ page import="com.engine.organization.util.db.MapperProxyFactory" %>
|
||||
<%@ page import="com.engine.organization.mapper.job.JobMapper" %>
|
||||
<%@ page import="com.engine.organization.entity.job.po.JobPO" %>
|
||||
<%@ page import="com.engine.organization.entity.department.po.DepartmentPO" %>
|
||||
<%@ page import="com.engine.organization.mapper.department.DepartmentMapper" %>
|
||||
<%@ page import="com.engine.organization.mapper.comp.CompMapper" %>
|
||||
<%@ page import="com.engine.organization.entity.company.po.CompPO" %>
|
||||
<%@ page import="com.engine.organization.initdata.RefreshPlan" %>
|
||||
<%@ page contentType="text/html; charset=UTF-8" %>
|
||||
<%
|
||||
RecordSet rs = new RecordSet();
|
||||
// 刷新岗位
|
||||
Set<Long> jobSet = new HashSet<>();
|
||||
Set<Long> departmentSet = new HashSet<>();
|
||||
Set<Long> companySet = new HashSet<>();
|
||||
rs.executeQuery("select id, parent_job from jcl_org_job where id not in( select ifnull(parent_job, '') from jcl_org_job where delete_type =0) and delete_type =0");
|
||||
while (rs.next()) {
|
||||
Long jobId = Long.parseLong(Util.null2String(rs.getString("id")));
|
||||
JobPO jobPO = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId);
|
||||
RefreshPlan.updateResourceJob(jobId);
|
||||
new JobTriggerRunnable(jobPO, jobPO).run();
|
||||
|
||||
String parentJobId = Util.null2String(rs.getString("parent_job"));
|
||||
if (StringUtils.isNotBlank(parentJobId)) {
|
||||
RefreshPlan.refreshJob(Long.parseLong(parentJobId), jobSet);
|
||||
}
|
||||
}
|
||||
// 刷新部门
|
||||
rs.executeQuery("select id, parent_dept from jcl_org_dept where id not in( select ifnull(parent_dept , '') from jcl_org_dept where delete_type =0) and delete_type =0");
|
||||
while (rs.next()) {
|
||||
Long departmentId = Long.parseLong(Util.null2String(rs.getString("id")));
|
||||
DepartmentPO deptById = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptById(departmentId);
|
||||
new DepartmentTriggerRunnable(deptById, deptById).run();
|
||||
|
||||
String parentDepartmentId = Util.null2String(rs.getString("parent_dept"));
|
||||
if (StringUtils.isNotBlank(parentDepartmentId)) {
|
||||
RefreshPlan.refreshDepartment(Long.parseLong(parentDepartmentId), departmentSet);
|
||||
}
|
||||
}
|
||||
|
||||
// 刷新分部
|
||||
rs.executeQuery("select id, parent_company from jcl_org_comp where id not in( select ifnull(parent_company , '') from jcl_org_comp where delete_type =0) and delete_type =0");
|
||||
while (rs.next()) {
|
||||
Long companyId = Long.parseLong(Util.null2String(rs.getString("id")));
|
||||
CompPO compPO = MapperProxyFactory.getProxy(CompMapper.class).listById(companyId);
|
||||
new CompanyTriggerRunnable(compPO, compPO).run();
|
||||
|
||||
String parentCompanyId = Util.null2String(rs.getString("parent_company"));
|
||||
if (StringUtils.isNotBlank(parentCompanyId)) {
|
||||
RefreshPlan.refreshCompany(Long.parseLong(parentCompanyId), companySet);
|
||||
}
|
||||
}
|
||||
out.println("数据刷新完成");
|
||||
|
||||
%>
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package com.engine.organization.initdata;
|
||||
|
||||
import com.engine.organization.entity.company.po.CompPO;
|
||||
import com.engine.organization.entity.department.po.DepartmentPO;
|
||||
import com.engine.organization.entity.job.po.JobPO;
|
||||
import com.engine.organization.mapper.comp.CompMapper;
|
||||
import com.engine.organization.mapper.department.DepartmentMapper;
|
||||
import com.engine.organization.mapper.job.JobMapper;
|
||||
import com.engine.organization.thread.CompanyTriggerRunnable;
|
||||
import com.engine.organization.thread.DepartmentTriggerRunnable;
|
||||
import com.engine.organization.thread.HrmResourceTriggerRunnable;
|
||||
import com.engine.organization.thread.JobTriggerRunnable;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/11/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RefreshPlan {
|
||||
|
||||
private static JobMapper getJobMapper() {
|
||||
return MapperProxyFactory.getProxy(JobMapper.class);
|
||||
}
|
||||
|
||||
private static CompMapper getCompMapper() {
|
||||
return MapperProxyFactory.getProxy(CompMapper.class);
|
||||
}
|
||||
|
||||
private static DepartmentMapper getDepartmentMapper() {
|
||||
return MapperProxyFactory.getProxy(DepartmentMapper.class);
|
||||
}
|
||||
|
||||
// 递归刷新岗位
|
||||
public static void refreshJob(Long parentJobId, Set<Long> jobSet) {
|
||||
if (null == parentJobId || jobSet.contains(parentJobId)) {
|
||||
return;
|
||||
}
|
||||
// 获取父级岗位、同步数据
|
||||
JobPO jobById = getJobMapper().getJobById(parentJobId);
|
||||
if (null != jobById) {
|
||||
updateResourceJob(parentJobId);
|
||||
new JobTriggerRunnable(jobById, jobById).run();
|
||||
refreshJob(jobById.getParentJob(), jobSet);
|
||||
}
|
||||
jobSet.add(parentJobId);
|
||||
}
|
||||
|
||||
// 递归刷新部门
|
||||
public static void refreshDepartment(Long parentDepartmentId, Set<Long> departmentSet) {
|
||||
if (null == parentDepartmentId || departmentSet.contains(parentDepartmentId)) {
|
||||
return;
|
||||
}
|
||||
// 获取父级岗位、同步数据
|
||||
DepartmentPO deptById = getDepartmentMapper().getDeptById(parentDepartmentId);
|
||||
if (null != deptById) {
|
||||
new DepartmentTriggerRunnable(deptById, deptById).run();
|
||||
refreshDepartment(deptById.getParentDept(), departmentSet);
|
||||
}
|
||||
departmentSet.add(parentDepartmentId);
|
||||
}
|
||||
|
||||
public static void refreshCompany(Long parentCompanyId, Set<Long> companySet) {
|
||||
if (null == parentCompanyId || companySet.contains(parentCompanyId)) {
|
||||
return;
|
||||
}
|
||||
// 获取父级分部、同步数据
|
||||
CompPO compPO = getCompMapper().listById(parentCompanyId);
|
||||
if (null != compPO) {
|
||||
new CompanyTriggerRunnable(compPO, compPO).run();
|
||||
refreshCompany(compPO.getParentCompany(), companySet);
|
||||
}
|
||||
companySet.add(parentCompanyId);
|
||||
}
|
||||
|
||||
public static void updateResourceJob(Long jobId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from cus_fielddata where scope = 'hrmcustomfieldbyinfotype' and scopeid = -1 and field100002 = ?", jobId);
|
||||
while (rs.next()) {
|
||||
Long resourceId = Long.parseLong(rs.getString("id"));
|
||||
new HrmResourceTriggerRunnable(resourceId).run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,6 @@ package com.engine.organization.thread;
|
|||
|
||||
import com.engine.organization.entity.cusfielddata.po.CusFieldData;
|
||||
import com.engine.organization.entity.department.po.DepartmentPO;
|
||||
import com.engine.organization.entity.logview.bo.FieldBaseEquator;
|
||||
import com.engine.organization.entity.map.JclOrgMap;
|
||||
import com.engine.organization.entity.staff.po.StaffPO;
|
||||
import com.engine.organization.enums.ModuleTypeEnum;
|
||||
|
|
@ -13,14 +12,12 @@ import com.engine.organization.mapper.trigger.CompTriggerMapper;
|
|||
import com.engine.organization.mapper.trigger.DepartmentTriggerMapper;
|
||||
import com.engine.organization.util.OrganizationDateUtil;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.passwordprotection.domain.HrmResource;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
|
|
@ -78,11 +75,6 @@ public class DepartmentTriggerRunnable implements Runnable {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
FieldBaseEquator fieldBaseEquator = new FieldBaseEquator();
|
||||
List<String> diffFields = fieldBaseEquator.getDiffFieldList(oldDepartment, newDepartment);
|
||||
if (CollectionUtils.isEmpty(diffFields)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 判断
|
||||
JclOrgMap jclMap = new JclOrgMap();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.engine.organization.thread;
|
||||
|
||||
import com.engine.organization.entity.job.po.JobPO;
|
||||
import com.engine.organization.entity.logview.bo.FieldBaseEquator;
|
||||
import com.engine.organization.entity.map.JclOrgMap;
|
||||
import com.engine.organization.entity.staff.po.StaffPO;
|
||||
import com.engine.organization.enums.ModuleTypeEnum;
|
||||
|
|
@ -12,12 +11,11 @@ import com.engine.organization.mapper.trigger.CompTriggerMapper;
|
|||
import com.engine.organization.mapper.trigger.JobTriggerMapper;
|
||||
import com.engine.organization.util.OrganizationDateUtil;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
|
|
@ -67,11 +65,6 @@ public class JobTriggerRunnable implements Runnable {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
FieldBaseEquator fieldBaseEquator = new FieldBaseEquator();
|
||||
List<String> diffFields = fieldBaseEquator.getDiffFieldList(oldJob, newJob);
|
||||
if (CollectionUtils.isEmpty(diffFields)) {
|
||||
return;
|
||||
}
|
||||
// 判断
|
||||
JclOrgMap jclMap = new JclOrgMap();
|
||||
int st = 100000000;
|
||||
|
|
@ -132,7 +125,7 @@ public class JobTriggerRunnable implements Runnable {
|
|||
getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
|
||||
getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
|
||||
|
||||
if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) {
|
||||
if (!"1".equals(Util.null2String(newJob.getDeleteType())) && !"1".equals(Util.null2String(newJob.getForbiddenTag()))) {
|
||||
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
|
||||
}
|
||||
if (null != jclOrgMapByObjID) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue