|
@@ -49,7 +49,12 @@ public class KYCDServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
|
|
private String opUserId;
|
|
private String opUserId;
|
|
|
|
|
|
//成都凯悦-年假(测试)
|
|
//成都凯悦-年假(测试)
|
|
- private static final String LEAVE_CODE = "609a84ed-54d4-4ecd-a44f-4c55b04c37ea";
|
|
|
|
|
|
+// private static final String LEAVE_CODE = "609a84ed-54d4-4ecd-a44f-4c55b04c37ea";
|
|
|
|
+
|
|
|
|
+ //成都凯越-年假
|
|
|
|
+ private static final String LEAVE_CODE = "f7e0de92-806f-457e-9aa1-c20b245d741e";
|
|
|
|
+
|
|
|
|
+
|
|
//体验社-成都年假测试
|
|
//体验社-成都年假测试
|
|
// private static final String LEAVE_CODE = "609a84ed-54d4-4ecd-a44f-4c55b04c37ea";
|
|
// private static final String LEAVE_CODE = "609a84ed-54d4-4ecd-a44f-4c55b04c37ea";
|
|
|
|
|
|
@@ -180,7 +185,7 @@ public class KYCDServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
|
|
//年假
|
|
//年假
|
|
double yearLeave = 0.0;
|
|
double yearLeave = 0.0;
|
|
//预支年假
|
|
//预支年假
|
|
- double advanceLeave = 0.0;
|
|
|
|
|
|
+ double advanceLeave = 8.0;
|
|
|
|
|
|
|
|
|
|
//获取原职级年假基数
|
|
//获取原职级年假基数
|
|
@@ -277,25 +282,91 @@ public class KYCDServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ //年假余额
|
|
|
|
+ BigDecimal annualLeaveNum = new BigDecimal(0.00);
|
|
|
|
+
|
|
|
|
+ //查询员工年假余额
|
|
|
|
+ long currentTime2 = System.currentTimeMillis();
|
|
|
|
+
|
|
|
|
+ List<Map> leaveQuotasList = new ArrayList<>();
|
|
|
|
+ getLeaveNum(LEAVE_CODE,userId,0,50,leaveQuotasList);
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(leaveQuotasList)){
|
|
|
|
+ for (Map leaveQuotas : leaveQuotasList) {
|
|
|
|
+ if ((long) leaveQuotas.get("start_time") <= currentTime2 && currentTime2 <= (long) leaveQuotas.get("end_time")){
|
|
|
|
+ if (Objects.isNull(leaveQuotas.get("quota_num_per_hour")) && Objects.nonNull(leaveQuotas.get("quota_num_per_day"))){
|
|
|
|
+ annualLeaveNum = annualLeaveNum.add(new BigDecimal(String.valueOf(leaveQuotas.get("quota_num_per_day"))).divide(new BigDecimal(100)));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(leaveQuotas.get("used_num_per_day"))){
|
|
|
|
+ annualLeaveNum = annualLeaveNum.subtract(new BigDecimal(String.valueOf(leaveQuotas.get("used_num_per_day"))).divide(new BigDecimal(100)));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
LambdaQueryWrapper<AdvancedLeave> advancedLeaveLambdaQueryWrapper = new LambdaQueryWrapper<>();;
|
|
LambdaQueryWrapper<AdvancedLeave> advancedLeaveLambdaQueryWrapper = new LambdaQueryWrapper<>();;
|
|
advancedLeaveLambdaQueryWrapper.eq(AdvancedLeave::getUserId,userId)
|
|
advancedLeaveLambdaQueryWrapper.eq(AdvancedLeave::getUserId,userId)
|
|
|
|
+ .eq(AdvancedLeave::getYear,year)
|
|
|
|
+ .eq(AdvancedLeave::getValidFlag,"1")
|
|
|
|
+ .eq(AdvancedLeave::getCity,"cd");
|
|
|
|
+ AdvancedLeave advancedLeave = advancedLeaveMapper.selectOne(advancedLeaveLambdaQueryWrapper);
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(advancedLeave)){
|
|
|
|
+ advanceLeave = Double.valueOf(advancedLeave.getLeaveNum());
|
|
|
|
+ }else {
|
|
|
|
+ advancedLeave = new AdvancedLeave();
|
|
|
|
+
|
|
|
|
+ //1月1日 则根据年假余额计算当年预支假
|
|
|
|
+ if (DateUtil.beginOfYear(new Date()).equals(today)){
|
|
|
|
+ //年假余额小于8时
|
|
|
|
+ if (annualLeaveNum.compareTo(new BigDecimal(8)) < 0){
|
|
|
|
+ advanceLeave = Double.parseDouble(annualLeaveNum.subtract(annualLeaveNum.remainder(new BigDecimal(0.5))).toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ advancedLeave.setLeaveNum(advanceLeave + "");
|
|
|
|
+ advancedLeave.setUserId(userId);
|
|
|
|
+ advancedLeave.setYear(String.valueOf(DateUtil.year(new Date())));
|
|
|
|
+ advancedLeave.setCity("hq");
|
|
|
|
+ advancedLeaveMapper.insert(advancedLeave);
|
|
|
|
+ }else {
|
|
|
|
+ //若当天不是1月1日且表中没有预支假记录 则默认预支假为8天
|
|
|
|
+ advancedLeave.setLeaveNum(advanceLeave + "");
|
|
|
|
+ advancedLeave.setUserId(userId);
|
|
|
|
+ advancedLeave.setYear(String.valueOf(DateUtil.year(new Date())));
|
|
|
|
+ advancedLeave.setCity("cd");
|
|
|
|
+ advancedLeaveMapper.insert(advancedLeave);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*LambdaQueryWrapper<AdvancedLeave> advancedLeaveLambdaQueryWrapper = new LambdaQueryWrapper<>();;
|
|
|
|
+ advancedLeaveLambdaQueryWrapper.eq(AdvancedLeave::getUserId,userId)
|
|
|
|
+ .eq(AdvancedLeave::getCity,"cd")
|
|
.eq(AdvancedLeave::getValidFlag,"1");
|
|
.eq(AdvancedLeave::getValidFlag,"1");
|
|
AdvancedLeave advancedLeave = advancedLeaveMapper.selectOne(advancedLeaveLambdaQueryWrapper);
|
|
AdvancedLeave advancedLeave = advancedLeaveMapper.selectOne(advancedLeaveLambdaQueryWrapper);
|
|
if (Objects.nonNull(advancedLeave)){
|
|
if (Objects.nonNull(advancedLeave)){
|
|
advanceLeave = Double.valueOf(advancedLeave.getLeaveNum());
|
|
advanceLeave = Double.valueOf(advancedLeave.getLeaveNum());
|
|
}else {
|
|
}else {
|
|
advanceLeave = NumberUtil.sub(yearLeave - useLeaveNum).doubleValue() >= 8 ? 8 : NumberUtil.sub(yearLeave - useLeaveNum).intValue();
|
|
advanceLeave = NumberUtil.sub(yearLeave - useLeaveNum).doubleValue() >= 8 ? 8 : NumberUtil.sub(yearLeave - useLeaveNum).intValue();
|
|
|
|
+ advancedLeave = new AdvancedLeave();
|
|
advancedLeave.setLeaveNum(advanceLeave + "");
|
|
advancedLeave.setLeaveNum(advanceLeave + "");
|
|
advancedLeave.setUserId(userId);
|
|
advancedLeave.setUserId(userId);
|
|
advancedLeave.setYear(String.valueOf(DateUtil.year(new Date())));
|
|
advancedLeave.setYear(String.valueOf(DateUtil.year(new Date())));
|
|
|
|
+ advancedLeave.setCity("cd");
|
|
advancedLeaveMapper.insert(advancedLeave);
|
|
advancedLeaveMapper.insert(advancedLeave);
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
|
|
//年假总数
|
|
//年假总数
|
|
int realYearLeave = NumberUtil.sub(yearLeave, useLeaveNum, -advanceLeave).doubleValue() < 0 ? 0 : NumberUtil.sub(yearLeave, useLeaveNum, -advanceLeave).multiply(new BigDecimal(100)).intValue();
|
|
int realYearLeave = NumberUtil.sub(yearLeave, useLeaveNum, -advanceLeave).doubleValue() < 0 ? 0 : NumberUtil.sub(yearLeave, useLeaveNum, -advanceLeave).multiply(new BigDecimal(100)).intValue();
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
//获取员工原年假余额 取较大值
|
|
//获取员工原年假余额 取较大值
|
|
- Map balanceMap = new HashMap();
|
|
|
|
|
|
+ if (annualLeaveNum.multiply(new BigDecimal(100)).intValue() > realYearLeave){
|
|
|
|
+ realYearLeave = annualLeaveNum.multiply(new BigDecimal(100)).intValue();
|
|
|
|
+ }
|
|
|
|
+ /*Map balanceMap = new HashMap();
|
|
balanceMap.put("leave_code",LEAVE_CODE);
|
|
balanceMap.put("leave_code",LEAVE_CODE);
|
|
balanceMap.put("op_userid",opUserId);
|
|
balanceMap.put("op_userid",opUserId);
|
|
balanceMap.put("userids",userId);
|
|
balanceMap.put("userids",userId);
|
|
@@ -313,7 +384,7 @@ public class KYCDServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
|
|
|
|
//更新假期余额接口的body
|
|
//更新假期余额接口的body
|