diff --git a/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat b/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat index e8fadf4..fbc1d4c 100644 Binary files a/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat and b/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat differ diff --git a/.idea/workspace.xml b/.idea/workspace.xml index be0ad93..b007271 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,58 +10,17 @@ - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + diff --git a/src/com/engine/attendance/vacation/cmd/VocationCmd.java b/src/com/engine/attendance/vacation/cmd/VocationCmd.java index c822c86..ccf0936 100644 --- a/src/com/engine/attendance/vacation/cmd/VocationCmd.java +++ b/src/com/engine/attendance/vacation/cmd/VocationCmd.java @@ -4,13 +4,16 @@ import com.engine.attendance.component.persongroup.job.scheduling.tactics.Regula import com.engine.attendance.vacation.job.holidaygeneration.tactics.HolidayGenerationWay; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; +import com.engine.common.util.DbTools; import com.engine.common.util.Utils; import com.engine.core.interceptor.CommandContext; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import weaver.general.Util; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j public class VocationCmd extends AbstractCommonCommand> { @@ -40,6 +43,7 @@ public class VocationCmd extends AbstractCommonCommand> { vocation.put("qsrqValue",qsrq); vocation.put("yjzdValue",yjzd); vocation.put("ljcrglyfslwzValue",ljcrglyfslwz); + vocation.put("zyzValue",getUserIds(vocation)); } log.info("VocationCmd params: [{}]",params); String edfffs = Util.null2String(vocationList.get(0).get("edfffs")); @@ -51,4 +55,17 @@ public class VocationCmd extends AbstractCommonCommand> { return null; } + + public List getUserIds(Map vocation){ + List userIds = Lists.newArrayList(); + String edyj = Util.null2String(vocation.get("edyj")); + if (edyj.equals("3") || edyj.equals("4")){ + String zyz = Util.null2String(vocation.get("zyz")); + zyz = zyz.replace("and","and"); + zyz = zyz.replace("or","or"); + List> dataList = DbTools.getSqlToList(zyz); + userIds = dataList.stream().map(e->Util.null2String(e.get("id"))).collect(Collectors.toList()); + } + return userIds; + } } diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java index 5b42a59..11510b7 100644 --- a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java @@ -100,9 +100,9 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ //工龄小于1年的新员工,且额度有效期单位为自然年 if (allMonths < 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) { if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); }else { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate,userId); } if (CheckBoxEnum.CHECKED.getKey().equals(schdedkzsxrq)) { int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue(); @@ -120,12 +120,12 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12 && sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { //入职不满一年,且入职当期额度按比例折算 - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); }else { if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); } else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate,userId); } } @@ -140,7 +140,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]); allMonths = Double.valueOf(ljcrglyfslwz).intValue(); int intervalYear = allMonths / 12+betweenYear; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd,userId); double edktsc = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; int days = 0; if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ @@ -165,7 +165,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd,userId); int days = DateUtil.getBetWeenDays(sxrq,releaseDate.split(" ")[0])+1; if (days <0){ days=0; @@ -186,7 +186,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd,userId); double edktsc = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; int days = DateUtil.getBetWeenDays(sxrq,releaseDate.split(" ")[0])+1; if (days <0){ @@ -213,7 +213,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ betweenDays = 0; } allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd,userId); double edktsc = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; int days = DateUtil.getBetWeenDays(sxrq,releaseDate.split(" ")[0])+1; @@ -240,7 +240,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ betweenDays=0; } allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd,userId); int days = DateUtil.getBetWeenDays(sxrq,releaseDate.split(" ")[0])+1; if (days <0){ days=0; @@ -253,7 +253,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ //自然天 betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1; allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } insertHoliDayParam.put("ktsc", restTime); @@ -263,7 +263,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ return insertHoliDayParam; } - public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate){ + public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate,String userId){ String sxrq = insertHoliDayParam.get("sxrq").toString(); String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue")); String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd); @@ -304,8 +304,8 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ endYearMonth = endYearMonth+seniority; int beginYear = beginYearMonth/12; int endYear = endYearMonth/12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); - Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); + Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc"))); @@ -366,7 +366,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ } beginYearMonth = beginYearMonth+seniority; int beginYear = beginYearMonth/12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); int days = 0; if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java index fe8ee65..257df9d 100644 --- a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java @@ -126,9 +126,9 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); } else { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate,userId); } if (CheckBoxEnum.CHECKED.getKey().equals(schdedkzsxrq)) { int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue(); @@ -147,17 +147,17 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12 && sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { //起算年和发生日期在同一年,生成假期为起算年的当年 - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); } else { if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate,userId); } else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) { - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate,userId); } } }else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]); - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList,betweenYear,yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList,betweenYear,yjzd,userId); int occurMonths = DateUtil.getTime(releaseDate).getMonthValue(); int StartMonths = DateUtil.getTime(qsrq).getMonthValue(); @@ -182,7 +182,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ return insertHoliDayParam; } - public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate){ + public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate,String userId){ String sxrq = insertHoliDayParam.get("sxrq").toString(); String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue")); String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd); @@ -221,8 +221,8 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ int beginYear = beginYearMonth/12; int endYear = endYearMonth/12; int endYearRemainder = endYearMonth%12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); - Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); + Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc"))); @@ -278,7 +278,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ } beginYearMonth = beginYearMonth+seniority; int beginYear = beginYearMonth/12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); restTime = getRestTime(releaseDateMonths,beginYearmap); } return restTime; diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java index d73e984..3a9d653 100644 --- a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java @@ -134,11 +134,11 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { // //起算年在发生日期的上一年,生成假期为起算年的后第二年 // restTime = edktsc; // } - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,userId); } else { // restTime = edktsc; - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,userId); } @@ -165,7 +165,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { // int days = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]) + 1; // int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR); // restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl); - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,userId); } else { // // if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { @@ -209,10 +209,10 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { // } else { // restTime = edktsc; // } - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,userId); } else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) { // restTime = edktsc; - restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,userId); } } } else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())) { @@ -220,7 +220,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { //起算年 allMonths = Double.valueOf(ljcrglyfslwz).intValue(); int intervalYear = allMonths / 12+betweenYear; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){ //自然月 @@ -230,7 +230,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { } allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ @@ -238,7 +238,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){ //起自然周 @@ -247,7 +247,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { betweenDays = 0; } allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ @@ -257,14 +257,14 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { betweenDays=0; } allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ //自然天 betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1; allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; - Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } insertHoliDayParam.put("ktsc", restTime); @@ -277,7 +277,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { } - public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum){ + public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String userId){ String sxrq = insertHoliDayParam.get("sxrq").toString(); String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue")); String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd); @@ -303,8 +303,8 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { int beginYear = beginYearMonth/12; int endYear = endYearMonth/12; int endYearRemainder = endYearMonth%12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); - Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); + Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc"))); @@ -354,7 +354,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { } beginYearMonth = beginYearMonth+seniority; int beginYear = beginYearMonth/12; - Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); restTime=beginEdktsc; } diff --git a/src/com/engine/attendance/vacation/util/VocationCommonUtil.java b/src/com/engine/attendance/vacation/util/VocationCommonUtil.java index b35a750..f46903a 100644 --- a/src/com/engine/attendance/vacation/util/VocationCommonUtil.java +++ b/src/com/engine/attendance/vacation/util/VocationCommonUtil.java @@ -155,7 +155,7 @@ public class VocationCommonUtil { * @param yjzd 依据字段 * @return */ - public static Map getVocationMap(List> vocationList,int intervalDuration,String yjzd){ + public static Map getVocationMap(List> vocationList,int intervalDuration,String yjzd,String userId){ String edyj = Util.null2String(vocationList.get(0).get("edyj")); List> resultList = Lists.newArrayList(); @@ -201,10 +201,26 @@ public class VocationCommonUtil { }).collect(Collectors.toList()); }else if (edyj.equals("3")){ //自由值 + resultList = vocationList.stream().filter(e->{ + List zyzValue = (List)e.get("zyzValue"); + return zyzValue.contains(userId); + }).collect(Collectors.toList()); }else if (edyj.equals("4")){ //自由值+间隔时长 + resultList = vocationList.stream().filter(e->{ + List zyzValue = (List)e.get("zyzValue"); + //间隔时长起 + double jgsc0 = Double.valueOf(Util.null2String(e.get("jgsc0"))); + //间隔时长止 + double jgsc1 = Double.valueOf(Util.null2String(e.get("jgsc1"))); + if (intervalDuration >=jgsc0 && intervalDuration<=jgsc1 && zyzValue.contains(userId)){ + return true; + }else { + return false; + } + }).collect(Collectors.toList()); } if (resultList.size() > 0){ return resultList.get(0);