diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java index 51932f0..c13c7aa 100644 --- a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java @@ -207,7 +207,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl holidayDates = Collections.emptyList(); - //记录所有时间的年, 防止有跨年的情况 - List yearList = Collections.emptyList(); - while (beginDate.compareTo(rzLeaveDetail.getLeaveEndTime()) <= 0){ - String date = sdfd.format(beginDate); - String dateYear = date.substring(0,4); - if(!yearList.contains(dateYear)){ - yearList.add(dateYear); - } - holidayDates.add(date); - beginDate = DateUtils.addDays(beginDate,1); - } - //记录最终需要增加多少天 - Integer endDays = 0; - for (String year : yearList){ - List holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates); - if(Collections.isNotEmpty(holidays)){ - rzLeaveDetail.setRemarks("不包含周末"); - } - endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue(); - } - //计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了 - rzLeaveDetail.setLeaveHour(new BigDecimal(holidayDates.size()).subtract(new BigDecimal(endDays)).multiply(Constants.DAY_WORK_HOUR).intValue()); + rzLeaveDetail = leaveHour(rzLeaveDetail); +// //不需要计算, 过滤节假日啥的, 只过滤周末就好了 +// if(rzLeaveDetail.getLeaveStartTime() == null || rzLeaveDetail.getLeaveEndTime() == null){ +// return rzLeaveDetail; +// } +// +// List holidayDates = Collections.emptyList(); +// //记录所有时间的年, 防止有跨年的情况 +// List yearList = Collections.emptyList(); +// while (beginDate.compareTo(rzLeaveDetail.getLeaveEndTime()) <= 0){ +// String date = sdfd.format(beginDate); +// String dateYear = date.substring(0,4); +// if(!yearList.contains(dateYear)){ +// yearList.add(dateYear); +// } +// holidayDates.add(date); +// beginDate = DateUtils.addDays(beginDate,1); +// } +// //记录最终需要增加多少天 +// Integer endDays = 0; +// for (String year : yearList){ +// List holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates); +// if(Collections.isNotEmpty(holidays)){ +// rzLeaveDetail.setRemarks("不包含周末"); +// } +// endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue(); +// } +// //计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了 +// rzLeaveDetail.setLeaveHour(new BigDecimal(holidayDates.size()).subtract(new BigDecimal(endDays)).multiply(Constants.DAY_WORK_HOUR).intValue()); } return rzLeaveDetail; } + public RzLeaveDetail leaveHour(RzLeaveDetail rzLeaveDetail) { + if(rzLeaveDetail.getType() == null || rzLeaveDetail.getLeaveStartTime() == null){ + return rzLeaveDetail; + } + SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); + Date beginDate = rzLeaveDetail.getLeaveStartTime(); + //不需要计算, 过滤节假日啥的, 只过滤周末就好了 + if(rzLeaveDetail.getLeaveStartTime() == null || rzLeaveDetail.getLeaveEndTime() == null){ + return rzLeaveDetail; + } + + List holidayDates = Collections.emptyList(); + //记录所有时间的年, 防止有跨年的情况 + List yearList = Collections.emptyList(); + while (beginDate.compareTo(rzLeaveDetail.getLeaveEndTime()) <= 0){ + String date = sdfd.format(beginDate); + String dateYear = date.substring(0,4); + if(!yearList.contains(dateYear)){ + yearList.add(dateYear); + } + holidayDates.add(date); + beginDate = DateUtils.addDays(beginDate,1); + } + //记录最终需要增加多少天 + Integer endDays = 0; + for (String year : yearList){ + List holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates); + if(Collections.isNotEmpty(holidays)){ + rzLeaveDetail.setRemarks("不包含周末"); + } + endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue(); + } + //计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了 + rzLeaveDetail.setLeaveHour(new BigDecimal(holidayDates.size()).subtract(new BigDecimal(endDays)).multiply(Constants.DAY_WORK_HOUR).intValue()); + + return rzLeaveDetail; + } + } diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzMealExpensesServiceImpl.java b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzMealExpensesServiceImpl.java index 51a64c0..ea1475c 100644 --- a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzMealExpensesServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzMealExpensesServiceImpl.java @@ -76,8 +76,17 @@ public class RzMealExpensesServiceImpl extends ServiceImpl> companyDataList = excelResult.stream().collect(Collectors.groupingBy(MealExpensesExportVo::getCompanyName)); //公司名字 - List sheetCompanyNames = Collections.asList(companyDataList.keySet()); - sheetCompanyNames.set(0, "汇总"); +// List sheetCompanyNames = Collections.asList(companyDataList.keySet()); + List sheetCompanyNames = Collections.asList(companyDataList.keySet()).stream().sorted((x,y) -> { + if(x.equals("河北伊特")){ + return -1; + }else if(y.equals("河北伊特")){ + return 1; + }else { + return x.compareTo(y); + } + }).collect(Collectors.toList()); + sheetCompanyNames.add(0, "汇总"); List indexDataList = Collections.emptyList();