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/AuxiliaryWorkingHoursDayServiceImpl.java | 309 ++++++++++++++++++++++++++++++++------------------- 1 files changed, 195 insertions(+), 114 deletions(-) diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java index 55fa4c2..d6ed0ba 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java @@ -1,41 +1,47 @@ package com.ruoyi.performance.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelWriter; -import com.alibaba.excel.write.metadata.WriteSheet; -import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.exception.base.BaseException; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.performance.dto.AuxiliaryWorkingHoursDayDto; import com.ruoyi.performance.dto.HoursDay; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursDayMapper; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursMapper; import com.ruoyi.performance.mapper.PerformanceShiftMapper; +import com.ruoyi.performance.mapper.ShiftTimeMapper; import com.ruoyi.performance.pojo.AuxiliaryWorkingHours; import com.ruoyi.performance.pojo.AuxiliaryWorkingHoursDay; import com.ruoyi.performance.pojo.PerformanceShift; +import com.ruoyi.performance.pojo.ShiftTime; import com.ruoyi.performance.service.AuxiliaryWorkingHoursDayService; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.ISysDictTypeService; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.math3.analysis.function.Power; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.*; import java.util.stream.Collectors; /** @@ -55,60 +61,79 @@ @Resource AuxiliaryWorkingHoursMapper auxiliaryWorkingHoursMapper; + @Resource UserMapper userMapper; @Resource + private SysRoleMapper roleMapper; + + @Resource + private SysUserRoleMapper userRoleMapper; + + + @Resource PerformanceShiftMapper performanceShiftMapper; + + @Resource + private ISysDictTypeService dictTypeService; + + @Resource + private ShiftTimeMapper shiftTimeMapper; @Override public IPage<AuxiliaryWorkingHoursDayDto> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto) { - String dates = auxiliaryWorkingHoursDayDto.getDateTime(); + String dateTime1 = auxiliaryWorkingHoursDayDto.getDateTime1(); + String dateTime2 = auxiliaryWorkingHoursDayDto.getDateTime2(); + AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = new AuxiliaryWorkingHoursDay(); + BeanUtils.copyProperties(auxiliaryWorkingHoursDayDto, auxiliaryWorkingHoursDay); String week = auxiliaryWorkingHoursDayDto.getWeek(); auxiliaryWorkingHoursDayDto.setDateTime(null); auxiliaryWorkingHoursDayDto.setWeek(null); - Map<String, Object> map = new HashMap<>(); - List<Long> ids = new ArrayList<>(); - if (ids.size() == 0) { - ids = null; - } - if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, - QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59") - .ge("week", weeks[0]).le("week", weeks[1]), ids); - for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { - record.setDateTime(record.getDateTime().substring(0, 10)); - } - return auxiliaryWorkingHoursDayDtoIPage; - } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, - QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); - for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { - record.setDateTime(record.getDateTime().substring(0, 10)); - } - return auxiliaryWorkingHoursDayDtoIPage; - } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, - QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids); - for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { - record.setDateTime(record.getDateTime().substring(0, 10)); - } - return auxiliaryWorkingHoursDayDtoIPage; - } else { - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids); - for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { - record.setDateTime(record.getDateTime().substring(0, 10)); - } - return auxiliaryWorkingHoursDayDtoIPage; + List<Integer> ids = new ArrayList<>(); + + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, auxiliaryWorkingHoursDayDto.getName())); + if(CollectionUtils.isNotEmpty(users)) { + ids = users.stream().map(User::getId).distinct().collect(Collectors.toList()); } + + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = null; + + if (StringUtils.isNotEmpty(dateTime1) && ObjectUtils.isNotEmpty(week)) { + String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay) + .ge("date_time", dateTime1).le("date_time", dateTime2 + " 23:59:59") + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + + } else if (StringUtils.isNotEmpty(dateTime1) && ObjectUtils.isEmpty(week)) { + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay) + .ge("date_time", dateTime1).le("date_time", dateTime2 + " 23:59:59"), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + + } else if (StringUtils.isEmpty(dateTime1) && ObjectUtils.isNotEmpty(week)) { + String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay) + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + + } else { + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + } + return auxiliaryWorkingHoursDayDtoIPage; } //鏍规嵁缂栧彿鏌ヨ杈呭姪宸ユ椂閰嶇疆淇℃伅 @@ -117,7 +142,7 @@ //鏍规嵁濉啓鐨勭紪鍙锋煡璇㈣緟鍔╁伐鏃堕厤缃� AuxiliaryWorkingHours auxiliaryWorkingHours = auxiliaryWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryWorkingHours>lambdaQuery().eq(AuxiliaryWorkingHours::getNumber, number)); if (ObjectUtils.isEmpty(auxiliaryWorkingHours)) { - throw new BaseException("璇ョ紪鍙锋病鏈夊搴旂殑杈呭姪宸ユ椂閰嶇疆"); + throw new ErrorException("璇ョ紪鍙锋病鏈夊搴旂殑杈呭姪宸ユ椂閰嶇疆"); } AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = new AuxiliaryWorkingHoursDay(); BeanUtils.copyProperties(auxiliaryWorkingHours, auxiliaryWorkingHoursDay); @@ -127,23 +152,134 @@ //褰曞叆鏁版嵁(鏂板) @Override public int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id auxiliaryWorkingHoursDay.setState("宸叉彁浜�"); + //鏌ヨ浜哄憳褰撳墠鐨勭彮娆� + if(StringUtils.isNotBlank(auxiliaryWorkingHoursDay.getDateTime())){ + //褰曞叆鏃堕棿 + DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime saveDate = LocalDateTime.parse(auxiliaryWorkingHoursDay.getDateTime(), pattern); + + LocalDate now1 = LocalDate.now();//褰撳墠鏃ユ湡 + LocalDate dateTime = LocalDate.parse(saveDate.format(formatter));// 鐢ㄦ埛閫夋嫨鏃ユ湡 + + //鐝璁板綍 + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, saveDate).last("limit 1")); + if(Objects.isNull(performanceShift)) { + throw new ErrorException("璇峰厛褰曞叆鐝淇℃伅"); + } + auxiliaryWorkingHoursDay.setShift(performanceShift.getShift()); + DateTime parse = DateUtil.parse(saveDate.format(formatter)); + auxiliaryWorkingHoursDay.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)))); // 鍛ㄦ + // 濡傛灉鏄槰澶╋紝璧嬪�煎埌涓婁竴涓彮娆� + if(now1.isAfter(dateTime)) { + }else{ + // 濡傛灉鏄粖澶╋紝骞朵笖鏄法澶╃殑鐝锛岄渶瑕佸皢鏃ユ湡鏀逛负鏄ㄥぉ + ShiftTime shiftTime = shiftTimeMapper.selectOne(new LambdaQueryWrapper<ShiftTime>() + .eq(ShiftTime::getShift, performanceShift.getShift())); + if(Objects.nonNull(shiftTime)) { + String start = shiftTime.getStartTime(); + String end = shiftTime.getEndTime(); + LocalTime startTime = LocalTime.parse(start); + LocalTime endTime = LocalTime.parse(end); + LocalTime now = LocalTime.now(); + // 璺ㄥぉ鐝 + if(startTime.isAfter(endTime)){ + // 涓嶅湪浠婂ぉ鐨勭彮娆℃椂闂村唴 + if(now.isBefore(startTime)) { + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + }else { + // 涓嶈法澶╃殑鎯呭喌 + // 濡傛灉褰撳墠鏃堕棿涓嶅湪浠婂ぉ鐨勭彮娆℃椂闂村唴,涓斿湪寮�濮嬩箣鍓� 绠楀埌涓婁竴涓彮娆� + if(now.isBefore(startTime)){ + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + + } + }else { + // 濡傛灉鏄紤鎭� 璇峰亣 鍑哄樊 鐨勬儏鍐碉紝闇�瑕佸皢鏃ユ湡鏀逛负鍓嶄竴涓彮娆� + // 閮界畻鍒颁笂涓�涓彮娆� + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + } + } return auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay); } + // 鑾峰彇涓婁竴涓彮娆$殑鏃堕棿 + public AuxiliaryWorkingHoursDay previousShift(Integer userId,AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { + LocalTime time = LocalTime.of(0, 0, 0); + LocalDateTime yesterdayTime = LocalDateTime.of(LocalDate.now(), time); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + // 閮界畻鍒颁笂涓�涓彮娆� + List<Integer> list = Arrays.asList(3, 4, 6); // 浼戞伅 璇峰亣 鍗婂ぉ 鍑哄樊 + List<PerformanceShift> performanceShifts = performanceShiftMapper.selectList(new LambdaQueryWrapper<PerformanceShift>() + .eq(PerformanceShift::getUserId, userId) + .lt(PerformanceShift::getWorkTime, yesterdayTime.format(dateTimeFormatter)) + .notIn(PerformanceShift::getShift, list) + .orderByDesc(PerformanceShift::getWorkTime)); + String dateTime = performanceShifts.get(0).getWorkTime().format(dateTimeFormatter); + auxiliaryWorkingHoursDay.setDateTime(dateTime);//鏃ユ湡 鍓嶄竴涓彮娆� + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTime parse = DateUtil.parse(performanceShifts.get(0).getWorkTime().format(formatter)); + auxiliaryWorkingHoursDay.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)))); // 鍛ㄦ + auxiliaryWorkingHoursDay.setWeekDay(getWeek(dateTime));//鏄熸湡 + return auxiliaryWorkingHoursDay; + } + public static String getWeek(String dayStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + Date date = sdf.parse(dayStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + int day = calendar.get(Calendar.DAY_OF_MONTH); + return getWeekDay(dayOfWeek); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + public static String getWeekDay(int dayOfWeek) { + switch (dayOfWeek) { + case Calendar.MONDAY: + return "1"; + case Calendar.TUESDAY: + return "2"; + case Calendar.WEDNESDAY: + return "3"; + case Calendar.THURSDAY: + return "4"; + case Calendar.FRIDAY: + return "5"; + case Calendar.SATURDAY: + return "6"; + case Calendar.SUNDAY: + return "7"; + default: + return "鏈煡"; + } + } + //瀹℃牳/鎵瑰噯 @Override public boolean checkOrApprove(HoursDay hoursDay) { List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = hoursDay.getAuxiliaryWorkingHoursDays(); for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { - Integer userId = SecurityUtils.getUserId().intValue(); - auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) { + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); + auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + } if (auxiliaryWorkingHoursDay.getReviewerNumber() == null) { auxiliaryWorkingHoursDay.setReviewerNumber(auxiliaryWorkingHoursDay.getAmount());//澶嶆牳鏁伴噺 auxiliaryWorkingHoursDay.setReviewerNonproductiveTime(auxiliaryWorkingHoursDay.getNonproductiveTime());//澶嶆牳宸ユ椂 } + } return updateBatchById(auxiliaryWorkingHoursDays); } @@ -151,7 +287,7 @@ //缂栬緫 @Override public int updateAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay); } @@ -165,67 +301,12 @@ //鏍规嵁缂栧彿褰撳墠鐢ㄦ埛淇℃伅鏌ヨ鎵�鍦ㄧ彮娆� @Override public String selectshiftByUser(LocalDateTime dateTime) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime)); if (ObjectUtils.isEmpty(performanceShift)) { return null; } return performanceShift.getShift(); - } - - /** - * 瀵煎嚭杈呭姪宸ユ椂 - * @param - * @param response - */ - @Override - public void exportWorkingHours(AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto, HttpServletResponse response) { - String dates = auxiliaryWorkingHoursDayDto.getDateTime(); - String week = auxiliaryWorkingHoursDayDto.getWeek(); - auxiliaryWorkingHoursDayDto.setDateTime(null); - auxiliaryWorkingHoursDayDto.setWeek(null); - List<Long> ids = new ArrayList<>(); - String name = auxiliaryWorkingHoursDayDto.getName(); - if (ObjectUtils.isNotEmpty(name)) { - ids.addAll(userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, name)).stream().map(User::getId).collect(Collectors.toList())); - } - List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .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(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .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(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids); - } else { - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList( QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), 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(AuxiliaryWorkingHoursDayDto.class).build(); - - //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� - excelWriter.write(auxiliaryWorkingHoursDayDtoIPage, mainSheet); - //鍏抽棴娴� - excelWriter.finish(); - } catch (IOException e) { - throw new RuntimeException("瀵煎嚭澶辫触"); - } } -- Gitblit v1.9.3