聚才林产品功能开发

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

@ -7,6 +7,7 @@ import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -80,7 +81,7 @@ public class EmploymentUtil {
.workcode(Util.null2String(rs.getString("workcode")))
.status(Util.getIntValue(rs.getString("status")))
.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")))
.birthday(Util.null2String(rs.getString("birthday")))
.jobTitle(Util.getIntValue(rs.getString("jobtitle")))
@ -117,7 +118,29 @@ public class EmploymentUtil {
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;
import cn.hutool.core.collection.CollectionUtil;
import com.engine.jclproduct.entity.bo.EmploymentRecordBo;
import com.engine.jclproduct.entity.po.DataDutyPo;
import com.engine.jclproduct.entity.po.EmploymentRecordPo;
@ -14,9 +15,9 @@ import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
* @Author liang.cheng
@ -56,9 +57,16 @@ public class EmploymentRecordCrob extends BaseCronJob {
//1.入转调离 人员数据变化处理
DataDutyPo dataDutyPo = dutyDatasChange(hrmresource);
hrmresourceUpdate.add(dataDutyPo.getHrmresourceUpdate());
hrmresourceInsert.add(dataDutyPo.getHrmresourceInsert());
employmentRecordInsert.addAll(dataDutyPo.getEmploymentRecordInsert());
if (dataDutyPo.getHrmresourceUpdate() != null) {
hrmresourceUpdate.add(dataDutyPo.getHrmresourceUpdate());
}
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());
//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.人员任职记录表
employmentRecordInsert.forEach(e->{
//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.新增数据
@ -147,16 +173,21 @@ public class EmploymentRecordCrob extends BaseCronJob {
employmentRecord.setChangeNewSuperior(hrmresource.getManagerId());
//调动
employmentRecord.setChangType(3);
employmentRecord.setChangType(2);
employmentRecords.add(employmentRecord);
}
//3.1 数据不一致,人员中间表更新
hrmresource.setId(lastResource.getId());
dataDutyPo.setHrmresourceUpdate(hrmresource);
//3.2 数据不一致,任职记录表新增
dataDutyPo.setEmploymentRecordInsert(employmentRecords);
if (!hrmresource.getStatus().equals(lastResource.getStatus())
|| !hrmresource.getDepartmentId().equals(lastResource.getDepartmentId())
|| !hrmresource.getJobTitle().equals(lastResource.getJobTitle())
|| !hrmresource.getManagerId().equals(lastResource.getManagerId())) {
//3.1 数据不一致,人员中间表更新
hrmresource.setId(lastResource.getId());
dataDutyPo.setHrmresourceUpdate(hrmresource);
//3.2 数据不一致,任职记录表新增
dataDutyPo.setEmploymentRecordInsert(employmentRecords);
}
}else {
//4.数据不存在作新增

Loading…
Cancel
Save