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;
+ }
+}