处理艰苦地区补贴天数

This commit is contained in:
Harryxzy 2022-12-23 21:08:34 +08:00
parent 5a09b065d4
commit 6b1d6dd49f
4 changed files with 56 additions and 9 deletions

View File

@ -223,7 +223,7 @@ public class OverseasAllowanceDAO {
"jwyczts,jwsjczts,qjtscgs,gwhgts,gwhggzrts,jwjtje,jkdqbtje,jwgl,jwglbtje,sxbtje,jwjtjehj,ffyf)" +
"values('"+fieldValue+"','1','0','"+currDate+"','"+currTime+"',"+result.getUser()+","+result.getGngzts()+","+result.getGnscq()+",'"+result.getSfzh()+"','"+result.getXcdj()+"'," +
result.getJwjtbz()+","+result.getJwglbtybz()+","+result.getJwglbtrbz()+","+result.getSxbzhjbz()+",'"+sdf2.format(result.getKqMonth())+"'," +result.getJwycq()+","+result.getJwscq()+"," +
(gnQq+jwQq)+","+result.getGwhg()+","+result.getGwhgWorkdays()+","+result.getJwjt()+","+result.getJkdqbthj()+","+result.getJwgl()+","+result.getJwycq()*result.getJwglbtrbz() +"," +
(gnQq+jwQq)+","+result.getGwhg()+","+result.getGwhgWorkdays()+","+result.getJwjt()+","+result.getJkdqbthj()+","+result.getJwgl()+","+result.getJwscq()*result.getJwglbtrbz() +"," +
result.getSxbzhj()+","+(result.getJwjt()+result.getJwycq()*result.getJwglbtrbz()+result.getJkdqbthj())+",'"+sdf2.format(sendMonthCal.getTime())+"')";
rs.execute(sql);
String sql2 = "select max(id) as id from uf_jwcz";

View File

@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author Harryxzy
* @date 2022/09/28 15:58
@ -40,4 +42,14 @@ public class JKDQBT {
* 艰苦地区补贴总和
*/
private double jkdqbt;
/**
* 艰苦地区开始时间
*/
private Date jkdqKssj;
/**
* 艰苦地区结束时间
*/
private Date jkdqJssj;
}

View File

@ -76,15 +76,17 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
// 封装计算薪酬等级境外津贴标准考勤天数四项补助合计公务回国国内工作日天数
getXcdjAndJwjtbz(results,usersXCDJ,kqDatas,validGwhgAndCountWorkdays,jwCZInfos);
baseBean.writeLog("封装薪酬等级、境外津贴标准、考勤天数、境外实际常驻天数并计算实出勤天数、境外津贴,共:"+results.size());
// 处理第三国出差(2)境外国内出差3艰苦地区补贴
// 处理第三国出差(2)境外国内出差3艰苦地区补贴
Map<Integer, List<JwCZInfoDetail>> dsgccJkdq = getOverseasAllowanceDAO().getDsgcc();
baseBean.writeLog("获取第三国出差(2)、境外国内出差3艰苦地区补贴,共:"+dsgccJkdq.size());
baseBean.writeLog("第三国出差(2)、境外国内出差3艰苦地区补贴:"+dsgccJkdq);
// 封装第三国出差数境外国内出差据到result中
getDsgcc(results,dsgccJkdq,startAttendanceCal.getTime(),endAttendanceCal.getTime());
// 处理艰苦地区补贴天数境外常驻补贴天数=境外实出勤-第三国出差-
handleJkdqDays(results);
// 计算艰苦地区补贴合计
coutJkdqbthj(results);
// 四项补贴合计天标准*公务回国工作日天数+境外国内出差工作日天数+国内工作日天数
// 四项补贴合计天标准*公务回国工作日天数+国内工作日天数
countSxbthj(results);
baseBean.writeLog("计算四项补贴合计:"+results.size());
// 将结果插入建模表中
@ -92,6 +94,39 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
baseBean.writeLog("将结果插入建模表中");
}
/**
* @description 处理艰苦地区补贴天数境外常驻补贴天数=境外实出勤-第三国出差-
* @return void
* @author Harryxzy
* @date 2022/12/23 18:04
*/
private void handleJkdqDays(List<JWJT> results) {
results.forEach(result -> {
// 获取境外常驻的艰苦地区 第三国出差及境外国内出差的艰苦地区
ArrayList<JKDQBT> dsgAndJwgncc = new ArrayList<>();
List<JKDQBT> jwcc = result.getJkdqbts().stream().filter(j -> {
if (Objects.equals(j.getLx(), 0) || Objects.equals(j.getLx(), 1)) {
return true;
} else {
dsgAndJwgncc.add(j);
return false;
}
}).collect(Collectors.toList());
if( dsgAndJwgncc.size() > 0 ){
// 常驻期内存在第三国出差或境外国内出差
dsgAndJwgncc.stream().forEach(dsg -> {
jwcc.stream().forEach(cc -> {
if(BjcjCommonUtils.isBetween(dsg.getJkdqKssj(), cc.getJkdqKssj(), cc.getJkdqJssj())){
cc.setDays(cc.getDays()-dsg.getDays());
cc.setJkdqbt(cc.getDays() * cc.getJkdqbtbz());
}
});
});
}
});
}
/**
* @description 计算艰苦地区补贴合计
* @return void
@ -140,7 +175,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
// 存入常驻天数用于计算艰苦地区补贴
// 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()).jkdqbt((days*detail.getJkdqbtbz())).build();
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).jkdqbt((days*detail.getJkdqbtbz())).jkdqKssj(detail.getJwczksrq()).jkdqJssj( endAttendanceCal.getTime()).build();
jkdqbts.add(jk);
} else {
// 开始常驻日期在 考勤开始日期前应出勤日期为自然日
@ -148,7 +183,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
// 存入常驻天数用于计算艰苦地区补贴
// 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()).jkdqbt((days*detail.getJkdqbtbz())).build();
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).jkdqbt((days*detail.getJkdqbtbz())).jkdqKssj(startAttendanceCal.getTime()).jkdqJssj( endAttendanceCal.getTime()).build();
JWJT build = JWJT.builder().user(czInfo.getXm()).sfzh(czInfo.getSfzh()).jwycq(days).gngzts(0.0).kqMonth(endAttendanceCal.getTime()).jwgl(czInfo.getJsglts()).jwglbtybz(czInfo.getGlbtybz()).jwglbtrbz(czInfo.getGlbtrbz()).build();
ArrayList<JKDQBT> jkdqbtList = new ArrayList<>();
jkdqbtList.add(jk);
@ -181,7 +216,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
}
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()).jkdqbt((days*detail.getJkdqbtbz())).build();
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).jkdqbt((days*detail.getJkdqbtbz())).jkdqbt((days*detail.getJkdqbtbz())).jkdqKssj(countStartCal.getTime()).jkdqJssj( countEndCal.getTime()).build();
jkdqbts.add(jk);
}
if (i == czDetails.size() - 1) {
@ -360,7 +395,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
countEndCal.setTime(endAttendance);
}
int days = BjcjCommonUtils.getDays(countStartCal.getTime(), countEndCal.getTime());
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqbtbz(detail.getJkdqbtbz()).jkdqbt((days * detail.getJkdqbtbz())).build();
JKDQBT jk = JKDQBT.builder().lx(detail.getLx()).days(days).jkdq(detail.getJkdq()).jkdqKssj(countStartCal.getTime()).jkdqJssj(countEndCal.getTime()).jkdqbtbz(detail.getJkdqbtbz()).jkdqbt((days * detail.getJkdqbtbz())).build();
jwjt.getJkdqbts().add(jk);
}
}

View File

@ -7,10 +7,10 @@
<map>
<entry key="com.zeroturnaround.jrebel.FormatVersion" value="7.0.0" />
<entry key="jrebelEnabled" value="true" />
<entry key="lastExternalPluginCheckTime" value="1666149205549" />
<entry key="lastExternalPluginCheckTime" value="1669881081342" />
</map>
</option>
<option name="version" value="5" />
<option name="version" value="10" />
</configuration>
</facet>
</component>