餐厅费导出调整, 请假时间计算调整
This commit is contained in:
parent
a2c63d09f1
commit
40a4f2cc5d
@ -207,7 +207,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
|
||||
newRzLeaveDetail.setLeaveEndTime(endDay);
|
||||
extensionMap.put("month"+m.format(firsDay), ym.format(firsDay));
|
||||
//如果只请1天, 则按照录入的时间计算, 如果
|
||||
extensionMap.put("hours"+m.format(firsDay), calculationLeaveHour(newRzLeaveDetail).getLeaveHour());
|
||||
extensionMap.put("hours"+m.format(firsDay), leaveHour(newRzLeaveDetail).getLeaveHour());
|
||||
}
|
||||
}
|
||||
|
||||
@ -358,38 +358,77 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
|
||||
rzLeaveDetail.setLeaveEndTime(DateUtils.addDays(beginDate, endDays));
|
||||
rzLeaveDetail.setLeaveHour(new BigDecimal(sysDictData.getDictValue()).multiply(Constants.DAY_WORK_HOUR).intValue());
|
||||
}else{
|
||||
//不需要计算, 过滤节假日啥的, 只过滤周末就好了
|
||||
if(rzLeaveDetail.getLeaveStartTime() == null || rzLeaveDetail.getLeaveEndTime() == null){
|
||||
return rzLeaveDetail;
|
||||
}
|
||||
|
||||
List<String> holidayDates = Collections.emptyList();
|
||||
//记录所有时间的年, 防止有跨年的情况
|
||||
List<String> 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<String> 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<String> holidayDates = Collections.emptyList();
|
||||
// //记录所有时间的年, 防止有跨年的情况
|
||||
// List<String> 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<String> 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<String> holidayDates = Collections.emptyList();
|
||||
//记录所有时间的年, 防止有跨年的情况
|
||||
List<String> 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<String> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -76,8 +76,17 @@ public class RzMealExpensesServiceImpl extends ServiceImpl<RzMealExpensesMapper,
|
||||
|
||||
Map<String,List<MealExpensesExportVo>> companyDataList = excelResult.stream().collect(Collectors.groupingBy(MealExpensesExportVo::getCompanyName));
|
||||
//公司名字
|
||||
List<String> sheetCompanyNames = Collections.asList(companyDataList.keySet());
|
||||
sheetCompanyNames.set(0, "汇总");
|
||||
// List<String> sheetCompanyNames = Collections.asList(companyDataList.keySet());
|
||||
List<String> 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<MealExpensesExportVo> indexDataList = Collections.emptyList();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user