考虑节假日
This commit is contained in:
parent
cdf976f77e
commit
16e399616d
|
|
@ -83,6 +83,7 @@ public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements
|
||||||
dataList.stream().forEach(i->{
|
dataList.stream().forEach(i->{
|
||||||
if(users.contains(i.get("resourceId"))){
|
if(users.contains(i.get("resourceId"))){
|
||||||
List<Date> qqDate = new ArrayList<>();
|
List<Date> qqDate = new ArrayList<>();
|
||||||
|
List<Date> restDate = new ArrayList<>();
|
||||||
attDateList.stream().forEach(a -> {
|
attDateList.stream().forEach(a -> {
|
||||||
Object o = i.get(sdf.format(a));
|
Object o = i.get(sdf.format(a));
|
||||||
// baseBean.writeLog("i.get(sdf.format(a)) o:"+o);
|
// baseBean.writeLog("i.get(sdf.format(a)) o:"+o);
|
||||||
|
|
@ -99,9 +100,15 @@ public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements
|
||||||
qqDate.add(a);
|
qqDate.add(a);
|
||||||
// baseBean.writeLog(attCal+"缺勤");
|
// baseBean.writeLog(attCal+"缺勤");
|
||||||
}
|
}
|
||||||
|
if( attCal.contains("休息") ){
|
||||||
|
// 记录休息日期(用于后续判断公共节假日)
|
||||||
|
restDate.add(a);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
String qqStr = i.get("resourceId") +"-qq";
|
String qqStr = i.get("resourceId") +"-qq";
|
||||||
qqDays.put(qqStr,qqDate);
|
qqDays.put(qqStr,qqDate);
|
||||||
|
String restStr = i.get("resourceId") +"-rest";
|
||||||
|
qqDays.put(restStr,restDate);
|
||||||
String gwhgStr = i.get("resourceId") + "-gwhg";
|
String gwhgStr = i.get("resourceId") + "-gwhg";
|
||||||
if(!gwhgDataIndex[0].equals("")){
|
if(!gwhgDataIndex[0].equals("")){
|
||||||
gwhgS[0] = (String) i.get(gwhgDataIndex[0]);
|
gwhgS[0] = (String) i.get(gwhgDataIndex[0]);
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build();
|
Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build();
|
||||||
Map<String, Object> kqDatas = GetKQ4OverseasAllowanceCountService().getKQDatas(build,users);
|
Map<String, Object> kqDatas = GetKQ4OverseasAllowanceCountService().getKQDatas(build,users);
|
||||||
baseBean.writeLog("调用考勤接口获取公务回国天数 及 缺勤日期:"+kqDatas);
|
baseBean.writeLog("调用考勤接口获取公务回国天数 及 缺勤日期:"+kqDatas);
|
||||||
|
// 处理国内应出勤,国内天数-休息天数
|
||||||
|
handleGnycq(results,kqDatas);
|
||||||
// 获取员工公务回国国内工作日天数
|
// 获取员工公务回国国内工作日天数
|
||||||
Map<Integer, List<JwCZInfoDetail>> gwhgInfos = getOverseasAllowanceDAO().getGwhg();
|
Map<Integer, List<JwCZInfoDetail>> gwhgInfos = getOverseasAllowanceDAO().getGwhg();
|
||||||
baseBean.writeLog("获取年假建模中所有公务回国信息,共:"+gwhgInfos.size());
|
baseBean.writeLog("获取年假建模中所有公务回国信息,共:"+gwhgInfos.size());
|
||||||
|
|
@ -94,6 +96,44 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
baseBean.writeLog("将结果插入建模表中");
|
baseBean.writeLog("将结果插入建模表中");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理国内应出勤,国内天数-休息天数
|
||||||
|
* @param results
|
||||||
|
* @param kqDatas
|
||||||
|
*/
|
||||||
|
private void handleGnycq(List<JWJT> results, Map<String, Object> kqDatas) {
|
||||||
|
results.stream().forEach(item -> {
|
||||||
|
List<JKDQBT> czList = item.getJkdqbts().stream().filter(jkdqbt -> Objects.equals(jkdqbt.getLx(), 0) || Objects.equals(jkdqbt.getLx(), 1)).collect(Collectors.toList());
|
||||||
|
List<Date> restDates =(List<Date>) kqDatas.get(item.getUser() + "-rest");
|
||||||
|
if(restDates != null && restDates.size() > 0){
|
||||||
|
int gnRestDays = 0;
|
||||||
|
boolean[] flag = {false};
|
||||||
|
for(Date d : restDates){
|
||||||
|
flag[0] = false;
|
||||||
|
czList.stream().forEach(cz -> {
|
||||||
|
if(Objects.equals(cz.getLx(),0)){
|
||||||
|
if(d.after(cz.getJkdqKssj()) || cz.getJkdqKssj().equals(d)){
|
||||||
|
// 是国外休息
|
||||||
|
flag[0] = true;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
// 结束常驻
|
||||||
|
if( BjcjCommonUtils.isBetween(d, cz.getJkdqKssj(), cz.getJkdqJssj()) ){
|
||||||
|
// 是国外休息
|
||||||
|
flag[0] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if(flag[0] == false){
|
||||||
|
gnRestDays++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.setGngzts( item.getGngzts() -gnRestDays );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-?)
|
* @description 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-?)
|
||||||
* @return void
|
* @return void
|
||||||
|
|
@ -274,11 +314,11 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
ycq[0]++;
|
ycq[0]++;
|
||||||
aCal.add(Calendar.DATE, -1);
|
aCal.add(Calendar.DATE, -1);
|
||||||
} else {
|
} else {
|
||||||
// 没有境外记录,判断是否是工作日
|
// 没有境外记录,判断是否是工作日(需考虑节假日)
|
||||||
if ((aCal.get(Calendar.DAY_OF_WEEK) != 1) && (aCal.get(Calendar.DAY_OF_WEEK) != 7)) {
|
// if ((aCal.get(Calendar.DAY_OF_WEEK) != 1) && (aCal.get(Calendar.DAY_OF_WEEK) != 7)) {
|
||||||
// 是工作日
|
// 是工作日
|
||||||
gnycq[0]++;
|
gnycq[0]++;
|
||||||
}
|
// }
|
||||||
aCal.add(Calendar.DATE, -1);
|
aCal.add(Calendar.DATE, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -321,6 +361,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
double gnQqDays=0.0;
|
double gnQqDays=0.0;
|
||||||
double jwQqDays=0.0;
|
double jwQqDays=0.0;
|
||||||
// 判断是境内缺勤还是境外缺勤
|
// 判断是境内缺勤还是境外缺勤
|
||||||
|
ArrayList<Date> t = new ArrayList<>();
|
||||||
List<JwCZInfoDetail> jwCZInfoDetails = czInfos.get(item.getUser());
|
List<JwCZInfoDetail> jwCZInfoDetails = czInfos.get(item.getUser());
|
||||||
if(jwCZInfoDetails != null && jwCZInfoDetails.size()>0){
|
if(jwCZInfoDetails != null && jwCZInfoDetails.size()>0){
|
||||||
for(Date d : qqDate){
|
for(Date d : qqDate){
|
||||||
|
|
@ -350,6 +391,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
if(detail.getJwczjsrq().before(d)){
|
if(detail.getJwczjsrq().before(d)){
|
||||||
// 境外常驻结束日期在缺勤日前
|
// 境外常驻结束日期在缺勤日前
|
||||||
gnQqDays++;
|
gnQqDays++;
|
||||||
|
t.add(d);
|
||||||
flag=true;
|
flag=true;
|
||||||
}
|
}
|
||||||
if(BjcjCommonUtils.isBetween(d,detail.getJwczksrq(),detail.getJwczjsrq())){
|
if(BjcjCommonUtils.isBetween(d,detail.getJwczksrq(),detail.getJwczjsrq())){
|
||||||
|
|
@ -360,6 +402,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
}
|
}
|
||||||
if( (i+1 == jwCZInfoDetails.size()) && (flag == false)){
|
if( (i+1 == jwCZInfoDetails.size()) && (flag == false)){
|
||||||
gnQqDays++;
|
gnQqDays++;
|
||||||
|
t.add(d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -369,7 +412,6 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
item.setGwhg((Double) kqDatas.get(item.getUser()+"-gwhg"));
|
item.setGwhg((Double) kqDatas.get(item.getUser()+"-gwhg"));
|
||||||
}
|
}
|
||||||
item.setJwscq(item.getJwycq()-item.getJwQq()-item.getGwhg());
|
item.setJwscq(item.getJwycq()-item.getJwQq()-item.getGwhg());
|
||||||
|
|
||||||
item.setGnscq(item.getGngzts() - item.getGnQq());
|
item.setGnscq(item.getGngzts() - item.getGnQq());
|
||||||
item.setJwjt(item.getJwscq()*item.getJwjtbz());
|
item.setJwjt(item.getJwscq()*item.getJwjtbz());
|
||||||
if(validGwhgAndCountWorkdays.containsKey(Integer.valueOf(item.getUser()))){
|
if(validGwhgAndCountWorkdays.containsKey(Integer.valueOf(item.getUser()))){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue