餐厅费导出调整, 请假时间计算调整
This commit is contained in:
parent
a2c63d09f1
commit
40a4f2cc5d
@ -207,7 +207,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
|
|||||||
newRzLeaveDetail.setLeaveEndTime(endDay);
|
newRzLeaveDetail.setLeaveEndTime(endDay);
|
||||||
extensionMap.put("month"+m.format(firsDay), ym.format(firsDay));
|
extensionMap.put("month"+m.format(firsDay), ym.format(firsDay));
|
||||||
//如果只请1天, 则按照录入的时间计算, 如果
|
//如果只请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.setLeaveEndTime(DateUtils.addDays(beginDate, endDays));
|
||||||
rzLeaveDetail.setLeaveHour(new BigDecimal(sysDictData.getDictValue()).multiply(Constants.DAY_WORK_HOUR).intValue());
|
rzLeaveDetail.setLeaveHour(new BigDecimal(sysDictData.getDictValue()).multiply(Constants.DAY_WORK_HOUR).intValue());
|
||||||
}else{
|
}else{
|
||||||
//不需要计算, 过滤节假日啥的, 只过滤周末就好了
|
rzLeaveDetail = leaveHour(rzLeaveDetail);
|
||||||
if(rzLeaveDetail.getLeaveStartTime() == null || rzLeaveDetail.getLeaveEndTime() == null){
|
// //不需要计算, 过滤节假日啥的, 只过滤周末就好了
|
||||||
return rzLeaveDetail;
|
// if(rzLeaveDetail.getLeaveStartTime() == null || rzLeaveDetail.getLeaveEndTime() == null){
|
||||||
}
|
// return rzLeaveDetail;
|
||||||
|
// }
|
||||||
List<String> holidayDates = Collections.emptyList();
|
//
|
||||||
//记录所有时间的年, 防止有跨年的情况
|
// List<String> holidayDates = Collections.emptyList();
|
||||||
List<String> yearList = Collections.emptyList();
|
// //记录所有时间的年, 防止有跨年的情况
|
||||||
while (beginDate.compareTo(rzLeaveDetail.getLeaveEndTime()) <= 0){
|
// List<String> yearList = Collections.emptyList();
|
||||||
String date = sdfd.format(beginDate);
|
// while (beginDate.compareTo(rzLeaveDetail.getLeaveEndTime()) <= 0){
|
||||||
String dateYear = date.substring(0,4);
|
// String date = sdfd.format(beginDate);
|
||||||
if(!yearList.contains(dateYear)){
|
// String dateYear = date.substring(0,4);
|
||||||
yearList.add(dateYear);
|
// if(!yearList.contains(dateYear)){
|
||||||
}
|
// yearList.add(dateYear);
|
||||||
holidayDates.add(date);
|
// }
|
||||||
beginDate = DateUtils.addDays(beginDate,1);
|
// holidayDates.add(date);
|
||||||
}
|
// beginDate = DateUtils.addDays(beginDate,1);
|
||||||
//记录最终需要增加多少天
|
// }
|
||||||
Integer endDays = 0;
|
// //记录最终需要增加多少天
|
||||||
for (String year : yearList){
|
// Integer endDays = 0;
|
||||||
List<String> holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates);
|
// for (String year : yearList){
|
||||||
if(Collections.isNotEmpty(holidays)){
|
// List<String> holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates);
|
||||||
rzLeaveDetail.setRemarks("不包含周末");
|
// if(Collections.isNotEmpty(holidays)){
|
||||||
}
|
// rzLeaveDetail.setRemarks("不包含周末");
|
||||||
endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue();
|
// }
|
||||||
}
|
// 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());
|
// //计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了
|
||||||
|
// rzLeaveDetail.setLeaveHour(new BigDecimal(holidayDates.size()).subtract(new BigDecimal(endDays)).multiply(Constants.DAY_WORK_HOUR).intValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
return rzLeaveDetail;
|
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));
|
Map<String,List<MealExpensesExportVo>> companyDataList = excelResult.stream().collect(Collectors.groupingBy(MealExpensesExportVo::getCompanyName));
|
||||||
//公司名字
|
//公司名字
|
||||||
List<String> sheetCompanyNames = Collections.asList(companyDataList.keySet());
|
// List<String> sheetCompanyNames = Collections.asList(companyDataList.keySet());
|
||||||
sheetCompanyNames.set(0, "汇总");
|
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();
|
List<MealExpensesExportVo> indexDataList = Collections.emptyList();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user