From bfd78019a92cab2071eba0edd6114498141ef423 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 27 Sep 2022 10:36:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=87=BA=E6=89=80=E6=9C=89?= =?UTF-8?q?=E6=9C=89=E5=B8=B8=E9=A9=BB=E4=BF=A1=E6=81=AF=E7=9A=84=E5=A2=83?= =?UTF-8?q?=E5=A4=96=E5=BA=94=E5=87=BA=E5=8B=A4=E5=A4=A9=E6=95=B0=E3=80=81?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=80=E6=9C=89=E5=91=98=E5=B7=A5=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E6=89=80=E5=B1=9E=E6=9C=88=E7=9A=84=E8=96=AA=E9=85=AC?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E5=8F=8A=E6=89=80=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E5=A2=83=E5=A4=96=E6=B4=A5=E8=B4=B4=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bjcj220907/dao/OverseasAllowanceDAO.java | 46 ++++++------------- .../bjcj220907/entity/XcdjJwjtParam.java | 33 +++++++++++++ .../OverseasAllowanceCountServiceImpl.java | 9 ++-- 3 files changed, 53 insertions(+), 35 deletions(-) create mode 100644 src/com/engine/bjcj220907/entity/XcdjJwjtParam.java diff --git a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java index c9df3aa..c4271d8 100644 --- a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java +++ b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java @@ -1,13 +1,11 @@ package com.engine.bjcj220907.dao; +import com.engine.bjcj220907.entity.XcdjJwjtParam; import weaver.conn.RecordSet; import weaver.general.BaseBean; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Harryxzy @@ -25,39 +23,23 @@ public class OverseasAllowanceDAO { * @author Harryxzy * @date 2022/9/26 17:43 */ - public Map getXCDJByUsers(List users,Calendar endAttendanceCal) { + public Map getXCDJByUsers(Calendar startAttendanceCal) { RecordSet rs = new RecordSet(); - StringBuilder sb =new StringBuilder(); - if(users != null && users.size()>0){ - sb = new StringBuilder("select z.xm,z.gj,z.xd,z.sxrq,d.xcdj,jxgz from uf_xczjbd z LEFT JOIN uf_xcdj d on d.gj=z.gj and d.xd=z.xd WHERE xm IN ( "); - for(int i=0;i xcdj = new HashMap<>(); while (rs.next()){ - try { - Date sxrq = sdf.parse(rs.getString("SXRQ")); - if(sxrq.before(endAttendanceCal.getTime())){ - double jxgz = rs.getDouble("jxgz"); - if(Math.abs(jxgz + 1.0) < 0.000000002){ - jxgz=0.0; - } -// result.setYdjjjxjs(jxgz); -// result.setXcdj(rs.getString("xcdj")); - break; - } - }catch (Exception e){ - baseBean.writeLog("计算考勤所属月员工的薪酬等级中日期parse失败"); + int xm = rs.getInt("xm"); + String xcdjStr = rs.getString("XCDJ"); + double jwjtbz = rs.getDouble("jwjtbz"); + if(!xcdj.containsKey(xm)){ + XcdjJwjtParam build = XcdjJwjtParam.builder().xcdj(xcdjStr).jwjtbz(jwjtbz).build(); + xcdj.put(xm,build); } } - return null; - + return xcdj; } diff --git a/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java b/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java new file mode 100644 index 0000000..5d3b786 --- /dev/null +++ b/src/com/engine/bjcj220907/entity/XcdjJwjtParam.java @@ -0,0 +1,33 @@ +package com.engine.bjcj220907.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @date 2022/09/27 9:49 + * @description 用于封装薪酬等级和对应的境外津贴 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class XcdjJwjtParam { + + /** + * 用户名 + */ + private Integer xm; + + /** + * 薪酬等级 + */ + private String xcdj; + + /** + * 境外津贴标准 + */ + private double jwjtbz; +} diff --git a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java index 304824a..5a5b080 100644 --- a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.bjcj220907.dao.OverseasAllowanceDAO; import com.engine.bjcj220907.entity.JWJT; import com.engine.bjcj220907.entity.JwCZInfo; import com.engine.bjcj220907.entity.JwCZInfoDetail; +import com.engine.bjcj220907.entity.XcdjJwjtParam; import com.engine.bjcj220907.service.OverseasAllowanceCountService; import com.engine.bjcj220907.utils.BjcjCommonUtils; import weaver.general.BaseBean; @@ -51,13 +52,15 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime()); // 考勤结束日期 Calendar endAttendanceCal = BjcjCommonUtils.getEndAttendanceCal(countCal.getTime()); - baseBean.writeLog("将境外常驻信息格式化"); + baseBean.writeLog("考勤开始日期:"+startAttendanceCal.getTime()+",考勤结束日期:"+endAttendanceCal); // 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数 List results = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal); baseBean.writeLog("如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数:"+results.size()); - // 计算考勤所属月员工的薪酬等级 + // 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准 List users = results.stream().map(i -> i.getUser()).collect(Collectors.toList()); - Map usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,endAttendanceCal); + Map usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(startAttendanceCal); + baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准:"+usersXSDJ.size()); + // } /**