|
@@ -2,16 +2,13 @@ package com.management.platform.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
-import com.management.platform.controller.WeiXinCorpController;
|
|
|
|
import com.management.platform.entity.*;
|
|
import com.management.platform.entity.*;
|
|
import com.management.platform.entity.vo.*;
|
|
import com.management.platform.entity.vo.*;
|
|
import com.management.platform.mapper.*;
|
|
import com.management.platform.mapper.*;
|
|
import com.management.platform.service.*;
|
|
import com.management.platform.service.*;
|
|
import com.management.platform.util.ExcelUtil;
|
|
import com.management.platform.util.ExcelUtil;
|
|
-import com.management.platform.util.FileUtil;
|
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.ListUtil;
|
|
import com.management.platform.util.ListUtil;
|
|
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
|
|
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
|
|
@@ -22,14 +19,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.apache.poi.hssf.usermodel.*;
|
|
import org.apache.poi.hssf.usermodel.*;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
-import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
-import org.springframework.core.task.AsyncTaskExecutor;
|
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
@@ -41,11 +31,8 @@ import javax.servlet.http.HttpServletRequest;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
-import java.sql.Timestamp;
|
|
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
-import java.text.ParseException;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
-import java.time.DayOfWeek;
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
@@ -2816,23 +2803,31 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
LocalDate localEnd = LocalDate.parse(endDate, dtf);
|
|
LocalDate localEnd = LocalDate.parse(endDate, dtf);
|
|
long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
|
|
long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
|
|
//按人员过滤
|
|
//按人员过滤
|
|
- for (User curUser: allRangeUserList) {
|
|
|
|
- for (int i=0;i<=cnt; i++) {
|
|
|
|
- LocalDate date = localStart.plusDays(i);
|
|
|
|
- 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();
|
|
|
|
- noRecord.userId = curUser.getId();
|
|
|
|
- noRecord.createDate = dtf.format(date);
|
|
|
|
- if (curUser.getDepartmentId() != null && curUser.getDepartmentId() != 0) {
|
|
|
|
- noRecord.department = departmentList.stream().filter(d->d.getDepartmentId().equals(curUser.getDepartmentId())).findFirst().get().getDepartmentName();
|
|
|
|
- } else {
|
|
|
|
- noRecord.department = "无";
|
|
|
|
|
|
+ for (User curUser: allRangeUserList){
|
|
|
|
+ for (int i=0;i<=cnt; i++) {
|
|
|
|
+ LocalDate date = localStart.plusDays(i);
|
|
|
|
+ //入职日期以前 不需要添加 跳出
|
|
|
|
+ if(curUser.getInductionDate()!=null&&date.isBefore(curUser.getInductionDate())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ //当前日期在离职日期之后 不需要再添加 跳出
|
|
|
|
+ if((curUser.getIsActive()==0&&date.isAfter(curUser.getInactiveDate()))) {
|
|
|
|
+ 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();
|
|
|
|
+ noRecord.userId = curUser.getId();
|
|
|
|
+ noRecord.createDate = dtf.format(date);
|
|
|
|
+ if (curUser.getDepartmentId() != null && curUser.getDepartmentId() != 0) {
|
|
|
|
+ noRecord.department = departmentList.stream().filter(d->d.getDepartmentId().equals(curUser.getDepartmentId())).findFirst().get().getDepartmentName();
|
|
|
|
+ } else {
|
|
|
|
+ noRecord.department = "无";
|
|
|
|
+ }
|
|
|
|
+ noRecord.name = curUser.getName();
|
|
|
|
+ noReportDataList.add(noRecord);
|
|
}
|
|
}
|
|
- noRecord.name = curUser.getName();
|
|
|
|
- noReportDataList.add(noRecord);
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
}
|
|
}
|
|
//排序
|
|
//排序
|
|
noReportDataList.sort(new Comparator<UserDailyWorkItem>() {
|
|
noReportDataList.sort(new Comparator<UserDailyWorkItem>() {
|