加入境外常驻地区的艰苦地区补贴

This commit is contained in:
Harryxzy 2022-09-29 11:22:33 +08:00
parent 5cd4f4202b
commit 62593dd3ab
5 changed files with 42 additions and 13 deletions

View File

@ -47,6 +47,9 @@ public class OverseasAllowanceDAO {
String jwgzdw1 = rs.getString("JWGZDW1");
double dqbtbz = rs.getDouble("DQBTBZ");
int lx = rs.getInt("lx");
if(jwgzdw1 == ""){
jwgzdw1="0";
}
if(dqbtbz == -1){
dqbtbz =0.0;
}
@ -60,7 +63,7 @@ public class OverseasAllowanceDAO {
if(jwgzjsrqStr!=null && jwgzjsrqStr.length()!=0){
jwgzjsrq = sdf.parse(jwgzjsrqStr);
}
JwCZInfoDetail build = JwCZInfoDetail.builder().xm(rs.getString("xm")).lx(lx).jwczksrq(jwgzksrq).jwczjsrq(jwgzjsrq).jsglts(jsglts).glbtybz(btbz).jkdqbtbz(dqbtbz).jkdq(jwgzdw1).build();
JwCZInfoDetail build = JwCZInfoDetail.builder().xm(rs.getString("xm")).lx(lx).jwczksrq(jwgzksrq).jwczjsrq(jwgzjsrq).jsglts(jsglts).glbtybz(btbz).jkdqbtbz(dqbtbz).jkdq(Integer.valueOf(jwgzdw1)).build();
results.add(build);
}catch (Exception e){
baseBean.writeLog(e);

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @author Harryxzy
@ -93,11 +94,11 @@ public class JWJT {
// * 艰苦地区补贴总和
// */
// private double jkdqbtzh;
//
// /**
// * 艰苦地区补贴
// */
// private List<JKDQBT> jkdqbts;
/**
* 艰苦地区补贴
*/
private List<JKDQBT> jkdqbts;
}

View File

@ -42,8 +42,4 @@ public class JwCZInfo {
*/
private double glbtrbz;
// /**
// * 考勤月份中境外应常驻天数
// */
// private Integer yczDays;
}

View File

@ -69,7 +69,7 @@ public class JwCZInfoDetail {
/**
* 艰苦地区
*/
private String jkdq;
private Integer jkdq;
}

View File

@ -22,7 +22,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
BaseBean baseBean = new BaseBean();
public MonthBonusDAO getMonthBonusDAO(){
return new MonthBonusDAO();
}
@ -60,6 +59,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
List<JWJT> results = new ArrayList<>();
jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results);
baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size());
// 将jwCZInfos中的艰苦地区常驻天数封装到results中
// 计算考勤所属月员工的薪酬等级获取相应的境外津贴标准
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
Map<Integer, XcdjJwjtParam> usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal);
@ -75,7 +76,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
// 处理艰苦地区补贴
}
/**
@ -94,6 +94,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
int[] ycq = {0};
int[] gnycq = {0};
List<Date> details = new ArrayList<>();
ArrayList<JKDQBT> jkdqbts = new ArrayList<>();
for (int i = 0; i < czDetails.size(); i++) {
JwCZInfoDetail detail = czDetails.get(i);
if (detail.getLx() == 0 && (detail.getJwczksrq().before(endAttendanceCal.getTime()) || detail.getJwczksrq().equals(endAttendanceCal.getTime()))) {
@ -104,10 +105,22 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
ycq[0] += days;
countDay[0].setTime(detail.getJwczksrq());
countDay[0].add(Calendar.DATE, -1);
// 存入常驻天数用于计算艰苦地区补贴
// int days1 = BjcjCommonUtils.getDays(detail.getJwczksrq(), endAttendanceCal.getTime());
detail.setDays(days);
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).build();
jkdqbts.add(jk);
} else {
// 开始常驻日期在 考勤开始日期前应出勤日期为自然日
int days = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime());
// 存入常驻天数用于计算艰苦地区补贴
// int days1 = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime());
detail.setDays(days);
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).build();
JWJT build = JWJT.builder().user(czInfo.getXm()).jwycq(days).gngzts(0.0).kqMonth(endAttendanceCal.getTime()).build();
ArrayList<JKDQBT> jkdqbtList = new ArrayList<>();
jkdqbtList.add(jk);
build.setJkdqbts(jkdqbtList);
results.add(build);
return true;
}
@ -123,6 +136,21 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
details.add(starCal.getTime());
starCal.add(Calendar.DAY_OF_YEAR, 1);
}
// 修正常驻开始时间和结束时间
Calendar countStartCal = Calendar.getInstance();
countStartCal.setTime(detail.getJwczksrq());
Calendar countEndCal = Calendar.getInstance();
countEndCal.setTime(detail.getJwczjsrq());
if(countStartCal.getTime().before(startAttendanceCal.getTime())){
countStartCal.setTime(startAttendanceCal.getTime());
}
if(countEndCal.getTime().after(endAttendanceCal.getTime())){
countEndCal.setTime(endAttendanceCal.getTime());
}
int days = BjcjCommonUtils.getDays(countStartCal.getTime(), countEndCal.getTime());
detail.setDays(days);
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).build();
jkdqbts.add(jk);
}
if (i == czDetails.size() - 1) {
// 已经将所有考勤周期内境外常驻的区间时间转换为记录
@ -151,6 +179,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}
}
JWJT build = JWJT.builder().user(czInfo.getXm()).jwycq(ycq[0]).gngzts(gnycq[0]).kqMonth(endAttendanceCal.getTime()).build();
build.setJkdqbts(jkdqbts);
results.add(build);
return true;
}