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; /** * 员工关系提醒流程-计划任务 *

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

* uf_zzjl:生效日期=zzrq(转正日期)、归档日期=gdrq(归档日期) *

* uf_ddjl:生效日期=ddrq(调动日期)、归档日期=gdrq(归档日期) *

* uf_lzblcxbd:生效日期=jhlzrq(uf_lzblcxbd_dt1 计划离职日期)、归档日期=gdrq(归档日期) * * @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 = updateHrmStatus(userid, "1"); } boolean flag = compareDate(sxrq, date); if ("".equals(gdrq) && flag) { //生效日期早于当前日期且无归档日期,生成流程到人员,手动调整; String requestName = "员工关系更新提醒-" + lastname + "-" + date; Map 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 = ""; } } } //员工调动记录(uf_ddjl) uf_ddjl:生效日期=ddrq(调动日期)、归档日期=gdrq(归档日期) // sql = "select a.id,b.sqr,b.lastname,a.ddrq,a.gdrq uf_ddjl a left join hrmresource b on a.sqr = 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("ddrq")); // gdrq = Util.null2String(rs.getString("gdrq")); // userid = Util.null2String(rs.getString("sqr")); // // if ("".equals(id) || "".equals(sxrq) || "".equals(userid)) { // continue; // } // // if (sxrq.equals(date)) { // //2、生效日期等于当前日期,根据记录数据更新到hrmresource // zt = updateHrmStatus(userid, "1"); // } // // boolean flag = compareDate(sxrq, date); // // if ("".equals(gdrq) && flag) { // //生效日期早于当前日期且无归档日期,生成流程到人员,手动调整; // String requestName = "员工关系更新提醒-" + lastname + "-" + date; // Map 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 = ""; // } // } } private String updateHrmStatus(String userid, String status) { RecordSet rs = new RecordSet(); String sql = "update hrmresource set status = '" + status + "' where id = '" + 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; } }