|
@@ -246,6 +246,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
private BustripProjectMapper bustripProjectMapper;
|
|
private BustripProjectMapper bustripProjectMapper;
|
|
@Resource
|
|
@Resource
|
|
private CompanyDingdingMapper companyDingdingMapper;
|
|
private CompanyDingdingMapper companyDingdingMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private SysRoleFunctionService sysRoleFunctionService;
|
|
|
|
|
|
|
|
|
|
//获取报告列表
|
|
//获取报告列表
|
|
@@ -262,6 +264,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
//首先根据日期获取当天所有提交过日志的人
|
|
//首先根据日期获取当天所有提交过日志的人
|
|
String userId = request.getHeader("Token");
|
|
String userId = request.getHeader("Token");
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
|
|
+ Integer hideTimeCount= sysRoleFunctionService.selectHideTimeCount(user.getRoleId());
|
|
String viewUserId = user.getId();
|
|
String viewUserId = user.getId();
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
@@ -578,6 +581,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (hideTimeCount>0){
|
|
|
|
+ for (Map<String, Object> map : nameList) {
|
|
|
|
+ if (map.get("state").equals(1)){
|
|
|
|
+ map.put("cardTime","*");
|
|
|
|
+ map.put("reportTime","*");
|
|
|
|
+ List<Map<String, Object>> reportList = (List<Map<String, Object>>)map.get("data");
|
|
|
|
+ for (Map<String, Object> reportMap : reportList) {
|
|
|
|
+ reportMap.put("endTime","");
|
|
|
|
+ reportMap.put("customText","*");
|
|
|
|
+ reportMap.put("startTime","");
|
|
|
|
+ reportMap.put("time","*");
|
|
|
|
+ reportMap.put("overtimeHours","*");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
if (pageStart == null) {
|
|
if (pageStart == null) {
|
|
//老版本,不带分页的情况
|
|
//老版本,不带分页的情况
|
|
@@ -5127,6 +5146,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
public HttpRespMsg getUserDailyWorkTime(HttpServletRequest request, String startDate, String endDate,Integer hasReportDeptId) throws Exception {
|
|
public HttpRespMsg getUserDailyWorkTime(HttpServletRequest request, String startDate, String endDate,Integer hasReportDeptId) throws Exception {
|
|
String token = request.getHeader("TOKEN");
|
|
String token = request.getHeader("TOKEN");
|
|
User user = userMapper.selectById(token);
|
|
User user = userMapper.selectById(token);
|
|
|
|
+ Integer hideTimeCount= sysRoleFunctionService.selectHideTimeCount(user.getRoleId());
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
Company company = companyMapper.selectById(companyId);
|
|
Company company = companyMapper.selectById(companyId);
|
|
//准备部门数据
|
|
//准备部门数据
|
|
@@ -5399,6 +5419,18 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
days.add(mapItem);
|
|
days.add(mapItem);
|
|
}
|
|
}
|
|
map.put("days", days);
|
|
map.put("days", days);
|
|
|
|
+ if (hideTimeCount>0){
|
|
|
|
+ for (UserMonthWork work : userMonthWorks) {
|
|
|
|
+ List<Map<String, Object>> worktimeList = work.worktimeList;
|
|
|
|
+ if (!worktimeList.isEmpty()){
|
|
|
|
+ worktimeList.forEach(w->{
|
|
|
|
+ if (w.get("state")!=null&&w.get("state").equals(1)){
|
|
|
|
+ w.put("workingTime","*");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
map.put("list", userMonthWorks);
|
|
map.put("list", userMonthWorks);
|
|
msg.data = map;
|
|
msg.data = map;
|
|
return msg;
|
|
return msg;
|
|
@@ -6370,12 +6402,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
//导出报告
|
|
//导出报告
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg exportReport(@RequestParam String startDate, @RequestParam String endDate,Integer exportType, Integer projectId,Integer stateKey,String departmentIds, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg exportReport(@RequestParam String startDate, @RequestParam String endDate,Integer exportType, Integer projectId,Integer stateKey,String departmentIds,String plate, HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
DateFormat timeDf = new SimpleDateFormat("yyyy-MM-dd");
|
|
DateFormat timeDf = new SimpleDateFormat("yyyy-MM-dd");
|
|
try {
|
|
try {
|
|
|
|
+ String field="";
|
|
|
|
+ String fieldValue="";
|
|
|
|
+ if (!StringUtils.isEmpty(plate)){
|
|
|
|
+ String[] strings = plate.split("-");
|
|
|
|
+ field=strings[0];
|
|
|
|
+ fieldValue=strings[1];
|
|
|
|
+
|
|
|
|
+ }
|
|
String userId = request.getHeader("Token");
|
|
String userId = request.getHeader("Token");
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
|
|
+ Integer hideTimeCount= sysRoleFunctionService.selectHideTimeCount(user.getRoleId());
|
|
//检查模式,是否是一个项目多个工作事项的情况
|
|
//检查模式,是否是一个项目多个工作事项的情况
|
|
TimeType timeType = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
|
|
TimeType timeType = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
@@ -6537,7 +6578,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
//检查是否是部门负责人
|
|
//检查是否是部门负责人
|
|
List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
|
|
List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
|
|
if (allVisibleDeptIdList.size() > 0) {
|
|
if (allVisibleDeptIdList.size() > 0) {
|
|
- allReportByDate = reportMapper.getDeptMembReportByDate(startDate, null, allVisibleDeptIdList, endDate, projectId,stateKey,branchDepartment, user.getId());
|
|
|
|
|
|
+ allReportByDate = reportMapper.getDeptMembReportByDate(startDate, null, allVisibleDeptIdList, endDate, projectId,stateKey,branchDepartment, user.getId(),field,fieldValue);
|
|
}
|
|
}
|
|
|
|
|
|
List<HashMap<String, Object>> reportsFromProjects = null;
|
|
List<HashMap<String, Object>> reportsFromProjects = null;
|
|
@@ -6553,16 +6594,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
if (cnt > 0 || auditorPids != null) {
|
|
if (cnt > 0 || auditorPids != null) {
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
- reportsFromProjects = reportMapper.getProjectMembReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids);
|
|
|
|
|
|
+ reportsFromProjects = reportMapper.getProjectMembReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids,field,fieldValue);
|
|
} else{
|
|
} else{
|
|
- reportsFromProjects = reportMapper.getProjectMembReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids);
|
|
|
|
|
|
+ reportsFromProjects = reportMapper.getProjectMembReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids,field,fieldValue);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
//普通员工只能看自己的
|
|
//普通员工只能看自己的
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
- reportsFromProjects = reportMapper.getAllReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment);
|
|
|
|
|
|
+ reportsFromProjects = reportMapper.getAllReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment,field,fieldValue);
|
|
} else {
|
|
} else {
|
|
- reportsFromProjects = reportMapper.getAllReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment);
|
|
|
|
|
|
+ reportsFromProjects = reportMapper.getAllReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment,field,fieldValue);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -6582,9 +6623,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
else {
|
|
else {
|
|
//看公司所有人的
|
|
//看公司所有人的
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
if (exportType == 0 && timeType.getShowFillauditTime() == 1) {
|
|
- allReportByDate = reportMapper.getAllReportByDateWithReportLog(startDate, user.getCompanyId(), null, endDate, projectId,stateKey,branchDepartment);
|
|
|
|
|
|
+ allReportByDate = reportMapper.getAllReportByDateWithReportLog(startDate, user.getCompanyId(), null, endDate, projectId,stateKey,branchDepartment,field,fieldValue);
|
|
} else {
|
|
} else {
|
|
- allReportByDate = reportMapper.getAllReportByDate(startDate, user.getCompanyId(), null, endDate, projectId,stateKey,branchDepartment);
|
|
|
|
|
|
+ allReportByDate = reportMapper.getAllReportByDate(startDate, user.getCompanyId(), null, endDate, projectId,stateKey,branchDepartment,field,fieldValue);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//获取企业微信考勤数据
|
|
//获取企业微信考勤数据
|
|
@@ -6804,7 +6845,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
item.add((String) map.get("detail"));
|
|
item.add((String) map.get("detail"));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- item.add(map.get("duration").toString());
|
|
|
|
|
|
+ if (hideTimeCount>0){
|
|
|
|
+ item.add("*");
|
|
|
|
+ }else {
|
|
|
|
+ item.add(map.get("duration").toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
if (timeType.getMultiWorktime() == 1) {
|
|
if (timeType.getMultiWorktime() == 1) {
|
|
if ((Integer)map.get("multiWorktime") == 1) {
|
|
if ((Integer)map.get("multiWorktime") == 1) {
|
|
item.add(map.get("startTime").toString()+"-"+map.get("endTime").toString());
|
|
item.add(map.get("startTime").toString()+"-"+map.get("endTime").toString());
|
|
@@ -6813,11 +6859,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
//加班情况
|
|
//加班情况
|
|
int isOverTime = (Integer) map.get("isOvertime");
|
|
int isOverTime = (Integer) map.get("isOvertime");
|
|
- item.add(isOverTime==1?(df.format((double)map.get("overtimeHours"))):"-");
|
|
|
|
|
|
+ item.add(isOverTime==1?(hideTimeCount>0?"*":df.format((double)map.get("overtimeHours"))):"-");
|
|
}
|
|
}
|
|
if (timeType.getMultiWorktime() == 0) {
|
|
if (timeType.getMultiWorktime() == 0) {
|
|
int isOverTime = (Integer) map.get("isOvertime");
|
|
int isOverTime = (Integer) map.get("isOvertime");
|
|
- item.add(isOverTime==1?(df.format((double)map.get("overtimeHours"))):"-");
|
|
|
|
|
|
+ item.add(isOverTime==1?(hideTimeCount>0?"*":df.format((double)map.get("overtimeHours"))):"-");
|
|
}
|
|
}
|
|
//是否启用自定义的维度了
|
|
//是否启用自定义的维度了
|
|
if (timeType.getCustomDegreeActive() == 1) {
|
|
if (timeType.getCustomDegreeActive() == 1) {
|
|
@@ -7027,7 +7073,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- item.add(cellValue);
|
|
|
|
|
|
+ if (hideTimeCount>0){
|
|
|
|
+ item.add("*");
|
|
|
|
+ }else {
|
|
|
|
+ item.add(cellValue);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
//审核流程状态
|
|
//审核流程状态
|
|
if (exportType==0) {
|
|
if (exportType==0) {
|
|
@@ -7775,7 +7826,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
if(token.equals(thirdPartyInterface.getToken())){
|
|
if(token.equals(thirdPartyInterface.getToken())){
|
|
- List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getCompanyId(), null, endDate, null, 1, null);
|
|
|
|
|
|
+ List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getCompanyId(), null, endDate, null, 1, null,null,null);
|
|
final CountDownLatch latch=new CountDownLatch(allReportByDate.size());
|
|
final CountDownLatch latch=new CountDownLatch(allReportByDate.size());
|
|
for (HashMap<String, Object> map : allReportByDate) {
|
|
for (HashMap<String, Object> map : allReportByDate) {
|
|
java.sql.Date sqlCreateDate= (java.sql.Date) map.get("createDate");
|
|
java.sql.Date sqlCreateDate= (java.sql.Date) map.get("createDate");
|
|
@@ -8907,6 +8958,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
userId = targetUserId;
|
|
userId = targetUserId;
|
|
}
|
|
}
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
|
|
+ Integer hideTimeCount= sysRoleFunctionService.selectHideTimeCount(user.getRoleId());
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
//根据targetDate获取本周的日期
|
|
//根据targetDate获取本周的日期
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
@@ -9063,9 +9115,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
//放入当天对应的日报
|
|
//放入当天对应的日报
|
|
List<Report> dateReportList = reportList.stream().filter(r -> r.getCreateDate().isEqual(itemDate)).collect(Collectors.toList());
|
|
List<Report> dateReportList = reportList.stream().filter(r -> r.getCreateDate().isEqual(itemDate)).collect(Collectors.toList());
|
|
- item.put("reportList", dateReportList);
|
|
|
|
- double sum = dateReportList.stream().mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
- item.put("filledTime", sum);
|
|
|
|
|
|
+ if(hideTimeCount>0){
|
|
|
|
+ for (Report report : dateReportList) {
|
|
|
|
+ if (report.getWorkingTime()!=null){
|
|
|
|
+ report.setWorkingTime(null);
|
|
|
|
+ report.setEndTime("");
|
|
|
|
+ report.setStartTime("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ item.put("reportList", dateReportList);
|
|
|
|
+ item.put("filledTime", "*");
|
|
|
|
+ }else {
|
|
|
|
+ item.put("reportList", dateReportList);
|
|
|
|
+ double sum = dateReportList.stream().mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
+ item.put("filledTime", sum);
|
|
|
|
+ }
|
|
dateList.add(item);
|
|
dateList.add(item);
|
|
}
|
|
}
|
|
reportMap.put("dateList", dateList);
|
|
reportMap.put("dateList", dateList);
|
|
@@ -10477,8 +10541,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
List<User> needRangeUserList=new ArrayList<>();
|
|
List<User> needRangeUserList=new ArrayList<>();
|
|
for (User u : allRangeUserList) {
|
|
for (User u : allRangeUserList) {
|
|
- if(u.getInactiveDate()==null||(u.getInactiveDate()!=null&&u.getInactiveDate().isAfter(LocalDate.parse(startDate))||u.getIsActive()==1)){
|
|
|
|
- needRangeUserList.add(u);
|
|
|
|
|
|
+ if(u.getIsActive()==0) {
|
|
|
|
+ //离职人员,判断离职的日期要在所选开始日期之后。才显示该员工
|
|
|
|
+ if (u.getInactiveDate() == null || u.getInactiveDate().isAfter(LocalDate.parse(startDate))) {
|
|
|
|
+ needRangeUserList.add(u);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //在职员工,如果有设置在职日期,判断在职日期在所选结束日期之前,才显示该员工
|
|
|
|
+ if (u.getInductionDate() == null || u.getInductionDate().isBefore(LocalDate.parse(endDate))) {
|
|
|
|
+ needRangeUserList.add(u);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
List<LocalDate> days = getDays(LocalDate.parse(startDate, df), LocalDate.parse(endDate, df));
|
|
List<LocalDate> days = getDays(LocalDate.parse(startDate, df), LocalDate.parse(endDate, df));
|