diff --git a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java index ed1d287..a801b97 100644 --- a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java +++ b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java @@ -113,7 +113,7 @@ public class OverseasAllowanceDAO { public Map> getDsgcc() { RecordSet rs = new RecordSet(); - String sql = "select xm,lx,jwgzksrq,jwgzjsrq,JWGZDW1,btbz from UF_NJJMB n left JOIN UF_NJJMB_DT1 d on n.id=d.MAINID left join UF_DQBTBZ b on JWGZDW1=b.id WHERE lx=2 "; + String sql = "select xm,lx,jwgzksrq,jwgzjsrq,JWGZDW1,btbz from UF_NJJMB n left JOIN UF_NJJMB_DT1 d on n.id=d.MAINID left join UF_DQBTBZ b on JWGZDW1=b.id WHERE lx in(2,3) "; rs.execute(sql); HashMap> jkdqbt = new HashMap<>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java index 8a64cbd..d7c1175 100644 --- a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java @@ -59,12 +59,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse List results = new ArrayList<>(); jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results); baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size()); - // 将jwCZInfos中的艰苦地区常驻天数封装到results中 - -// List aaa = jwCZInfos.stream().sorted((a, b) -> a.getXm().compareTo(b.getXm())).collect(Collectors.toList()); -// List bbb = results.stream().sorted((a, b) -> a.getUser().compareTo(b.getUser())).collect(Collectors.toList()); -// System.out.println("hj"); - // 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准 List users = results.stream().map(i -> i.getUser()).collect(Collectors.toList()); Map usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal); @@ -77,10 +71,14 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse getXcdjAndJwjtbz(results,usersXSDJ,kqDatas); // TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00 baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size()); - // 处理第三国出差(2)艰苦地区补贴 + // 处理第三国出差(2)、境外国内出差(3)艰苦地区补贴 Map> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc(); - // 封装第三国出差数据到result中 + // 封装第三国出差数、境外国内出差据到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"); } @@ -220,7 +218,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse }); } - /** * @description 境外常驻信息格式化 * @return void @@ -246,14 +243,34 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse * @author Harryxzy * @date 2022/9/28 17:07 */ - public List getDsgcc(List results,Map> dsgccJkdq,Date startAttendance,Date endAttendance) { + public void getDsgcc(List results,Map> dsgccJkdq,Date startAttendance,Date endAttendance) { results.stream().forEach(jwjt->{ Integer user = Integer.valueOf(jwjt.getUser()); if(dsgccJkdq.containsKey(user)){ // 该员工存在第三国出差数据 - + List jwCZInfoDetails = dsgccJkdq.get(user); + for(int i=0; i < jwCZInfoDetails.size(); i++){ + JwCZInfoDetail detail = jwCZInfoDetails.get(i); + if ((detail.getJwczksrq().before(endAttendance) || detail.getJwczksrq().equals(endAttendance)) + && (detail.getJwczjsrq().after(startAttendance) || detail.getJwczjsrq().equals(startAttendance))) { + // 在考勤周期内的第三国出差数据 + // 修正常驻开始时间和结束时间 + Calendar countStartCal = Calendar.getInstance(); + countStartCal.setTime(detail.getJwczksrq()); + Calendar countEndCal = Calendar.getInstance(); + countEndCal.setTime(detail.getJwczjsrq()); + if(countStartCal.getTime().before(startAttendance)){ + countStartCal.setTime(startAttendance); + } + if(countEndCal.getTime().after(endAttendance)){ + countEndCal.setTime(endAttendance); + } + int days = BjcjCommonUtils.getDays(countStartCal.getTime(), countEndCal.getTime()); + JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).build(); + jwjt.getJkdqbts().add(jk); + } + } } }); - return null; } }