0926PM-3
This commit is contained in:
parent
0e595ee21c
commit
6e18c94aaf
|
|
@ -1,7 +1,14 @@
|
||||||
package com.engine.bjcj220907.dao;
|
package com.engine.bjcj220907.dao;
|
||||||
|
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
import weaver.general.BaseBean;
|
import weaver.general.BaseBean;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/09/26 14:10
|
* @date 2022/09/26 14:10
|
||||||
|
|
@ -12,6 +19,48 @@ public class OverseasAllowanceDAO {
|
||||||
BaseBean baseBean = new BaseBean();
|
BaseBean baseBean = new BaseBean();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 计算考勤所属月员工的薪酬等级
|
||||||
|
* @return Map<String,String>
|
||||||
|
* @author Harryxzy
|
||||||
|
* @date 2022/9/26 17:43
|
||||||
|
*/
|
||||||
|
public Map<String, String> getXCDJByUsers(List<String> users,Calendar endAttendanceCal) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
StringBuilder sb =new StringBuilder();
|
||||||
|
if(users != null && users.size()>0){
|
||||||
|
sb = new StringBuilder("select z.xm,z.gj,z.xd,z.sxrq,d.xcdj,jxgz from uf_xczjbd z LEFT JOIN uf_xcdj d on d.gj=z.gj and d.xd=z.xd WHERE xm IN ( ");
|
||||||
|
for(int i=0;i<users.size();i++){
|
||||||
|
sb.append(users.get(i));
|
||||||
|
if(i+1 != users.size()){
|
||||||
|
sb.append(" , ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(" ) order by sxrq desc");
|
||||||
|
}
|
||||||
|
rs.execute(sb.toString());
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
while (rs.next()){
|
||||||
|
try {
|
||||||
|
Date sxrq = sdf.parse(rs.getString("SXRQ"));
|
||||||
|
if(sxrq.before(endAttendanceCal.getTime())){
|
||||||
|
double jxgz = rs.getDouble("jxgz");
|
||||||
|
if(Math.abs(jxgz + 1.0) < 0.000000002){
|
||||||
|
jxgz=0.0;
|
||||||
|
}
|
||||||
|
// result.setYdjjjxjs(jxgz);
|
||||||
|
// result.setXcdj(rs.getString("xcdj"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
baseBean.writeLog("计算考勤所属月员工的薪酬等级中日期parse失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 判断月度绩效核算表中是否有该月数据
|
* @description 判断月度绩效核算表中是否有该月数据
|
||||||
* @return void
|
* @return void
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.engine.bjcj220907.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Harryxzy
|
||||||
|
* @date 2022/09/26 17:19
|
||||||
|
* @description 境外津贴
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class JWJT {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 境外津贴
|
||||||
|
*/
|
||||||
|
private String user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应出勤天数
|
||||||
|
*/
|
||||||
|
private double ycq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 薪酬等级
|
||||||
|
*/
|
||||||
|
private String xcdj;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 境外津贴标准
|
||||||
|
*/
|
||||||
|
private double jwjtbz;
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.engine.bjcj220907.service;
|
package com.engine.bjcj220907.service;
|
||||||
|
|
||||||
|
import com.engine.bjcj220907.entity.JWJT;
|
||||||
import com.engine.bjcj220907.entity.JwCZInfo;
|
import com.engine.bjcj220907.entity.JwCZInfo;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
@ -26,6 +27,6 @@ public interface OverseasAllowanceCountService {
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/9/26 16:29
|
* @date 2022/9/26 16:29
|
||||||
*/
|
*/
|
||||||
List<JwCZInfo> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal);
|
List<JWJT> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
package com.engine.bjcj220907.service.impl;
|
package com.engine.bjcj220907.service.impl;
|
||||||
|
|
||||||
import com.engine.bjcj220907.dao.MonthBonusDAO;
|
import com.engine.bjcj220907.dao.MonthBonusDAO;
|
||||||
|
import com.engine.bjcj220907.dao.OverseasAllowanceDAO;
|
||||||
|
import com.engine.bjcj220907.entity.JWJT;
|
||||||
import com.engine.bjcj220907.entity.JwCZInfo;
|
import com.engine.bjcj220907.entity.JwCZInfo;
|
||||||
import com.engine.bjcj220907.entity.JwCZInfoDetail;
|
import com.engine.bjcj220907.entity.JwCZInfoDetail;
|
||||||
import com.engine.bjcj220907.service.OverseasAllowanceCountService;
|
import com.engine.bjcj220907.service.OverseasAllowanceCountService;
|
||||||
import com.engine.bjcj220907.utils.BjcjCommonUtils;
|
import com.engine.bjcj220907.utils.BjcjCommonUtils;
|
||||||
import weaver.general.BaseBean;
|
import weaver.general.BaseBean;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -23,6 +27,10 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
||||||
public MonthBonusDAO getMonthBonusDAO(){
|
public MonthBonusDAO getMonthBonusDAO(){
|
||||||
return new MonthBonusDAO();
|
return new MonthBonusDAO();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OverseasAllowanceDAO getOverseasAllowanceDAO(){
|
||||||
|
return new OverseasAllowanceDAO();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 计算境外津贴
|
* @description 计算境外津贴
|
||||||
* @return void
|
* @return void
|
||||||
|
|
@ -45,11 +53,11 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
||||||
Calendar endAttendanceCal = BjcjCommonUtils.getEndAttendanceCal(countCal.getTime());
|
Calendar endAttendanceCal = BjcjCommonUtils.getEndAttendanceCal(countCal.getTime());
|
||||||
baseBean.writeLog("将境外常驻信息格式化");
|
baseBean.writeLog("将境外常驻信息格式化");
|
||||||
// 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数
|
// 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数
|
||||||
jwCZInfos = getCZInfosAndCZDays(jwCZInfos,startAttendanceCal,endAttendanceCal);
|
List<JWJT> results = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal);
|
||||||
//
|
baseBean.writeLog("如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数:"+results.size());
|
||||||
|
// 计算考勤所属月员工的薪酬等级
|
||||||
|
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
|
||||||
|
Map<String,String> usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,endAttendanceCal);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -58,8 +66,9 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
||||||
* @author Harryxzy
|
* @author Harryxzy
|
||||||
* @date 2022/9/26 16:29
|
* @date 2022/9/26 16:29
|
||||||
*/
|
*/
|
||||||
public List<JwCZInfo> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal){
|
public List<JWJT> getCZInfosAndCZDays(List<JwCZInfo> jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal){
|
||||||
List<JwCZInfo> collect = jwCZInfos.stream().filter(czInfo -> {
|
ArrayList<JWJT> results = new ArrayList<>();
|
||||||
|
jwCZInfos.stream().filter(czInfo -> {
|
||||||
List<JwCZInfoDetail> czDetails = czInfo.getInfos();
|
List<JwCZInfoDetail> czDetails = czInfo.getInfos();
|
||||||
// 用于存储计算到哪一天的日期
|
// 用于存储计算到哪一天的日期
|
||||||
Calendar c = Calendar.getInstance();
|
Calendar c = Calendar.getInstance();
|
||||||
|
|
@ -82,6 +91,8 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
||||||
// 开始常驻日期在 考勤开始日期前(应出勤日期为自然日)
|
// 开始常驻日期在 考勤开始日期前(应出勤日期为自然日)
|
||||||
int days = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime());
|
int days = BjcjCommonUtils.getDays(startAttendanceCal.getTime(), endAttendanceCal.getTime());
|
||||||
czInfo.setYczDays(days);
|
czInfo.setYczDays(days);
|
||||||
|
JWJT build = JWJT.builder().user(czInfo.getXm()).ycq(days).build();
|
||||||
|
results.add(build);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -107,12 +118,14 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
||||||
if (i == czDetails.size() - 1 && flag[0] == true) {
|
if (i == czDetails.size() - 1 && flag[0] == true) {
|
||||||
// 已计算出应出勤天数
|
// 已计算出应出勤天数
|
||||||
czInfo.setYczDays(ycq[0]);
|
czInfo.setYczDays(ycq[0]);
|
||||||
|
JWJT build = JWJT.builder().user(czInfo.getXm()).ycq(ycq[0]).build();
|
||||||
|
results.add(build);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).collect(Collectors.toList());
|
});
|
||||||
return collect;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue