|
@@ -90,8 +90,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
@Resource
|
|
|
WxCorpInfoService wxCorpInfoService;
|
|
|
@Resource
|
|
|
- CompanyDingdingMapper companyDingdingMapper;
|
|
|
- @Resource
|
|
|
UserCorpwxTimeMapper userCorpwxTimeMapper;
|
|
|
@Resource
|
|
|
WxCorpInfoMapper wxCorpInfoMapper;
|
|
@@ -981,7 +979,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String userId,HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
|
Integer companyId = curUser.getCompanyId();
|
|
|
TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
@@ -1018,18 +1015,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
//每组日报数据都加上去
|
|
|
userDailyReportList.add(a);
|
|
|
}
|
|
|
-
|
|
|
- List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
|
+ List<Profession> professions = new ArrayList<>();
|
|
|
+ if (isEngeering == 1) {
|
|
|
+ professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
|
+ }
|
|
|
for (int index=0;index<nameList.size(); index++) {
|
|
|
Map<String, Object> map2 = nameList.get(index);
|
|
|
List<Map<String, Object>> list2 = (List)map2.get("data");
|
|
|
//项目专业进度
|
|
|
if (isEngeering == 1) {
|
|
|
+ final List<Profession> fProfessList = professions;
|
|
|
for (Map<String, Object> map : list2) {
|
|
|
//获取当前项目的工程专业进度
|
|
|
List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", (int)map.get("id")));
|
|
|
progressList.stream().forEach(p->{
|
|
|
- p.setProfessionName(professions.stream().filter(m->m.getId().equals(p.getProfessionId())).findFirst().get().getName());
|
|
|
+ p.setProfessionName(fProfessList.stream().filter(m->m.getId().equals(p.getProfessionId())).findFirst().get().getName());
|
|
|
});
|
|
|
map.put("professionProgressList", progressList);
|
|
|
}
|
|
@@ -1049,6 +1049,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
map2.put("state", list2.get(0).get("state"));
|
|
|
map2.put("auditDeptName", list2.get(0).get("auditDeptName"));
|
|
|
map2.put("isDeptAudit", list2.get(0).get("isDeptAudit"));
|
|
|
+ map2.put("groupAuditState", list2.get(0).get("groupAuditState"));
|
|
|
map2.put("deptAuditorName", list2.get(0).get("deptAuditorName"));
|
|
|
//增加填报人所属部门
|
|
|
map2.put("departmentName", list2.get(0).get("departmentName"));
|
|
@@ -1135,7 +1136,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
public HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
- User user = userMapper.selectById(request.getHeader("Token"));
|
|
|
+ String token = request.getHeader("Token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
|
final List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(reportIds);
|
|
|
if (company.getPackageEngineering() == 1) {
|
|
@@ -1209,70 +1211,72 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
+ //先按照大的审核模式进行分类
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(company.getId());
|
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
|
int oldState = oneReport.getState();
|
|
|
String creatorId = oneReport.getCreatorId();
|
|
|
User auditTargetUser = userMapper.selectById(creatorId);
|
|
|
- List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
|
- new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", auditTargetUser.getDepartmentId())
|
|
|
- .orderByAsc("seq"));
|
|
|
- if (settings.size() == 0) {
|
|
|
- //直接进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
- } else {
|
|
|
- //按流程走
|
|
|
- List<Report> allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
- List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
|
|
|
- Report item = allReports.get(0);
|
|
|
- if (item.getIsFinalAudit() == 1) {
|
|
|
- //最终审核了,审核通过
|
|
|
- if (item.getIsDeptAudit() == 1) {
|
|
|
- //如果最终是部门审核,直接通过
|
|
|
- reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
- } else {
|
|
|
- //如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
|
|
|
- reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
+ if (timeType.getReportAuditType() == 2) {
|
|
|
+ //先按分组审核,再进行项目经理审核
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, project_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();
|
|
|
+ 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 {
|
|
|
+ //之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流
|
|
|
+ List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
|
+ new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", auditTargetUser.getDepartmentId())
|
|
|
+ .orderByAsc("seq"));
|
|
|
+ if (settings.size() == 0) {
|
|
|
+ //直接进行项目经理审核
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
} else {
|
|
|
- if (item.getIsDeptAudit() == 1) {
|
|
|
- //当前是部门审核,获取审核部门id
|
|
|
- Report upR = new Report();
|
|
|
- Integer auditDeptid = item.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;
|
|
|
- }
|
|
|
+ //按流程走
|
|
|
+ List<Report> allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
|
|
|
+ Report item = allReports.get(0);
|
|
|
+ if (item.getIsFinalAudit() == 1) {
|
|
|
+ //最终审核了,审核通过
|
|
|
+ if (item.getIsDeptAudit() == 1) {
|
|
|
+ //如果最终是部门审核,直接通过
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
+ } else {
|
|
|
+ //如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
}
|
|
|
- reportMapper.update(upR,
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
} else {
|
|
|
- //当前的先审核通过
|
|
|
- reportMapper.update(new Report().setProjectAuditState(1),
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
- //项目审核的情况下,需要判断是否该员工当天所有项目是否都是项目经理审核通过了
|
|
|
- List<Report> sameUserSameDayOtherReports = reportMapper.selectList(new QueryWrapper<Report>()
|
|
|
- .eq("create_date", item.getCreateDate())
|
|
|
- .eq("creator_id", item.getCreatorId())
|
|
|
- .notIn("id", ids));
|
|
|
- long pendingNum = sameUserSameDayOtherReports.stream().filter(s->s.getProjectAuditState() == 0).count();
|
|
|
- if (pendingNum == 0) {
|
|
|
- //没有其他待审核的项目了,流程往下走
|
|
|
+ if (item.getIsDeptAudit() == 1) {
|
|
|
+ //当前是部门审核,获取审核部门id
|
|
|
Report upR = new Report();
|
|
|
+ Integer auditDeptid = item.getAuditDeptid();
|
|
|
for (int m=0;m<settings.size(); m++) {
|
|
|
- if (settings.get(m).getIsDeptAudit()== 0) {//找到项目审核的那个节点
|
|
|
+ if (auditDeptid.equals(settings.get(m).getAuditDeptId()) && m < settings.size() -1) {
|
|
|
AuditWorkflowTimeSetting nextNode = settings.get(m + 1);
|
|
|
-// System.out.println("nextNode=="+nextNode.getAuditDeptName());
|
|
|
upR.setIsDeptAudit(nextNode.getIsDeptAudit());
|
|
|
if (upR.getIsDeptAudit() == 1) {
|
|
|
upR.setAuditDeptid(nextNode.getAuditDeptId());
|
|
@@ -1283,16 +1287,77 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- //全部更新到下一个审核阶段
|
|
|
- List<Integer> allRids = sameUserSameDayOtherReports.stream().map(Report::getId).collect(Collectors.toList());
|
|
|
- allRids.addAll(ids);
|
|
|
-// System.out.println("更新全部的日报到下个阶段:getIsDeptAudit="+upR.getIsDeptAudit()+", ");
|
|
|
reportMapper.update(upR,
|
|
|
- new QueryWrapper<Report>().in("id", allRids));
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
+ } else {
|
|
|
+ //当前的先审核通过
|
|
|
+ reportMapper.update(new Report().setProjectAuditState(1),
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
+ //项目审核的情况下,需要判断是否该员工当天所有项目是否都是项目经理审核通过了
|
|
|
+ List<Report> sameUserSameDayOtherReports = reportMapper.selectList(new QueryWrapper<Report>()
|
|
|
+ .eq("create_date", item.getCreateDate())
|
|
|
+ .eq("creator_id", item.getCreatorId())
|
|
|
+ .notIn("id", ids));
|
|
|
+ long pendingNum = sameUserSameDayOtherReports.stream().filter(s->s.getProjectAuditState() == 0).count();
|
|
|
+ if (pendingNum == 0) {
|
|
|
+ //没有其他待审核的项目了,流程往下走
|
|
|
+ Report upR = new Report();
|
|
|
+ for (int m=0;m<settings.size(); m++) {
|
|
|
+ if (settings.get(m).getIsDeptAudit()== 0) {//找到项目审核的那个节点
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //判断下一个审核节点(部门审核)的审核人和当前审核的是不是同一个人,如果是的,则可直接进入下一步审核或者结束
|
|
|
+ if (upR.getAuditDeptManagerid() != null && upR.getAuditDeptManagerid().equals(token)) {
|
|
|
+ if (upR.getIsFinalAudit() == 1) {
|
|
|
+ //最终审核了
|
|
|
+ List<Integer> allRids = sameUserSameDayOtherReports.stream().map(Report::getId).collect(Collectors.toList());
|
|
|
+ allRids.addAll(ids);
|
|
|
+ upR.setState(1).setProjectAuditTime(LocalDateTime.now());
|
|
|
+ reportMapper.update(upR,
|
|
|
+ new QueryWrapper<Report>().in("id", allRids));
|
|
|
+ } 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Integer> allRids = sameUserSameDayOtherReports.stream().map(Report::getId).collect(Collectors.toList());
|
|
|
+ allRids.addAll(ids);
|
|
|
+ reportMapper.update(upR,
|
|
|
+ new QueryWrapper<Report>().in("id", allRids));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //全部更新到下一个审核阶段
|
|
|
+ List<Integer> allRids = sameUserSameDayOtherReports.stream().map(Report::getId).collect(Collectors.toList());
|
|
|
+ allRids.addAll(ids);
|
|
|
+ reportMapper.update(upR,
|
|
|
+ new QueryWrapper<Report>().in("id", allRids));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
List<Integer> collect = reportList.stream().map(rl -> rl.getProjectId()).distinct().collect(Collectors.toList());
|
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
|
|
@@ -1498,10 +1563,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
}
|
|
|
//直接进行项目经理审核驳回
|
|
|
- reportMapper.update(new Report().setState(2)
|
|
|
- .setRejectReason(reason).setRejectUserid(user.getId()).setRejectUsername(user.getName()),
|
|
|
+ Report upReport = new Report().setState(2)
|
|
|
+ .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)));
|
|
|
+ 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<Integer> collect = rList.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(", ", "[", "]"));
|
|
@@ -1558,33 +1638,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
|
|
|
- //审核通过某条
|
|
|
- @Override
|
|
|
- public HttpRespMsg singleApproveReport(Integer id, HttpServletRequest request) {
|
|
|
- HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
- try {
|
|
|
- User user = userMapper.selectById(request.getHeader("Token"));
|
|
|
- reportMapper.updateById(reportMapper.selectById(id).setState(1));
|
|
|
- } catch (NullPointerException e) {
|
|
|
- httpRespMsg.setError("验证失败");
|
|
|
- return httpRespMsg;
|
|
|
- }
|
|
|
- return httpRespMsg;
|
|
|
- }
|
|
|
-
|
|
|
- //审核未通过 以及 撤销审核某条
|
|
|
- @Override
|
|
|
- public HttpRespMsg singleDenyReport(Integer id, HttpServletRequest request) {
|
|
|
- HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
- try {
|
|
|
- User user = userMapper.selectById(request.getHeader("Token"));
|
|
|
- reportMapper.updateById(reportMapper.selectById(id).setState(2));
|
|
|
- } catch (NullPointerException e) {
|
|
|
- httpRespMsg.setError("验证失败");
|
|
|
- return httpRespMsg;
|
|
|
- }
|
|
|
- return httpRespMsg;
|
|
|
- }
|
|
|
|
|
|
private List<DepartmentVO> getSpecifiedDept(List<DepartmentVO> list, Integer id) {
|
|
|
DepartmentVO item = null;
|
|
@@ -1691,7 +1744,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
@Override
|
|
|
public HttpRespMsg batchApproveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
|
|
|
- User user = userMapper.selectById(request.getHeader("Token"));
|
|
|
+ String token = request.getHeader("Token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
final List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(reportIds);
|
|
@@ -1849,25 +1903,93 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到下个流程节点
|
|
|
- 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //可能存在当天的其他已经通过项目负责人审核的数据,也一起更新到下个流程节点
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- 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);
|
|
|
+ } 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|