|
@@ -550,10 +550,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
r.setDegreeList(degreeMapList);
|
|
|
}
|
|
|
//检查是否是按照任务分组负责人审核
|
|
|
- Project curProject = allProjectList.stream().filter(ap->ap.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
+// Project curProject = allProjectList.stream().filter(ap->ap.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
+ int reportAuditType = timeTypeMapper.selectById(companyId).getReportAuditType();
|
|
|
//分组
|
|
|
if (company.getPackageProject() == 1) {
|
|
|
- if (curProject.getTaskGpIncharge() == 0) {
|
|
|
+ if (reportAuditType == 0) {
|
|
|
r.setTaskGroups(taskGroups.stream().filter(tg->tg.getProjectId().equals(r.getProjectId())).collect(Collectors.toList()));
|
|
|
if (r.getGroupId() != null && r.getGroupId() != 0) {
|
|
|
Optional<TaskGroup> optinal = taskGroups.stream().filter(tg->tg.getId().equals(r.getGroupId())).findFirst();
|
|
@@ -577,7 +578,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
//项目的审核人
|
|
|
- if (curProject.getTaskGpIncharge() == 0) {
|
|
|
+ if (reportAuditType == 0) {
|
|
|
r.setAuditUserList(auditorList.stream().filter(au->au.getProjectId().equals(r.getProjectId())).collect(Collectors.toList()));
|
|
|
if (r.getProjectAuditorId() != null) {
|
|
|
Optional<ProjectAuditor> auItem = auditorList.stream().filter(au->au.getAuditorId().equals(r.getProjectAuditorId())).findFirst();
|
|
@@ -1219,7 +1220,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
User auditTargetUser = userMapper.selectById(creatorId);
|
|
|
if (timeType.getReportAuditType() == 2) {
|
|
|
//先按分组审核,再进行项目经理审核
|
|
|
- List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_id").in("id", ids));
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_id, project_audit_state").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();
|
|
@@ -1567,7 +1568,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
.setRejectReason(reason).setRejectUserid(user.getId()).setRejectUsername(user.getName());
|
|
|
reportMapper.update(upReport,
|
|
|
new QueryWrapper<Report>().in("id", ListUtil.convertIdsArrayToList(reportIds)));
|
|
|
- List<Report> rList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ListUtil.convertIdsArrayToList(reportIds)));
|
|
|
+ List<Report> rList = reportMapper.selectList(new QueryWrapper<Report>().select("id, group_id, project_id").in("id", ListUtil.convertIdsArrayToList(reportIds)));
|
|
|
if (timeTypeMapper.selectById(company.getId()).getReportAuditType() == 2) {
|
|
|
//退回任务分组审核状态
|
|
|
List<Report> newList = new ArrayList<>();
|
|
@@ -1807,146 +1808,201 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(company.getId());
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
|
- new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
|
|
|
- .orderByAsc("seq"));
|
|
|
+
|
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
|
int oldState = oneReport.getState();
|
|
|
List<User> allUsers = null;
|
|
|
List<Report> allReports = null;
|
|
|
- if (settings.size() == 0) {
|
|
|
- //公司没有自定义流程,直接进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1).setProjectAuditTime(now),
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
- allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
|
- allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ if (timeType.getReportAuditType() == 2) {
|
|
|
+ allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name").eq("company_id", company.getId()));
|
|
|
+ //先分组负责人审核,再项目负责人审核
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_id, project_audit_state, creator_id, create_date").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();
|
|
|
+ if (first.isPresent()) {
|
|
|
+ String projectName = first.get().getProjectName();
|
|
|
+ httpRespMsg.setError("请给["+projectName+"]项目设置项目负责人");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ for (Report r : reportList) {
|
|
|
+ if (r.getGroupAuditState() == 0) {
|
|
|
+ r.setGroupAuditState(1);
|
|
|
+ r.setProjectAuditTime(LocalDateTime.now());
|
|
|
+ //分组审核完,该项目的pm审核了
|
|
|
+ Project project1 = projectList.stream().filter(project -> project.getId().equals(r.getProjectId())).findFirst().get();
|
|
|
+ r.setProjectAuditorId(project1.getInchargerId());
|
|
|
+ r.setProjectAuditorName(userMapper.selectById(project1.getInchargerId()).getName());
|
|
|
+ } else if (r.getProjectAuditState() == 0) {
|
|
|
+ r.setProjectAuditState(1);
|
|
|
+ r.setProjectAuditTime(LocalDateTime.now());
|
|
|
+ r.setState(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //批量更新
|
|
|
+ updateBatchById(reportList);
|
|
|
} else {
|
|
|
- allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
|
- allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
- List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
|
|
|
- //ids是来自不同人不同日期的报告id
|
|
|
- List<Report> updateReportList = new ArrayList<Report>();
|
|
|
- for (Integer rid : ids) {
|
|
|
- String creatorId = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get().getCreatorId();
|
|
|
- User auditTargetUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst().get();
|
|
|
- List<AuditWorkflowTimeSetting> deptSettings = settings.stream().filter(s->s.getDeptId().equals(auditTargetUser.getDepartmentId())).collect(Collectors.toList());
|
|
|
- Report curReport = new Report().setId(rid);
|
|
|
- if (deptSettings.size() == 0) {
|
|
|
- //直接进行项目经理审核
|
|
|
- curReport.setState(1).setProjectAuditTime(now);
|
|
|
- } else {
|
|
|
- //按流程走, 取到当前报告的数据
|
|
|
- Report item = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get();
|
|
|
- if (item.getIsFinalAudit() == 1) {
|
|
|
- //最终审核了,审核通过
|
|
|
- if (item.getIsDeptAudit() == 1) {
|
|
|
- //如果最终是部门审核,直接通过
|
|
|
- //如果最终是项目审核
|
|
|
- curReport.setState(1).setProjectAuditTime(now);
|
|
|
- } else {
|
|
|
- //如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
|
|
|
- curReport.setState(1).setProjectAuditState(1).setProjectAuditTime(now);
|
|
|
- }
|
|
|
+ List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
|
+ new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
|
|
|
+ .orderByAsc("seq"));
|
|
|
+ if (settings.size() == 0) {
|
|
|
+ //公司没有自定义流程,直接进行项目经理审核
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditTime(now),
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
+ allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name").eq("company_id", company.getId()));
|
|
|
+ allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ } else {
|
|
|
+ allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name").eq("company_id", company.getId()));
|
|
|
+ allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
|
|
|
+ //ids是来自不同人不同日期的报告id
|
|
|
+ List<Report> updateReportList = new ArrayList<Report>();
|
|
|
+ for (Integer rid : ids) {
|
|
|
+ String creatorId = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get().getCreatorId();
|
|
|
+ User auditTargetUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst().get();
|
|
|
+ List<AuditWorkflowTimeSetting> deptSettings = settings.stream().filter(s->s.getDeptId().equals(auditTargetUser.getDepartmentId())).collect(Collectors.toList());
|
|
|
+ Report curReport = new Report().setId(rid);
|
|
|
+ if (deptSettings.size() == 0) {
|
|
|
+ //直接进行项目经理审核
|
|
|
+ curReport.setState(1).setProjectAuditTime(now);
|
|
|
} else {
|
|
|
- if (item.getIsDeptAudit() == 1) {
|
|
|
- //当前是部门审核,获取审核部门id
|
|
|
- Integer auditDeptid = item.getAuditDeptid();
|
|
|
- for (int m=0;m<deptSettings.size(); m++) {
|
|
|
- if (auditDeptid.equals(deptSettings.get(m).getAuditDeptId()) && m < deptSettings.size() -1) {
|
|
|
- AuditWorkflowTimeSetting nextNode = deptSettings.get(m + 1);
|
|
|
- curReport.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
- if (curReport.getIsDeptAudit() == 1) {
|
|
|
- curReport.setAuditDeptid(nextNode.getAuditDeptId());
|
|
|
- Optional<Department> first = allDepts.stream()
|
|
|
- .filter(ad -> ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst();
|
|
|
- if (!first.isPresent()) {
|
|
|
-
|
|
|
- System.out.println(item.getId()+"下个节点找不到: "+nextNode.getAuditDeptId()+", "+nextNode.getAuditDeptName());
|
|
|
-
|
|
|
- }
|
|
|
- String managerId = first.get().getManagerId();
|
|
|
- curReport.setAuditDeptManagerid(managerId);
|
|
|
- }
|
|
|
- curReport.setIsFinalAudit(nextNode.getIsFinal());
|
|
|
- break;
|
|
|
- }
|
|
|
+ //按流程走, 取到当前报告的数据
|
|
|
+ Report item = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get();
|
|
|
+ if (item.getIsFinalAudit() == 1) {
|
|
|
+ //最终审核了,审核通过
|
|
|
+ if (item.getIsDeptAudit() == 1) {
|
|
|
+ //如果最终是部门审核,直接通过
|
|
|
+ //如果最终是项目审核
|
|
|
+ curReport.setState(1).setProjectAuditTime(now);
|
|
|
+ } else {
|
|
|
+ //如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
|
|
|
+ curReport.setState(1).setProjectAuditState(1).setProjectAuditTime(now);
|
|
|
}
|
|
|
} else {
|
|
|
- //当前的先审核通过
|
|
|
- curReport.setProjectAuditState(1);
|
|
|
-// reportMapper.update(new Report().setProjectAuditState(1),
|
|
|
-// new QueryWrapper<Report>().in("id", ids));
|
|
|
- //项目审核的情况下,需要判断是否该员工的所有项目都审核通过了
|
|
|
- //只看同一天的
|
|
|
- Report reportItem = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get();
|
|
|
- List<Report> sameUserSameDayOtherReports = reportMapper.selectList(new QueryWrapper<Report>()
|
|
|
- .eq("create_date", reportItem.getCreateDate())
|
|
|
- .eq("creator_id", reportItem.getCreatorId())
|
|
|
- .notIn("id", ids));
|
|
|
- long pendingNum = sameUserSameDayOtherReports.stream().filter(s->s.getProjectAuditState() == 0).count();
|
|
|
- if (pendingNum == 0) {
|
|
|
- System.out.println("没有其他等待的项目了,继续更新到下个流程");
|
|
|
- //没有其他待审核的项目了,流程往下走
|
|
|
- Report upR = new Report();
|
|
|
+ if (item.getIsDeptAudit() == 1) {
|
|
|
+ //当前是部门审核,获取审核部门id
|
|
|
+ Integer auditDeptid = item.getAuditDeptid();
|
|
|
for (int m=0;m<deptSettings.size(); m++) {
|
|
|
- if (deptSettings.get(m).getIsDeptAudit()== 0) {//找到项目审核的那个节点
|
|
|
+ if (auditDeptid.equals(deptSettings.get(m).getAuditDeptId()) && m < deptSettings.size() -1) {
|
|
|
AuditWorkflowTimeSetting nextNode = deptSettings.get(m + 1);
|
|
|
curReport.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
if (curReport.getIsDeptAudit() == 1) {
|
|
|
curReport.setAuditDeptid(nextNode.getAuditDeptId());
|
|
|
- curReport.setAuditDeptManagerid(allDepts.stream()
|
|
|
- .filter(ad->ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId());
|
|
|
+ Optional<Department> first = allDepts.stream()
|
|
|
+ .filter(ad -> ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst();
|
|
|
+ if (!first.isPresent()) {
|
|
|
+
|
|
|
+ System.out.println(item.getId()+"下个节点找不到: "+nextNode.getAuditDeptId()+", "+nextNode.getAuditDeptName());
|
|
|
+
|
|
|
+ }
|
|
|
+ String managerId = first.get().getManagerId();
|
|
|
+ curReport.setAuditDeptManagerid(managerId);
|
|
|
}
|
|
|
curReport.setIsFinalAudit(nextNode.getIsFinal());
|
|
|
- upR = curReport;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //当前的先审核通过
|
|
|
+ curReport.setProjectAuditState(1);
|
|
|
+// reportMapper.update(new Report().setProjectAuditState(1),
|
|
|
+// new QueryWrapper<Report>().in("id", ids));
|
|
|
+ //项目审核的情况下,需要判断是否该员工的所有项目都审核通过了
|
|
|
+ //只看同一天的
|
|
|
+ Report reportItem = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get();
|
|
|
+ List<Report> sameUserSameDayOtherReports = reportMapper.selectList(new QueryWrapper<Report>()
|
|
|
+ .eq("create_date", reportItem.getCreateDate())
|
|
|
+ .eq("creator_id", reportItem.getCreatorId())
|
|
|
+ .notIn("id", ids));
|
|
|
+ long pendingNum = sameUserSameDayOtherReports.stream().filter(s->s.getProjectAuditState() == 0).count();
|
|
|
+ if (pendingNum == 0) {
|
|
|
+ System.out.println("没有其他等待的项目了,继续更新到下个流程");
|
|
|
+ //没有其他待审核的项目了,流程往下走
|
|
|
+ Report upR = new Report();
|
|
|
+ for (int m=0;m<deptSettings.size(); m++) {
|
|
|
+ if (deptSettings.get(m).getIsDeptAudit()== 0) {//找到项目审核的那个节点
|
|
|
+ AuditWorkflowTimeSetting nextNode = deptSettings.get(m + 1);
|
|
|
+ curReport.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
+ if (curReport.getIsDeptAudit() == 1) {
|
|
|
+ curReport.setAuditDeptid(nextNode.getAuditDeptId());
|
|
|
+ curReport.setAuditDeptManagerid(allDepts.stream()
|
|
|
+ .filter(ad->ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId());
|
|
|
+ }
|
|
|
+ curReport.setIsFinalAudit(nextNode.getIsFinal());
|
|
|
+ upR = curReport;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //判断下一个审核节点(部门审核)的审核人和当前审核的是不是同一个人,如果是的,则可直接进入下一步审核或者结束
|
|
|
- if (upR.getAuditDeptManagerid() != null && upR.getAuditDeptManagerid().equals(token)) {
|
|
|
- if (upR.getIsFinalAudit() == 1) {
|
|
|
- //最终审核了
|
|
|
- upR.setState(1).setProjectAuditTime(LocalDateTime.now());
|
|
|
- //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到审核通过
|
|
|
- for (Report r : sameUserSameDayOtherReports) {
|
|
|
- Integer oid = r.getId();
|
|
|
- //检查是否已经添加过了
|
|
|
- boolean hasAdded = false;
|
|
|
- for (int m = 0; m<updateReportList.size(); m++) {
|
|
|
- if (updateReportList.get(m).getId().equals(oid)) {
|
|
|
- hasAdded = true;
|
|
|
- break;
|
|
|
+ //判断下一个审核节点(部门审核)的审核人和当前审核的是不是同一个人,如果是的,则可直接进入下一步审核或者结束
|
|
|
+ if (upR.getAuditDeptManagerid() != null && upR.getAuditDeptManagerid().equals(token)) {
|
|
|
+ if (upR.getIsFinalAudit() == 1) {
|
|
|
+ //最终审核了
|
|
|
+ upR.setState(1).setProjectAuditTime(LocalDateTime.now());
|
|
|
+ //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到审核通过
|
|
|
+ for (Report r : sameUserSameDayOtherReports) {
|
|
|
+ Integer oid = r.getId();
|
|
|
+ //检查是否已经添加过了
|
|
|
+ boolean hasAdded = false;
|
|
|
+ for (int m = 0; m<updateReportList.size(); m++) {
|
|
|
+ if (updateReportList.get(m).getId().equals(oid)) {
|
|
|
+ hasAdded = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!hasAdded) {
|
|
|
+ Report addReport = new Report();
|
|
|
+ addReport.setId(oid);
|
|
|
+ addReport.setIsDeptAudit(upR.getIsDeptAudit());
|
|
|
+ addReport.setAuditDeptid(upR.getAuditDeptid());
|
|
|
+ addReport.setAuditDeptManagerid(upR.getAuditDeptManagerid());
|
|
|
+ addReport.setIsFinalAudit(upR.getIsFinalAudit());
|
|
|
+ addReport.setState(1).setProjectAuditTime(LocalDateTime.now());
|
|
|
+ updateReportList.add(addReport);
|
|
|
}
|
|
|
}
|
|
|
- if (!hasAdded) {
|
|
|
- Report addReport = new Report();
|
|
|
- addReport.setId(oid);
|
|
|
- addReport.setIsDeptAudit(upR.getIsDeptAudit());
|
|
|
- addReport.setAuditDeptid(upR.getAuditDeptid());
|
|
|
- addReport.setAuditDeptManagerid(upR.getAuditDeptManagerid());
|
|
|
- addReport.setIsFinalAudit(upR.getIsFinalAudit());
|
|
|
- addReport.setState(1).setProjectAuditTime(LocalDateTime.now());
|
|
|
- updateReportList.add(addReport);
|
|
|
+ } else {
|
|
|
+ //还有下个节点
|
|
|
+ Integer auditDeptid = upR.getAuditDeptid();
|
|
|
+ for (int m=0;m<settings.size(); m++) {
|
|
|
+ if (auditDeptid.equals(settings.get(m).getAuditDeptId()) && m < settings.size() -1) {
|
|
|
+ AuditWorkflowTimeSetting nextNode = settings.get(m + 1);
|
|
|
+ upR.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
+ if (upR.getIsDeptAudit() == 1) {
|
|
|
+ upR.setAuditDeptid(nextNode.getAuditDeptId());
|
|
|
+ upR.setAuditDeptManagerid(allDepts.stream()
|
|
|
+ .filter(ad->ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId());
|
|
|
+ }
|
|
|
+ upR.setIsFinalAudit(nextNode.getIsFinal());
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- } else {
|
|
|
- //还有下个节点
|
|
|
- Integer auditDeptid = upR.getAuditDeptid();
|
|
|
- for (int m=0;m<settings.size(); m++) {
|
|
|
- if (auditDeptid.equals(settings.get(m).getAuditDeptId()) && m < settings.size() -1) {
|
|
|
- AuditWorkflowTimeSetting nextNode = settings.get(m + 1);
|
|
|
- upR.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
- if (upR.getIsDeptAudit() == 1) {
|
|
|
- upR.setAuditDeptid(nextNode.getAuditDeptId());
|
|
|
- upR.setAuditDeptManagerid(allDepts.stream()
|
|
|
- .filter(ad->ad.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId());
|
|
|
+ //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到下个流程节点
|
|
|
+ for (Report r : sameUserSameDayOtherReports) {
|
|
|
+ Integer oid = r.getId();
|
|
|
+ //检查是否已经添加过了
|
|
|
+ boolean hasAdded = false;
|
|
|
+ for (int m = 0; m<updateReportList.size(); m++) {
|
|
|
+ if (updateReportList.get(m).getId().equals(oid)) {
|
|
|
+ hasAdded = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!hasAdded) {
|
|
|
+ Report addReport = new Report();
|
|
|
+ addReport.setId(oid);
|
|
|
+ addReport.setIsDeptAudit(upR.getIsDeptAudit());
|
|
|
+ addReport.setAuditDeptid(upR.getAuditDeptid());
|
|
|
+ addReport.setAuditDeptManagerid(upR.getAuditDeptManagerid());
|
|
|
+ addReport.setIsFinalAudit(upR.getIsFinalAudit());
|
|
|
+ updateReportList.add(addReport);
|
|
|
}
|
|
|
- upR.setIsFinalAudit(nextNode.getIsFinal());
|
|
|
- break;
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
//可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到下个流程节点
|
|
|
for (Report r : sameUserSameDayOtherReports) {
|
|
|
Integer oid = r.getId();
|
|
@@ -1969,37 +2025,15 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到下个流程节点
|
|
|
- for (Report r : sameUserSameDayOtherReports) {
|
|
|
- Integer oid = r.getId();
|
|
|
- //检查是否已经添加过了
|
|
|
- boolean hasAdded = false;
|
|
|
- for (int m = 0; m<updateReportList.size(); m++) {
|
|
|
- if (updateReportList.get(m).getId().equals(oid)) {
|
|
|
- hasAdded = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (!hasAdded) {
|
|
|
- Report addReport = new Report();
|
|
|
- addReport.setId(oid);
|
|
|
- addReport.setIsDeptAudit(upR.getIsDeptAudit());
|
|
|
- addReport.setAuditDeptid(upR.getAuditDeptid());
|
|
|
- addReport.setAuditDeptManagerid(upR.getAuditDeptManagerid());
|
|
|
- addReport.setIsFinalAudit(upR.getIsFinalAudit());
|
|
|
- updateReportList.add(addReport);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ updateReportList.add(curReport);
|
|
|
+ }
|
|
|
+ if (updateReportList.size() > 0) {
|
|
|
+ reportService.updateBatchById(updateReportList);
|
|
|
}
|
|
|
- updateReportList.add(curReport);
|
|
|
- }
|
|
|
- if (updateReportList.size() > 0) {
|
|
|
- reportService.updateBatchById(updateReportList);
|
|
|
}
|
|
|
}
|
|
|
List<Integer> collect = allReports.stream().map(ar -> ar.getProjectId()).distinct().collect(Collectors.toList());
|
|
@@ -2023,6 +2057,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
for (Report r : allReports) {
|
|
|
LocalDate date = r.getCreateDate();
|
|
|
String creatorId = r.getCreatorId();
|
|
|
+ System.out.println("creatorId========="+creatorId);
|
|
|
if (!membList.stream().anyMatch(m->m.getCreateDate().isEqual(date) && m.getUserId().equals(creatorId))) {
|
|
|
//没有的话,存进去
|
|
|
ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
@@ -2040,9 +2075,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (membList.size() > 0) {
|
|
|
reportAlogMembdateService.saveBatch(membList);
|
|
|
}
|
|
|
-// //直接进行项目经理审核
|
|
|
-// reportMapper.update(new Report().setState(1),
|
|
|
-// new QueryWrapper<Report>().in("id", ids));
|
|
|
}
|
|
|
return httpRespMsg;
|
|
|
}
|
|
@@ -2100,6 +2132,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
|
int oldState = oneReport.getState();
|
|
|
int channel = oldState == -1?0:1; //0-导入审核, 项目报告审核
|
|
|
+ List<Report> rList = reportMapper.selectList(new QueryWrapper<Report>().select("id, group_id, project_id").in("id", ListUtil.convertIdsArrayToList(reportIds)));
|
|
|
+ if (timeTypeMapper.selectById(company.getId()).getReportAuditType() == 2) {
|
|
|
+ //退回任务分组审核状态
|
|
|
+ List<Report> newList = new ArrayList<>();
|
|
|
+ for (Report r : rList) {
|
|
|
+ Report upR = new Report();
|
|
|
+ upR.setId(r.getId());
|
|
|
+ upR.setGroupAuditState(0);
|
|
|
+ String inchargerId = taskGroupMapper.selectById(r.getGroupId()).getInchargerId();
|
|
|
+ upR.setProjectAuditorId(inchargerId);
|
|
|
+ upR.setProjectAuditorName(userMapper.selectById(inchargerId).getName());
|
|
|
+ newList.add(upR);
|
|
|
+ }
|
|
|
+ updateBatchById(newList);
|
|
|
+ }
|
|
|
+
|
|
|
//需要进行审核记录保存
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
List<Integer> collect = reportList.stream().map(rl -> rl.getProjectId()).distinct().collect(Collectors.toList());
|
|
@@ -2116,7 +2164,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
reportAuditLogMapper.insert(log);
|
|
|
List<Report> allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
saveDenyReportLog(allReports, user.getId(), user.getName(), null);
|
|
|
- List<User> allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
|
+ List<User> allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name").eq("company_id", company.getId()));
|
|
|
//当前所有员工的日期
|
|
|
List<ReportAlogMembdate> membList = new ArrayList<>();
|
|
|
for (Report r : allReports) {
|
|
@@ -3636,20 +3684,45 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (list.size() == 0) {
|
|
|
httpRespMsg.setError("日报已不存在");
|
|
|
return httpRespMsg;
|
|
|
- } else if (list.get(0).getState() != 1) {
|
|
|
- //只有已通过的历史记录才能撤销
|
|
|
- httpRespMsg.setError("只有已通过的才可撤回审核");
|
|
|
- return httpRespMsg;
|
|
|
+ } else {
|
|
|
+ if (list.get(0).getState() == 3) {
|
|
|
+ //只有已通过的历史记录才能撤销
|
|
|
+ httpRespMsg.setError("操作错误,日报状态不对:"+list.get(0).getState());
|
|
|
+ return httpRespMsg;
|
|
|
+ } else if (list.get(0).getState() == 2) {
|
|
|
+ //只有已通过的历史记录才能撤销
|
|
|
+ httpRespMsg.setError("该日报已被撤销,无法重复操作");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
}
|
|
|
oneReport = list.get(0);
|
|
|
//直接进行项目经理审核驳回
|
|
|
reportMapper.update(new Report().setState(2)
|
|
|
.setRejectReason(reason).setRejectUserid(user.getId()).setRejectUsername(user.getName()),
|
|
|
eq);
|
|
|
+
|
|
|
+ if (timeTypeMapper.selectById(company.getId()).getReportAuditType() == 2) {
|
|
|
+ List<Report> rList = list;
|
|
|
+ //退回任务分组审核状态
|
|
|
+ List<Report> newList = new ArrayList<>();
|
|
|
+ for (Report r : rList) {
|
|
|
+ Report upR = new Report();
|
|
|
+ upR.setId(r.getId());
|
|
|
+ upR.setGroupAuditState(0);
|
|
|
+ String inchargerId = taskGroupMapper.selectById(r.getGroupId()).getInchargerId();
|
|
|
+ upR.setProjectAuditorId(inchargerId);
|
|
|
+ upR.setProjectAuditorName(userMapper.selectById(inchargerId).getName());
|
|
|
+ newList.add(upR);
|
|
|
+ }
|
|
|
+ updateBatchById(newList);
|
|
|
+ }
|
|
|
+
|
|
|
//修改审核记录的状态
|
|
|
log.setState(3);
|
|
|
reportAlogMembdateMapper.updateById(log);
|
|
|
|
|
|
+ saveDenyReportLog(list, user.getId(), user.getName(), reason);
|
|
|
+
|
|
|
List<Integer> collect = list.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
|
|
|
String pNames = projectList.stream().map(Project::getProjectName).collect(Collectors.joining(", ", "[", "]"));
|