|
@@ -1970,12 +1970,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
int oldState = oneReport.getState();
|
|
|
String creatorId = oneReport.getCreatorId();
|
|
|
User auditTargetUser = userMapper.selectById(creatorId);
|
|
|
- if (timeType.getReportAuditType() == 2) {
|
|
|
- //先按分组审核,再进行项目经理审核
|
|
|
+ if (timeType.getReportAuditType() == 2 || timeType.getReportAuditType() == 9) {
|
|
|
+ //先按分组审核,再进行项目经理或者日报审核人审核
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_id, project_audit_state, project_auditor_id").in("id", ids));
|
|
|
List<Integer> assProjectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id, incharger_id").in("id", assProjectIds));
|
|
|
Optional<Project> first = projectList.stream().filter(p -> StringUtils.isEmpty(p.getInchargerId())).findFirst();
|
|
|
+ List<ProjectAuditor> projectAuditorList = null;
|
|
|
+ if (timeType.getReportAuditType() == 9) {
|
|
|
+ projectAuditorList = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().in("project_id", assProjectIds));
|
|
|
+ }
|
|
|
if (first.isPresent()) {
|
|
|
String projectName = first.get().getProjectName();
|
|
|
//httpRespMsg.setError("请给["+projectName+"]项目设置项目负责人");
|
|
@@ -1991,17 +1995,29 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
r.setProjectAuditTime(LocalDateTime.now());
|
|
|
|
|
|
//分组审核完,该项目的pm审核了
|
|
|
- Project project1 = projectList.stream().filter(project -> project.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
-
|
|
|
+ String nextAuditor = null;
|
|
|
+ if (timeType.getReportAuditType() == 2) {
|
|
|
+ Project project1 = projectList.stream().filter(project -> project.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
+ nextAuditor = project1.getInchargerId();
|
|
|
+ } else {
|
|
|
+ //9的情况,取第一个日报审核人
|
|
|
+ ProjectAuditor projectAuditor = projectAuditorList.stream().filter(pa -> pa.getProjectId().equals(r.getProjectId())).findFirst().orElse(null);
|
|
|
+ if (projectAuditor != null) {
|
|
|
+ nextAuditor = projectAuditor.getAuditorId();
|
|
|
+ } else {
|
|
|
+ //没有设置的话,还是选择项目经理
|
|
|
+ Project project1 = projectList.stream().filter(project -> project.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
+ nextAuditor = project1.getInchargerId();
|
|
|
+ }
|
|
|
+ }
|
|
|
//如果分组负责人和项目经理是同一个人,那么就不需要项目经理审核了
|
|
|
- if (r.getProjectAuditorId().equals(project1.getInchargerId())) {
|
|
|
+ if (r.getProjectAuditorId().equals(nextAuditor)) {
|
|
|
r.setProjectAuditState(1);
|
|
|
r.setProjectAuditTime(LocalDateTime.now());
|
|
|
r.setState(1);
|
|
|
} else {
|
|
|
//不是同一个人,那么就需要项目经理审核
|
|
|
- r.setProjectAuditorId(project1.getInchargerId());
|
|
|
- r.setProjectAuditorName(userMapper.selectById(project1.getInchargerId()).getName());
|
|
|
+ r.setProjectAuditorId(nextAuditor);
|
|
|
}
|
|
|
} else if (r.getProjectAuditState() == 0) {
|
|
|
r.setProjectAuditState(1);
|
|
@@ -3269,14 +3285,18 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
int oldState = oneReport.getState();
|
|
|
List<User> allUsers = null;
|
|
|
List<Report> allReports = null;
|
|
|
- if (timeType.getReportAuditType() == 2) {
|
|
|
+ if (timeType.getReportAuditType() == 2 || timeType.getReportAuditType() == 9) {
|
|
|
allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name, department_id").eq("company_id", company.getId()));
|
|
|
- //先分组负责人审核,再项目负责人审核
|
|
|
+ //先分组负责人审核,再项目负责人审核或者日报审核人审核
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_id, project_audit_state, project_auditor_id, creator_id, create_date, company_id").in("id", ids));
|
|
|
allReports = reportList;
|
|
|
List<Integer> assProjectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id, incharger_id").in("id", assProjectIds));
|
|
|
Optional<Project> first = projectList.stream().filter(p -> StringUtils.isEmpty(p.getInchargerId())).findFirst();
|
|
|
+ List<ProjectAuditor> projectAuditorList = null;
|
|
|
+ if (timeType.getReportAuditType() == 9) {
|
|
|
+ projectAuditorList = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().in("project_id", assProjectIds));
|
|
|
+ }
|
|
|
if (first.isPresent()) {
|
|
|
String projectName = first.get().getProjectName();
|
|
|
//httpRespMsg.setError("请给["+projectName+"]项目设置项目负责人");
|
|
@@ -3297,15 +3317,29 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
httpRespMsg.setError(MessageUtils.message("project.masterError",project1.getProjectName()));
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
+ //分组审核完,该项目的pm审核了
|
|
|
+ String nextAuditor = null;
|
|
|
+ if (timeType.getReportAuditType() == 2) {
|
|
|
+ nextAuditor = project1.getInchargerId();
|
|
|
+ } else {
|
|
|
+ //9的情况,取第一个日报审核人
|
|
|
+ ProjectAuditor projectAuditor = projectAuditorList.stream().filter(pa -> pa.getProjectId().equals(r.getProjectId())).findFirst().orElse(null);
|
|
|
+ if (projectAuditor != null) {
|
|
|
+ nextAuditor = projectAuditor.getAuditorId();
|
|
|
+ } else {
|
|
|
+ //没有设置的话,还是选择项目经理
|
|
|
+ nextAuditor = project1.getInchargerId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//如果分组负责人和项目经理是同一个人,那么就不需要项目经理审核了
|
|
|
- if (r.getProjectAuditorId().equals(project1.getInchargerId())) {
|
|
|
+ if (r.getProjectAuditorId().equals(nextAuditor)) {
|
|
|
r.setProjectAuditState(1);
|
|
|
r.setProjectAuditTime(LocalDateTime.now());
|
|
|
r.setState(1);
|
|
|
} else {
|
|
|
//分组审核完,该项目的pm审核了
|
|
|
- r.setProjectAuditorId(project1.getInchargerId());
|
|
|
- r.setProjectAuditorName(pmFirst.get().getName());
|
|
|
+ r.setProjectAuditorId(nextAuditor);
|
|
|
}
|
|
|
} else if (r.getProjectAuditState() == 0) {
|
|
|
r.setProjectAuditState(1);
|