Browse Source

钉钉消息更新

fenghaifu 9 months ago
parent
commit
1364d41f10

+ 4 - 3
jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/util/DDMsgUtil.java

@@ -56,13 +56,14 @@ public class    DDMsgUtil {
     /**
      *
      * @param userIdList : 钉钉用户id列表,多个逗号分隔
+     * @param taskUserName : 待办任务用户名
      * @param title
      * @param body
      * @param taskId
      * @return
      */
 
-    public static Result<?> sendOaMessage(String userIdList, String title, String body,
+    public static Result<?> sendOaMessage(String userIdList, String taskUserName, String title, String body,
                                    String taskId){
 
         Result<?> tokenResult = getAccessToken();
@@ -75,9 +76,9 @@ public class    DDMsgUtil {
         }
 
         try {
-            LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            //LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
             // 参数为用户名_taskid des加密
-            String key = URLEncoder.encode(EncryptUtil.desEncrypt(loginUser.getUsername()+"_"+taskId),"UTF-8");
+            String key = URLEncoder.encode(EncryptUtil.desEncrypt(taskUserName+"_"+taskId),"UTF-8");
             String url = frontBaseUrl+"/activiti/check/"+ key;
             logger.error("请求地址:"+url);
 

+ 40 - 45
jeecg-boot/jeecg-boot-module-activiti/src/main/java/org/jeecg/modules/activiti/service/Impl/ActZprocessServiceImpl.java

@@ -173,7 +173,6 @@ public class ActZprocessServiceImpl extends ServiceImpl<ActZprocessMapper, ActZp
                 if(users==null||users.size()==0){
                     throw new RuntimeException("任务节点未分配任何候选审批人,发起流程失败");
                 }else{
-                    String ddUserIds = "";
                     // 分配了节点负责人分发给全部
                     for(LoginUser user : users){
                         taskService.addCandidateUser(task.getId(), user.getUsername());
@@ -184,32 +183,30 @@ public class ActZprocessServiceImpl extends ServiceImpl<ActZprocessMapper, ActZp
                         // 异步发消息 森语取消所有审批消息
 //                        sendActMessage(loginUser,user,actBusiness,task.getName(), actBusiness.getSendMessage(),
 //                                actBusiness.getSendSms(), actBusiness.getSendEmail(),map);
+                        // 发送钉钉消息
                         if (oConvertUtils.isNotEmpty(user.getDingUser())){
-                            ddUserIds+=user.getDingUser()+",";
+                            String title = "";//actBusiness.getTitle()+"需要您审批";
+                            String content = "";
+                            // 质量事故单
+                            if ("incident_ticket".equalsIgnoreCase(tableName)){
+                                content= oConvertUtils.getString(params.get("informant"))+
+                                        ","+oConvertUtils.getString(params.get("department_main"))+
+                                        ","+oConvertUtils.getString(params.get("accident_theme"));
+                                title = "质量事故单";
+                            }else if ("preparation_material_v1".equalsIgnoreCase(tableName)) {
+                                content = oConvertUtils.getString(params.get("ccode")) +
+                                        ","+oConvertUtils.getString(params.get("cvenabbname")) +
+                                        ","+oConvertUtils.getString(params.get("main_create_by")) +
+                                        ","+oConvertUtils.getString(params.get("imquantity"));
+                                title = "备坯申请";
+                            }
+                            if (oConvertUtils.isNotEmpty(content)) {
+                                DDMsgUtil.sendOaMessage(user.getDingUser(), user.getUsername(), title+"需要您审批", content, task.getId());
+                            }
                         }
                     }
 
-                    // 发送钉钉消息
-                    if (oConvertUtils.isNotEmpty(ddUserIds)){
-                        String title = "";//actBusiness.getTitle()+"需要您审批";
-                        String content = "";
-                        // 质量事故单
-                        if ("incident_ticket".equalsIgnoreCase(tableName)){
-                            content= oConvertUtils.getString(params.get("informant"))+
-                                    ","+oConvertUtils.getString(params.get("department_main"))+
-                                    ","+oConvertUtils.getString(params.get("accident_theme"));
-                            title = "质量事故单";
-                        }else if ("preparation_material_v1".equalsIgnoreCase(tableName)) {
-                            content = oConvertUtils.getString(params.get("ccode")) +
-                                    ","+oConvertUtils.getString(params.get("cvenabbname")) +
-                                    ","+oConvertUtils.getString(params.get("main_create_by")) +
-                                    ","+oConvertUtils.getString(params.get("imquantity"));
-                            title = "备坯申请";
-                        }
-                        if (oConvertUtils.isNotEmpty(content)) {
-                            DDMsgUtil.sendOaMessage(ddUserIds, title+"需要您审批", content, task.getId());
-                        }
-                    }
+
                 }
 
             }else {
@@ -235,31 +232,29 @@ public class ActZprocessServiceImpl extends ServiceImpl<ActZprocessMapper, ActZp
                 allUserList.forEach(u->{
                     if (oConvertUtils.isNotEmpty(u.getDingUser())){
                         if (assigneeUserIdList.stream().filter(e->e.equals(u.getUsername())).count()>0){
-                            ddUserIds.append(u.getDingUser()+",");
+                            // 发送钉钉消息
+                            String title ="";// actBusiness.getTitle()+;
+                            String content = "";
+                            // 质量事故单
+                            if ("incident_ticket".equalsIgnoreCase(tableName)){
+                                content= oConvertUtils.getString(params.get("informant"))+
+                                        ","+oConvertUtils.getString(params.get("department_main"))+
+                                        ","+oConvertUtils.getString(params.get("accident_theme"));
+                                title = "质量事故单";
+                            }else if ("preparation_material_v1".equalsIgnoreCase(tableName)) {
+                                content = oConvertUtils.getString(params.get("ccode")) +
+                                        ","+oConvertUtils.getString(params.get("cvenabbname")) +
+                                        ","+oConvertUtils.getString(params.get("main_create_by")) +
+                                        ","+oConvertUtils.getString(params.get("imquantity"));
+                                title = "备坯申请";
+                            }
+                            if (oConvertUtils.isNotEmpty(content)) {
+                                DDMsgUtil.sendOaMessage(u.getDingUser(), u.getUsername(),title+"需要您审批", content, task.getId());
+                            }
                         }
                     }
                 });
-                // 发送钉钉消息
-                if (ddUserIds.length()>0){
-                    String title ="";// actBusiness.getTitle()+;
-                    String content = "";
-                    // 质量事故单
-                    if ("incident_ticket".equalsIgnoreCase(tableName)){
-                        content= oConvertUtils.getString(params.get("informant"))+
-                                ","+oConvertUtils.getString(params.get("department_main"))+
-                                ","+oConvertUtils.getString(params.get("accident_theme"));
-                        title = "质量事故单";
-                    }else if ("preparation_material_v1".equalsIgnoreCase(tableName)) {
-                        content = oConvertUtils.getString(params.get("ccode")) +
-                                ","+oConvertUtils.getString(params.get("cvenabbname")) +
-                                ","+oConvertUtils.getString(params.get("main_create_by")) +
-                                ","+oConvertUtils.getString(params.get("imquantity"));
-                        title = "备坯申请";
-                    }
-                    if (oConvertUtils.isNotEmpty(content)) {
-                        DDMsgUtil.sendOaMessage(ddUserIds.toString(), title+"需要您审批", content, task.getId());
-                    }
-                }
+
             }
             // 设置任务优先级
             taskService.setPriority(task.getId(), actBusiness.getPriority());

+ 46 - 46
jeecg-boot/jeecg-boot-module-activiti/src/main/java/org/jeecg/modules/activiti/web/ActTaskController.java

@@ -511,7 +511,6 @@ public class ActTaskController {
                         // 避免重复添加
                         List<String> list = actBusinessService.selectIRunIdentity(t.getId(), "candidate");
                         if(list==null||list.size()==0) {
-                            String ddUserIds = "";
                             // 分配了节点负责人分发给全部
                             for (LoginUser user : users) {
                                 taskService.addCandidateUser(t.getId(), user.getId());
@@ -519,32 +518,35 @@ public class ActTaskController {
                                 map.put("isUrl","1");
                                 map.put("url","/activiti/applyList");
                                 map.put("taskId",t.getId());
+
+
+                                // 发送钉钉消息
+                                if (oConvertUtils.isNotEmpty(user.getDingUser())){
+                                    String title = "";//actBusiness.getTitle()+"需要您审批";
+                                    String content = "";
+                                    // 质量事故单
+                                    if ("incident_ticket".equalsIgnoreCase(actBusiness.getTableName())){
+                                        content= oConvertUtils.getString(busiData.get("informant"))+
+                                                ","+oConvertUtils.getString(busiData.get("department_main"))+
+                                                ","+oConvertUtils.getString(busiData.get("accident_theme"));
+                                        title = "质量事故单";
+                                    }else if ("preparation_material_v1".equalsIgnoreCase(actBusiness.getTableName())) {
+                                        content = oConvertUtils.getString(busiData.get("ccode")) +
+                                                ","+oConvertUtils.getString(busiData.get("cvenabbname")) +
+                                                ","+oConvertUtils.getString(busiData.get("main_create_by")) +
+                                                ","+oConvertUtils.getString(busiData.get("imquantity"));
+                                        title = "备坯申请";
+                                    }
+                                    if (oConvertUtils.isNotEmpty(content)) {
+                                        DDMsgUtil.sendOaMessage(user.getDingUser(), user.getUsername(), title+"需要您审批", content, t.getId());
+                                    }
+                                }
                                 // 异步发消息  森语取消所有审批消息
 //                                actZprocessService.sendActMessage(loginUser,user,actBusiness,task.getName(),  sendMessage, sendSms, sendEmail,map);
                             }
                             taskService.setPriority(t.getId(), task.getPriority());
 
-                            // 发送钉钉消息
-                            if (oConvertUtils.isNotEmpty(ddUserIds)){
-                                String title = "";//actBusiness.getTitle()+"需要您审批";
-                                String content = "";
-                                // 质量事故单
-                                if ("incident_ticket".equalsIgnoreCase(actBusiness.getTableName())){
-                                    content= oConvertUtils.getString(busiData.get("informant"))+
-                                            ","+oConvertUtils.getString(busiData.get("department_main"))+
-                                            ","+oConvertUtils.getString(busiData.get("accident_theme"));
-                                    title = "质量事故单";
-                                }else if ("preparation_material_v1".equalsIgnoreCase(actBusiness.getTableName())) {
-                                    content = oConvertUtils.getString(busiData.get("ccode")) +
-                                            ","+oConvertUtils.getString(busiData.get("cvenabbname")) +
-                                            ","+oConvertUtils.getString(busiData.get("main_create_by")) +
-                                            ","+oConvertUtils.getString(busiData.get("imquantity"));
-                                    title = "备坯申请";
-                                }
-                                if (oConvertUtils.isNotEmpty(content)) {
-                                    DDMsgUtil.sendOaMessage(ddUserIds, title+"需要您审批", content, task.getId());
-                                }
-                            }
+
                         }
                     }
                 }else{
@@ -568,36 +570,34 @@ public class ActTaskController {
                         // 获取钉钉消息要发送的用户
                         List<LoginUser> allUserList = actNodeService.queryAllUser();
                         List<String> assigneeUserIdList = Arrays.asList(assignees.split(","));
-                        StringBuilder ddUserIds = new StringBuilder();
                         allUserList.forEach(u->{
                             if (oConvertUtils.isNotEmpty(u.getDingUser())){
-                                if (assigneeUserIdList.stream().filter(e->e.equals(u.getUsername())).count()>0){
-                                    ddUserIds.append(u.getDingUser()+",");
+                                if (assigneeUserIdList.stream().filter(e->e.equals(u.getUsername())).count()>0) {
+                                    // 发送钉钉消息
+                                    String title = "";//actBusiness.getTitle()+"需要您审批";
+                                    String content = "";
+                                    // 质量事故单
+                                    if ("incident_ticket".equalsIgnoreCase(actBusiness.getTableName())) {
+                                        content = oConvertUtils.getString(busiData.get("informant")) +
+                                                "," + oConvertUtils.getString(busiData.get("department_main")) +
+                                                "," + oConvertUtils.getString(busiData.get("accident_theme"));
+                                        title = "质量事故单";
+                                    } else if ("preparation_material_v1".equalsIgnoreCase(actBusiness.getTableName())) {
+                                        content = oConvertUtils.getString(busiData.get("ccode")) +
+                                                "," + oConvertUtils.getString(busiData.get("cvenabbname")) +
+                                                "," + oConvertUtils.getString(busiData.get("main_create_by")) +
+                                                "," + oConvertUtils.getString(busiData.get("imquantity"));
+                                        title = "备坯申请";
+                                    }
+                                    if (oConvertUtils.isNotEmpty(content)) {
+                                        DDMsgUtil.sendOaMessage(u.getDingUser(), u.getUsername(), title + "需要您审批", content, t.getId());
+                                    }
                                 }
+
                             }
                         });
 
-                        // 发送钉钉消息
-                        if (ddUserIds.length()>0){
-                            String title = "";//actBusiness.getTitle()+"需要您审批";
-                            String content = "";
-                            // 质量事故单
-                            if ("incident_ticket".equalsIgnoreCase(actBusiness.getTableName())){
-                                content= oConvertUtils.getString(busiData.get("informant"))+
-                                        ","+oConvertUtils.getString(busiData.get("department_main"))+
-                                        ","+oConvertUtils.getString(busiData.get("accident_theme"));
-                                title = "质量事故单";
-                            }else if ("preparation_material_v1".equalsIgnoreCase(actBusiness.getTableName())) {
-                                content = oConvertUtils.getString(busiData.get("ccode")) +
-                                        ","+oConvertUtils.getString(busiData.get("cvenabbname")) +
-                                        ","+oConvertUtils.getString(busiData.get("main_create_by")) +
-                                        ","+oConvertUtils.getString(busiData.get("imquantity"));
-                                title = "备坯申请";
-                            }
-                            if (oConvertUtils.isNotEmpty(content)) {
-                                DDMsgUtil.sendOaMessage(ddUserIds.toString(), title+"需要您审批", content, task.getId());
-                            }
-                        }
+
                     }
                 }
             }