加入境外常驻地区、第三国出差、境外国内出差的艰苦地区补贴

This commit is contained in:
Harryxzy 2022-09-29 16:34:37 +08:00
parent 8eda9147de
commit 511fd6f4ce
2 changed files with 30 additions and 13 deletions

View File

@ -113,7 +113,7 @@ public class OverseasAllowanceDAO {
public Map<Integer, List<JwCZInfoDetail>> getDsgcc() { public Map<Integer, List<JwCZInfoDetail>> getDsgcc() {
RecordSet rs = new RecordSet(); 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); rs.execute(sql);
HashMap<Integer, List<JwCZInfoDetail>> jkdqbt = new HashMap<>(); HashMap<Integer, List<JwCZInfoDetail>> jkdqbt = new HashMap<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

View File

@ -59,12 +59,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
List<JWJT> results = new ArrayList<>(); List<JWJT> results = new ArrayList<>();
jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results); jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results);
baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size()); baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size());
// 将jwCZInfos中的艰苦地区常驻天数封装到results中
// List<JwCZInfo> aaa = jwCZInfos.stream().sorted((a, b) -> a.getXm().compareTo(b.getXm())).collect(Collectors.toList());
// List<JWJT> bbb = results.stream().sorted((a, b) -> a.getUser().compareTo(b.getUser())).collect(Collectors.toList());
// System.out.println("hj");
// 计算考勤所属月员工的薪酬等级获取相应的境外津贴标准 // 计算考勤所属月员工的薪酬等级获取相应的境外津贴标准
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList()); List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
Map<Integer, XcdjJwjtParam> usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal); Map<Integer, XcdjJwjtParam> usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal);
@ -77,10 +71,14 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
getXcdjAndJwjtbz(results,usersXSDJ,kqDatas); getXcdjAndJwjtbz(results,usersXSDJ,kqDatas);
// TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00 // TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00
baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size()); baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size());
// 处理第三国出差(2)艰苦地区补贴 // 处理第三国出差(2)境外国内出差3艰苦地区补贴
Map<Integer, List<JwCZInfoDetail>> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc(); Map<Integer, List<JwCZInfoDetail>> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc();
// 封装第三国出差数据到result中 // 封装第三国出差数境外国内出差据到result中
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime()); getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
List<JWJT> collect = results.stream().sorted((a, b) -> Integer.valueOf(a.getUser()).compareTo(Integer.valueOf(b.getUser()))).collect(Collectors.toList());
System.out.println("hi"); System.out.println("hi");
} }
@ -220,7 +218,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}); });
} }
/** /**
* @description 境外常驻信息格式化 * @description 境外常驻信息格式化
* @return void * @return void
@ -246,14 +243,34 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
* @author Harryxzy * @author Harryxzy
* @date 2022/9/28 17:07 * @date 2022/9/28 17:07
*/ */
public List<JwCZInfo> getDsgcc(List<JWJT> results,Map<Integer, List<JwCZInfoDetail>> dsgccJkdq,Date startAttendance,Date endAttendance) { public void getDsgcc(List<JWJT> results,Map<Integer, List<JwCZInfoDetail>> dsgccJkdq,Date startAttendance,Date endAttendance) {
results.stream().forEach(jwjt->{ results.stream().forEach(jwjt->{
Integer user = Integer.valueOf(jwjt.getUser()); Integer user = Integer.valueOf(jwjt.getUser());
if(dsgccJkdq.containsKey(user)){ if(dsgccJkdq.containsKey(user)){
// 该员工存在第三国出差数据 // 该员工存在第三国出差数据
List<JwCZInfoDetail> 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;
} }
} }