weaver-hrm-organization/src/com/engine/organization/thread/JobTriggerRunnable.java

144 lines
5.4 KiB
Java
Raw Normal View History

2022-08-31 14:24:00 +08:00
package com.engine.organization.thread;
import com.engine.organization.entity.extend.param.ExtendInfoParams;
import com.engine.organization.entity.job.po.JobPO;
import com.engine.organization.entity.logview.bo.FieldBaseEquator;
import com.engine.organization.mapper.extend.ExtMapper;
import com.engine.organization.mapper.job.JobMapper;
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 java.sql.Date;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2022/08/30
* @version: 1.0
*/
public class JobTriggerRunnable implements Runnable {
private final JobPO oldJob;
private final JobPO newJob;
private CompTriggerMapper getCompTriggerMapper() {
return MapperProxyFactory.getProxy(CompTriggerMapper.class);
}
private JobTriggerMapper getJobTriggerMapper() {
return MapperProxyFactory.getProxy(JobTriggerMapper.class);
}
public JobTriggerRunnable(JobPO oldJob, JobPO newJob) {
this.oldJob = oldJob;
this.newJob = newJob;
}
public JobTriggerRunnable(Long jobId) {
this.oldJob = new JobPO();
this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId);
}
public JobTriggerRunnable(JobPO newJob) {
this.oldJob = new JobPO();
this.newJob = newJob;
this.newJob.setDeleteType(1);
}
@Override
public void run() {
FieldBaseEquator fieldBaseEquator = new FieldBaseEquator();
List<String> diffFields = fieldBaseEquator.getDiffFieldList(oldJob, newJob);
if (CollectionUtils.isEmpty(diffFields)) {
return;
}
// 判断
if (diffFields.contains("jobName") || diffFields.contains("parentDept") || diffFields.contains("parentJob") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) {
int st = 100000000;
int sj = 200000000;
Integer fType = 3;
// 更新逻辑
Integer fObjId = newJob.getId().intValue();
Integer id = newJob.getId().intValue() + sj;
String uuid = "";
String fNumber = newJob.getJobNo();
String fName = newJob.getJobName();
Integer fLeader = null;
Integer fParentId = null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj;
Integer fObjParentId = null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue();
Integer parentdept = newJob.getParentDept().intValue();
// delete
Integer fEcId = null;
int fClass = 0;
String fClassName = "行政维度";
String fLeaderImg = "";
String fLeaderName = "";
Integer fLeaderJobId = 0;
String fLeaderJob = "";
String fLeaderSt = "";
String fLeaderLv = "";
Date fDateBegin = new Date(System.currentTimeMillis());
Date fDateEnd = new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime());
Integer fPlan = getJobTriggerMapper().sumStaffNum(fDateBegin, fObjId);
Integer fonJob = getJobTriggerMapper().countHrmResource(parentdept, fName);
int fIsVitual = 0;
Calendar cal = Calendar.getInstance();
cal.setTime(fDateBegin);
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getCompTriggerMapper().deleteMap(fType, fObjId, fDateBegin);
getCompTriggerMapper().updateMap(fType, fObjId, fDateBegin, time);
if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) {
Map<String, Object> params = new HashMap<>();
params.put("id", id);
params.put("ftype", fType);
params.put("fobjid", fObjId);
params.put("fecid", fEcId);
params.put("uuid", uuid);
params.put("fclass", fClass);
params.put("fclassname", fClassName);
params.put("fnumber", fNumber);
params.put("fname", fName);
params.put("fleader", fLeader);
params.put("fleaderimg", fLeaderImg);
params.put("fleadername", fLeaderName);
params.put("fleaderjobid", fLeaderJobId);
params.put("fleaderjob", fLeaderJob);
params.put("fleaderlv", fLeaderLv);
params.put("fleaderst", fLeaderSt);
params.put("fparentid", fParentId);
params.put("fobjparentid", fObjParentId);
params.put("fplan", null == fPlan ? 0 : fPlan);
params.put("fonjob", fonJob);
params.put("fisvitual", fIsVitual);
params.put("fdatebegin", fDateBegin);
params.put("fdateend", fDateEnd);
ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("jcl_org_map").params(params).build();
MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams);
}
}
}
}