|
@@ -77,6 +77,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
@Resource
|
|
|
private UserDingdingTimeMapper userDingdingTimeMapper;
|
|
|
@Resource
|
|
|
+ private ProjectPercentageMapper projectPercentageMapper;
|
|
|
+ @Resource
|
|
|
private ReportService reportService;
|
|
|
@Resource
|
|
|
ReportExtraDegreeMapper reportExtraDegreeMapper;
|
|
@@ -879,7 +881,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
//增加填报人所属部门
|
|
|
map2.put("departmentName", list2.get(0).get("departmentName"));
|
|
|
}
|
|
|
-
|
|
|
//设置照片显示
|
|
|
for (Map map : nameList) {
|
|
|
List<Map<String, Object>> reportList = (List<Map<String, Object>>)map.get("data");
|
|
@@ -907,41 +908,45 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (timeType.getShowCorpwxCardtime() == 1) {
|
|
|
//企业微信的情况
|
|
|
QueryWrapper<UserCorpwxTime> userCorpwxTimeQueryWrapper = new QueryWrapper<>();
|
|
|
- for (Map map : nameList) {
|
|
|
- String name = (String)map.get("name");
|
|
|
- String dateStr = (String)map.get("dateStr");
|
|
|
- userCorpwxTimeQueryWrapper.or(wrapper->wrapper.eq("name", name).eq("create_date", dateStr));
|
|
|
- }
|
|
|
- List<UserCorpwxTime> timeList = userCorpwxTimeMapper.selectList(userCorpwxTimeQueryWrapper);
|
|
|
- //过滤匹配当前的数据
|
|
|
- for (Map map : nameList) {
|
|
|
- String name = (String)map.get("name");
|
|
|
- String dateStr = (String)map.get("dateStr");
|
|
|
- Optional<UserCorpwxTime> first = timeList.stream().filter(time -> time.getName().equals(name) && dtf.format(time.getCreateDate()).equals(dateStr)).findFirst();
|
|
|
- if (first.isPresent()) {
|
|
|
- double wh = first.get().getWorkHours();
|
|
|
- //赋值打卡时长
|
|
|
- map.put("cardHours", wh);
|
|
|
+ if (nameList.size() > 0) {
|
|
|
+ for (Map map : nameList) {
|
|
|
+ String name = (String)map.get("name");
|
|
|
+ String dateStr = (String)map.get("dateStr");
|
|
|
+ userCorpwxTimeQueryWrapper.or(wrapper->wrapper.eq("name", name).eq("create_date", dateStr));
|
|
|
+ }
|
|
|
+ List<UserCorpwxTime> timeList = userCorpwxTimeMapper.selectList(userCorpwxTimeQueryWrapper);
|
|
|
+ //过滤匹配当前的数据
|
|
|
+ for (Map map : nameList) {
|
|
|
+ String name = (String)map.get("name");
|
|
|
+ String dateStr = (String)map.get("dateStr");
|
|
|
+ Optional<UserCorpwxTime> first = timeList.stream().filter(time -> time.getName().equals(name) && dtf.format(time.getCreateDate()).equals(dateStr)).findFirst();
|
|
|
+ if (first.isPresent()) {
|
|
|
+ double wh = first.get().getWorkHours();
|
|
|
+ //赋值打卡时长
|
|
|
+ map.put("cardHours", wh);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} else if (timeType.getShowDdCardtime() == 1) {
|
|
|
//钉钉的情况
|
|
|
QueryWrapper<UserDingdingTime> userDingdingTimeQueryWrapper = new QueryWrapper<>();
|
|
|
- for (Map map : nameList) {
|
|
|
- String itemUid = (String)map.get("userId");
|
|
|
- String dateStr = (String)map.get("dateStr");
|
|
|
- userDingdingTimeQueryWrapper.or(wrapper->wrapper.eq("user_id", itemUid).eq("work_date", dateStr));
|
|
|
- }
|
|
|
- List<UserDingdingTime> timeList = userDingdingTimeMapper.selectList(userDingdingTimeQueryWrapper);
|
|
|
- //过滤匹配当前的数据
|
|
|
- for (Map map : nameList) {
|
|
|
- String itemUid = (String)map.get("userId");
|
|
|
- String dateStr = (String)map.get("dateStr");
|
|
|
- Optional<UserDingdingTime> first = timeList.stream().filter(time -> time.getUserId().equals(itemUid) && dtf.format(time.getWorkDate()).equals(dateStr)).findFirst();
|
|
|
- if (first.isPresent()) {
|
|
|
- double wh = first.get().getWorkHours();
|
|
|
- //赋值打卡时长
|
|
|
- map.put("cardHours", wh);
|
|
|
+ if (nameList.size() > 0) {
|
|
|
+ for (Map map : nameList) {
|
|
|
+ String itemUid = (String)map.get("userId");
|
|
|
+ String dateStr = (String)map.get("dateStr");
|
|
|
+ userDingdingTimeQueryWrapper.or(wrapper->wrapper.eq("user_id", itemUid).eq("work_date", dateStr));
|
|
|
+ }
|
|
|
+ List<UserDingdingTime> timeList = userDingdingTimeMapper.selectList(userDingdingTimeQueryWrapper);
|
|
|
+ //过滤匹配当前的数据
|
|
|
+ for (Map map : nameList) {
|
|
|
+ String itemUid = (String)map.get("userId");
|
|
|
+ String dateStr = (String)map.get("dateStr");
|
|
|
+ Optional<UserDingdingTime> first = timeList.stream().filter(time -> time.getUserId().equals(itemUid) && dtf.format(time.getWorkDate()).equals(dateStr)).findFirst();
|
|
|
+ if (first.isPresent()) {
|
|
|
+ double wh = first.get().getWorkHours();
|
|
|
+ //赋值打卡时长
|
|
|
+ map.put("cardHours", wh);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1012,7 +1017,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
} else {
|
|
|
//最终进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1),
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
new QueryWrapper<Report>().in("id", ids));
|
|
|
List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
List<ReportProfessionProgress> professionProgressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids));
|
|
@@ -1041,7 +1046,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
.orderByAsc("seq"));
|
|
|
if (settings.size() == 0) {
|
|
|
//直接进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1).setProjectAuditState(1),
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
new QueryWrapper<Report>().in("id", ids));
|
|
|
} else {
|
|
|
//按流程走
|
|
@@ -1052,12 +1057,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
//最终审核了,审核通过
|
|
|
if (item.getIsDeptAudit() == 1) {
|
|
|
//如果最终是部门审核,直接通过
|
|
|
- //如果最终是项目审核
|
|
|
- reportMapper.update(new Report().setState(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),
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
new QueryWrapper<Report>().in("id", ids));
|
|
|
}
|
|
|
} else {
|
|
@@ -1117,22 +1121,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
//对导入审核,添加记录
|
|
|
- if (oldState == -1) {
|
|
|
- ReportAuditLog log = new ReportAuditLog();
|
|
|
- log.setAuditChannel(0);//导入审核
|
|
|
- log.setCompanyId(company.getId());
|
|
|
- log.setResult("通过");
|
|
|
- log.setUserId(user.getId());
|
|
|
- log.setUserName(user.getName());
|
|
|
- reportAuditLogMapper.insert(log);
|
|
|
- //员工的日期
|
|
|
- ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
- membdate.setRlogId(log.getId());
|
|
|
- membdate.setCreateDate(oneReport.getCreateDate());
|
|
|
- membdate.setUserId(oneReport.getCreatorId());
|
|
|
- membdate.setUserName(userMapper.selectById(oneReport.getCreatorId()).getName());
|
|
|
- reportAlogMembdateMapper.insert(membdate);
|
|
|
- }
|
|
|
+ int channel = oldState == -1?0:1; //0-导入审核, 项目报告审核
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(channel);
|
|
|
+ log.setCompanyId(company.getId());
|
|
|
+ log.setResult("通过");
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ //员工的日期
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
+ membdate.setCreateDate(oneReport.getCreateDate());
|
|
|
+ membdate.setUserId(oneReport.getCreatorId());
|
|
|
+ membdate.setUserName(userMapper.selectById(oneReport.getCreatorId()).getName());
|
|
|
+ reportAlogMembdateMapper.insert(membdate);
|
|
|
}
|
|
|
} catch (NullPointerException e) {
|
|
|
httpRespMsg.setError("验证失败");
|
|
@@ -1333,22 +1336,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
informationMapper.insert(new Information().setType(0).setContent(date).setUserId(fillUserId).setMsg(str));
|
|
|
|
|
|
//对导入审核,添加记录
|
|
|
- if (oldState == -1) {
|
|
|
- ReportAuditLog log = new ReportAuditLog();
|
|
|
- log.setAuditChannel(0);//导入审核
|
|
|
- log.setCompanyId(company.getId());
|
|
|
- log.setResult("驳回"+(StringUtils.isEmpty(reason)?"":"("+reason+")"));
|
|
|
- log.setUserId(user.getId());
|
|
|
- log.setUserName(user.getName());
|
|
|
- reportAuditLogMapper.insert(log);
|
|
|
- //员工的日期
|
|
|
- ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
- membdate.setRlogId(log.getId());
|
|
|
- membdate.setCreateDate(oneReport.getCreateDate());
|
|
|
- membdate.setUserId(oneReport.getCreatorId());
|
|
|
- membdate.setUserName(userMapper.selectById(oneReport.getCreatorId()).getName());
|
|
|
- reportAlogMembdateMapper.insert(membdate);
|
|
|
- }
|
|
|
+ int channel = oldState == -1?0:1; //0-导入审核, 项目报告审核
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(channel);//导入审核
|
|
|
+ log.setCompanyId(company.getId());
|
|
|
+ log.setResult("驳回"+(StringUtils.isEmpty(reason)?"":"("+reason+")"));
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ //员工的日期
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
+ membdate.setCreateDate(oneReport.getCreateDate());
|
|
|
+ membdate.setUserId(oneReport.getCreatorId());
|
|
|
+ membdate.setUserName(userMapper.selectById(oneReport.getCreatorId()).getName());
|
|
|
+ reportAlogMembdateMapper.insert(membdate);
|
|
|
|
|
|
//发送企业微信通知消息
|
|
|
User reporter = userMapper.selectById(fillUserId);
|
|
@@ -1536,7 +1538,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
} else {
|
|
|
//直接进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1),
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()),
|
|
|
new QueryWrapper<Report>().in("id", ids));
|
|
|
List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
notifyLeaders(finalReportList);
|
|
@@ -1545,6 +1547,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
|
new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
|
|
|
.orderByAsc("seq"));
|
|
@@ -1554,7 +1557,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<Report> allReports = null;
|
|
|
if (settings.size() == 0) {
|
|
|
//公司没有自定义流程,直接进行项目经理审核
|
|
|
- reportMapper.update(new Report().setState(1),
|
|
|
+ reportMapper.update(new Report().setState(1).setProjectAuditTime(now),
|
|
|
new QueryWrapper<Report>().in("id", ids));
|
|
|
if (oldState == -1) {
|
|
|
allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
@@ -1573,7 +1576,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
Report curReport = new Report().setId(rid);
|
|
|
if (deptSettings.size() == 0) {
|
|
|
//直接进行项目经理审核
|
|
|
- curReport.setState(1);
|
|
|
+ curReport.setState(1).setProjectAuditTime(now);
|
|
|
} else {
|
|
|
//按流程走, 取到当前报告的数据
|
|
|
Report item = allReports.stream().filter(a->a.getId().equals(rid)).findFirst().get();
|
|
@@ -1582,10 +1585,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (item.getIsDeptAudit() == 1) {
|
|
|
//如果最终是部门审核,直接通过
|
|
|
//如果最终是项目审核
|
|
|
- curReport.setState(1);
|
|
|
+ curReport.setState(1).setProjectAuditTime(now);
|
|
|
} else {
|
|
|
//如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
|
|
|
- curReport.setState(1).setProjectAuditState(1);
|
|
|
+ curReport.setState(1).setProjectAuditState(1).setProjectAuditTime(now);
|
|
|
}
|
|
|
} else {
|
|
|
if (item.getIsDeptAudit() == 1) {
|
|
@@ -1668,37 +1671,35 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (oldState == -1) {
|
|
|
- //需要进行审核记录保存
|
|
|
- ReportAuditLog log = new ReportAuditLog();
|
|
|
- log.setAuditChannel(0);//导入审核
|
|
|
- log.setCompanyId(company.getId());
|
|
|
- log.setResult("批量通过");
|
|
|
- log.setUserId(user.getId());
|
|
|
- log.setUserName(user.getName());
|
|
|
- reportAuditLogMapper.insert(log);
|
|
|
- //当前所有员工的日期
|
|
|
- List<ReportAlogMembdate> membList = new ArrayList<>();
|
|
|
- for (Report r : allReports) {
|
|
|
- LocalDate date = r.getCreateDate();
|
|
|
- String creatorId = r.getCreatorId();
|
|
|
- if (!membList.stream().anyMatch(m->m.getCreateDate().isEqual(date) && m.getUserId().equals(creatorId))) {
|
|
|
- //没有的话,存进去
|
|
|
- ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
- membdate.setRlogId(log.getId());
|
|
|
- membdate.setCreateDate(date);
|
|
|
- membdate.setUserId(creatorId);
|
|
|
- Optional<User> oneUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst();
|
|
|
- if (oneUser.isPresent()) {
|
|
|
- membdate.setUserName(oneUser.get().getName());
|
|
|
- }
|
|
|
- membList.add(membdate);
|
|
|
-
|
|
|
+ int channel = oldState == -1?0:1; //0-导入审核, 项目报告审核
|
|
|
+ //需要进行审核记录保存
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(channel);
|
|
|
+ log.setCompanyId(company.getId());
|
|
|
+ log.setResult("批量通过");
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ //当前所有员工的日期
|
|
|
+ List<ReportAlogMembdate> membList = new ArrayList<>();
|
|
|
+ for (Report r : allReports) {
|
|
|
+ LocalDate date = r.getCreateDate();
|
|
|
+ String creatorId = r.getCreatorId();
|
|
|
+ if (!membList.stream().anyMatch(m->m.getCreateDate().isEqual(date) && m.getUserId().equals(creatorId))) {
|
|
|
+ //没有的话,存进去
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
+ membdate.setCreateDate(date);
|
|
|
+ membdate.setUserId(creatorId);
|
|
|
+ Optional<User> oneUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst();
|
|
|
+ if (oneUser.isPresent()) {
|
|
|
+ membdate.setUserName(oneUser.get().getName());
|
|
|
}
|
|
|
+ membList.add(membdate);
|
|
|
}
|
|
|
- if (membList.size() > 0) {
|
|
|
- reportAlogMembdateService.saveBatch(membList);
|
|
|
- }
|
|
|
+ }
|
|
|
+ if (membList.size() > 0) {
|
|
|
+ reportAlogMembdateService.saveBatch(membList);
|
|
|
}
|
|
|
// //直接进行项目经理审核
|
|
|
// reportMapper.update(new Report().setState(1),
|
|
@@ -1760,38 +1761,37 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
|
int oldState = oneReport.getState();
|
|
|
- if (oldState == -1) {
|
|
|
- //需要进行审核记录保存
|
|
|
- ReportAuditLog log = new ReportAuditLog();
|
|
|
- log.setAuditChannel(0);//导入审核
|
|
|
- log.setCompanyId(company.getId());
|
|
|
- log.setResult("批量驳回");
|
|
|
- log.setUserId(user.getId());
|
|
|
- log.setUserName(user.getName());
|
|
|
- reportAuditLogMapper.insert(log);
|
|
|
- List<Report> allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
- List<User> allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
|
- //当前所有员工的日期
|
|
|
- List<ReportAlogMembdate> membList = new ArrayList<>();
|
|
|
- for (Report r : allReports) {
|
|
|
- LocalDate date = r.getCreateDate();
|
|
|
- String creatorId = r.getCreatorId();
|
|
|
- if (!membList.stream().anyMatch(m->m.getCreateDate().isEqual(date) && m.getUserId().equals(creatorId))) {
|
|
|
- //没有的话,存进去
|
|
|
- ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
- membdate.setRlogId(log.getId());
|
|
|
- membdate.setCreateDate(date);
|
|
|
- membdate.setUserId(creatorId);
|
|
|
- Optional<User> oneUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst();
|
|
|
- if (oneUser.isPresent()) {
|
|
|
- membdate.setUserName(oneUser.get().getName());
|
|
|
- }
|
|
|
- membList.add(membdate);
|
|
|
+ int channel = oldState == -1?0:1; //0-导入审核, 项目报告审核
|
|
|
+ //需要进行审核记录保存
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(channel);//导入审核
|
|
|
+ log.setCompanyId(company.getId());
|
|
|
+ log.setResult("批量驳回");
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ List<Report> allReports = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ List<User> allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
|
|
|
+ //当前所有员工的日期
|
|
|
+ List<ReportAlogMembdate> membList = new ArrayList<>();
|
|
|
+ for (Report r : allReports) {
|
|
|
+ LocalDate date = r.getCreateDate();
|
|
|
+ String creatorId = r.getCreatorId();
|
|
|
+ if (!membList.stream().anyMatch(m->m.getCreateDate().isEqual(date) && m.getUserId().equals(creatorId))) {
|
|
|
+ //没有的话,存进去
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
+ membdate.setCreateDate(date);
|
|
|
+ membdate.setUserId(creatorId);
|
|
|
+ Optional<User> oneUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst();
|
|
|
+ if (oneUser.isPresent()) {
|
|
|
+ membdate.setUserName(oneUser.get().getName());
|
|
|
}
|
|
|
+ membList.add(membdate);
|
|
|
}
|
|
|
- if (membList.size() > 0) {
|
|
|
- reportAlogMembdateService.saveBatch(membList);
|
|
|
- }
|
|
|
+ }
|
|
|
+ if (membList.size() > 0) {
|
|
|
+ reportAlogMembdateService.saveBatch(membList);
|
|
|
}
|
|
|
//直接进行项目经理审核驳回
|
|
|
reportMapper.update(new Report().setState(2),
|
|
@@ -2501,6 +2501,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
TimeType timeType = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
|
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
//准备导出
|
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|
|
HSSFSheet sheet = workbook.createSheet("工作日报");
|
|
@@ -2524,7 +2525,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (timeType.getCustomDegreeActive() == 1) {
|
|
|
titles.add(timeType.getCustomDegreeName());
|
|
|
}
|
|
|
-
|
|
|
+ if (timeType.getShowFillauditTime() == 1) {
|
|
|
+ titles.add("填写时间");
|
|
|
+ titles.add("审核人");
|
|
|
+ titles.add("审核时间");
|
|
|
+ }
|
|
|
titles.add("工作事项");
|
|
|
|
|
|
//创建表头
|
|
@@ -2704,8 +2709,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
row.createCell(index).setCellValue(map.get("degreeName") != null?map.get("degreeName").toString():"");
|
|
|
index++;
|
|
|
}
|
|
|
+ //
|
|
|
+ if (timeType.getShowFillauditTime() == 1) {
|
|
|
+ row.createCell(index).setCellValue(sdf.format((Date)map.get("time")));
|
|
|
+ index++;
|
|
|
+ row.createCell(index).setCellValue((String)map.get("projectAuditorName"));
|
|
|
+ index++;
|
|
|
+ if (map.get("projectAuditTime") == null) {
|
|
|
+ row.createCell(index).setCellValue("");
|
|
|
+ } else {
|
|
|
+ row.createCell(index).setCellValue(sdf.format((Date)map.get("projectAuditTime")));
|
|
|
+ }
|
|
|
+
|
|
|
+ index++;
|
|
|
+// titles.add("填写时间");
|
|
|
+// titles.add("审核人");
|
|
|
+// titles.add("审核时间");
|
|
|
+ }
|
|
|
row.createCell(index).setCellValue((String) map.get("content"));
|
|
|
- index++;
|
|
|
rowNum++;
|
|
|
}
|
|
|
//生成Excel文件
|
|
@@ -2821,7 +2842,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg listDeptImportByState(String leaderId, Integer projectId, Integer dateType, String date, Integer departmentId, HttpServletRequest request) {
|
|
|
+ public HttpRespMsg listDeptImportByState(String leaderId, Integer projectId, Integer dateType, String date, Integer pageIndex, Integer pageSize, Integer departmentId, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
@@ -2848,9 +2869,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
startDate = date + "-01";
|
|
|
endDate = date + "-31";
|
|
|
}
|
|
|
- List<Map<String, Object>> auditReportList = reportMapper.getDeptImportAuditList(companyId, leaderId, startDate, endDate, filterDeptIds, projectId);
|
|
|
-
|
|
|
- httpRespMsg.data = auditReportList;
|
|
|
+ //pageIndex从1开始
|
|
|
+ Integer startIndex = (pageIndex -1) * pageSize;
|
|
|
+ List<Map<String, Object>> auditReportList = reportMapper.getDeptImportAuditList(companyId, leaderId, startDate, endDate, filterDeptIds, projectId, startIndex, pageSize);
|
|
|
+ long total = reportMapper.getDeptImportAuditListCount(companyId, leaderId, startDate, endDate, filterDeptIds, projectId);
|
|
|
+ HashMap result = new HashMap();
|
|
|
+ result.put("total", total);
|
|
|
+ result.put("record", auditReportList);
|
|
|
+ httpRespMsg.data = result;
|
|
|
} catch (NullPointerException e) {
|
|
|
httpRespMsg.setError("验证失败");
|
|
|
return httpRespMsg;
|
|
@@ -2930,12 +2956,28 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
//获取企业微信同步数据
|
|
|
List<Map> userCorpwxTimeMapList = userCorpwxTimeMapper.selectByAsk(companyId,startDate,endDate);
|
|
|
+
|
|
|
String lastUserId = null;
|
|
|
UserMonthWork lastUserData = null;
|
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
LocalDate localStart = LocalDate.parse(startDate, dtf);
|
|
|
LocalDate localEnd = LocalDate.parse(endDate, dtf);
|
|
|
+
|
|
|
+ //按比例分摊的人员不需要出现在未填人员名单中
|
|
|
+ String[] split = startDate.split("-");
|
|
|
+ String ymonth = split[0]+"-"+split[1];
|
|
|
+ List<String> setPercentUserIdList = new ArrayList<>();
|
|
|
+ ProjectPercentage percentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id", companyId).eq("ymonth", ymonth));
|
|
|
+ if (percentage != null) {
|
|
|
+ String data = percentage.getData();
|
|
|
+ JSONArray array = JSONArray.parseArray(data);
|
|
|
+ for (int i=0;i<array.size(); i++) {
|
|
|
+ String userId = array.getJSONObject(i).getString("id");
|
|
|
+ setPercentUserIdList.add(userId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
|
|
|
//按人员过滤
|
|
|
for (User curUser: allRangeUserList){
|
|
@@ -2953,6 +2995,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (!WorkDayCalculateUtils.isWorkDay(date)) {
|
|
|
continue;
|
|
|
}
|
|
|
+ //去掉设置了分摊比例的人员
|
|
|
+ if (setPercentUserIdList.contains(curUser.getId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
final String dateStr = dtf.format(date);
|
|
|
if (!list.stream().anyMatch(item->item.get("id").equals(curUser.getId())&&sdf.format((java.sql.Date)item.get("createDate")).equals(dateStr))) {
|
|
|
UserDailyWorkItem noRecord = new UserDailyWorkItem();
|
|
@@ -3030,4 +3076,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg approveAllImport(HttpServletRequest request) {
|
|
|
+ String token = request.getHeader("TOKEN");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ reportMapper.approveAllDeptImportList(user.getCompanyId(), token);
|
|
|
+ //需要进行审核记录保存
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(0);//导入审核
|
|
|
+ log.setCompanyId(user.getCompanyId());
|
|
|
+ log.setResult("一键全部通过");
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ return new HttpRespMsg();
|
|
|
+ }
|
|
|
+
|
|
|
}
|