|
@@ -589,100 +589,121 @@ public class WeiXinCorpController {
|
|
|
}else if("sys_approval_change".equals(event)){
|
|
|
//审批动作事件,发生在该企业已经开通应用的情况下。
|
|
|
System.out.println("审批动作事件");
|
|
|
- org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
|
|
|
- String spNo = approvalInfo.getString("SpNo");
|
|
|
- ProjectApproval projectApproval = projectApprovalMapper.selectOne(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getWxCorpSpNo, spNo));
|
|
|
- if(projectApproval!=null){
|
|
|
- List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, projectApproval.getCompanyId()));
|
|
|
- int status = approvalInfo.getInt("SpStatus");
|
|
|
- ProjectApproval pa=new ProjectApproval();
|
|
|
- pa.setId(projectApproval.getId());
|
|
|
- switch (status){
|
|
|
- case 1://审批中 无需修改
|
|
|
- break;
|
|
|
- case 2://已通过
|
|
|
- pa.setStatus(1);
|
|
|
- projectApprovalMapper.updateById(pa);
|
|
|
- //创建项目数据
|
|
|
- //立项审核通过后创建项目数据
|
|
|
- Project project=new Project();
|
|
|
- BeanUtils.copyProperties(projectApproval,project);
|
|
|
- project.setId(null);
|
|
|
- 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()));
|
|
|
- List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, projectApproval.getId()));
|
|
|
- projectService.save(project);
|
|
|
- List<ProjectBasecost> projectBasecostList=new ArrayList<>();
|
|
|
- List<Participation> participationList=new ArrayList<>();
|
|
|
- List<ProjectAuditor> projectAuditorList=new ArrayList<>();
|
|
|
- projectApprovalBasecostList.forEach(p->{
|
|
|
- ProjectBasecost projectBasecost=new ProjectBasecost();
|
|
|
- BeanUtils.copyProperties(p,projectBasecost);
|
|
|
- projectBasecost.setId(null);
|
|
|
- projectBasecost.setProjectId(project.getId());
|
|
|
- projectBasecostList.add(projectBasecost);
|
|
|
- });
|
|
|
- participationApprovalList.forEach(p->{
|
|
|
- Participation participation=new Participation();
|
|
|
- BeanUtils.copyProperties(p,participation);
|
|
|
- participation.setId(null);
|
|
|
- participation.setProjectId(project.getId());
|
|
|
- participationList.add(participation);
|
|
|
- });
|
|
|
- projectApprovalAuditorList.forEach(p->{
|
|
|
- ProjectAuditor projectAuditor=new ProjectAuditor();
|
|
|
- BeanUtils.copyProperties(p,projectAuditor);
|
|
|
- projectAuditor.setId(null);
|
|
|
- projectAuditor.setProjectId(project.getId());
|
|
|
- projectAuditorList.add(projectAuditor);
|
|
|
- });
|
|
|
- projectBasecostService.saveBatch(projectBasecostList);
|
|
|
- participationService.saveBatch(participationList);
|
|
|
- projectAuditorService.saveBatch(projectAuditorList);
|
|
|
- break;
|
|
|
- case 3://已驳回
|
|
|
- pa.setStatus(2);
|
|
|
- projectApprovalMapper.updateById(pa);
|
|
|
- break;
|
|
|
- case 4://已撤销 删除立项数据
|
|
|
- projectApprovalMapper.deleteById(projectApproval.getId());
|
|
|
- projectApprovalBasecostService.remove(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId,projectApproval.getId()));
|
|
|
- projectApprovalAuditorService.remove(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId,projectApproval.getId()));
|
|
|
- projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
|
|
|
- return "success";
|
|
|
- }
|
|
|
- org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
|
|
|
- //获取到审批节点 生成审核记录
|
|
|
- List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
|
|
|
- for (int i = 0; i < spRecord.length(); i++) {
|
|
|
- org.json.JSONObject object = spRecord.getJSONObject(i);
|
|
|
- org.json.JSONArray details = object.getJSONArray("Details");
|
|
|
- for (int i1 = 0; i1 < details.length(); i1++) {
|
|
|
- org.json.JSONObject detail = details.getJSONObject(i1);
|
|
|
- org.json.JSONObject approvor = detail.getJSONObject("Approvor");
|
|
|
- //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
|
|
|
- int spStatus = detail.getInt("SpStatus");
|
|
|
- String userId = approvor.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);
|
|
|
+ System.out.println(jsonObject.toString());
|
|
|
+ if(jsonObject.has("ApprovalInfo")){
|
|
|
+ org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
|
|
|
+ Long spNo = approvalInfo.getLong("SpNo");
|
|
|
+ ProjectApproval projectApproval = projectApprovalMapper.selectOne(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getWxCorpSpNo, String.valueOf(spNo)));
|
|
|
+ if(projectApproval!=null){
|
|
|
+ List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, projectApproval.getCompanyId()));
|
|
|
+ int status = approvalInfo.getInt("SpStatus");
|
|
|
+ ProjectApproval pa=new ProjectApproval();
|
|
|
+ pa.setId(projectApproval.getId());
|
|
|
+ switch (status){
|
|
|
+ case 1://审批中 无需修改
|
|
|
+ break;
|
|
|
+ case 2://已通过
|
|
|
+ pa.setStatus(1);
|
|
|
+ projectApprovalMapper.updateById(pa);
|
|
|
+ //创建项目数据
|
|
|
+ //立项审核通过后创建项目数据
|
|
|
+ Project project=new Project();
|
|
|
+ BeanUtils.copyProperties(projectApproval,project);
|
|
|
+ project.setId(null);
|
|
|
+ project.setStatus(1);//默认进行中状态
|
|
|
+ project.setCreateDate(LocalDate.now());
|
|
|
+ project.setApproveId(projectApproval.getId());
|
|
|
+ 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()));
|
|
|
+ List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, projectApproval.getId()));
|
|
|
+ projectService.save(project);
|
|
|
+ List<ProjectBasecost> projectBasecostList=new ArrayList<>();
|
|
|
+ List<Participation> participationList=new ArrayList<>();
|
|
|
+ List<ProjectAuditor> projectAuditorList=new ArrayList<>();
|
|
|
+ projectApprovalBasecostList.forEach(p->{
|
|
|
+ ProjectBasecost projectBasecost=new ProjectBasecost();
|
|
|
+ BeanUtils.copyProperties(p,projectBasecost);
|
|
|
+ projectBasecost.setId(null);
|
|
|
+ projectBasecost.setProjectId(project.getId());
|
|
|
+ projectBasecostList.add(projectBasecost);
|
|
|
+ });
|
|
|
+ participationApprovalList.forEach(p->{
|
|
|
+ Participation participation=new Participation();
|
|
|
+ BeanUtils.copyProperties(p,participation);
|
|
|
+ participation.setId(null);
|
|
|
+ participation.setProjectId(project.getId());
|
|
|
+ participationList.add(participation);
|
|
|
+ });
|
|
|
+ projectApprovalAuditorList.forEach(p->{
|
|
|
+ ProjectAuditor projectAuditor=new ProjectAuditor();
|
|
|
+ BeanUtils.copyProperties(p,projectAuditor);
|
|
|
+ projectAuditor.setId(null);
|
|
|
+ projectAuditor.setProjectId(project.getId());
|
|
|
+ projectAuditorList.add(projectAuditor);
|
|
|
+ });
|
|
|
+ projectBasecostService.saveBatch(projectBasecostList);
|
|
|
+ participationService.saveBatch(participationList);
|
|
|
+ projectAuditorService.saveBatch(projectAuditorList);
|
|
|
+ break;
|
|
|
+ case 3://已驳回
|
|
|
+ pa.setStatus(2);
|
|
|
+ projectApprovalMapper.updateById(pa);
|
|
|
+ break;
|
|
|
+ case 4://已撤销 删除立项数据
|
|
|
+ projectApprovalMapper.deleteById(projectApproval.getId());
|
|
|
+ projectApprovalBasecostService.remove(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId,projectApproval.getId()));
|
|
|
+ projectApprovalAuditorService.remove(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId,projectApproval.getId()));
|
|
|
+ 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")){
|
|
|
+ //获取到审批节点 生成审核记录
|
|
|
+ List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
|
|
|
+ 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);
|
|
|
+ typeList.add(3);
|
|
|
+ typeList.add(4);
|
|
|
+ projectApprovalLogService.remove(new LambdaQueryWrapper<ProjectApprovalLog>()
|
|
|
+ .eq(ProjectApprovalLog::getProjectApprovalId,projectApproval.getId()).in(ProjectApprovalLog::getType,typeList));
|
|
|
+ projectApprovalLogService.saveBatch(projectApprovalLogList);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
- List<Integer> typeList=new ArrayList<>();
|
|
|
- typeList.add(2);
|
|
|
- typeList.add(3);
|
|
|
- typeList.add(4);
|
|
|
- projectApprovalLogService.remove(new LambdaQueryWrapper<ProjectApprovalLog>()
|
|
|
- .eq(ProjectApprovalLog::getProjectApprovalId,projectApproval.getId()).in(ProjectApprovalLog::getType,typeList));
|
|
|
- projectApprovalLogService.saveBatch(projectApprovalLogList);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -695,6 +716,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
|