Bladeren bron

修改企业微信审核通过后项目没有创建的问题

seyason 1 jaar geleden
bovenliggende
commit
d38c39988e

+ 79 - 66
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -589,6 +589,7 @@ public class WeiXinCorpController {
                 }else if("sys_approval_change".equals(event)){
                     //审批动作事件,发生在该企业已经开通应用的情况下。
                     System.out.println("审批动作事件");
+                    System.out.println(jsonObject.toString());
                     if(jsonObject.has("ApprovalInfo")){
                         org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
                         Long spNo = approvalInfo.getLong("SpNo");
@@ -609,6 +610,7 @@ public class WeiXinCorpController {
                                     Project project=new Project();
                                     BeanUtils.copyProperties(projectApproval,project);
                                     project.setId(null);
+                                    project.setStatus(1);//默认进行中状态
                                     project.setCreateDate(LocalDate.now());
                                     List<ProjectApprovalBasecost> projectApprovalBasecostList = projectApprovalBasecostService.list(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId, projectApproval.getId()));
                                     List<ParticipationApproval> participationApprovalList = participationApprovalService.list(new LambdaQueryWrapper<ParticipationApproval>().eq(ParticipationApproval::getProjectApprovalId, projectApproval.getId()));
@@ -653,77 +655,42 @@ public class WeiXinCorpController {
                                     projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
                                     return "success";
                             }
-                            if(approvalInfo.has("SpRecord")){
-                                org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
-
-                                for (int i = 0; i < spRecord.length(); i++) {
-                                    org.json.JSONObject object = spRecord.getJSONObject(i);
-                                    if(object.has("Details")){
-                                        org.json.JSONArray details = object.getJSONArray("Details");
-                                        for (int i1 = 0; i1 < details.length(); i1++) {
-                                            org.json.JSONObject detail = details.getJSONObject(i1);
-                                            if(detail.has("Approver")){
-                                                org.json.JSONObject approvor = detail.getJSONObject("Approver");
-                                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
-                                                int spStatus = detail.getInt("SpStatus");
-                                                String userId = approvor.getString("UserId");
-
-                                            }
-                                        }
-                                    }
-                                }
-
-                            }
+//                            if(approvalInfo.has("SpRecord")){
+//                                org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
+//
+//                                for (int i = 0; i < spRecord.length(); i++) {
+//                                    org.json.JSONObject object = spRecord.getJSONObject(i);
+//                                    if(object.has("Details")){
+//                                        org.json.JSONArray details = object.getJSONArray("Details");
+//                                        for (int i1 = 0; i1 < details.length(); i1++) {
+//                                            org.json.JSONObject detail = details.getJSONObject(i1);
+//                                            if(detail.has("Approver")){
+//                                                org.json.JSONObject approvor = detail.getJSONObject("Approver");
+//                                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+//                                                int spStatus = detail.getInt("SpStatus");
+//                                                String userId = approvor.getString("UserId");
+//
+//                                            }
+//                                        }
+//                                    }
+//                                }
+//
+//                            }
                             if(approvalInfo.has("SpRecord")){
                                 //获取到审批节点 生成审核记录
                                 List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
-                                org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
-                                for (int i = 0; i < spRecord.length(); i++) {
-                                    org.json.JSONObject object = spRecord.getJSONObject(i);
-                                    if(object.has("Details")){
-                                        Object Details = object.get("Details");
-                                        if(Details instanceof  org.json.JSONArray){
-                                            org.json.JSONArray details = object.getJSONArray("Details");
-                                            for (int i1 = 0; i1 < details.length(); i1++) {
-                                                org.json.JSONObject detail = details.getJSONObject(i1);
-                                                if(detail.has("Approver")){
-                                                    org.json.JSONObject approver = detail.getJSONObject("Approver");
-                                                    //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
-                                                    int spStatus = detail.getInt("SpStatus");
-                                                    String userId = approver.getString("UserId");
-                                                    Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
-                                                    if(first.isPresent()){
-                                                        //新增操作记录数据
-                                                        ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
-                                                        projectApprovalLog.setCreateTime(LocalDateTime.now());
-                                                        projectApprovalLog.setProjectApprovalId(projectApproval.getId());
-                                                        projectApprovalLog.setUserName(first.get().getName());
-                                                        projectApprovalLog.setType(spStatus);
-                                                        projectApprovalLogList.add(projectApprovalLog);
-                                                    }
-                                                }
-                                            }
-                                        }else if(Details instanceof  org.json.JSONObject){
-                                            org.json.JSONObject detail = object.getJSONObject("Details");
-                                            if(detail.has("Approver")){
-                                                org.json.JSONObject approver = detail.getJSONObject("Approver");
-                                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
-                                                int spStatus = detail.getInt("SpStatus");
-                                                String userId = approver.getString("UserId");
-                                                Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
-                                                if(first.isPresent()){
-                                                    //新增操作记录数据
-                                                    ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
-                                                    projectApprovalLog.setCreateTime(LocalDateTime.now());
-                                                    projectApprovalLog.setProjectApprovalId(projectApproval.getId());
-                                                    projectApprovalLog.setUserName(first.get().getName());
-                                                    projectApprovalLog.setType(spStatus);
-                                                    projectApprovalLogList.add(projectApprovalLog);
-                                                }
-                                            }
-                                        }
+                                Object recordObj = approvalInfo.get("SpRecord");
+                                if (recordObj instanceof org.json.JSONObject) {
+                                    org.json.JSONObject object = approvalInfo.getJSONObject("SpRecord");
+                                    parseSpItem(object, projectApproval, userList, projectApprovalLogList);
+                                } else if (recordObj instanceof org.json.JSONArray) {
+                                    org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
+                                    for (int i = 0; i < spRecord.length(); i++) {
+                                        org.json.JSONObject object = spRecord.getJSONObject(i);
+                                        parseSpItem(object, projectApproval, userList, projectApprovalLogList);
                                     }
                                 }
+
                                 if(projectApprovalLogList.size()>0){
                                     List<Integer> typeList=new ArrayList<>();
                                     typeList.add(2);
@@ -748,6 +715,52 @@ public class WeiXinCorpController {
         return "success";
     }
 
+    private void parseSpItem(org.json.JSONObject object, ProjectApproval projectApproval, List<User> userList, List<ProjectApprovalLog> projectApprovalLogList) {
+        if(object.has("Details")){
+            Object Details = object.get("Details");
+            if(Details instanceof  org.json.JSONArray){
+                org.json.JSONArray details = object.getJSONArray("Details");
+                for (int i1 = 0; i1 < details.length(); i1++) {
+                    org.json.JSONObject detail = details.getJSONObject(i1);
+                    if(detail.has("Approver")){
+                        org.json.JSONObject approver = detail.getJSONObject("Approver");
+                        //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+                        int spStatus = detail.getInt("SpStatus");
+                        String userId = approver.getString("UserId");
+                        Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
+                        if(first.isPresent()){
+                            //新增操作记录数据
+                            ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
+                            projectApprovalLog.setCreateTime(LocalDateTime.now());
+                            projectApprovalLog.setProjectApprovalId(projectApproval.getId());
+                            projectApprovalLog.setUserName(first.get().getName());
+                            projectApprovalLog.setType(spStatus);
+                            projectApprovalLogList.add(projectApprovalLog);
+                        }
+                    }
+                }
+            }else if(Details instanceof  org.json.JSONObject){
+                org.json.JSONObject detail = object.getJSONObject("Details");
+                if(detail.has("Approver")){
+                    org.json.JSONObject approver = detail.getJSONObject("Approver");
+                    //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+                    int spStatus = detail.getInt("SpStatus");
+                    String userId = approver.getString("UserId");
+                    Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
+                    if(first.isPresent()){
+                        //新增操作记录数据
+                        ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
+                        projectApprovalLog.setCreateTime(LocalDateTime.now());
+                        projectApprovalLog.setProjectApprovalId(projectApproval.getId());
+                        projectApprovalLog.setUserName(first.get().getName());
+                        projectApprovalLog.setType(spStatus);
+                        projectApprovalLogList.add(projectApprovalLog);
+                    }
+                }
+            }
+        }
+    }
+
     //通用开发回调处理
     @RequestMapping(value = "/commonDevCallback", method = RequestMethod.GET)
     @ResponseBody