处理艰苦地区-缺勤-公务回国
This commit is contained in:
parent
6b1d6dd49f
commit
3eb5e5861c
|
|
@ -70,13 +70,16 @@ public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements
|
||||||
countBeginCal.setTime(attend4MonthBonus.getBeginDate());
|
countBeginCal.setTime(attend4MonthBonus.getBeginDate());
|
||||||
Calendar countEndCal = Calendar.getInstance();
|
Calendar countEndCal = Calendar.getInstance();
|
||||||
countEndCal.setTime(attend4MonthBonus.getEndDate());
|
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<>();
|
List<Date> attDateList = new ArrayList<>();
|
||||||
while (countEndCal.after(countBeginCal) || countEndCal.getTime().equals(countBeginCal.getTime())){
|
while (countEndCal.after(countBeginCal) || countEndCal.getTime().equals(countBeginCal.getTime())){
|
||||||
attDateList.add(countEndCal.getTime());
|
attDateList.add(countEndCal.getTime());
|
||||||
countEndCal.add(Calendar.DATE,-1);
|
countEndCal.add(Calendar.DATE,-1);
|
||||||
}
|
}
|
||||||
baseBean.writeLog("获取缺勤日期为:"+attDateList);
|
baseBean.writeLog("获取缺勤日期为:"+attDateList);
|
||||||
// baseBean.writeLog("dataList:"+dataList);
|
|
||||||
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<>();
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,10 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void countOverseasAllowance(Calendar countCal) {
|
public void countOverseasAllowance(Calendar countCal) {
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
countCal.set(Calendar.MONTH,9);
|
||||||
|
|
||||||
// 境外津贴包含:境外津贴(天标准)+境外工龄补贴(月标准)+艰苦地区补贴(天标准)
|
// 境外津贴包含:境外津贴(天标准)+境外工龄补贴(月标准)+艰苦地区补贴(天标准)
|
||||||
// 考勤开始日期
|
// 考勤开始日期
|
||||||
Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime());
|
Calendar startAttendanceCal = BjcjCommonUtils.getStartAttendanceCal(countCal.getTime());
|
||||||
|
|
@ -82,8 +86,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
baseBean.writeLog("第三国出差(2)、境外国内出差(3)艰苦地区补贴:"+dsgccJkdq);
|
baseBean.writeLog("第三国出差(2)、境外国内出差(3)艰苦地区补贴:"+dsgccJkdq);
|
||||||
// 封装第三国出差数、境外国内出差据到result中
|
// 封装第三国出差数、境外国内出差据到result中
|
||||||
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
|
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
|
||||||
// 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-?)
|
// 处理艰苦地区补贴天数(境外常驻补贴天数=境外实出勤-第三国出差-境外国内出差)
|
||||||
handleJkdqDays(results);
|
handleJkdqDays(results, kqDatas, gwhgInfos);
|
||||||
// 计算艰苦地区补贴合计
|
// 计算艰苦地区补贴合计
|
||||||
coutJkdqbthj(results);
|
coutJkdqbthj(results);
|
||||||
// 四项补贴合计(天标准)*(公务回国工作日天数+国内工作日天数)
|
// 四项补贴合计(天标准)*(公务回国工作日天数+国内工作日天数)
|
||||||
|
|
@ -100,7 +104,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/12/23 18:04
|
* @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 -> {
|
results.forEach(result -> {
|
||||||
// 获取境外常驻的艰苦地区 和 第三国出差及境外国内出差的艰苦地区
|
// 获取境外常驻的艰苦地区 和 第三国出差及境外国内出差的艰苦地区
|
||||||
ArrayList<JKDQBT> dsgAndJwgncc = new ArrayList<>();
|
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()){
|
for(Map.Entry<Integer,List<JwCZInfoDetail>> entrySet : gwhgInfos.entrySet()){
|
||||||
List<JwCZInfoDetail> values = entrySet.getValue();
|
List<JwCZInfoDetail> values = entrySet.getValue();
|
||||||
values.stream().forEach(value ->{
|
values.stream().forEach(value ->{
|
||||||
|
// TODO
|
||||||
|
if(entrySet.getKey().equals(109)){
|
||||||
|
System.out.println("-");
|
||||||
|
}
|
||||||
if( (value.getJwczksrq().before(endAttendance) || value.getJwczksrq().equals(endAttendance))
|
if( (value.getJwczksrq().before(endAttendance) || value.getJwczksrq().equals(endAttendance))
|
||||||
&& (value.getJwczjsrq().after(startAttendance) || value.getJwczjsrq().equals(startAttendance)) ){
|
&& (value.getJwczjsrq().after(startAttendance) || value.getJwczjsrq().equals(startAttendance)) ){
|
||||||
// 在考勤周期内的公务回国,计算国内工作天数
|
// 在考勤周期内的公务回国,计算国内工作天数
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue