四项补助方案调整

This commit is contained in:
Harryxzy 2023-01-16 11:41:21 +08:00
parent 16e399616d
commit 8cec2b35bf
1 changed files with 25 additions and 17 deletions

View File

@ -72,9 +72,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
// 获取员工公务回国国内工作日天数
Map<Integer, List<JwCZInfoDetail>> gwhgInfos = getOverseasAllowanceDAO().getGwhg();
baseBean.writeLog("获取年假建模中所有公务回国信息,共:"+gwhgInfos.size());
// 过滤考勤周期内的公务回国信息并计算出国内工作日天数
Map<Integer, Integer> validGwhgAndCountWorkdays = getValidGwhgAndCountWorkdays(gwhgInfos, startAttendanceCal.getTime(), endAttendanceCal.getTime());
baseBean.writeLog("过滤考勤周期内的公务回国信息,并计算出国内工作日天数:"+validGwhgAndCountWorkdays);
// 过滤考勤周期内的公务回国信息并计算出国内工作日天数 方案二暂不考虑公务回国国内工作天数
// Map<Integer, Integer> validGwhgAndCountWorkdays = getValidGwhgAndCountWorkdays(gwhgInfos, startAttendanceCal.getTime(), endAttendanceCal.getTime());
// baseBean.writeLog("过滤考勤周期内的公务回国信息,并计算出国内工作日天数:"+validGwhgAndCountWorkdays);
Map<Integer, Integer> validGwhgAndCountWorkdays = new HashMap<>();
// 封装计算薪酬等级境外津贴标准考勤天数四项补助合计公务回国国内工作日天数
getXcdjAndJwjtbz(results,usersXCDJ,kqDatas,validGwhgAndCountWorkdays,jwCZInfos);
baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size());
@ -90,7 +91,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
coutJkdqbthj(results);
// 四项补贴合计天标准*公务回国工作日天数+国内工作日天数
countSxbthj(results);
baseBean.writeLog("计算四项补贴合计:"+results.size());
baseBean.writeLog("计算四项补贴合计:"+results);
// 将结果插入建模表中
getOverseasAllowanceDAO().insertOverseasAllowance(results);
baseBean.writeLog("将结果插入建模表中");
@ -130,6 +131,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}
}
item.setGngzts( item.getGngzts() -gnRestDays );
baseBean.writeLog(item.getUser() + "休息" + gnRestDays + "");
}
});
}
@ -346,9 +348,13 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
item.setXcdj(param.getXcdj());
item.setJwjtbz(param.getJwjtbz());
item.setSxbzhjbz(param.getSxbzhj());
item.setSxbzhjrbz(param.getSxbzhj()/21.75);
if(item.getUser().equals("109")){
System.out.println("hi");
// 方案一
// item.setSxbzhjrbz(param.getSxbzhj()/21.75);
// 方案二不考虑公务回国工作日天数 四项补贴合计天标准按照四项补贴合计÷境外应常驻天数+国内应出勤天数
if(!Objects.equals(param.getSxbzhj(),0.0)){
item.setSxbzhjrbz(param.getSxbzhj() / (item.getJwycq() + item.getGngzts()));
}else {
item.setSxbzhjrbz(0.0);
}
if(kqDatas.get(item.getUser() + "-qq") == null){
// 目前该员工没有考勤数据
@ -361,7 +367,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
double gnQqDays=0.0;
double jwQqDays=0.0;
// 判断是境内缺勤还是境外缺勤
ArrayList<Date> t = new ArrayList<>();
List<JwCZInfoDetail> jwCZInfoDetails = czInfos.get(item.getUser());
if(jwCZInfoDetails != null && jwCZInfoDetails.size()>0){
for(Date d : qqDate){
@ -391,7 +396,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
if(detail.getJwczjsrq().before(d)){
// 境外常驻结束日期在缺勤日前
gnQqDays++;
t.add(d);
flag=true;
}
if(BjcjCommonUtils.isBetween(d,detail.getJwczksrq(),detail.getJwczjsrq())){
@ -402,7 +406,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}
if( (i+1 == jwCZInfoDetails.size()) && (flag == false)){
gnQqDays++;
t.add(d);
}
}
}
@ -410,15 +413,17 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
item.setGnQq(gnQqDays);
item.setJwQq(jwQqDays);
item.setGwhg((Double) kqDatas.get(item.getUser()+"-gwhg"));
item.setGwhgWorkdays((Double) kqDatas.get(item.getUser()+"-gwhg"));
}
item.setJwscq(item.getJwycq()-item.getJwQq()-item.getGwhg());
item.setGnscq(item.getGngzts() - item.getGnQq());
item.setJwjt(item.getJwscq()*item.getJwjtbz());
if(validGwhgAndCountWorkdays.containsKey(Integer.valueOf(item.getUser()))){
// 该员工有公务回国数据
Integer workDays = validGwhgAndCountWorkdays.get(Integer.valueOf(item.getUser()));
item.setGwhgWorkdays(workDays);
}
// 方案二不考虑公务回国工作日
// if(validGwhgAndCountWorkdays.containsKey(Integer.valueOf(item.getUser()))){
// // 该员工有公务回国数据
// Integer workDays = validGwhgAndCountWorkdays.get(Integer.valueOf(item.getUser()));
// item.setGwhgWorkdays(workDays);
// }
});
}
@ -495,8 +500,11 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
*/
private void countSxbthj(List<JWJT> results) {
results.stream().forEach(result->{
// 获取员工的公务回国工作日天数和国内工作日天数 * 四项补助日标准
result.setSxbzhj((result.getGnscq()+result.getGwhgWorkdays()) * result.getSxbzhjrbz());
// 方案一获取员工的公务回国工作日天数和国内工作日天数 * 四项补助日标准
// result.setSxbzhj((result.getGnscq()+result.getGwhgWorkdays()) * result.getSxbzhjrbz());
// 方案二获取员工的公务回国天数和国内工作日天数 * 四项补助日标准
result.setSxbzhj((result.getGnscq()+result.getGwhg()) * result.getSxbzhjrbz());
});
}