|
@@ -179,6 +179,18 @@ public class WeiXinCorpController {
|
|
|
private ProjectApprovalBasecostService projectApprovalBasecostService;
|
|
|
@Resource
|
|
|
private ProjectApprovalCheckService projectApprovalCheckService;
|
|
|
+ @Resource
|
|
|
+ private ProjectService projectService;
|
|
|
+ @Resource
|
|
|
+ private ProjectBasecostService projectBasecostService;
|
|
|
+ @Resource
|
|
|
+ private ProjectAuditorService projectAuditorService;
|
|
|
+ @Resource
|
|
|
+ private ParticipationService participationService;
|
|
|
+ @Resource
|
|
|
+ private ProjectApprovalLogService projectApprovalLogService;
|
|
|
+ @Resource
|
|
|
+ private ParticipationApprovalService participationApprovalService;
|
|
|
|
|
|
public static String SUITE_ACCESS_TOKEN = null;
|
|
|
public static long suiteTokenExpireTime = 0L;
|
|
@@ -581,15 +593,57 @@ public class WeiXinCorpController {
|
|
|
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://已通过
|
|
|
- projectApproval.setStatus(1);
|
|
|
+ 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://已驳回
|
|
|
- projectApproval.setStatus(2);
|
|
|
+ pa.setStatus(2);
|
|
|
+ projectApprovalMapper.updateById(pa);
|
|
|
break;
|
|
|
case 4://已撤销 删除立项数据
|
|
|
projectApprovalMapper.deleteById(projectApproval.getId());
|
|
@@ -598,7 +652,37 @@ public class WeiXinCorpController {
|
|
|
projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
|
|
|
return "success";
|
|
|
}
|
|
|
- projectApprovalMapper.updateById(projectApproval);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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);
|
|
|
}
|
|
|
}
|
|
|
}
|