package weaver.interfaces.shuzhi.cronjob; import com.time.util.DateUtil; import tebie.applib.api.S; 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; /** * 员工关系提醒流程-计划任务 *

* 从转正记录(uf_zzjl)、员工调动记录(uf_ddjl)、离职办理查询表单(uf_lzblcxbd), * 1、生效日期早于当前日期且无归档日期,生成流程到人员,手动调整; * 2、生效日期等于当前日期,根据记录数据更新到hrmresource * *

* uf_zzjl:生效日期=zzrq(转正日期)、归档日期=gdrq(归档日期) 1、生效日期小于等于当前日期,当前日期=归档日期+1天,更新人力资源表单(hrmresource)、入职管理建模表(uf_rzgljmb) 2、生效日期大于当前日期,当前日期=生效日期,更新人力资源表单(hrmresource)、入职管理建模表(uf_rzgljmb) * * hrmresource表:根据人员id更新status='1' * uf_rzgljmb表:(员工状态:ygzt,转正日期:zzrq,员工(人力资源):ygrlzy) * update uf_rzgljmb set ygzt = '1' , zzrq = '" + date + "' where ygrlzy = '" + userid + "' * *

* uf_ddjl:生效日期=ddrq(调动日期)、归档日期=gdrq(归档日期) * 1、生效日期大于当前日期,当前日期=生效日期,根据记录数据更新数据 * 2、生效日期小于等于当前日期,当前日期=归档日期+1天,根据记录数据更新数据 * * 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 + "' * *

* uf_lzblcxbd:生效日期=jhlzrq(uf_lzblcxbd_dt1 计划离职日期)、归档日期=gdrq(归档日期) * 1、生效日期大于当前日期,当前日期=生效日期,根据记录数据更新数据 * 2、生效日期小于等于当前日期,当前日期=归档日期+1天,根据记录数据更新数据 * * 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"); String datebefore = DateUtil.formatDate(DateUtil.getDateAfterDays(new Date(),-1),"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)|| "".equals(gdrq)) { continue; } if (compareDateLessEquation(sxrq,date) && compareDateEquation(datebefore,gdrq)) { //1、生效日期小于等于当前日期,当前日期 - 1 = 归档日期,更新人力资源表单(hrmresource)、入职管理建模表(uf_rzgljmb) zt = updateZZHrmStatus(userid, "1", date); } if(!compareDateLessEquation(sxrq,date) && compareDateEquation(date,sxrq)){ //2、生效日期大于当前日期,当前日期=生效日期,更新人力资源表单(hrmresource)、入职管理建模表(uf_rzgljmb) zt = updateZZHrmStatus(userid, "1", date); } 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)|| "".equals(gdrq)) { continue; } if (compareDateLessEquation(sxrq,date)&&compareDateEquation(datebefore,gdrq)) { //2、生效日期小于等于当前日期,当前日期-1 =归档日期,根据记录数据更新数据 //更新hrmresource表(岗位、部门)、入职管理建模表uf_rzgljmb(岗位、职级名称、部门、公司名称-分部) zt = updateDDHrmStatus(userid, date, xgw, xbm, xfb, zj); } if(!compareDateLessEquation(sxrq,date)&&compareDateEquation(date,gdrq)){ //1、生效日期大于当前日期,当前日期=生效日期,根据记录数据更新数据 zt = updateDDHrmStatus(userid, date, xgw, xbm, xfb, zj); } if(!"".equals(zt)){ updateRecordData( id, zt,"uf_ddjl_dt1"); } } //uf_lzblcxbd:生效日期=jhlzrq(uf_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)|| "".equals(gdrq)) { continue; } if (compareDateLessEquation(sxrq,date)&&compareDateEquation(datebefore,gdrq)) { //2、生效日期小于等于当前日期,当前日期=归档日期+1天,根据记录数据更新数据 zt = updateLZHrmStatus(userid, "5", date); } if(!compareDateLessEquation(sxrq,date)&&compareDateEquation(date,gdrq)){ //1、生效日期大于当前日期,当前日期=生效日期,根据记录数据更新数据 zt = updateLZHrmStatus(userid, "5", date); } 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+"' ,gzdw = '"+xfb+"' where ygrlzy = '" + userid + "'"; rs.execute(sql); return "update"; } /** * @Description: 比较日期相等 * @Param: * @return: * @Author: wangj */ private boolean compareDateEquation(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; } /** * @Description: 比较日期小于等于 * @Param: * @return: * @Author: wangj */ private boolean compareDateLessEquation(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; } // /** // * @Description: 比较日期加一天相等 // * @Param: // * @return: // * @Author: wangj // */ // private boolean compareDateOneDayEquation(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+"'"); } }