|
@@ -830,6 +830,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
reportList.forEach(r->r.getAuditorSetting().setReportId(r.getId()));
|
|
|
List<ReportAuditorSetting> collect = reportList.stream().map(Report::getAuditorSetting).collect(Collectors.toList());
|
|
|
if (collect.size() > 0) {
|
|
|
+ //提交时,审批流重置当前的待审核层级为1:第一层
|
|
|
+ collect.forEach(r->r.setCurAuditLevel(1));
|
|
|
reportAuditorSettingService.saveOrUpdateBatch(collect);
|
|
|
}
|
|
|
}
|
|
@@ -1374,40 +1376,51 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String auditorId = user.getId();
|
|
|
List<ReportAuditorSetting> auditorSettingList = reportAuditorSettingMapper.selectList(new QueryWrapper<ReportAuditorSetting>().in("report_id", ids));
|
|
|
List<Report> updateReportList = new ArrayList<>();
|
|
|
+ List<ReportAuditorSetting> updateReportAuditorSettingList = new ArrayList<>();
|
|
|
for (Integer rid : ids) {
|
|
|
Report r = new Report();
|
|
|
r.setId(rid);
|
|
|
ReportAuditorSetting auditorItem = auditorSettingList.stream().filter(a -> a.getReportId().equals(rid)).findFirst().get();
|
|
|
- if (auditorId.equals(auditorItem.getAuditorFirst())) {
|
|
|
- if (auditorItem.getAuditorSec() != null) {
|
|
|
- //进入到第二审批人
|
|
|
- r.setProjectAuditorId(auditorItem.getAuditorSec());
|
|
|
- } else {
|
|
|
- r.setProjectAuditState(1);
|
|
|
- r.setProjectAuditTime(LocalDateTime.now());
|
|
|
- r.setState(1);
|
|
|
- }
|
|
|
- updateReportList.add(r);
|
|
|
- } else if (auditorId.equals(auditorItem.getAuditorSec())) {
|
|
|
- if (auditorItem.getAuditorThird() != null) {
|
|
|
- //进入到第三审批人
|
|
|
- r.setProjectAuditorId(auditorItem.getAuditorThird());
|
|
|
- } else {
|
|
|
+ switch (auditorItem.getCurAuditLevel()) {
|
|
|
+ case 1:
|
|
|
+ if (auditorItem.getAuditorSec() != null) {
|
|
|
+ //进入到第二审批人
|
|
|
+ r.setProjectAuditorId(auditorItem.getAuditorSec());
|
|
|
+ auditorItem.setCurAuditLevel(2);
|
|
|
+ updateReportAuditorSettingList.add(auditorItem);
|
|
|
+ } else {
|
|
|
+ r.setProjectAuditState(1);
|
|
|
+ r.setProjectAuditTime(LocalDateTime.now());
|
|
|
+ r.setState(1);
|
|
|
+ }
|
|
|
+ updateReportList.add(r);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ if (auditorItem.getAuditorThird() != null) {
|
|
|
+ //进入到第三审批人
|
|
|
+ r.setProjectAuditorId(auditorItem.getAuditorThird());
|
|
|
+ auditorItem.setCurAuditLevel(3);
|
|
|
+ updateReportAuditorSettingList.add(auditorItem);
|
|
|
+ } else {
|
|
|
+ r.setProjectAuditState(1);
|
|
|
+ r.setProjectAuditTime(LocalDateTime.now());
|
|
|
+ r.setState(1);
|
|
|
+ }
|
|
|
+ updateReportList.add(r);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ //目前最多三层,第三个审批人审批后结束
|
|
|
r.setProjectAuditState(1);
|
|
|
r.setProjectAuditTime(LocalDateTime.now());
|
|
|
r.setState(1);
|
|
|
- }
|
|
|
- updateReportList.add(r);
|
|
|
- } else if (auditorId.equals(auditorItem.getAuditorThird())) {
|
|
|
- //目前最多三层,第三个审批人审批后结束
|
|
|
- r.setProjectAuditState(1);
|
|
|
- r.setProjectAuditTime(LocalDateTime.now());
|
|
|
- r.setState(1);
|
|
|
- updateReportList.add(r);
|
|
|
+ updateReportList.add(r);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
if (updateReportList.size() > 0) {
|
|
|
updateBatchById(updateReportList);
|
|
|
+ //更新审核人的审批流程
|
|
|
+ reportAuditorSettingService.updateBatchById(updateReportAuditorSettingList);
|
|
|
}
|
|
|
} else {
|
|
|
//之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流
|