开始核算四项补助合计
This commit is contained in:
parent
511fd6f4ce
commit
bfa7831e08
|
|
@ -84,7 +84,7 @@ public class OverseasAllowanceDAO {
|
||||||
StringBuilder sb =new StringBuilder();
|
StringBuilder sb =new StringBuilder();
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
if(users != null && users.size()>0){
|
if(users != null && users.size()>0){
|
||||||
sb = new StringBuilder("select h.id,z.gj,z.xd,z.sxrq,d.xcdj,jwjtbz FROM hrmresource h LEFT JOIN uf_xczjbd z on h.id=z.xm and sxrq <= '" +sdf.format(startAttendanceCal.getTime()) +
|
sb = new StringBuilder("select h.id,z.gj,z.xd,z.sxrq,d.xcdj,jwjtbz,cb+lb+txf+wcbz sxbzhj FROM hrmresource h LEFT JOIN uf_xczjbd z on h.id=z.xm and sxrq <= '" +sdf.format(startAttendanceCal.getTime()) +
|
||||||
"' LEFT JOIN uf_xcdj d on d.gj=z.gj and d.xd=z.xd WHERE h.id IN ( ");
|
"' LEFT JOIN uf_xcdj d on d.gj=z.gj and d.xd=z.xd WHERE h.id IN ( ");
|
||||||
for(int i=0;i<users.size();i++){
|
for(int i=0;i<users.size();i++){
|
||||||
sb.append(users.get(i));
|
sb.append(users.get(i));
|
||||||
|
|
@ -100,11 +100,15 @@ public class OverseasAllowanceDAO {
|
||||||
int xm = rs.getInt("id");
|
int xm = rs.getInt("id");
|
||||||
String xcdjStr = rs.getString("XCDJ");
|
String xcdjStr = rs.getString("XCDJ");
|
||||||
double jwjtbz = rs.getDouble("jwjtbz");
|
double jwjtbz = rs.getDouble("jwjtbz");
|
||||||
|
double sxbzhj = rs.getDouble("sxbzhj");
|
||||||
|
if(sxbzhj == -1){
|
||||||
|
sxbzhj = 0.0;
|
||||||
|
}
|
||||||
if(jwjtbz == -1){
|
if(jwjtbz == -1){
|
||||||
jwjtbz=0.0;
|
jwjtbz=0.0;
|
||||||
}
|
}
|
||||||
if(!xcdj.containsKey(xm)){
|
if(!xcdj.containsKey(xm)){
|
||||||
XcdjJwjtParam build = XcdjJwjtParam.builder().xcdj(xcdjStr).jwjtbz(jwjtbz).build();
|
XcdjJwjtParam build = XcdjJwjtParam.builder().xcdj(xcdjStr).jwjtbz(jwjtbz).sxbzhj(sxbzhj).build();
|
||||||
xcdj.put(xm,build);
|
xcdj.put(xm,build);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,5 +100,20 @@ public class JWJT {
|
||||||
*/
|
*/
|
||||||
private List<JKDQBT> jkdqbts;
|
private List<JKDQBT> jkdqbts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 四项补助合计(月标准)
|
||||||
|
*/
|
||||||
|
private double sxbzhjbz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 四项补助合计(日标准)
|
||||||
|
*/
|
||||||
|
private double sxbzhjrbz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 四项补助合计
|
||||||
|
*/
|
||||||
|
private double sxbzhj;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,4 +30,9 @@ public class XcdjJwjtParam {
|
||||||
* 境外津贴标准
|
* 境外津贴标准
|
||||||
*/
|
*/
|
||||||
private double jwjtbz;
|
private double jwjtbz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 四项补助合计金额
|
||||||
|
*/
|
||||||
|
private double sxbzhj;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,26 +62,29 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
// 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准
|
// 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准
|
||||||
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);
|
||||||
baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准,共:"+usersXSDJ.size());
|
baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准、四项补贴合计,共:"+usersXSDJ.size());
|
||||||
// 获取公务回国天数 及 缺勤天数
|
// 获取公务回国天数 及 缺勤天数
|
||||||
Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build();
|
Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build();
|
||||||
Map<String, Double> kqDatas = GetKQ4OverseasAllowanceCountService().getKQDatas(build);
|
Map<String, Double> kqDatas = GetKQ4OverseasAllowanceCountService().getKQDatas(build);
|
||||||
baseBean.writeLog("调用考勤接口获取公务回国天数 及 缺勤天数,共:"+usersXSDJ.size());
|
baseBean.writeLog("调用考勤接口获取公务回国天数 及 缺勤天数,共:"+usersXSDJ.size());
|
||||||
// 封装薪酬等级、境外津贴标准、考勤天数
|
// 封装薪酬等级、境外津贴标准、考勤天数、四项补助合计
|
||||||
getXcdjAndJwjtbz(results,usersXSDJ,kqDatas);
|
int days = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime());
|
||||||
|
getXcdjAndJwjtbz(results,usersXSDJ,kqDatas,days);
|
||||||
// TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00
|
// TODO:验证一下188 陈涛有没有考勤数据 结果不再是0.00
|
||||||
baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size());
|
baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size());
|
||||||
// 处理第三国出差(2)、境外国内出差(3)艰苦地区补贴
|
// 处理第三国出差(2)、境外国内出差(3)艰苦地区补贴
|
||||||
Map<Integer, List<JwCZInfoDetail>> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc();
|
Map<Integer, List<JwCZInfoDetail>> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc();
|
||||||
|
baseBean.writeLog("获取第三国出差(2)、境外国内出差(3)艰苦地区补贴,共:"+dsgccJkdq.size());
|
||||||
// 封装第三国出差数、境外国内出差据到result中
|
// 封装第三国出差数、境外国内出差据到result中
|
||||||
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
|
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
|
||||||
|
// 处理四项补贴(月标准)
|
||||||
|
// 四项补贴合计(天标准)*(公务回国工作日天数+境外国内出差工作日天数+国内工作日天数)
|
||||||
|
countSxbthj(results);
|
||||||
List<JWJT> collect = results.stream().sorted((a, b) -> Integer.valueOf(a.getUser()).compareTo(Integer.valueOf(b.getUser()))).collect(Collectors.toList());
|
|
||||||
System.out.println("hi");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数
|
* @description 获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数
|
||||||
* @return List<JwCZInfo>
|
* @return List<JwCZInfo>
|
||||||
|
|
@ -199,11 +202,13 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/9/27 15:37
|
* @date 2022/9/27 15:37
|
||||||
*/
|
*/
|
||||||
public void getXcdjAndJwjtbz(List<JWJT> results ,Map<Integer, XcdjJwjtParam> usersXSDJ,Map<String, Double> kqDatas){
|
public void getXcdjAndJwjtbz(List<JWJT> results ,Map<Integer, XcdjJwjtParam> usersXSDJ,Map<String, Double> kqDatas,int kqDays){
|
||||||
results.stream().forEach(item-> {
|
results.stream().forEach(item-> {
|
||||||
XcdjJwjtParam param = usersXSDJ.get(Integer.valueOf(item.getUser()));
|
XcdjJwjtParam param = usersXSDJ.get(Integer.valueOf(item.getUser()));
|
||||||
item.setXcdj(param.getXcdj());
|
item.setXcdj(param.getXcdj());
|
||||||
item.setJwjtbz(param.getJwjtbz());
|
item.setJwjtbz(param.getJwjtbz());
|
||||||
|
item.setSxbzhjbz(param.getSxbzhj());
|
||||||
|
item.setSxbzhjrbz(param.getSxbzhj()/kqDays);
|
||||||
if(kqDatas.get(item.getUser() + "-qq") == null){
|
if(kqDatas.get(item.getUser() + "-qq") == null){
|
||||||
// 目前该员工没有考勤数据
|
// 目前该员工没有考勤数据
|
||||||
item.setQq(0.0);
|
item.setQq(0.0);
|
||||||
|
|
@ -273,4 +278,18 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 计算四项补助合计 = 四项补贴合计(天标准)*(公务回国工作日天数+国内工作日天数)
|
||||||
|
* @return void
|
||||||
|
* @author Harryxzy
|
||||||
|
* @date 2022/9/29 17:59
|
||||||
|
*/
|
||||||
|
private void countSxbthj(List<JWJT> results) {
|
||||||
|
results.stream().forEach(i->{
|
||||||
|
// 获取员工的公务回国天数和国内工作日天数
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue