Commit 41ea13f8 authored by 赵啸非's avatar 赵啸非

修改本月统计

parent 9e1ef180
package com.mortals.xhx.module.attendance.web; package com.mortals.xhx.module.attendance.web;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.utils.ReflectUtils;
import com.mortals.framework.utils.ServletUtils; import com.mortals.framework.utils.ServletUtils;
import com.mortals.framework.utils.poi.ExcelUtil;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
...@@ -27,6 +32,7 @@ import com.mortals.xhx.module.dept.service.DeptService; ...@@ -27,6 +32,7 @@ import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity; import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
import com.mortals.xhx.module.perform.model.vo.AppealInfo; import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import com.mortals.xhx.module.staff.service.StaffService; import com.mortals.xhx.module.staff.service.StaffService;
import org.apache.poi.ss.formula.functions.T;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -127,7 +133,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -127,7 +133,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
@Override @Override
public void doExportAfter(Context context, List<AttendanceRecordEntity> list) throws AppException { public void doExportAfter(Context context, List<AttendanceRecordEntity> list) throws AppException {
ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>(); /* ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>();
for (AttendanceRecordEntity recordEntity : list) { for (AttendanceRecordEntity recordEntity : list) {
List<AttendanceRecordDetailEntity> attendanceRecordDetailList = recordEntity.getAttendanceRecordDetailList(); List<AttendanceRecordDetailEntity> attendanceRecordDetailList = recordEntity.getAttendanceRecordDetailList();
...@@ -150,9 +156,93 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -150,9 +156,93 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
if (!ObjectUtils.isEmpty(attendanceRecordEntities)) { if (!ObjectUtils.isEmpty(attendanceRecordEntities)) {
list.clear(); list.clear();
list.addAll(attendanceRecordEntities); list.addAll(attendanceRecordEntities);
} }*/
} }
@Override
public void exportExcel(@RequestBody AttendanceRecordEntity query) {
Context context = getContext();
String busiDesc = "导出" + getModuleDesc();
List<String> properties = new ArrayList<>();
try {
doExportBefore(context, query, properties);
String name = StringUtils.trim(this.moduleDesc);
if (StringUtils.isEmpty(name)) {
name = System.currentTimeMillis() + "";
}
String fileName = name + ".xlsx";
PageInfo pageInfo = new PageInfo(-1);
List<AttendanceRecordEntity> list = this.service.find(query, pageInfo, getContext()).getList();
Class<AttendanceRecordEntity> tClass = ReflectUtils.getClassGenricType(getClass(), 1);
ExcelUtil<AttendanceRecordEntity, Long> util = new ExcelUtil<>(tClass);
doExportAfter(context, list);
//求详细最大数量
final Integer colSize = list.parallelStream().map(i -> i.getAttendanceRecordDetailList().size()).max(Comparator.comparing(Integer::intValue)).orElseGet(() -> 0);
//构建动态list
List<List<Map<String, Object>>> lists = list.stream().map(item -> {
List<AttendanceRecordDetailEntity> attendanceRecordDetailList = item.getAttendanceRecordDetailList();
List<Map<String, Object>> mapList = new ArrayList<>();
for (int i = 0; i < colSize; i++) {
if (attendanceRecordDetailList.size() > i) {
AttendanceRecordDetailEntity detailEntity = attendanceRecordDetailList.get(i);
//生成上班 结果 下班 结果 4个map
Map<String, Object> map = new HashMap<>();
map.put("name", String.format("上班打卡时间%d", i + 1));
map.put("value", DateUtil.formatDateTime(detailEntity.getGoWorkDate()));
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("上班打卡结果%d", i + 1));
map.put("value", GoWorkResultEnum.getByValue(detailEntity.getGoWorkResult()).getDesc());
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("下班打卡时间%d", i + 1));
map.put("value", DateUtil.formatDateTime(detailEntity.getOffWorkDate()));
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("下班打卡结果%d", i + 1));
map.put("value", OffWorkResultEnum.getByValue(detailEntity.getOffWorkResult()).getDesc());
mapList.add(map);
} else {
Map<String, Object> map = new HashMap<>();
map.put("name", String.format("上班打卡时间%d", i + 1));
map.put("value", "--");
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("上班打卡结果%d", i + 1));
map.put("value", "--");
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("下班打卡时间%d", i + 1));
map.put("value", "--");
mapList.add(map);
map = new HashMap<>();
map.put("name", String.format("下班打卡结果%d", i + 1));
map.put("value", "--");
mapList.add(map);
}
}
return mapList;
}).collect(Collectors.toList());
byte[] data = util.exportExcel(list, properties, lists, name);
// byte[] data = util.exportExcel(list, properties, name);
doExportFileAfter(data, query, context);
this.responseStream(response, data, fileName);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
this.doException(request, "导出异常", new HashMap<>(), e);
}
}
@Override @Override
public void doExportFileAfter(byte[] data, AttendanceRecordEntity query, Context context) throws AppException { public void doExportFileAfter(byte[] data, AttendanceRecordEntity query, Context context) throws AppException {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment