处理艰苦地区-缺勤-公务回国

This commit is contained in:
Harryxzy 2022-12-26 14:41:34 +08:00
parent 6b1d6dd49f
commit 3eb5e5861c
2 changed files with 52 additions and 4 deletions

View File

@ -70,13 +70,16 @@ public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements
countBeginCal.setTime(attend4MonthBonus.getBeginDate()); countBeginCal.setTime(attend4MonthBonus.getBeginDate());
Calendar countEndCal = Calendar.getInstance(); Calendar countEndCal = Calendar.getInstance();
countEndCal.setTime(attend4MonthBonus.getEndDate()); countEndCal.setTime(attend4MonthBonus.getEndDate());
countEndCal.set(Calendar.HOUR_OF_DAY, 0);
countEndCal.set(Calendar.MINUTE, 0);
countEndCal.set(Calendar.SECOND, 0);
countEndCal.set(Calendar.MILLISECOND, 0);
List<Date> attDateList = new ArrayList<>(); List<Date> attDateList = new ArrayList<>();
while (countEndCal.after(countBeginCal) || countEndCal.getTime().equals(countBeginCal.getTime())){ while (countEndCal.after(countBeginCal) || countEndCal.getTime().equals(countBeginCal.getTime())){
attDateList.add(countEndCal.getTime()); attDateList.add(countEndCal.getTime());
countEndCal.add(Calendar.DATE,-1); countEndCal.add(Calendar.DATE,-1);
} }
baseBean.writeLog("获取缺勤日期为:"+attDateList); baseBean.writeLog("获取缺勤日期为:"+attDateList);
// baseBean.writeLog("dataList:"+dataList);
dataList.stream().forEach(i->{ dataList.stream().forEach(i->{
if(users.contains(i.get("resourceId"))){ if(users.contains(i.get("resourceId"))){
List<Date> qqDate = new ArrayList<>(); List<Date> qqDate = new ArrayList<>();

View File

@ -42,6 +42,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
*/ */
@Override @Override
public void countOverseasAllowance(Calendar countCal) { public void countOverseasAllowance(Calendar countCal) {
//TODO
countCal.set(Calendar.MONTH,9);
// 境外津贴包含境外津贴天标准+境外工龄补贴月标准+艰苦地区补贴天标准 // 境外津贴包含境外津贴天标准+境外工龄补贴月标准+艰苦地区补贴天标准
// 考勤开始日期 // 考勤开始日期
Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime()); Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime());
@ -82,8 +86,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
baseBean.writeLog("第三国出差(2)、境外国内出差3艰苦地区补贴:"+dsgccJkdq); baseBean.writeLog("第三国出差(2)、境外国内出差3艰苦地区补贴:"+dsgccJkdq);
// 封装第三国出差数境外国内出差据到result中 // 封装第三国出差数境外国内出差据到result中
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime()); getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
// 处理艰苦地区补贴天数境外常驻补贴天数=境外实出勤-第三国出差- // 处理艰苦地区补贴天数境外常驻补贴天数=境外实出勤-第三国出差-境外国内出差
handleJkdqDays(results); handleJkdqDays(results, kqDatas, gwhgInfos);
// 计算艰苦地区补贴合计 // 计算艰苦地区补贴合计
coutJkdqbthj(results); coutJkdqbthj(results);
// 四项补贴合计天标准*公务回国工作日天数+国内工作日天数 // 四项补贴合计天标准*公务回国工作日天数+国内工作日天数
@ -100,7 +104,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
* @author Harryxzy * @author Harryxzy
* @date 2022/12/23 18:04 * @date 2022/12/23 18:04
*/ */
private void handleJkdqDays(List<JWJT> results) { private void handleJkdqDays(List<JWJT> results, Map<String, Object> kqData, Map<Integer, List<JwCZInfoDetail>> gwhgInfos) {
results.forEach(result -> { results.forEach(result -> {
// 获取境外常驻的艰苦地区 第三国出差及境外国内出差的艰苦地区 // 获取境外常驻的艰苦地区 第三国出差及境外国内出差的艰苦地区
ArrayList<JKDQBT> dsgAndJwgncc = new ArrayList<>(); ArrayList<JKDQBT> dsgAndJwgncc = new ArrayList<>();
@ -123,6 +127,43 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}); });
}); });
} }
// 缺勤List
List<Date> qqDate = (List <Date>) kqData.get(result.getUser() + "-qq");
// 公务回国List
List<JwCZInfoDetail> gwhgList = gwhgInfos.get(new Integer(result.getUser()));
if(result.getUser().equals("109")){
System.out.println("-");
}
// 减去缺勤公务回国
jwcc.stream().forEach(cc -> {
Calendar countKs = Calendar.getInstance();
countKs.setTime(cc.getJkdqKssj());
Calendar countJs = Calendar.getInstance();
countJs.setTime(cc.getJkdqJssj());
while (countKs.before(countJs) || countJs.equals(countKs)){
// 是否存在缺勤
if(qqDate != null){
if(qqDate.contains(countKs.getTime())){
cc.setDays(cc.getDays()-1);
}
}
if(gwhgList != null){
gwhgList.stream().forEach(gwhg ->{
boolean isBetween = BjcjCommonUtils.isBetween(countKs.getTime(), gwhg.getJwczksrq(), gwhg.getJwczjsrq());
if(isBetween){
// 常驻期间存在公务回国
cc.setDays(cc.getDays()-1);
}
});
}
countKs.add(Calendar.DAY_OF_MONTH,1);
}
cc.setJkdqbt(cc.getDays() * cc.getJkdqbtbz());
});
}); });
} }
@ -429,6 +470,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
for(Map.Entry<Integer,List<JwCZInfoDetail>> entrySet : gwhgInfos.entrySet()){ for(Map.Entry<Integer,List<JwCZInfoDetail>> entrySet : gwhgInfos.entrySet()){
List<JwCZInfoDetail> values = entrySet.getValue(); List<JwCZInfoDetail> values = entrySet.getValue();
values.stream().forEach(value ->{ values.stream().forEach(value ->{
// TODO
if(entrySet.getKey().equals(109)){
System.out.println("-");
}
if( (value.getJwczksrq().before(endAttendance) || value.getJwczksrq().equals(endAttendance)) if( (value.getJwczksrq().before(endAttendance) || value.getJwczksrq().equals(endAttendance))
&& (value.getJwczjsrq().after(startAttendance) || value.getJwczjsrq().equals(startAttendance)) ){ && (value.getJwczjsrq().after(startAttendance) || value.getJwczjsrq().equals(startAttendance)) ){
// 在考勤周期内的公务回国计算国内工作天数 // 在考勤周期内的公务回国计算国内工作天数