艰苦地区补贴-1
This commit is contained in:
parent
2ff05c2063
commit
33a1122a78
|
|
@ -1,5 +1,6 @@
|
||||||
package com.engine.bjcj220907.dao;
|
package com.engine.bjcj220907.dao;
|
||||||
|
|
||||||
|
import com.engine.bjcj220907.entity.JKDQBT;
|
||||||
import com.engine.bjcj220907.entity.JwCZInfoDetail;
|
import com.engine.bjcj220907.entity.JwCZInfoDetail;
|
||||||
import com.engine.bjcj220907.entity.XcdjJwjtParam;
|
import com.engine.bjcj220907.entity.XcdjJwjtParam;
|
||||||
import weaver.conn.RecordSet;
|
import weaver.conn.RecordSet;
|
||||||
|
|
@ -26,8 +27,10 @@ public class OverseasAllowanceDAO {
|
||||||
*/
|
*/
|
||||||
public List<JwCZInfoDetail> getCZInfo() {
|
public List<JwCZInfoDetail> getCZInfo() {
|
||||||
RecordSet rs = new RecordSet();
|
RecordSet rs = new RecordSet();
|
||||||
String sql="select xm,jwgzksrq,jwgzjsrq,lx,jsglts,btbz " +
|
//TODO 修改sqluf_bjcjtestgl
|
||||||
|
String sql="select xm,jwgzksrq,jwgzjsrq,lx,jsglts,g.btbz,jwgzdw1, a.btbz dqbtbz " +
|
||||||
"from UF_NJJMB_DT1 d LEFT JOIN UF_NJJMB m on d.MAINID=m.id " +
|
"from UF_NJJMB_DT1 d LEFT JOIN UF_NJJMB m on d.MAINID=m.id " +
|
||||||
|
"LEFT JOIN UF_DQBTBZ a on d.jwgzdw1=a.id "+
|
||||||
"LEFT JOIN uf_bjcjtestgl g on g.jwgl=case when floor(jsglts/365)>5 then 5 else floor(jsglts/365) end " +
|
"LEFT JOIN uf_bjcjtestgl g on g.jwgl=case when floor(jsglts/365)>5 then 5 else floor(jsglts/365) end " +
|
||||||
"WHERE lx in(0,1) " +
|
"WHERE lx in(0,1) " +
|
||||||
"ORDER by JWGZKSRQ desc";
|
"ORDER by JWGZKSRQ desc";
|
||||||
|
|
@ -42,6 +45,11 @@ public class OverseasAllowanceDAO {
|
||||||
Date jwgzjsrq=null;
|
Date jwgzjsrq=null;
|
||||||
double jsglts = rs.getDouble("jsglts");
|
double jsglts = rs.getDouble("jsglts");
|
||||||
double btbz = rs.getDouble("btbz");
|
double btbz = rs.getDouble("btbz");
|
||||||
|
String jwgzdw1 = rs.getString("JWGZDW1");
|
||||||
|
double dqbtbz = rs.getDouble("DQBTBZ");
|
||||||
|
if(dqbtbz == -1){
|
||||||
|
dqbtbz =0.0;
|
||||||
|
}
|
||||||
if(btbz == -1){
|
if(btbz == -1){
|
||||||
// 境外工龄未满1年
|
// 境外工龄未满1年
|
||||||
btbz=0.0;
|
btbz=0.0;
|
||||||
|
|
@ -52,6 +60,9 @@ public class OverseasAllowanceDAO {
|
||||||
if(jwgzjsrqStr!=null && jwgzjsrqStr.length()!=0){
|
if(jwgzjsrqStr!=null && jwgzjsrqStr.length()!=0){
|
||||||
jwgzjsrq = sdf.parse(jwgzjsrqStr);
|
jwgzjsrq = sdf.parse(jwgzjsrqStr);
|
||||||
}
|
}
|
||||||
|
// 如果lx=0则补助天数为 自然日 lx=1 补助天数为区间间隔
|
||||||
|
|
||||||
|
JKDQBT.builder().lx(rs.getInt("lx")).jkdqbtbz(dqbtbz).jkdq(Integer.valueOf(jwgzdw1)).build();
|
||||||
JwCZInfoDetail build = JwCZInfoDetail.builder().xm(rs.getString("xm")).lx(rs.getInt("lx")).jwczksrq(jwgzksrq).jwczjsrq(jwgzjsrq).jsglts(jsglts).glbtybz(btbz).build();
|
JwCZInfoDetail build = JwCZInfoDetail.builder().xm(rs.getString("xm")).lx(rs.getInt("lx")).jwczksrq(jwgzksrq).jwczjsrq(jwgzjsrq).jsglts(jsglts).glbtybz(btbz).build();
|
||||||
results.add(build);
|
results.add(build);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.engine.bjcj220907.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Harryxzy
|
||||||
|
* @date 2022/09/28 15:58
|
||||||
|
* @description 艰苦地区补助
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class JKDQBT {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 天数
|
||||||
|
*/
|
||||||
|
private double days;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型 0:开始常驻
|
||||||
|
*/
|
||||||
|
private Integer lx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 艰苦地区补贴标准(天标准)
|
||||||
|
*/
|
||||||
|
private double jkdqbtbz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 艰苦地区
|
||||||
|
*/
|
||||||
|
private Integer jkdq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 艰苦地区补贴总和
|
||||||
|
*/
|
||||||
|
private double jkdqbt;
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
|
|
@ -88,8 +89,16 @@ public class JWJT {
|
||||||
*/
|
*/
|
||||||
private double jwgl;
|
private double jwgl;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 艰苦地区补贴总和
|
||||||
|
*/
|
||||||
|
private double jkdqbtzh;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 艰苦地区补贴
|
* 艰苦地区补贴
|
||||||
*/
|
*/
|
||||||
|
private List<JKDQBT> jkdqbts;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package com.engine.bjcj220907.entity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Harryxzy
|
|
||||||
* @date 2022/09/28 15:58
|
|
||||||
* @description
|
|
||||||
*/
|
|
||||||
public class jkdqbt {
|
|
||||||
}
|
|
||||||
|
|
@ -27,6 +27,6 @@ public interface OverseasAllowanceCountService {
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/9/26 16:29
|
* @date 2022/9/26 16:29
|
||||||
*/
|
*/
|
||||||
List<JWJT> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal);
|
List<JwCZInfo> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal,List<JWJT> results);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
|
|
||||||
BaseBean baseBean = new BaseBean();
|
BaseBean baseBean = new BaseBean();
|
||||||
|
|
||||||
|
|
||||||
public MonthBonusDAO getMonthBonusDAO(){
|
public MonthBonusDAO getMonthBonusDAO(){
|
||||||
return new MonthBonusDAO();
|
return new MonthBonusDAO();
|
||||||
}
|
}
|
||||||
|
|
@ -56,7 +57,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
List<JwCZInfo> jwCZInfos = formatJwCZInfo(czInfos,startAttendanceCal,endAttendanceCal);
|
List<JwCZInfo> jwCZInfos = formatJwCZInfo(czInfos,startAttendanceCal,endAttendanceCal);
|
||||||
baseBean.writeLog("将境外常驻信息格式化");
|
baseBean.writeLog("将境外常驻信息格式化");
|
||||||
// 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数
|
// 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数
|
||||||
List<JWJT> results = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal);
|
List<JWJT> results = new ArrayList<>();
|
||||||
|
jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results);
|
||||||
baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size());
|
baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size());
|
||||||
// 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准
|
// 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准
|
||||||
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
|
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
|
||||||
|
|
@ -82,16 +84,15 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/9/26 16:29
|
* @date 2022/9/26 16:29
|
||||||
*/
|
*/
|
||||||
public List<JWJT> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal){
|
public List<JwCZInfo> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal,List<JWJT> results ){
|
||||||
ArrayList<JWJT> results = new ArrayList<>();
|
List<JwCZInfo> collect = jwCZInfos.stream().filter(czInfo -> {
|
||||||
jwCZInfos.stream().filter(czInfo -> {
|
|
||||||
List<JwCZInfoDetail> czDetails = czInfo.getInfos();
|
List<JwCZInfoDetail> czDetails = czInfo.getInfos();
|
||||||
// 用于存储计算到哪一天的日期
|
// 用于存储计算到哪一天的日期
|
||||||
Calendar c = Calendar.getInstance();
|
Calendar c = Calendar.getInstance();
|
||||||
c.setTime(endAttendanceCal.getTime());
|
c.setTime(endAttendanceCal.getTime());
|
||||||
Calendar[] countDay = {c};
|
Calendar[] countDay = {c};
|
||||||
int[] ycq = {0};
|
int[] ycq = {0};
|
||||||
int[] gnycq ={0};
|
int[] gnycq = {0};
|
||||||
List<Date> details = new ArrayList<>();
|
List<Date> details = new ArrayList<>();
|
||||||
for (int i = 0; i < czDetails.size(); i++) {
|
for (int i = 0; i < czDetails.size(); i++) {
|
||||||
JwCZInfoDetail detail = czDetails.get(i);
|
JwCZInfoDetail detail = czDetails.get(i);
|
||||||
|
|
@ -131,22 +132,22 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
aCal.set(Calendar.MINUTE, 0);
|
aCal.set(Calendar.MINUTE, 0);
|
||||||
aCal.set(Calendar.SECOND, 0);
|
aCal.set(Calendar.SECOND, 0);
|
||||||
aCal.set(Calendar.MILLISECOND, 0);
|
aCal.set(Calendar.MILLISECOND, 0);
|
||||||
if(details.size()==0 && countDay[0].getTime().equals(endAttendanceCal.getTime())){
|
if (details.size() == 0 && countDay[0].getTime().equals(endAttendanceCal.getTime())) {
|
||||||
// 该考勤周期内员工没有境外常驻信息
|
// 该考勤周期内员工没有境外常驻信息
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
while (startAttendanceCal.getTime().before(aCal.getTime()) || startAttendanceCal.getTime().equals(aCal.getTime())){
|
while (startAttendanceCal.getTime().before(aCal.getTime()) || startAttendanceCal.getTime().equals(aCal.getTime())) {
|
||||||
if(details.contains(aCal.getTime())){
|
if (details.contains(aCal.getTime())) {
|
||||||
// 存在境外记录
|
// 存在境外记录
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JWJT build = JWJT.builder().user(czInfo.getXm()).jwycq(ycq[0]).gngzts(gnycq[0]).kqMonth(endAttendanceCal.getTime()).build();
|
JWJT build = JWJT.builder().user(czInfo.getXm()).jwycq(ycq[0]).gngzts(gnycq[0]).kqMonth(endAttendanceCal.getTime()).build();
|
||||||
|
|
@ -156,7 +157,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
return results;
|
return collect;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue