From 52d79c7e5a1fb4316f34886ec336f69f56d5edb2 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期六, 15 三月 2025 10:48:46 +0800
Subject: [PATCH] 工时管理日工时管理以及辅助工时配置
---
performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 329 +++++++++++++++++++++++++++++-------------------------
1 files changed, 179 insertions(+), 150 deletions(-)
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
index d8974a9..7eddef7 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
@@ -4,13 +4,16 @@
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson2.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto;
import com.ruoyi.performance.dto.AuxiliaryWorkingHoursDayDto;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
@@ -20,6 +23,7 @@
import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursService;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.commons.math3.analysis.function.Power;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -27,10 +31,7 @@
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -53,118 +54,194 @@
@Resource
UserMapper userMapper;
+
@Override
public IPage<AuxiliaryOutputWorkingHoursDto> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) {
- String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
+ auxiliaryOutputWorkingHoursDto.setWeekDay(weekConvert(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay()) ? auxiliaryOutputWorkingHoursDto.getWeekDay() : ""));
+ String dateTime1 = auxiliaryOutputWorkingHoursDto.getDateTime1();
+ String dateTime2 = auxiliaryOutputWorkingHoursDto.getDateTime2();
+ AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
+ BeanUtils.copyProperties(auxiliaryOutputWorkingHoursDto, auxiliaryOutputWorkingHours);
String week = auxiliaryOutputWorkingHoursDto.getWeek();
auxiliaryOutputWorkingHoursDto.setDateTime(null);
auxiliaryOutputWorkingHoursDto.setWeek(null);
+ Map<String, Object> map = new HashMap<>();
List<Integer> ids = new ArrayList<>();
- if (ids.size() == 0) {
- ids = null;
+ //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
+ User user = userMapper.selectById(Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString()));
+
+ List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, auxiliaryOutputWorkingHoursDto.getName()));
+ if(CollectionUtils.isNotEmpty(users)) {
+ ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
}
- if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
- String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+
+
+ IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = null;
+ if (StringUtils.isNotEmpty(dateTime1) && ObjectUtils.isNotEmpty(week)) {
String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
- QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
- .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
+ auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
+ QueryWrappers.queryWrappers(auxiliaryOutputWorkingHours)
+ .ge("date_time", dateTime1).le("date_time", dateTime2 + " 23:59:59")
.ge("week", weeks[0]).le("week", weeks[1]), ids);
for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) {
record.setDateTime(record.getDateTime().substring(0,10));
}
- return auxiliaryOutputWorkingHoursDtoIPage ;
- } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) {
- String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
- QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
- .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids);
+ map.put("body",auxiliaryOutputWorkingHoursDtoIPage );
+ } else if (StringUtils.isNotEmpty(dateTime1) && ObjectUtils.isEmpty(week)) {
+ auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
+ QueryWrappers.queryWrappers(auxiliaryOutputWorkingHours)
+ .ge("date_time", dateTime1).le("date_time", dateTime2 + " 23:59:59"), ids);
for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) {
record.setDateTime(record.getDateTime().substring(0,10));
}
- return auxiliaryOutputWorkingHoursDtoIPage ;
- } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
+ map.put("body",auxiliaryOutputWorkingHoursDtoIPage );
+ } else if (StringUtils.isEmpty(dateTime1) && ObjectUtils.isNotEmpty(week)) {
String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
- QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
+ auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
+ QueryWrappers.queryWrappers(auxiliaryOutputWorkingHours)
.ge("week", weeks[0]).le("week", weeks[1]), ids);
for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) {
record.setDateTime(record.getDateTime().substring(0,10));
}
- return auxiliaryOutputWorkingHoursDtoIPage ;
+ map.put("body", auxiliaryOutputWorkingHoursDtoIPage);
} else {
- IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids);
+ auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids);
for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) {
record.setDateTime(record.getDateTime().substring(0,10));
}
- return auxiliaryOutputWorkingHoursDtoIPage ;
}
+ return auxiliaryOutputWorkingHoursDtoIPage;
}
- //缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��
- @Override
- public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) {
- AuxiliaryOutputWorkingHours outputWorkingHours = new AuxiliaryOutputWorkingHours();
- AuxiliaryWorkingHoursDay workingHoursDay = new AuxiliaryWorkingHoursDay();
- List<Integer> ids = new ArrayList<>();
- if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){
- outputWorkingHours.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay());
- workingHoursDay.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay());
- }
- if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName())){
- List<User> user = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, auxiliaryOutputWorkingHoursDto.getName()));
- ids.addAll(user.stream().map(User::getId).collect(Collectors.toList()));
- }
- String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
- auxiliaryOutputWorkingHoursDto.setDateTime(null);
- Map<String, Object> map = new HashMap<>();
- BigDecimal sumOutputWorkTime = BigDecimal.ZERO;
- BigDecimal sumApprovedWorkingHour = BigDecimal.ZERO;
- //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳
- List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = new ArrayList<>();
- List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = new ArrayList<>();
- if (ids.size() == 0) {
- ids=null;
- }
- if (ObjectUtils.isNotEmpty(dates)) {
- String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃�
- auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours)
- .ge("date_time", split[0])
- .le("date_time", split[1] + " 23:59:59"),ids);
- //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃�
- auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay)
- .eq("state","宸叉壒鍑�")
- .ge("date_time", split[0])
- .le("date_time", split[1] + " 23:59:59"),ids);
- }else if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){
- //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃�
- auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours),ids);
- //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃�
- auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay).eq("state","宸叉壒鍑�"),ids);
- }
- else {
- auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids);
- auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids);
- }
- if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours)) {
- Map<String, BigDecimal> sumMap = new HashMap<>();
- for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHour : auxiliaryOutputWorkingHours) {
- if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample())) {
- sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample(), auxiliaryOutputWorkingHour.getOutputWorkTime());
- }
+ @Override
+ public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto){
+ // 杩斿洖鐨勭粨鏋�
+ Map<String, Object> map = new HashMap<>();
+
+ // 鍒ゆ柇褰撳墠浜虹殑鏉冮檺 鏄惁鍙煡鐪嬪浜�
+ List<Integer> ids = getCurrentGroupUserIds(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName()) ? auxiliaryOutputWorkingHoursDto.getName() : "");
+
+ String dateTime = auxiliaryOutputWorkingHoursDto.getDateTime();
+ String startTime = "";
+ String endTime = "";
+ if(StringUtils.isNotEmpty(dateTime)) {
+ List<String> list = JSONArray.parseArray(dateTime, String.class);
+ if(list.size() == 1) {
+ list = JSONArray.parseArray(list.get(0), String.class);
}
- sumOutputWorkTime = sumMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
+ startTime = list.get(0)+ " 00:00:00";
+ endTime = list.get(1)+ " 23:59:59";
}
- map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime);
- if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) {
- for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) {
-// sumApprovedWorkingHour = sumApprovedWorkingHour.add(auxiliaryWorkingHoursDay.getReviewerNonproductiveTime());//澶嶆牳宸ユ椂
+ String weekConvert = weekConvert(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay()) ? auxiliaryOutputWorkingHoursDto.getWeekDay() : "" ); // 鍛ㄦ杞崲
+ // 鏍规嵁鏉′欢鑾峰彇鏁版嵁
+ List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(new QueryWrapper<AuxiliaryOutputWorkingHours>()
+ .in(CollectionUtils.isNotEmpty(ids), "check_id", ids)
+ .like(StringUtils.isNotBlank(auxiliaryOutputWorkingHoursDto.getWeekDay()), "week_day", weekConvert)
+ .between(StringUtils.isNotEmpty(dateTime),"date_time", startTime, endTime));
+
+ // 1.浜ч噺宸ユ椂姹囨��
+ // 鏍规嵁濮旀墭缂栧彿銆佹牱鍝佺紪鍙枫�佸伐鏃跺垎缁� 鏉ヨ繘琛屽垎缁勭粺璁�
+ // 鍔犵彮鐨勫伐鏃舵眹鎬�
+ BigDecimal overTime = BigDecimal.ZERO;
+ // 杩囨护鍑哄姞鐝殑宸ユ椂
+ List<AuxiliaryOutputWorkingHours> overFilter = auxiliaryOutputWorkingHours.stream()
+ .filter(item -> Objects.nonNull(item.getOvertimeOrderNo()) && StringUtils.isNotEmpty(item.getOvertimeOrderNo()))
+ .collect(Collectors.toList());
+ Map<String, List<AuxiliaryOutputWorkingHours>> collect = overFilter.stream()
+ .collect(Collectors.groupingBy(item -> item.getOvertimeOrderNo() + "@" + item.getSample() + "@" + item.getManHourGroup()));
+ Iterator<Map.Entry<String, List<AuxiliaryOutputWorkingHours>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<AuxiliaryOutputWorkingHours>> entry = iterator.next();
+ // 鍚屼竴鍒嗙粍涓嬬殑鍙渶瑕佺畻涓�娆�
+ overTime = add(overTime, BigDecimal.valueOf(entry.getValue().get(0).getOvertimeWorkTime()));
+ }
+ // 闈炲姞鐝殑宸ユ椂姹囨��
+ BigDecimal workTime = BigDecimal.ZERO;
+ List<AuxiliaryOutputWorkingHours> workFilter = auxiliaryOutputWorkingHours.stream()
+ .filter(item -> Objects.nonNull(item.getOrderNo()) && StringUtils.isNotEmpty(item.getOrderNo()))
+ .collect(Collectors.toList());
+ Map<String, List<AuxiliaryOutputWorkingHours>> collect1 = workFilter.stream()
+ .collect(Collectors.groupingBy(item -> item.getOrderNo() + "@" + item.getSample() + "@" + item.getManHourGroup()));
+ Iterator<Map.Entry<String, List<AuxiliaryOutputWorkingHours>>> iterator1 = collect1.entrySet().iterator();
+ while (iterator1.hasNext()) {
+ Map.Entry<String, List<AuxiliaryOutputWorkingHours>> entry = iterator1.next();
+ workTime = add(workTime, BigDecimal.valueOf(entry.getValue().get(0).getOutputWorkTime()));
+ }
+ BigDecimal outPutWorkTime = add(overTime, workTime);
+ // 2.杈呭姪宸ユ椂姹囨��
+ BigDecimal dayWorkTime = BigDecimal.ZERO;
+ List<AuxiliaryWorkingHoursDay> dayList = auxiliaryWorkingHoursDayMapper.selectList(new QueryWrapper<AuxiliaryWorkingHoursDay>()
+ .in(CollectionUtils.isNotEmpty(ids), "name_user", ids)
+ .like(StringUtils.isNotBlank(auxiliaryOutputWorkingHoursDto.getWeekDay()), "week_day", auxiliaryOutputWorkingHoursDto.getWeekDay())
+ .eq(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getState()), "state", auxiliaryOutputWorkingHoursDto.getState())
+ .between(StringUtils.isNotEmpty(dateTime),"date_time", startTime, endTime));
+
+ for (AuxiliaryWorkingHoursDay a : dayList) {
+ if(ObjectUtils.isNull(a.getReviewerNonproductiveTime())) {
+ dayWorkTime = add(dayWorkTime, BigDecimal.ZERO);
+ }else {
+ dayWorkTime = add(dayWorkTime, BigDecimal.valueOf(a.getReviewerNonproductiveTime()));
}
}
- map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour);
- return map;
+ map.put("浜ч噺宸ユ椂姹囨��", outPutWorkTime);
+ map.put("杈呭姪宸ユ椂姹囨��", dayWorkTime);
+ return map;
+ }
+
+
+ public BigDecimal add(BigDecimal a, BigDecimal b){
+ return a.add(b);
+ }
+
+ // 鍛ㄦ杞崲
+ public String weekConvert(String week){
+ String weekDay = "";
+ switch (week) {
+ case "1":
+ weekDay = "鍛ㄤ竴";
+ break;
+ case "2":
+ weekDay = "鍛ㄤ簩";
+ break;
+ case "3":
+ weekDay = "鍛ㄤ笁";
+ break;
+ case "4":
+ weekDay = "鍛ㄥ洓";
+ break;
+ case "5":
+ weekDay = "鍛ㄤ簲";
+ break;
+ case "6":
+ weekDay = "鍛ㄥ叚";
+ break;
+ case "0":
+ weekDay = "鍛ㄦ棩";
+ break;
+ }
+ return weekDay;
+ }
+
+
+ /**
+ * 鑾峰彇褰撳墠鐢ㄦ埛缁勭粐鐨勭敤鎴穒d
+ * @return
+ */
+ private List<Integer> getCurrentGroupUserIds(){
+ return getCurrentGroupUserIds("");
+ }
+
+ private List<Integer> getCurrentGroupUserIds(String name){
+ List<Integer> ids = new ArrayList<>();
+ //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳锛屾牴鎹畆oleId(7:妫�楠屽憳锛�8:妫�楠岀粍闀�)
+ Integer userId = Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString());
+ User user = userMapper.selectById(userId);
+
+ //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+ //涓嶆槸缁勯暱
+
+ return ids;
}
//瀵煎嚭
@@ -172,11 +249,25 @@
public void exportWorkingHours(HttpServletResponse response) throws IOException {
List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = new ArrayList<>();
List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = new ArrayList<>();
- List<Integer> ids = new ArrayList<>();
+ List<Integer> ids = getCurrentGroupUserIds();
//鏌ヨ杈呭姪宸ユ椂
auxiliaryWorkingHoursDayDtos = auxiliaryWorkingHoursDayMapper.selectDataByUser(ids);
//鏌ヨ缁熻宸ユ椂
- auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids);
+ auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids).stream().map(item -> {
+ if(Objects.isNull(item.getOvertimeWorkTime())) {
+ item.setOvertimeWorkTime((double)0);
+ }
+ if(Objects.isNull(item.getOvertimeAmount())) {
+ item.setOvertimeAmount(0);
+ }
+ if(Objects.isNull(item.getWorkTime())) {
+ item.setWorkTime((double)0);
+ }
+ if(Objects.isNull(item.getAmount())) {
+ item.setAmount(0);
+ }
+ return item;
+ }).collect(Collectors.toList());
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
// 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
@@ -185,73 +276,11 @@
try {
// 鏂板缓ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
-
WriteSheet mainSheet = EasyExcel.writerSheet(0, "杈呭姪宸ユ椂瀵煎嚭").head(AuxiliaryWorkingHoursDayDto.class).build();
excelWriter.write(auxiliaryWorkingHoursDayDtos, mainSheet);
-
WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "浜ч噺宸ユ椂瀵煎嚭").head(AuxiliaryOutputWorkingHoursDto.class).build();
excelWriter.write(auxiliaryOutputWorkingHoursDtos, mainSheet1);
// 鍏抽棴娴�
- excelWriter.finish();
- } catch (IOException e) {
- throw new RuntimeException("瀵煎嚭澶辫触");
- }
- }
-
- /**
- * 瀵煎嚭浜ч噺宸ユ椂
- * @param response
- */
- @Override
- public void exportOutputHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto, HttpServletResponse response) {
- //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
- String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
- String week = auxiliaryOutputWorkingHoursDto.getWeek();
- auxiliaryOutputWorkingHoursDto.setDateTime(null);
- auxiliaryOutputWorkingHoursDto.setWeek(null);
-
- List<Integer> ids = new ArrayList<>();
- String name = auxiliaryOutputWorkingHoursDto.getName();
- if (ObjectUtils.isNotEmpty(name)) {
- ids.addAll(userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, name)).stream().map(User::getId).collect(Collectors.toList()));
- }
-
- List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = new ArrayList<>();
- if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
- String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
- .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
- .ge("week", weeks[0]).le("week", weeks[1]), ids);
-
- } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) {
- String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
- .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids);
-
- } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
- String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
- auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
- .ge("week", weeks[0]).le("week", weeks[1]), ids);
-
- } else {
- auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids);
- }
-
- try {
- response.setContentType("application/vnd.ms-excel");
- response.setCharacterEncoding("UTF-8");
- // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
- String fileName = URLEncoder.encode("浜ч噺宸ユ椂淇℃伅瀵煎嚭", "UTF-8");
- response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
- //鏂板缓ExcelWriter
- ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
- //鑾峰彇sheet0瀵硅薄
- WriteSheet mainSheet = EasyExcel.writerSheet(0, "浜ч噺宸ユ椂淇℃伅瀵煎嚭").head(AuxiliaryOutputWorkingHoursDto.class).build();
-
- //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶�
- excelWriter.write(auxiliaryOutputWorkingHoursDtoIPage, mainSheet);
- //鍏抽棴娴�
excelWriter.finish();
} catch (IOException e) {
throw new RuntimeException("瀵煎嚭澶辫触");
--
Gitblit v1.9.3