From bfa7831e088b92e8a154200887accd421f60dbbc Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 29 Sep 2022 18:07:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E6=A0=B8=E7=AE=97=E5=9B=9B?= =?UTF-8?q?=E9=A1=B9=E8=A1=A5=E5=8A=A9=E5=90=88=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bjcj220907/dao/OverseasAllowanceDAO.java | 10 +++-- src/com/engine/bjcj220907/entity/JWJT.java | 15 ++++++++ .../bjcj220907/entity/XcdjJwjtParam.java | 5 +++ .../OverseasAllowanceCountServiceImpl.java | 37 ++++++++++++++----- 4 files changed, 55 insertions(+), 12 deletions(-) diff --git a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java index a801b97..27e1015 100644 --- a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java +++ b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java @@ -84,7 +84,7 @@ public class OverseasAllowanceDAO { StringBuilder sb =new StringBuilder(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if(users != null && users.size()>0){ - sb = new StringBuilder("select h.id,z.gj,z.xd,z.sxrq,d.xcdj,jwjtbz FROM hrmresource h LEFT JOIN uf_xczjbd z on h.id=z.xm and sxrq <= '" +sdf.format(startAttendanceCal.getTime()) + + sb = new StringBuilder("select h.id,z.gj,z.xd,z.sxrq,d.xcdj,jwjtbz,cb+lb+txf+wcbz sxbzhj FROM hrmresource h LEFT JOIN uf_xczjbd z on h.id=z.xm and sxrq <= '" +sdf.format(startAttendanceCal.getTime()) + "' LEFT JOIN uf_xcdj d on d.gj=z.gj and d.xd=z.xd WHERE h.id IN ( "); for(int i=0;i jkdqbts; + /** + * 四项补助合计(月标准) + */ + private double sxbzhjbz; + + /** + * 四项补助合计(日标准) + */ + private double sxbzhjrbz; + + /** + * 四项补助合计 + */ + private double sxbzhj; + } diff --git a/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java b/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java index 5d3b786..aa55733 100644 --- a/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java +++ b/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java @@ -30,4 +30,9 @@ public class XcdjJwjtParam { * 境外津贴标准 */ private double jwjtbz; + + /** + * 四项补助合计金额 + */ + private double sxbzhj; } diff --git a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java index d7c1175..99b11f5 100644 --- a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java @@ -62,26 +62,29 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse // 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准 List users = results.stream().map(i -> i.getUser()).collect(Collectors.toList()); Map usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal); - baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准,共:"+usersXSDJ.size()); + baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准、四项补贴合计,共:"+usersXSDJ.size()); // 获取公务回国天数 及 缺勤天数 Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build(); Map kqDatas = GetKQ4OverseasAllowanceCountService().getKQDatas(build); baseBean.writeLog("调用考勤接口获取公务回国天数 及 缺勤天数,共:"+usersXSDJ.size()); - // 封装薪酬等级、境外津贴标准、考勤天数 - getXcdjAndJwjtbz(results,usersXSDJ,kqDatas); + // 封装薪酬等级、境外津贴标准、考勤天数、四项补助合计 + int days = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime()); + getXcdjAndJwjtbz(results,usersXSDJ,kqDatas,days); // TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00 baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size()); // 处理第三国出差(2)、境外国内出差(3)艰苦地区补贴 Map> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc(); + baseBean.writeLog("获取第三国出差(2)、境外国内出差(3)艰苦地区补贴,共:"+dsgccJkdq.size()); // 封装第三国出差数、境外国内出差据到result中 getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime()); - - - - List collect = results.stream().sorted((a, b) -> Integer.valueOf(a.getUser()).compareTo(Integer.valueOf(b.getUser()))).collect(Collectors.toList()); - System.out.println("hi"); + // 处理四项补贴(月标准) + // 四项补贴合计(天标准)*(公务回国工作日天数+境外国内出差工作日天数+国内工作日天数) + countSxbthj(results); } + + + /** * @description 获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数 * @return List @@ -199,11 +202,13 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse * @author Harryxzy * @date 2022/9/27 15:37 */ - public void getXcdjAndJwjtbz(List results ,Map usersXSDJ,Map kqDatas){ + public void getXcdjAndJwjtbz(List results ,Map usersXSDJ,Map kqDatas,int kqDays){ results.stream().forEach(item-> { XcdjJwjtParam param = usersXSDJ.get(Integer.valueOf(item.getUser())); item.setXcdj(param.getXcdj()); item.setJwjtbz(param.getJwjtbz()); + item.setSxbzhjbz(param.getSxbzhj()); + item.setSxbzhjrbz(param.getSxbzhj()/kqDays); if(kqDatas.get(item.getUser() + "-qq") == null){ // 目前该员工没有考勤数据 item.setQq(0.0); @@ -273,4 +278,18 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse } }); } + + /** + * @description 计算四项补助合计 = 四项补贴合计(天标准)*(公务回国工作日天数+国内工作日天数) + * @return void + * @author Harryxzy + * @date 2022/9/29 17:59 + */ + private void countSxbthj(List results) { + results.stream().forEach(i->{ + // 获取员工的公务回国天数和国内工作日天数 + }); + } + + }