聚才林产品功能开发

聚才林产品功能
Chengliang 6 months ago
parent b4dc69bd40
commit 6b8be6a430

@ -7,6 +7,7 @@ import weaver.common.DateUtil;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -80,7 +81,7 @@ public class EmploymentUtil {
.workcode(Util.null2String(rs.getString("workcode"))) .workcode(Util.null2String(rs.getString("workcode")))
.status(Util.getIntValue(rs.getString("status"))) .status(Util.getIntValue(rs.getString("status")))
.companyStartDate(Util.null2String(rs.getString("companystartdate"))) .companyStartDate(Util.null2String(rs.getString("companystartdate")))
.companyWorkyear(Util.null2String(rs.getString("companyworkyear"))) .companyWorkyear("".equals(Util.null2String(rs.getString("companyworkyear"))) ? "0.00" : Util.null2String(rs.getString("companyworkyear")))
.sex(Util.getIntValue(rs.getString("sex"))) .sex(Util.getIntValue(rs.getString("sex")))
.birthday(Util.null2String(rs.getString("birthday"))) .birthday(Util.null2String(rs.getString("birthday")))
.jobTitle(Util.getIntValue(rs.getString("jobtitle"))) .jobTitle(Util.getIntValue(rs.getString("jobtitle")))
@ -117,7 +118,29 @@ public class EmploymentUtil {
break; break;
} }
}
/**
*
* @param dateStr1
* @return
*/
public static boolean compareDate(String dateStr1){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
boolean result = false;
try {
LocalDate inputDate = LocalDate.parse(dateStr1, formatter);
LocalDate today = LocalDate.now();
// 判断当前日期是否大于传入的日期
if (today.isAfter(inputDate)) {
result = true;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
} }

@ -1,6 +1,7 @@
package weaver.interfaces.jclproduct; package weaver.interfaces.jclproduct;
import cn.hutool.core.collection.CollectionUtil;
import com.engine.jclproduct.entity.bo.EmploymentRecordBo; import com.engine.jclproduct.entity.bo.EmploymentRecordBo;
import com.engine.jclproduct.entity.po.DataDutyPo; import com.engine.jclproduct.entity.po.DataDutyPo;
import com.engine.jclproduct.entity.po.EmploymentRecordPo; import com.engine.jclproduct.entity.po.EmploymentRecordPo;
@ -14,9 +15,9 @@ import weaver.common.DateUtil;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.interfaces.schedule.BaseCronJob; import weaver.interfaces.schedule.BaseCronJob;
import java.util.ArrayList; import java.time.LocalDate;
import java.util.Collections; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.*;
/** /**
* @Author liang.cheng * @Author liang.cheng
@ -56,9 +57,16 @@ public class EmploymentRecordCrob extends BaseCronJob {
//1.入转调离 人员数据变化处理 //1.入转调离 人员数据变化处理
DataDutyPo dataDutyPo = dutyDatasChange(hrmresource); DataDutyPo dataDutyPo = dutyDatasChange(hrmresource);
hrmresourceUpdate.add(dataDutyPo.getHrmresourceUpdate()); if (dataDutyPo.getHrmresourceUpdate() != null) {
hrmresourceInsert.add(dataDutyPo.getHrmresourceInsert()); hrmresourceUpdate.add(dataDutyPo.getHrmresourceUpdate());
employmentRecordInsert.addAll(dataDutyPo.getEmploymentRecordInsert()); }
if (dataDutyPo.getHrmresourceInsert() != null) {
hrmresourceInsert.add(dataDutyPo.getHrmresourceInsert());
}
if (CollectionUtil.isNotEmpty(dataDutyPo.getEmploymentRecordInsert())) {
employmentRecordInsert.addAll(dataDutyPo.getEmploymentRecordInsert());
}
}); });
@ -67,20 +75,38 @@ public class EmploymentRecordCrob extends BaseCronJob {
bb.writeLog("employmentRecordInsert:"+employmentRecordInsert.size()); bb.writeLog("employmentRecordInsert:"+employmentRecordInsert.size());
//3.人员信息中间表 //3.人员信息中间表
//更新 //更新
hrmresourceUpdate.forEach(e -> { hrmresourceUpdate.forEach(e -> rs.executeUpdate("update uf_hrmresource_day set status=?,companystartdate=?,companyworkyear=?," +
" sex=?,birthday=?,jobtitle=?,departmentid=?,subcompanyid=?,managerid=? where userid=?",e.getStatus(),e.getCompanyStartDate(),
}); e.getCompanyWorkyear(),e.getSex(),e.getBirthday(),e.getJobTitle(),e.getDepartmentId(),e.getSubcompanyId(),e.getManagerId(),e.getUserId()));
//插入 //插入
hrmresourceInsert.forEach(e->{ hrmresourceInsert.forEach(e-> rs.executeUpdate("insert into uf_hrmresource_day(userId,workcode,companystartdate,companyworkyear," +
" birthday,jobtitle,departmentid,subcompanyid,managerid,status,sex) values(?,?,?,?,?,?,?,?,?,?,?)",e.getUserId(),e.getWorkcode(),
}); e.getCompanyStartDate(),e.getCompanyWorkyear(),e.getBirthday(),e.getJobTitle(),e.getDepartmentId(),e.getSubcompanyId(),e.getManagerId(),e.getStatus(),e.getSex()));
//4.人员任职记录表 //4.人员任职记录表
employmentRecordInsert.forEach(e->{ employmentRecordInsert.forEach(e->{
//1.更新上一条数据stopDate //1.更新上一条数据stopDate
List<EmploymentRecordPo> list = new ArrayList<>();
rs.executeQuery("select id,startDate from uf_EmploymentRecord where userid = ?",e.getUserId());
while (rs.next()) {
list.add(EmploymentRecordPo.builder().id(Util.getIntValue(rs.getString("id"))).startDate(Util.null2String(rs.getString("startDate"))).build());
}
if (CollectionUtil.isNotEmpty(list)) {
String date = DateUtil.getCurrentDate();
EmploymentRecordPo latest = list.stream()
.max(Comparator.comparing(record -> LocalDate.parse(record.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
.orElse(null);
assert latest != null;
if (EmploymentUtil.compareDate(latest.getStartDate())) {
date = DateUtil.getYesterday();
}
rs.executeUpdate("update uf_EmploymentRecord set stopDate = ? where id = ?",date,latest.getId());
}
//2.新增数据 //2.新增数据
@ -147,16 +173,21 @@ public class EmploymentRecordCrob extends BaseCronJob {
employmentRecord.setChangeNewSuperior(hrmresource.getManagerId()); employmentRecord.setChangeNewSuperior(hrmresource.getManagerId());
//调动 //调动
employmentRecord.setChangType(3); employmentRecord.setChangType(2);
employmentRecords.add(employmentRecord); employmentRecords.add(employmentRecord);
} }
//3.1 数据不一致,人员中间表更新
hrmresource.setId(lastResource.getId()); if (!hrmresource.getStatus().equals(lastResource.getStatus())
dataDutyPo.setHrmresourceUpdate(hrmresource); || !hrmresource.getDepartmentId().equals(lastResource.getDepartmentId())
//3.2 数据不一致,任职记录表新增 || !hrmresource.getJobTitle().equals(lastResource.getJobTitle())
dataDutyPo.setEmploymentRecordInsert(employmentRecords); || !hrmresource.getManagerId().equals(lastResource.getManagerId())) {
//3.1 数据不一致,人员中间表更新
hrmresource.setId(lastResource.getId());
dataDutyPo.setHrmresourceUpdate(hrmresource);
//3.2 数据不一致,任职记录表新增
dataDutyPo.setEmploymentRecordInsert(employmentRecords);
}
}else { }else {
//4.数据不存在作新增 //4.数据不存在作新增

Loading…
Cancel
Save