From 7ca0ffa2891f8c7e640c4326c5a9b94fe0cbd4f8 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 21 Jul 2023 16:13:51 +0800 Subject: [PATCH] fixBUG --- .../bjcj220907/service/impl/MonthBonusCountServiceImpl.java | 3 ++- src/com/engine/bjcj220907/utils/BjcjCommonUtils.java | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/engine/bjcj220907/service/impl/MonthBonusCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/MonthBonusCountServiceImpl.java index 7b21559..de9c3da 100644 --- a/src/com/engine/bjcj220907/service/impl/MonthBonusCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/MonthBonusCountServiceImpl.java @@ -58,6 +58,7 @@ public class MonthBonusCountServiceImpl extends Service implements MonthBonusCou Map rybsInfoMap = SalaryEntityUtil.convert2Map(rybsInfo, DepartureInfo::getXm); // 入职日期小于绩效所属月的不核算绩效 rybsInfo.stream().forEach(info -> { + // 如果入职日期大于28号,他的绩效是属于下个月的 if(BjcjCommonUtils.isBeforeMonth(param.getBonusMonth(),info.getRzrq())){ haveSendDepartureInfo.add(info.getXm()); } @@ -88,7 +89,7 @@ public class MonthBonusCountServiceImpl extends Service implements MonthBonusCou departureTemp.add(j); countCal.add(Calendar.MONTH,1); } - // 如果是28号或者28号之后离职,那还要加一个月 + // 如果是28号之后离职,那还要加一个月 if (info.getLzrq() != null && SalaryDateUtil.dateToLocalDate(info.getLzrq()).getDayOfMonth() > 28){ int year = countCal.get(Calendar.YEAR); int season =countCal.get(Calendar.MONTH)/3+1; diff --git a/src/com/engine/bjcj220907/utils/BjcjCommonUtils.java b/src/com/engine/bjcj220907/utils/BjcjCommonUtils.java index d05fb87..a57d660 100644 --- a/src/com/engine/bjcj220907/utils/BjcjCommonUtils.java +++ b/src/com/engine/bjcj220907/utils/BjcjCommonUtils.java @@ -104,6 +104,12 @@ public class BjcjCommonUtils { if(a == null || b == null){ return false; } + // 如果入离职的日期>28 则属于下一个月 + LocalDate bLocalDate = SalaryDateUtil.dateToLocalDate(b); + if(bLocalDate.getDayOfMonth() > 28){ + LocalDate localDate = bLocalDate.plusMonths(1); + b = SalaryDateUtil.localDateToDate(localDate); + } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); Date formatA = sdf.parse(sdf2.format(a));