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()); + // } /**