From 8cec2b35bff6beb0aa35dd2346103ccc79f0cbb6 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 16 Jan 2023 11:41:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9B=E9=A1=B9=E8=A1=A5=E5=8A=A9=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OverseasAllowanceCountServiceImpl.java | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java index cfc1a6e..8766936 100644 --- a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java @@ -72,9 +72,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse // 获取员工公务回国国内工作日天数 Map> gwhgInfos = getOverseasAllowanceDAO().getGwhg(); baseBean.writeLog("获取年假建模中所有公务回国信息,共:"+gwhgInfos.size()); - // 过滤考勤周期内的公务回国信息,并计算出国内工作日天数 - Map validGwhgAndCountWorkdays = getValidGwhgAndCountWorkdays(gwhgInfos, startAttendanceCal.getTime(), endAttendanceCal.getTime()); - baseBean.writeLog("过滤考勤周期内的公务回国信息,并计算出国内工作日天数:"+validGwhgAndCountWorkdays); + // 过滤考勤周期内的公务回国信息,并计算出国内工作日天数 方案二:暂不考虑公务回国国内工作天数 +// Map validGwhgAndCountWorkdays = getValidGwhgAndCountWorkdays(gwhgInfos, startAttendanceCal.getTime(), endAttendanceCal.getTime()); +// baseBean.writeLog("过滤考勤周期内的公务回国信息,并计算出国内工作日天数:"+validGwhgAndCountWorkdays); + Map 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 t = new ArrayList<>(); List 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 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()); }); }