处理艰苦地区-缺勤-公务回国
This commit is contained in:
parent
6b1d6dd49f
commit
3eb5e5861c
|
|
@ -70,13 +70,16 @@ public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements
|
|||
countBeginCal.setTime(attend4MonthBonus.getBeginDate());
|
||||
Calendar countEndCal = Calendar.getInstance();
|
||||
countEndCal.setTime(attend4MonthBonus.getEndDate());
|
||||
countEndCal.set(Calendar.HOUR_OF_DAY, 0);
|
||||
countEndCal.set(Calendar.MINUTE, 0);
|
||||
countEndCal.set(Calendar.SECOND, 0);
|
||||
countEndCal.set(Calendar.MILLISECOND, 0);
|
||||
List<Date> attDateList = new ArrayList<>();
|
||||
while (countEndCal.after(countBeginCal) || countEndCal.getTime().equals(countBeginCal.getTime())){
|
||||
attDateList.add(countEndCal.getTime());
|
||||
countEndCal.add(Calendar.DATE,-1);
|
||||
}
|
||||
baseBean.writeLog("获取缺勤日期为:"+attDateList);
|
||||
// baseBean.writeLog("dataList:"+dataList);
|
||||
dataList.stream().forEach(i->{
|
||||
if(users.contains(i.get("resourceId"))){
|
||||
List<Date> qqDate = new ArrayList<>();
|
||||
|
|
|
|||
|
|
@ -42,6 +42,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
|||
*/
|
||||
@Override
|
||||
public void countOverseasAllowance(Calendar countCal) {
|
||||
//TODO
|
||||
|
||||
countCal.set(Calendar.MONTH,9);
|
||||
|
||||
// 境外津贴包含:境外津贴(天标准)+境外工龄补贴(月标准)+艰苦地区补贴(天标准)
|
||||
// 考勤开始日期
|
||||
Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime());
|
||||
|
|
@ -82,8 +86,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
|||
baseBean.writeLog("第三国出差(2)、境外国内出差(3)艰苦地区补贴:"+dsgccJkdq);
|
||||
// 封装第三国出差数、境外国内出差据到result中
|
||||
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
|
||||
// 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-?)
|
||||
handleJkdqDays(results);
|
||||
// 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-境外国内出差)
|
||||
handleJkdqDays(results, kqDatas, gwhgInfos);
|
||||
// 计算艰苦地区补贴合计
|
||||
coutJkdqbthj(results);
|
||||
// 四项补贴合计(天标准)*(公务回国工作日天数+国内工作日天数)
|
||||
|
|
@ -100,7 +104,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
|||
* @author Harryxzy
|
||||
* @date 2022/12/23 18:04
|
||||
*/
|
||||
private void handleJkdqDays(List<JWJT> results) {
|
||||
private void handleJkdqDays(List<JWJT> results, Map<String, Object> kqData, Map<Integer, List<JwCZInfoDetail>> gwhgInfos) {
|
||||
results.forEach(result -> {
|
||||
// 获取境外常驻的艰苦地区 和 第三国出差及境外国内出差的艰苦地区
|
||||
ArrayList<JKDQBT> dsgAndJwgncc = new ArrayList<>();
|
||||
|
|
@ -123,6 +127,43 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
|||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 缺勤List
|
||||
List<Date> qqDate = (List <Date>) kqData.get(result.getUser() + "-qq");
|
||||
// 公务回国List
|
||||
List<JwCZInfoDetail> gwhgList = gwhgInfos.get(new Integer(result.getUser()));
|
||||
if(result.getUser().equals("109")){
|
||||
System.out.println("-");
|
||||
}
|
||||
|
||||
// 减去缺勤、公务回国
|
||||
jwcc.stream().forEach(cc -> {
|
||||
Calendar countKs = Calendar.getInstance();
|
||||
countKs.setTime(cc.getJkdqKssj());
|
||||
Calendar countJs = Calendar.getInstance();
|
||||
countJs.setTime(cc.getJkdqJssj());
|
||||
while (countKs.before(countJs) || countJs.equals(countKs)){
|
||||
// 是否存在缺勤
|
||||
if(qqDate != null){
|
||||
if(qqDate.contains(countKs.getTime())){
|
||||
cc.setDays(cc.getDays()-1);
|
||||
}
|
||||
}
|
||||
if(gwhgList != null){
|
||||
gwhgList.stream().forEach(gwhg ->{
|
||||
boolean isBetween = BjcjCommonUtils.isBetween(countKs.getTime(), gwhg.getJwczksrq(), gwhg.getJwczjsrq());
|
||||
if(isBetween){
|
||||
// 常驻期间存在公务回国
|
||||
cc.setDays(cc.getDays()-1);
|
||||
}
|
||||
});
|
||||
}
|
||||
countKs.add(Calendar.DAY_OF_MONTH,1);
|
||||
}
|
||||
|
||||
cc.setJkdqbt(cc.getDays() * cc.getJkdqbtbz());
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -429,6 +470,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
|||
for(Map.Entry<Integer,List<JwCZInfoDetail>> entrySet : gwhgInfos.entrySet()){
|
||||
List<JwCZInfoDetail> values = entrySet.getValue();
|
||||
values.stream().forEach(value ->{
|
||||
// TODO
|
||||
if(entrySet.getKey().equals(109)){
|
||||
System.out.println("-");
|
||||
}
|
||||
if( (value.getJwczksrq().before(endAttendance) || value.getJwczksrq().equals(endAttendance))
|
||||
&& (value.getJwczjsrq().after(startAttendance) || value.getJwczjsrq().equals(startAttendance)) ){
|
||||
// 在考勤周期内的公务回国,计算国内工作天数
|
||||
|
|
|
|||
Loading…
Reference in New Issue