From 3647aa5008055528f075ee73002542a1399575ae Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 19 三月 2025 14:45:39 +0800 Subject: [PATCH] 单点登录调整 --- performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 331 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 180 insertions(+), 151 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 d087d07..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); - List<Long> ids = new ArrayList<>(); - if (ids.size() == 0) { - ids = null; + Map<String, Object> map = new HashMap<>(); + List<Integer> ids = new ArrayList<>(); + //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄� + 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<Long> 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<Long> 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<Long> 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