BUG修复

pull/89/head
dxfeng 3 years ago
parent c1c812596d
commit b368c3ea27

@ -1,98 +1,98 @@
package com.engine.organization.thread;
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
import com.engine.organization.entity.map.JclOrgMap;
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
import com.engine.organization.mapper.trigger.CompTriggerMapper;
import com.engine.organization.mapper.trigger.GroupTriggerMapper;
import com.engine.organization.util.OrganizationDateUtil;
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.lang3.StringUtils;
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.Map;
/**
* @author:dxfeng
* @createTime: 2022/08/30
* @version: 1.0
*/
public class GroupTriggerRunnable implements Runnable {
Map<String, Object> params;
private CompTriggerMapper getCompTriggerMapper() {
return MapperProxyFactory.getProxy(CompTriggerMapper.class);
}
private GroupTriggerMapper getGroupTriggerMapper() {
return MapperProxyFactory.getProxy(GroupTriggerMapper.class);
}
public GroupTriggerRunnable(Map<String, Object> params) {
this.params = params;
}
@Override
public void run() {
JclOrgMap jclOrgMap = new JclOrgMap();
//id = 0;
jclOrgMap.setId(0);
//ftype = 0;
jclOrgMap.setFType(0);
jclOrgMap.setFObjId(0);
jclOrgMap.setFEcId(parseString2Int(params.get("id")));
jclOrgMap.setUuid(Util.null2String(params.get("uuid")));
jclOrgMap.setFNumber("00");
jclOrgMap.setFName(Util.null2String(params.get("companyname")));
jclOrgMap.setFClass(0);
jclOrgMap.setFClassName("行政维度");
jclOrgMap.setFLeader(getGroupTriggerMapper().getInfoValue(1));
HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(jclOrgMap.getFLeader());
if (null != hrmResourceById) {
jclOrgMap.setFLeaderImg(hrmResourceById.getMessagerurl());
jclOrgMap.setFLeaderName(hrmResourceById.getLastname());
jclOrgMap.setFLeaderJobId(hrmResourceById.getJobtitle());
}
jclOrgMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclOrgMap.getFLeaderJobId()));
HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclOrgMap.getFLeader());
if (null != resourceByEcId) {
jclOrgMap.setFLeaderSt(resourceByEcId.getJobGrade());
jclOrgMap.setFLeaderLv(resourceByEcId.getJobLevel());
}
jclOrgMap.setFParentId(-1);
jclOrgMap.setFObjParentId(0);
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(jclOrgMap.getFDateBegin(), "0", jclOrgMap.getFObjId().toString());
if (null != jclOrgMapByObjID) {
jclOrgMap.setFPlan(jclOrgMapByObjID.getFPlan());
jclOrgMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
} else {
jclOrgMap.setFPlan(0);
jclOrgMap.setFOnJob(0);
}
jclOrgMap.setFIsVitual(0);
Calendar cal = Calendar.getInstance();
cal.setTime(jclOrgMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getGroupTriggerMapper().deleteMap(0, jclOrgMap.getFDateBegin());
getGroupTriggerMapper().updateMap(0, jclOrgMap.getFDateBegin(), time);
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap);
}
private Integer parseString2Int(Object args) {
String s = Util.null2String(args);
if (StringUtils.isBlank(s)) {
return null;
}
return Integer.parseInt(s);
}
}
//package com.engine.organization.thread;
//
//import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
//import com.engine.organization.entity.map.JclOrgMap;
//import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
//import com.engine.organization.mapper.trigger.CompTriggerMapper;
//import com.engine.organization.mapper.trigger.GroupTriggerMapper;
//import com.engine.organization.util.OrganizationDateUtil;
//import com.engine.organization.util.db.MapperProxyFactory;
//import org.apache.commons.lang3.StringUtils;
//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.Map;
//
///**
// * @author:dxfeng
// * @createTime: 2022/08/30
// * @version: 1.0
// */
//public class GroupTriggerRunnable implements Runnable {
// Map<String, Object> params;
//
// private CompTriggerMapper getCompTriggerMapper() {
// return MapperProxyFactory.getProxy(CompTriggerMapper.class);
// }
//
// private GroupTriggerMapper getGroupTriggerMapper() {
// return MapperProxyFactory.getProxy(GroupTriggerMapper.class);
// }
//
// public GroupTriggerRunnable(Map<String, Object> params) {
// this.params = params;
// }
//
//
// @Override
// public void run() {
// JclOrgMap jclOrgMap = new JclOrgMap();
// //id = 0;
// jclOrgMap.setId(0);
// //ftype = 0;
// jclOrgMap.setFType(0);
// jclOrgMap.setFObjId(0);
// jclOrgMap.setFEcId(parseString2Int(params.get("id")));
// jclOrgMap.setUuid(Util.null2String(params.get("uuid")));
// jclOrgMap.setFNumber("00");
// jclOrgMap.setFName(Util.null2String(params.get("companyname")));
// jclOrgMap.setFClass(0);
// jclOrgMap.setFClassName("行政维度");
// jclOrgMap.setFLeader(getGroupTriggerMapper().getInfoValue(1));
// HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(jclOrgMap.getFLeader());
// if (null != hrmResourceById) {
// jclOrgMap.setFLeaderImg(hrmResourceById.getMessagerurl());
// jclOrgMap.setFLeaderName(hrmResourceById.getLastname());
// jclOrgMap.setFLeaderJobId(hrmResourceById.getJobtitle());
// }
// jclOrgMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclOrgMap.getFLeaderJobId()));
// HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclOrgMap.getFLeader());
// if (null != resourceByEcId) {
// jclOrgMap.setFLeaderSt(resourceByEcId.getJobGrade());
// jclOrgMap.setFLeaderLv(resourceByEcId.getJobLevel());
// }
// jclOrgMap.setFParentId(-1);
// jclOrgMap.setFObjParentId(0);
// String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
// jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
// jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
// JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(jclOrgMap.getFDateBegin(), "0", jclOrgMap.getFObjId().toString());
// if (null != jclOrgMapByObjID) {
// jclOrgMap.setFPlan(jclOrgMapByObjID.getFPlan());
// jclOrgMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
// } else {
// jclOrgMap.setFPlan(0);
// jclOrgMap.setFOnJob(0);
// }
// jclOrgMap.setFIsVitual(0);
// Calendar cal = Calendar.getInstance();
// cal.setTime(jclOrgMap.getFDateBegin());
// Calendar calendar = DateUtil.addDay(cal, -1);
// Date time = new Date(calendar.getTime().getTime());
// getGroupTriggerMapper().deleteMap(0, jclOrgMap.getFDateBegin());
// getGroupTriggerMapper().updateMap(0, jclOrgMap.getFDateBegin(), time);
//
// MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap);
// }
//
// private Integer parseString2Int(Object args) {
// String s = Util.null2String(args);
// if (StringUtils.isBlank(s)) {
// return null;
// }
// return Integer.parseInt(s);
// }
//}

@ -1,114 +1,114 @@
package com.engine.organization.thread;
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
import com.engine.organization.entity.job.po.JobPO;
import com.engine.organization.entity.map.JclOrgMap;
import com.engine.organization.entity.personnelcard.UserCard;
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
import com.engine.organization.mapper.job.JobMapper;
import com.engine.organization.mapper.resource.ResourceMapper;
import com.engine.organization.mapper.trigger.CompTriggerMapper;
import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper;
import com.engine.organization.util.OrganizationDateUtil;
import com.engine.organization.util.db.MapperProxyFactory;
import weaver.common.DateUtil;
import weaver.hrm.passwordprotection.domain.HrmResource;
import java.sql.Date;
import java.util.Calendar;
/**
* @author:dxfeng
* @createTime: 2022/09/01
* @version: 1.0
*/
public class HrmResourceTriggerRunnable implements Runnable {
Long userId;
private CompTriggerMapper getCompTriggerMapper() {
return MapperProxyFactory.getProxy(CompTriggerMapper.class);
}
private HrmResourceTriggerMapper getHrmResourceTriggerMapper() {
return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class);
}
private ResourceMapper getResourceMapper() {
return MapperProxyFactory.getProxy(ResourceMapper.class);
}
private JclOrgMapper getJclOrgMapper() {
return MapperProxyFactory.getProxy(JclOrgMapper.class);
}
public HrmResourceTriggerRunnable(Long id) {
this.userId = id;
}
@Override
public void run() {
int st = 100000000;
int sj = 200000000;
int sk = 300000000;
Integer delete = null;
JclOrgMap jclMap = new JclOrgMap();
jclMap.setFType(4);
// 查询当前人员信息数据
String ecResourceId = getResourceMapper().getEcResourceId(userId.toString());
// EC人员
HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId));
// 聚才林人员
HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
if (null != hrmResource && null!=ecHrmResource) {
jclMap.setFObjId(hrmResource.getId().intValue());
jclMap.setId(hrmResource.getId().intValue() + sk);
jclMap.setFEcId(ecHrmResource.getId());
jclMap.setFNumber(hrmResource.getWorkCode());
jclMap.setFName(hrmResource.getLastName());
jclMap.setUuid(hrmResource.getUuid());
delete = hrmResource.getStatus() < 4 ? 0 : 1;
// 展示为花名册上传的照片
String image = UserCard.builder().image(hrmResource.getResourceImageId()).build().getImage();
jclMap.setFLeaderImg(image);
jclMap.setFLeaderName(hrmResource.getLastName());
jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue());
if (null != hrmResource.getJobTitle()) {
JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle());
if (null != jobById) {
jclMap.setFLeaderJob(jobById.getJobName());
}
jclMap.setFObjParentId(hrmResource.getJobTitle().intValue());
jclMap.setFParentId(jclMap.getFObjParentId() + sj);
}
jclMap.setFLeaderSt(hrmResource.getJobGrade());
jclMap.setFLeaderLv(hrmResource.getJobLevel());
jclMap.setFClass(0);
jclMap.setFClassName("行政维度");
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
jclMap.setFIsVitual(0);
Calendar cal = Calendar.getInstance();
cal.setTime(jclMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
// 更新前的数据
JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(jclMap.getFDateBegin(), "4", hrmResource.getId().toString());
getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
if (0 == delete) {
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
// 更新当前架构图负责人的卡片信息
getHrmResourceTriggerMapper().updateLeaders(jclMap.getFDateBegin(), hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
// 更新组织架构图在岗数
if (null != jclOrgMapByObjID) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
}
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
} else if (null != jclOrgMapByObjID) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
}
}
}
}
//package com.engine.organization.thread;
//
//import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
//import com.engine.organization.entity.job.po.JobPO;
//import com.engine.organization.entity.map.JclOrgMap;
//import com.engine.organization.entity.personnelcard.UserCard;
//import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
//import com.engine.organization.mapper.job.JobMapper;
//import com.engine.organization.mapper.resource.ResourceMapper;
//import com.engine.organization.mapper.trigger.CompTriggerMapper;
//import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper;
//import com.engine.organization.util.OrganizationDateUtil;
//import com.engine.organization.util.db.MapperProxyFactory;
//import weaver.common.DateUtil;
//import weaver.hrm.passwordprotection.domain.HrmResource;
//
//import java.sql.Date;
//import java.util.Calendar;
//
///**
// * @author:dxfeng
// * @createTime: 2022/09/01
// * @version: 1.0
// */
//public class HrmResourceTriggerRunnable implements Runnable {
// Long userId;
//
// private CompTriggerMapper getCompTriggerMapper() {
// return MapperProxyFactory.getProxy(CompTriggerMapper.class);
// }
//
// private HrmResourceTriggerMapper getHrmResourceTriggerMapper() {
// return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class);
// }
// private ResourceMapper getResourceMapper() {
// return MapperProxyFactory.getProxy(ResourceMapper.class);
// }
// private JclOrgMapper getJclOrgMapper() {
// return MapperProxyFactory.getProxy(JclOrgMapper.class);
// }
//
// public HrmResourceTriggerRunnable(Long id) {
// this.userId = id;
// }
//
// @Override
// public void run() {
// int st = 100000000;
// int sj = 200000000;
// int sk = 300000000;
// Integer delete = null;
// JclOrgMap jclMap = new JclOrgMap();
// jclMap.setFType(4);
// // 查询当前人员信息数据
// String ecResourceId = getResourceMapper().getEcResourceId(userId.toString());
// // EC人员
// HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId));
// // 聚才林人员
// HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
// if (null != hrmResource && null!=ecHrmResource) {
// jclMap.setFObjId(hrmResource.getId().intValue());
// jclMap.setId(hrmResource.getId().intValue() + sk);
// jclMap.setFEcId(ecHrmResource.getId());
// jclMap.setFNumber(hrmResource.getWorkCode());
// jclMap.setFName(hrmResource.getLastName());
// jclMap.setUuid(hrmResource.getUuid());
// delete = hrmResource.getStatus() < 4 ? 0 : 1;
// // 展示为花名册上传的照片
// String image = UserCard.builder().image(hrmResource.getResourceImageId()).build().getImage();
// jclMap.setFLeaderImg(image);
// jclMap.setFLeaderName(hrmResource.getLastName());
// jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue());
// if (null != hrmResource.getJobTitle()) {
// JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle());
// if (null != jobById) {
// jclMap.setFLeaderJob(jobById.getJobName());
// }
// jclMap.setFObjParentId(hrmResource.getJobTitle().intValue());
// jclMap.setFParentId(jclMap.getFObjParentId() + sj);
// }
// jclMap.setFLeaderSt(hrmResource.getJobGrade());
// jclMap.setFLeaderLv(hrmResource.getJobLevel());
// jclMap.setFClass(0);
// jclMap.setFClassName("行政维度");
// String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
// jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
// jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
// jclMap.setFIsVitual(0);
//
// Calendar cal = Calendar.getInstance();
// cal.setTime(jclMap.getFDateBegin());
// Calendar calendar = DateUtil.addDay(cal, -1);
// Date time = new Date(calendar.getTime().getTime());
// // 更新前的数据
// JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(jclMap.getFDateBegin(), "4", hrmResource.getId().toString());
//
// getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
// getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
// if (0 == delete) {
// MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
// // 更新当前架构图负责人的卡片信息
// getHrmResourceTriggerMapper().updateLeaders(jclMap.getFDateBegin(), hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
// // 更新组织架构图在岗数
// if (null != jclOrgMapByObjID) {
// new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
// }
// new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
//
// } else if (null != jclOrgMapByObjID) {
// new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
// }
// }
// }
//}

@ -1,202 +1,202 @@
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;
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
import com.engine.organization.mapper.job.JobMapper;
import com.engine.organization.mapper.staff.StaffMapper;
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.List;
/**
* @author:dxfeng
* @createTime: 2022/08/30
* @version: 1.0
*/
public class JobTriggerRunnable implements Runnable {
private final JobPO oldJob;
private final JobPO newJob;
private Boolean forbiddenTag = false;
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(Boolean forbiddenTag, JobPO oldJob, JobPO newJob) {
this.oldJob = oldJob;
this.newJob = newJob;
this.forbiddenTag = forbiddenTag;
}
public JobTriggerRunnable(Long jobId) {
this.oldJob = new JobPO();
this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId);
}
public JobTriggerRunnable(Long oldJobId, Long newJobId) {
this.oldJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(oldJobId);
this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(newJobId);
}
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;
}
// 判断
JclOrgMap jclMap = new JclOrgMap();
int st = 100000000;
int sj = 200000000;
jclMap.setFType(3);
// 更新逻辑
jclMap.setFObjId(newJob.getId().intValue());
jclMap.setId(newJob.getId().intValue() + sj);
jclMap.setFNumber(newJob.getJobNo());
jclMap.setFName(newJob.getJobName());
jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj);
jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue());
Integer parentdept = newJob.getParentDept().intValue();
jclMap.setFClass(0);
jclMap.setFClassName("行政维度");
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(jclMap.getFDateBegin(), ModuleTypeEnum.jobfielddefined.getValue().toString(), jclMap.getFObjId().toString());
// 该岗位有下级岗位时,查询
JclOrgMap jclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(jclMap.getFDateBegin(), jclMap.getId().toString());
StaffPO staffPO = new StaffPO();
switch (jclMap.getFType()) {
// 部门
case 2:
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, jclMap.getFObjId().toString(), null);
break;
// 岗位
case 3:
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, null, jclMap.getFObjId().toString());
break;
default:
break;
}
if (null != jclOrgMapByObjID) {
if (null != jclOrgMap) {
jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan());
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob());
} else {
jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
}
} else {
jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
jclMap.setFOnJob(0);
}
jclMap.setFIsVitual(0);
Calendar cal = Calendar.getInstance();
cal.setTime(jclMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) {
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
}
if (null != jclOrgMapByObjID) {
if (null != jclOrgMapByObjID.getFParentId()) {
updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString());
}
}
// 部门启用,刷新上级数据
if (forbiddenTag) {
updateParentPlanAndJob(jclMap.getFDateBegin(), jclMap.getFParentId().toString());
}
if (null != oldJob) {
if (null != oldJob.getId()) {
updateParentPlanAndJob(jclMap.getFDateBegin(), oldJob.getId().toString());
}
}
}
/**
*
*/
void updateParentPlanAndJob(Date currentDate, String parentId) {
JclOrgMap parentJclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapById(currentDate, parentId);
if (null != parentJclOrgMap) {
// 上级部门当前在编、在岗数
JclOrgMap jclOrgMapSum = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(currentDate, parentJclOrgMap.getId().toString());
StaffPO staffPO = new StaffPO();
switch (parentJclOrgMap.getFType()) {
// 分部
case 1:
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(1, parentJclOrgMap.getFObjId().toString(), null, null);
break;
// 部门
case 2:
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, parentJclOrgMap.getFObjId().toString(), null);
break;
// 岗位
case 3:
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, parentJclOrgMap.getFObjId().toString(), null);
break;
default:
break;
}
if (null != jclOrgMapSum) {
parentJclOrgMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMapSum.getFPlan());
parentJclOrgMap.setFOnJob(jclOrgMapSum.getFOnJob());
} else {
parentJclOrgMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
parentJclOrgMap.setFOnJob(0);
}
parentJclOrgMap.setFDateBegin(currentDate);
parentJclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
Calendar cal = Calendar.getInstance();
cal.setTime(parentJclOrgMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getCompTriggerMapper().deleteMap(parentJclOrgMap.getFType(), parentJclOrgMap.getFObjId(), parentJclOrgMap.getFDateBegin());
getCompTriggerMapper().updateMap(parentJclOrgMap.getFType(), parentJclOrgMap.getFObjId(), parentJclOrgMap.getFDateBegin(), time);
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(parentJclOrgMap);
if (null != parentJclOrgMap.getFParentId() && -1 != parentJclOrgMap.getFParentId()) {
updateParentPlanAndJob(currentDate, parentJclOrgMap.getFParentId().toString());
}
}
}
}
//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;
//import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
//import com.engine.organization.mapper.job.JobMapper;
//import com.engine.organization.mapper.staff.StaffMapper;
//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.List;
//
///**
// * @author:dxfeng
// * @createTime: 2022/08/30
// * @version: 1.0
// */
//public class JobTriggerRunnable implements Runnable {
//
// private final JobPO oldJob;
// private final JobPO newJob;
// private Boolean forbiddenTag = false;
//
// 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(Boolean forbiddenTag, JobPO oldJob, JobPO newJob) {
// this.oldJob = oldJob;
// this.newJob = newJob;
// this.forbiddenTag = forbiddenTag;
// }
//
// public JobTriggerRunnable(Long jobId) {
// this.oldJob = new JobPO();
// this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId);
// }
//
// public JobTriggerRunnable(Long oldJobId, Long newJobId) {
// this.oldJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(oldJobId);
// this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(newJobId);
// }
//
// 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;
// }
// // 判断
// JclOrgMap jclMap = new JclOrgMap();
// int st = 100000000;
// int sj = 200000000;
// jclMap.setFType(3);
// // 更新逻辑
// jclMap.setFObjId(newJob.getId().intValue());
// jclMap.setId(newJob.getId().intValue() + sj);
// jclMap.setFNumber(newJob.getJobNo());
// jclMap.setFName(newJob.getJobName());
// jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj);
// jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue());
// Integer parentdept = newJob.getParentDept().intValue();
//
// jclMap.setFClass(0);
// jclMap.setFClassName("行政维度");
//
// String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
// jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
// jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
//
// JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(jclMap.getFDateBegin(), ModuleTypeEnum.jobfielddefined.getValue().toString(), jclMap.getFObjId().toString());
//
// // 该岗位有下级岗位时,查询
// JclOrgMap jclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(jclMap.getFDateBegin(), jclMap.getId().toString());
//
// StaffPO staffPO = new StaffPO();
// switch (jclMap.getFType()) {
// // 部门
// case 2:
// staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, jclMap.getFObjId().toString(), null);
// break;
// // 岗位
// case 3:
// staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, null, jclMap.getFObjId().toString());
// break;
// default:
// break;
// }
// if (null != jclOrgMapByObjID) {
// if (null != jclOrgMap) {
// jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan());
// jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob());
// } else {
// jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
// jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
// }
// } else {
// jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
// jclMap.setFOnJob(0);
// }
// jclMap.setFIsVitual(0);
//
// Calendar cal = Calendar.getInstance();
// cal.setTime(jclMap.getFDateBegin());
// Calendar calendar = DateUtil.addDay(cal, -1);
// Date time = new Date(calendar.getTime().getTime());
// getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
// getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
//
// if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) {
// MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
// }
// if (null != jclOrgMapByObjID) {
// if (null != jclOrgMapByObjID.getFParentId()) {
// updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString());
// }
// }
// // 部门启用,刷新上级数据
// if (forbiddenTag) {
// updateParentPlanAndJob(jclMap.getFDateBegin(), jclMap.getFParentId().toString());
// }
// if (null != oldJob) {
// if (null != oldJob.getId()) {
// updateParentPlanAndJob(jclMap.getFDateBegin(), oldJob.getId().toString());
// }
// }
//
// }
//
// /**
// * 更新上级部门在编、在岗数
// */
// void updateParentPlanAndJob(Date currentDate, String parentId) {
// JclOrgMap parentJclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapById(currentDate, parentId);
// if (null != parentJclOrgMap) {
// // 上级部门当前在编、在岗数
// JclOrgMap jclOrgMapSum = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(currentDate, parentJclOrgMap.getId().toString());
// StaffPO staffPO = new StaffPO();
// switch (parentJclOrgMap.getFType()) {
// // 分部
// case 1:
// staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(1, parentJclOrgMap.getFObjId().toString(), null, null);
// break;
// // 部门
// case 2:
// staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, parentJclOrgMap.getFObjId().toString(), null);
// break;
// // 岗位
// case 3:
// staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, parentJclOrgMap.getFObjId().toString(), null);
// break;
// default:
// break;
// }
// if (null != jclOrgMapSum) {
// parentJclOrgMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMapSum.getFPlan());
// parentJclOrgMap.setFOnJob(jclOrgMapSum.getFOnJob());
// } else {
// parentJclOrgMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
// parentJclOrgMap.setFOnJob(0);
// }
// parentJclOrgMap.setFDateBegin(currentDate);
// parentJclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
//
// Calendar cal = Calendar.getInstance();
// cal.setTime(parentJclOrgMap.getFDateBegin());
// Calendar calendar = DateUtil.addDay(cal, -1);
// Date time = new Date(calendar.getTime().getTime());
// getCompTriggerMapper().deleteMap(parentJclOrgMap.getFType(), parentJclOrgMap.getFObjId(), parentJclOrgMap.getFDateBegin());
// getCompTriggerMapper().updateMap(parentJclOrgMap.getFType(), parentJclOrgMap.getFObjId(), parentJclOrgMap.getFDateBegin(), time);
// MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(parentJclOrgMap);
// if (null != parentJclOrgMap.getFParentId() && -1 != parentJclOrgMap.getFParentId()) {
// updateParentPlanAndJob(currentDate, parentJclOrgMap.getFParentId().toString());
// }
// }
// }
//}
Loading…
Cancel
Save