You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-develop/src/weaver/interfaces/shuzhi/cronjob/RelationshipReminderJob.java

255 lines
11 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package weaver.interfaces.shuzhi.cronjob;
import com.time.util.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.schedule.BaseCronJob;
import weaver.interfaces.shuzhi.util.WorkflowUtil;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 员工关系提醒流程-计划任务
* <p>
* 从转正记录uf_zzjl、员工调动记录uf_ddjl、离职办理查询表单uf_lzblcxbd
* 1、生效日期早于当前日期且无归档日期生成流程到人员手动调整
* 2、生效日期等于当前日期根据记录数据更新到hrmresource
*
* <p>
* uf_zzjl生效日期=zzrq转正日期、归档日期=gdrq归档日期
* 1、生效日期早于当前日期且无归档日期生成流程到人员手动调整
* 2、生效日期等于当前日期根据记录数据更新数据
*
* hrmresource表根据人员id更新status='1'
* uf_rzgljmb表员工状态ygzt转正日期zzrq员工人力资源ygrlzy
* update uf_rzgljmb set ygzt = '1' , zzrq = '" + date + "' where ygrlzy = '" + userid + "'
*
* <p>
* uf_ddjl生效日期=ddrq调动日期、归档日期=gdrq归档日期
* 1、生效日期早于当前日期且无归档日期生成流程到人员手动调整
* 2、生效日期等于当前日期根据记录数据更新数据
*
* hrmresource表根据人员id更新jobtitle岗位、departmentid部门、subcompanyid1分部
* uf_rzgljmb表岗位名称gwmc职级xl部门bm公司分部gsfb员工人力资源ygrlzy
* update uf_rzgljmb set gwmc = '"+xgw+"' , xl = '" + zj + "' ,bm = '"+xbm+"' ,gsfb = '"+xfb+"' where ygrlzy = '" + userid + "'
*
* <p>
* uf_lzblcxbd生效日期=jhlzrquf_lzblcxbd_dt1 计划离职日期)、归档日期=gdrq归档日期
* 1、生效日期早于当前日期且无归档日期生成流程到人员手动调整
* 2、生效日期等于当前日期根据记录数据更新数据
*
* hrmresource表根据人员id更新status='5'
* uf_rzgljmb表员工状态ygzt离职日期lzrq员工人力资源ygrlzy
* update uf_rzgljmb set ygzt = '3' , lzrq = '" + date + "' where ygrlzy = '" + userid + "'
*
* @author wangj
* @version 1.00版本
* @Date 2023/7/3
*/
public class RelationshipReminderJob extends BaseCronJob {
@Override
public void execute() {
BaseBean bb = new BaseBean();
String workflowid = bb.getPropValue("relationship", "workflowid");
String id = "";
String lastname = "";
String userid = "";
String sxrq = "";
String gdrq = "";
String date = DateUtil.getCurrentTime("yyyy-MM-dd");
RecordSet rs = new RecordSet();
//转正记录uf_zzjl uf_zzjl生效日期=zzrq转正日期、归档日期=gdrq归档日期
String sql = "select a.id,b.lastname,a.zzry,a.zzrq,a.gdrq from uf_zzjl a left join hrmresource b on a.zzry = b.id where a.txlcid is null";
rs.execute(sql);
while (rs.next()) {
String zt = "";
id = Util.null2String(rs.getString("id"));
lastname = Util.null2String(rs.getString("lastname"));
sxrq = Util.null2String(rs.getString("zzrq"));
gdrq = Util.null2String(rs.getString("gdrq"));
userid = Util.null2String(rs.getString("zzry"));
if ("".equals(id) || "".equals(sxrq) || "".equals(userid)) {
continue;
}
if (sxrq.equals(date)) {
//2、生效日期等于当前日期根据记录数据更新到hrmresource
zt = updateZZHrmStatus(userid, "1", date);
}
boolean flag = compareDate(sxrq, date);
if ("".equals(gdrq) && flag) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-转正-" + lastname + "-" + date;
Map<String, String> mainMap = new HashMap<>();
mainMap.put("ygxm", userid);
mainMap.put("gxlx", "0");
mainMap.put("sxrq", sxrq);
// mainMap.put("gdrq",gdrq);
zt = new WorkflowUtil().WorkflowCreateByMainTableMap(userid, workflowid, requestName, "0", mainMap);
if (Util.getIntValue(zt) < 0) {
zt = "";
}
}
if(!"".equals(zt)){
updateRecordData( id, zt,"uf_zzjl");
}
}
String xbm = "";
String xgw = "";
String zj = "";
String xfb = "";
//员工调动记录uf_ddjl uf_ddjl生效日期=ddrq调动日期、归档日期=gdrq归档日期
sql = " select b.id,b.nzzry,b.xbm,d.subcompanyid1,b.xgw,c.lastname,b.zj,a.ddrq,a.gdrq from uf_ddjl a left join uf_ddjl_dt1 b on a.id = b.mainid left join hrmresource c on c.id = b.nzzry left join hrmdepartment d on d.id = b.xbm where b.txlcid is null";
rs.execute(sql);
while (rs.next()) {
String zt = "";
id = Util.null2String(rs.getString("id"));
lastname = Util.null2String(rs.getString("lastname"));
sxrq = Util.null2String(rs.getString("ddrq"));
gdrq = Util.null2String(rs.getString("gdrq"));
userid = Util.null2String(rs.getString("nzzry"));
xbm = Util.null2String(rs.getString("xbm"));
xgw = Util.null2String(rs.getString("xgw"));
zj = Util.null2String(rs.getString("zj"));
xfb = Util.null2String(rs.getString("subcompanyid1"));
if ("".equals(id) || "".equals(sxrq) || "".equals(userid)) {
continue;
}
if (sxrq.equals(date)) {
//2、生效日期等于当前日期根据记录数据更新到hrmresource
//更新hrmresource表岗位、部门、入职管理建模表uf_rzgljmb岗位、职级名称、部门、公司名称-分部)
zt = updateDDHrmStatus(userid, date, xgw, xbm, xfb, zj);
}
boolean flag = compareDate(sxrq, date);
if ("".equals(gdrq) && flag) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-调动-" + lastname + "-" + date;
Map<String, String> mainMap = new HashMap<>();
mainMap.put("ygxm", userid);
mainMap.put("gxlx", "1");
mainMap.put("sxrq", sxrq);
zt = new WorkflowUtil().WorkflowCreateByMainTableMap(userid, workflowid, requestName, "0", mainMap);
if (Util.getIntValue(zt) < 0) {
zt = "";
}
}
if(!"".equals(zt)){
updateRecordData( id, zt,"uf_ddjl_dt1");
}
}
//uf_lzblcxbd生效日期=jhlzrquf_lzblcxbd_dt1 计划离职日期)、归档日期=gdrq归档日期
sql = "select b.id,b.lzry,c.lastname,b.jhlzrq,a.gdrq from uf_lzblcxbd a left join uf_lzblcxbd_dt1 b on a.id = b.mainid left join hrmresource c on c.id = b.lzry where b.txlcid is null";
rs.execute(sql);
while (rs.next()) {
String zt = "";
id = Util.null2String(rs.getString("id"));
lastname = Util.null2String(rs.getString("lastname"));
sxrq = Util.null2String(rs.getString("jhlzrq"));
gdrq = Util.null2String(rs.getString("gdrq"));
userid = Util.null2String(rs.getString("lzry"));
if ("".equals(id) || "".equals(sxrq) || "".equals(userid)) {
continue;
}
if (sxrq.equals(date)) {
//2、生效日期等于当前日期根据记录数据更新到hrmresource
zt = updateLZHrmStatus(userid, "5", date);
}
boolean flag = compareDate(sxrq, date);
if ("".equals(gdrq) && flag) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-离职-" + lastname + "-" + date;
Map<String, String> mainMap = new HashMap<>();
mainMap.put("ygxm", userid);
mainMap.put("gxlx", "2");
mainMap.put("sxrq", sxrq);
zt = new WorkflowUtil().WorkflowCreateByMainTableMap(userid, workflowid, requestName, "0", mainMap);
if (Util.getIntValue(zt) < 0) {
zt = "";
}
}
if(!"".equals(zt)){
updateRecordData( id, zt,"uf_lzblcxbd_dt1");
}
}
}
//转正
private String updateZZHrmStatus(String userid, String status, String date) {
RecordSet rs = new RecordSet();
String sql = "update hrmresource set status = '" + status + "' where id = '" + userid + "'";
rs.execute(sql);
sql = "update uf_rzgljmb set ygzt = '1' , zzrq = '" + date + "' where ygrlzy = '" + userid + "'";
rs.execute(sql);
return "update";
}
//离职
private String updateLZHrmStatus(String userid, String status, String date) {
RecordSet rs = new RecordSet();
String sql = "update hrmresource set status = '" + status + "' where id = '" + userid + "'";
rs.execute(sql);
sql = "update uf_rzgljmb set ygzt = '3' , lzrq = '" + date + "' where ygrlzy = '" + userid + "'";
rs.execute(sql);
return "update";
}
//调动
private String updateDDHrmStatus(String userid, String date, String xgw, String xbm, String xfb, String zj) {
RecordSet rs = new RecordSet();
String sql = "update hrmresource set jobtitle = '" + xgw + "' ,departmentid = '"+xbm+"' ,subcompanyid1 = '"+xfb+"' where id = '" + userid + "'";
rs.execute(sql);
//岗位、职级名称、部门、公司名称-分部
sql = "update uf_rzgljmb set gwmc = '"+xgw+"' , xl = '" + zj + "' ,bm = '"+xbm+"' ,gsfb = '"+xfb+"' where ygrlzy = '" + userid + "'";
rs.execute(sql);
return "update";
}
private boolean compareDate(String start, String end) {
boolean flag = false;
Date sdate = DateUtil.parseDate(start, "yyyy-MM-dd");
Date edate = DateUtil.parseDate(end, "yyyy-MM-dd");
if (sdate.getTime() < edate.getTime()) {
flag = true;
}
return flag;
}
private void updateRecordData(String id,String zt,String tablename){
RecordSet rs = new RecordSet();
rs.execute("update "+tablename+" set txlcid = '"+zt+"' where id = '"+id+"'");
}
}