|
@@ -5299,12 +5299,32 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
report.setContent(workContent);
|
|
report.setContent(workContent);
|
|
report.setMultiWorktime(timeType.getMultiWorktime());
|
|
report.setMultiWorktime(timeType.getMultiWorktime());
|
|
report.setFillUserid(user.getId());
|
|
report.setFillUserid(user.getId());
|
|
- if (timeType.getNeedDeptAudit() == 0) {
|
|
|
|
- report.setState(1);//导入的直接算审核通过
|
|
|
|
|
|
+ if (timeType.getImportReportAuditNormal() == 0) {
|
|
|
|
+ //老的导入日报审核模式
|
|
|
|
+ if (timeType.getNeedDeptAudit() == 0) {
|
|
|
|
+ report.setState(1);//导入的直接算审核通过
|
|
|
|
+ } else {
|
|
|
|
+ report.setState(-1);//待部门上级审核员审核
|
|
|
|
+ report.setDepartmentAuditState(1);//部门已审核,到上层领导审核
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
- report.setState(-1);//待部门上级审核员审核
|
|
|
|
- report.setDepartmentAuditState(1);//部门已审核,到上层领导审核
|
|
|
|
|
|
+ report.setState(0);//待审核
|
|
|
|
+ //目前仅支持项目审核人审核的模式,叠加审批流
|
|
|
|
+ if (timeType.getReportAuditType() == 0) {
|
|
|
|
+ //设置日报审核人
|
|
|
|
+ List<ProjectAuditor> projectAuditors = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().eq("project_id", project.getId()));
|
|
|
|
+ if (projectAuditors.size() > 0) {
|
|
|
|
+ report.setProjectAuditorId(projectAuditors.get(0).getAuditorId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<AuditWorkflowTimeSetting> auditWorkflowList
|
|
|
|
+ = auditWorkflowTimeSettingMapper.selectList(
|
|
|
|
+ new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", reportCreator.getDepartmentId()).orderByAsc("seq"));
|
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", reportCreator.getCompanyId()));
|
|
|
|
+ setReportWorkflowAuditor(auditWorkflowList, allDeptList, report,timeType);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
report.setCreateDate(LocalDate.parse(reportDate, dtf));
|
|
report.setCreateDate(LocalDate.parse(reportDate, dtf));
|
|
report.setCost(reportCreator.getCost()==null?new BigDecimal(0) : reportCreator.getCost().multiply(new BigDecimal(time)));
|
|
report.setCost(reportCreator.getCost()==null?new BigDecimal(0) : reportCreator.getCost().multiply(new BigDecimal(time)));
|
|
reportList.add(report);
|
|
reportList.add(report);
|
|
@@ -5317,9 +5337,15 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
|
|
|
|
if (reportList.size() > 0) {
|
|
if (reportList.size() > 0) {
|
|
|
|
+ int shouldSkipPassData = 0;
|
|
|
|
+ if (timeType.getImportReportAuditNormal() == 1) {
|
|
|
|
+ shouldSkipPassData = 1;
|
|
|
|
+ } else {
|
|
|
|
+ shouldSkipPassData = timeType.getNeedDeptAudit();
|
|
|
|
+ }
|
|
//依赖于对是否需要部门审核的判断,如果不需要则认为导入的就是审核通过的,重新导入就直接覆盖之前的。
|
|
//依赖于对是否需要部门审核的判断,如果不需要则认为导入的就是审核通过的,重新导入就直接覆盖之前的。
|
|
- reportMapper.deleteUserSameDayReport(companyId, reportList, timeType.getNeedDeptAudit());
|
|
|
|
- if (timeType.getNeedDeptAudit() == 1) {
|
|
|
|
|
|
+ reportMapper.deleteUserSameDayReport(companyId, reportList, shouldSkipPassData);
|
|
|
|
+ if (shouldSkipPassData == 1) {
|
|
//如果需要导入审核,则对审核通过的进行排除
|
|
//如果需要导入审核,则对审核通过的进行排除
|
|
List<Map> passReports = reportMapper.getSameDayPassReport(companyId, reportList);
|
|
List<Map> passReports = reportMapper.getSameDayPassReport(companyId, reportList);
|
|
StringBuilder sb = new StringBuilder();
|
|
StringBuilder sb = new StringBuilder();
|
|
@@ -5421,7 +5447,39 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+ private void setReportWorkflowAuditor(List<AuditWorkflowTimeSetting> auditWorkflowList, List<Department> allDeptList, Report report, TimeType comTimeType) {
|
|
|
|
+ if (auditWorkflowList.size() == 0) {
|
|
|
|
+ //没有自定义审核流,默认的直接是项目负责人审核
|
|
|
|
+ report.setIsDeptAudit(0);
|
|
|
|
+ report.setIsFinalAudit(1);
|
|
|
|
+ } else {
|
|
|
|
+ //取第一个审核节点
|
|
|
|
+ AuditWorkflowTimeSetting firstNode = auditWorkflowList.get(0);
|
|
|
|
+ report.setIsFinalAudit(auditWorkflowList.size() > 1?0:1);
|
|
|
|
+ report.setIsDeptAudit(firstNode.getIsDeptAudit());
|
|
|
|
+ report.setAuditDeptid(firstNode.getAuditDeptId());
|
|
|
|
+ if (firstNode.getIsDeptAudit() == 1) {
|
|
|
|
+ Department curDept = allDeptList.stream()
|
|
|
|
+ .filter(ad->ad.getDepartmentId().equals(firstNode.getAuditDeptId())).findFirst().get();
|
|
|
|
+ String curDeptManagerId = curDept.getManagerId();
|
|
|
|
+ //启用了本部门负责人的日报由上级部门主要负责人审核
|
|
|
|
+ if (comTimeType.getReportAuditFlowEnableSuperDeptAduit() == 1 && curDeptManagerId.equals(report.getCreatorId())) {
|
|
|
|
+ //当前提交的人是这个部门的主要负责人,那么要取该部门的上一级部门的主要负责人来审核
|
|
|
|
+ Integer parentDeptId = curDept.getSuperiorId();
|
|
|
|
+ if (parentDeptId == null) {
|
|
|
|
+ //没有上级部门,直接取当前部门的负责人
|
|
|
|
+ report.setAuditDeptManagerid(curDeptManagerId);
|
|
|
|
+ } else {
|
|
|
|
+// report.setAuditDeptid(parentDeptId);
|
|
|
|
+ report.setAuditDeptManagerid(allDeptList.stream()
|
|
|
|
+ .filter(ad->ad.getDepartmentId().equals(parentDeptId)).findFirst().get().getManagerId());
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ report.setAuditDeptManagerid(curDeptManagerId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
private void fillDeptUser(List<DepartmentVO> list, List<HashMap> userList) {
|
|
private void fillDeptUser(List<DepartmentVO> list, List<HashMap> userList) {
|
|
list.forEach(l->{
|
|
list.forEach(l->{
|
|
List<HashMap> collect = userList.stream().filter(u -> u.get("departmentId").equals(l.getId())).collect(Collectors.toList());
|
|
List<HashMap> collect = userList.stream().filter(u -> u.get("departmentId").equals(l.getId())).collect(Collectors.toList());
|