From 254ad30297f7aae7c2918ed6cb17fa5aa217e044 Mon Sep 17 00:00:00 2001 From: wangjie <805650258@qq.com> Date: Mon, 3 Jul 2023 15:37:11 +0800 Subject: [PATCH] =?UTF-8?q?#=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cronjob/RelationshipReminderJob.java | 139 ++++++++++++++++++ .../interfaces/shuzhi/util/WorkflowUtil.java | 92 ++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 src/weaver/interfaces/shuzhi/cronjob/RelationshipReminderJob.java create mode 100644 src/weaver/interfaces/shuzhi/util/WorkflowUtil.java diff --git a/src/weaver/interfaces/shuzhi/cronjob/RelationshipReminderJob.java b/src/weaver/interfaces/shuzhi/cronjob/RelationshipReminderJob.java new file mode 100644 index 0000000..0e9c389 --- /dev/null +++ b/src/weaver/interfaces/shuzhi/cronjob/RelationshipReminderJob.java @@ -0,0 +1,139 @@ +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; + } +} diff --git a/src/weaver/interfaces/shuzhi/util/WorkflowUtil.java b/src/weaver/interfaces/shuzhi/util/WorkflowUtil.java new file mode 100644 index 0000000..a1c4d24 --- /dev/null +++ b/src/weaver/interfaces/shuzhi/util/WorkflowUtil.java @@ -0,0 +1,92 @@ +package weaver.interfaces.shuzhi.util; + +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; +import weaver.workflow.request.RequestComInfo; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.util.Map; + +/** + * 类的详细说明 + * + * @author wangj + * @version 1.00版本 + * @Date 2023/7/3 + */ + +public class WorkflowUtil extends BaseBean { + /** + * @param @param creatorId 创建⼈Id + * @param @param workflowId 流程Id + * @param @param requestName 请求标题 + * @param @param IsNextFlow 是否提交到下⼀节点 + * @param @param requestMap Map格式的主表数据=<字段名称,字段值> + * @param @return 设定⽂件 + * @return String 返回类型 + * @throws + * @Title: WorkflowCreateByMainTableMap + */ + public String WorkflowCreateByMainTableMap(String creatorId, String workflowId, String requestName, String IsNextFlow, Map requestMainMap) { + writeLog("-----创建流程传递的参数个数--------"); + writeLog("creatorId:" + creatorId); + writeLog("workflowId:" + workflowId); + writeLog("requestName:" + requestName); + writeLog("IsNextFlow:" + IsNextFlow); + String requestid = ""; + RequestInfo requestInfo = new RequestInfo(); + requestInfo.setCreatorid(creatorId);//创建⼈Id + requestInfo.setWorkflowid(workflowId);//⼯作流Id + requestInfo.setDescription(requestName);//请求标题 + if (!"".equals(IsNextFlow)) { + requestInfo.setIsNextFlow(IsNextFlow); + } + //主表字段 + MainTableInfo mainTableInfo = new MainTableInfo(); + Property[] propertyArray = new Property[requestMainMap.size()]; + int p = 0; + for (Map.Entry entry : requestMainMap.entrySet()) { + propertyArray[p] = new Property(); + propertyArray[p].setName(Util.null2String(entry.getKey())); + //2、其他接⼝ + propertyArray[p].setValue(Util.null2String(entry.getValue())); + writeLog("\r\n---p=" + p + "---Key=" + entry.getKey() + "---Value = " + entry.getValue()); + p++; + } + writeLog("-----创建流程传递的参数个数p=" + p); + mainTableInfo.setProperty(propertyArray); + requestInfo.setMainTableInfo(mainTableInfo); + RequestService service = new RequestService(); + try { +//流程 + try { + requestid = service.createRequest(requestInfo);//创建请求id + } catch (Exception e) { + writeLog("=======" + e.getMessage()); + } +//String userId = requestInfo.getLastoperator();//请求最后的操作者 +//记录⽇志 + StringBuffer sbf = new StringBuffer("\r\n-----xwd创建⼯作流记录⽇志开始"); + WorkflowComInfo wfcif = new WorkflowComInfo(); + RequestComInfo rcif = new RequestComInfo(); + ResourceComInfo rscif = new ResourceComInfo(); + sbf.append("\r\n-----姓名:" + rscif.getLastname(rcif.getRequestCreater(requestid))); + sbf.append("\r\n-----时间:" + rcif.getRequestCreateTime(requestid)); + sbf.append("\r\n-----创建流程:" + wfcif.getWorkflowname(workflowId)); + sbf.append("\r\n-----请求:" + rcif.getRequestname(requestid)); + sbf.append("\r\n-----请求:" + requestid); + sbf.append("\r\n-----创建⼯作流记录⽇志结束"); + writeLog(sbf.toString()); + System.out.println("" + sbf.toString()); + } catch (Exception e) { + writeLog("错误:" + e); + System.out.println("错误:" + e); + } + return requestid; + } +}