From 8f7901cee407ac595437fa420162fc2d5c4c8f46 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 11 Nov 2020 14:42:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=81=E7=A8=8B=E6=B5=81?= =?UTF-8?q?=E8=BD=AC=E5=BE=85=E5=8A=9E=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/common/emun/WorkMsgTypeEnum.java | 1 + .../service/impl/FlowStartServiceImpl.java | 1 + .../job/business/DingtalkBusiness.java | 42 +++++++++++++++++-- 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index 5222cd33..7d8f2b6f 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -18,6 +18,7 @@ public enum WorkMsgTypeEnum { END(5, "绩效终止", "去查看", "# 绩效终止\n ## @,你的绩效终止"), START_WORK(6, "绩效考评待办事项", "去查看", "# 绩效目标制定\n ## @,你的绩效需要制定目标"), START_SCORE(7, "绩效考评待办事项", "去查看", "# 绩效结果输入\n ## @,你的绩效需要输入结果"), + PROCESS(8, "绩效考评待办事项", "去查看", "# @的绩效\n ## 需您去处理"), // 您的2020年10月绩效考核已经开始,请尽快制定绩效目标 // 吴林的2020年12月绩效考核的目标需要您确认,点击前往确认 ; diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java index d148234a..d4abcd7e 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java @@ -163,6 +163,7 @@ public class FlowStartServiceImpl extends ServiceImpl toStaffids, int type) { + + if(toStaffids.get(0).getEmployeeId() == null || toStaffids.get(0).getEmployeeId().length() == 0){ + //查询第三方id + List ids = toStaffids.stream().map(new Function() { + @Override + public Long apply(StaffSimpleInfo staffSimpleInfo) { + return staffSimpleInfo.getId(); + } + }).collect(Collectors.toList()); + List staffSimpleInfos = staffService.selectStaffSimpleInfos(ids); + Map map = toStaffids.stream().collect(Collectors.toMap(StaffSimpleInfo::getId, e->e)); + for (StaffSimpleInfo staff:staffSimpleInfos + ) { + StaffSimpleInfo staff1 = map.get(staff.getId()); + staff1.setEmployeeId(staff1.getEmployeeId()); + } + } + WorkMsgTypeEnum workMsgTypeEnum = WorkMsgTypeEnum.findRoleTypeByCode(type); + + ThreadSendMessage threadSendMessage = new ThreadSendMessage(fromStaff, toStaffids, workMsgTypeEnum, appid); + Thread thread = new Thread(threadSendMessage); + thread.start(); + return "OK"; + } public String sendWorkMSGWithAsyn(List toStaffids, int type) { @@ -215,7 +240,7 @@ public class DingtalkBusiness { } WorkMsgTypeEnum workMsgTypeEnum = WorkMsgTypeEnum.findRoleTypeByCode(type); - ThreadSendMessage threadSendMessage = new ThreadSendMessage(toStaffids, workMsgTypeEnum, appid); + ThreadSendMessage threadSendMessage = new ThreadSendMessage(null, toStaffids, workMsgTypeEnum, appid); Thread thread = new Thread(threadSendMessage); thread.start(); return "OK"; @@ -287,12 +312,14 @@ public class DingtalkBusiness { public class ThreadSendMessage implements Runnable{ List toStaffids; + StaffSimpleInfo fromStaff = null; WorkMsgTypeEnum workMsgTypeEnum; String appid; String hostUrl = "https://lzmanagement.ldxinyong.com/digitization/dingTalkLogin"; - public ThreadSendMessage(List toStaffids, WorkMsgTypeEnum typeEnum, String appid){ + public ThreadSendMessage(StaffSimpleInfo fromStaff, List toStaffids, WorkMsgTypeEnum typeEnum, String appid){ this.toStaffids = toStaffids; workMsgTypeEnum = typeEnum; + this.fromStaff = fromStaff; this.appid = appid; } @@ -315,9 +342,16 @@ public class DingtalkBusiness { url = URLEncoder.encode(url); - url = "dingtalk://dingtalkclient/page/link?pc_slide=true&url=" + url; + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + String content = null; + if(fromStaff == null){ + content = workMsgTypeEnum.getContent().replace("@", info.getName()); + }else{ + content = workMsgTypeEnum.getContent().replace("@", fromStaff.getName()); + } - String content = workMsgTypeEnum.getContent().replace("@", info.getName()); StaffEntity entity = new StaffEntity(); entity.setId(info.getId()); entity.setEmployeeId(info.getEmployeeId());