From e8b65e988bcd6ae99cf9de49a9c2bea7b2d6c75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=A0=8B?= Date: Mon, 15 Apr 2024 17:03:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=8F=91=E9=82=AE=E4=BB=B6=E7=BB=99?= =?UTF-8?q?=E6=8A=84=E9=80=81=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qc2563600/CCOperatorUtil.java | 73 ++++++++++++++----- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/src/com/customization/qc2563600/CCOperatorUtil.java b/src/com/customization/qc2563600/CCOperatorUtil.java index 0e9776cd..4d8dbde6 100644 --- a/src/com/customization/qc2563600/CCOperatorUtil.java +++ b/src/com/customization/qc2563600/CCOperatorUtil.java @@ -1,7 +1,6 @@ package com.customization.qc2563600; import com.cloudstore.dev.api.bean.MessageType; -import com.engine.workflow.biz.requestForm.RequestRemindBiz; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -10,33 +9,31 @@ import weaver.workflow.msg.entity.MsgEntity; import weaver.workflow.msg.entity.MsgNoticeType; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; public class CCOperatorUtil { /** * 添加抄送人 */ - public static void sendMessage(int requestid, List userIds, String nodeid, MessageType messageType, MsgNoticeType msgNoticeType,User user) { - List requestMsgEntity = requestFlowMsg(requestid, userIds, nodeid, requestid + "", messageType, msgNoticeType, true); + public static void sendMessage(int requestid, List userIds, String nodeid, MessageType messageType, MsgNoticeType msgNoticeType, User user) { + List requestMsgEntity = requestFlowMsg(requestid, userIds, nodeid, requestid + "", messageType, msgNoticeType, user.getUID()); //发送消息提醒 new MsgPushUtil().pushMsg(requestMsgEntity); //先判断是否开启了流程邮件提醒功能,如果开启了则发送邮件提醒 - RecordSet recordSet = new RecordSet(); - recordSet.executeQuery("select a.isemailremind,a.id from workflow_base a left join workflow_requestbase b on b.workflowid = a.id where b.requestid = ?",requestid); - if(recordSet.next()) { - if("1".equals(recordSet.getString("isemailremind"))){ - int workflowid = recordSet.getInt("id"); - String src = "submit"; - RequestRemindBiz requestRemindBiz = new RequestRemindBiz(user,requestid,workflowid,src); - requestRemindBiz.doRemind(requestid,user.getUID(),workflowid,src,"0","1"); - } - } +// RecordSet recordSet = new RecordSet(); +// recordSet.executeQuery("select a.isemailremind,a.id from workflow_base a left join workflow_requestbase b on b.workflowid = a.id where b.requestid = ?",requestid); +// if(recordSet.next()) { +// new BaseBean().writeLog("qc2563600===>>isemailremind:" + recordSet.getString("isemailremind")); +// if("1".equals(recordSet.getString("isemailremind"))){ +// String workflowid = recordSet.getString("id"); +// SendEmailCustomUtil util = new SendEmailCustomUtil(user,Util.getIntValue(workflowid),requestid,"submit"); +// util.sendEmailCustom(workflowid,nodeid,requestid + "",user,String.join(",",userIds)); +// } +// } } - public static List requestFlowMsg(int requestId, List userIds, String current_node, String targetid, MessageType messageType, MsgNoticeType msgNoticeType,boolean isRejectCC) { + public static List requestFlowMsg(int requestId, List userIds, String current_node, String targetid, MessageType messageType, MsgNoticeType msgNoticeType, int currentUserId) { List innerMsg = new ArrayList<>(); try { @@ -50,6 +47,13 @@ public class CCOperatorUtil { baseEntity.addAllUserId(userIds); baseEntity.setDetailTitleParams("current_node", current_node); //当前节点 baseEntity.setDetailId(targetid); + baseEntity.setOperatorId(String.valueOf(currentUserId)); + RecordSet rs = new RecordSet(); + rs.executeQuery("select userid,id from workflow_currentoperator where (isremark = 8 or isremark = 9) " + + " and usertype = 0 and requestid = ? and nodeid = ?",requestId,current_node); + if (rs.getCounts() > 0){ + addOperatorId(rs, baseEntity); + } innerMsg.add(baseEntity); } catch (Exception e) { e.printStackTrace(); @@ -92,6 +96,38 @@ public class CCOperatorUtil { return msgEntity; } + /** + * 人员ID与操作者ID映射处理 + * @param rs + * @param msgEntity + */ + private static MsgEntity addOperatorId(RecordSet rs, MsgEntity msgEntity){ + + Map> userOperatorIds = new HashMap<>(); + + while (rs.next()) { + String userId = Util.null2String(rs.getString(1)); + String operatorId = Util.null2String(rs.getString(2)); + String nodeId = Util.null2String(rs.getString(3)); + msgEntity.addUserId(userId); + msgEntity.addCurrentOperatorNode(operatorId,nodeId); + + List OperatorIds = userOperatorIds.get(userId); + if (OperatorIds == null) { + OperatorIds = new ArrayList<>(); + OperatorIds.add(operatorId); + userOperatorIds.put(userId,OperatorIds); + } else { + OperatorIds.add(operatorId); + } + } + for(String userId : userOperatorIds.keySet()){ + msgEntity. addCurrentOperatorId(userId,String.join(",", userOperatorIds.get(userId))); + } + + return msgEntity; + } + public static void insert(String requestid, List addUsers, String nodeid, String isremark, User user) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); @@ -135,9 +171,6 @@ public class CCOperatorUtil { list.add(rs.getString("needwfback")); list.add(isremark); list.add(isremark); -// list.add(takid); -// list.add(2); -// list.add(rs.getString("multiTakLevel")); lists.add(list); rs3.executeUpdate("update workflow_currentoperator set islasttimes = 0 where requestid = ? and userid = ?", requestid, userIdTemp);