|
@@ -229,7 +229,12 @@ public class UserWithBeisenController {
|
|
|
List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
|
|
|
&& (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
|
|
|
//加班数据可能存在结束日期是当前日期的情况的情况
|
|
|
- BigDecimal overTimeBigDecimal = new BigDecimal(0);
|
|
|
+ BigDecimal overTimeBigDecimal;
|
|
|
+ if(workDay){
|
|
|
+ overTimeBigDecimal = new BigDecimal(0);
|
|
|
+ }else {
|
|
|
+ overTimeBigDecimal = new BigDecimal(8);
|
|
|
+ }
|
|
|
for (JSONObject o : overTimeList) {
|
|
|
//存在开始日期为当前日期的数据以及结束日期为当天日期的数据 分开计算
|
|
|
if(LocalDateTime.parse(o.getString("StartDate"),df1).toLocalDate().isEqual(localDate)){
|
|
@@ -247,7 +252,9 @@ public class UserWithBeisenController {
|
|
|
// if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// timeDurantion=timeDurantion.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(l<o.getDouble("OverTimeDuration")){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
|
|
|
}else {
|
|
@@ -266,11 +273,15 @@ public class UserWithBeisenController {
|
|
|
// if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// duration=duration.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = duration.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(duration.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
|
|
|
//判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
|
|
|
Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
|
|
|
- long l1 = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l1 = decimal1.doubleValue();
|
|
|
if(l1<l){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
|
|
|
}else {
|
|
@@ -293,7 +304,9 @@ public class UserWithBeisenController {
|
|
|
// if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// timeDurantion=timeDurantion.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(l<o.getDouble("OverTimeDuration")){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
|
|
|
}else {
|
|
@@ -313,11 +326,15 @@ public class UserWithBeisenController {
|
|
|
// if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// duration=duration.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = duration.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(duration.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
|
|
|
//判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
|
|
|
Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
|
|
|
- long l1 = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l1 = decimal1.doubleValue();
|
|
|
if(l1<l){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
|
|
|
}else {
|
|
@@ -332,10 +349,12 @@ public class UserWithBeisenController {
|
|
|
workTime= workTime+overTimeBigDecimal.doubleValue();
|
|
|
}else {
|
|
|
//非工作日加班 根据实际打卡时长 比较 加班单时长
|
|
|
- if((between.toMinutes()/60)>overTimeBigDecimal.doubleValue()){
|
|
|
+ BigDecimal decimal = new BigDecimal(between.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ if((decimal.doubleValue())>overTimeBigDecimal.doubleValue()){
|
|
|
workTime= workTime+overTimeBigDecimal.doubleValue();
|
|
|
}else {
|
|
|
- workTime= workTime+(between.toMinutes()/60);
|
|
|
+ workTime= workTime+(decimal.doubleValue());
|
|
|
}
|
|
|
}
|
|
|
//处理修改
|
|
@@ -428,10 +447,9 @@ public class UserWithBeisenController {
|
|
|
leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("Reason").equals("审批中")?1:2);
|
|
|
leaveSheet.setProcinstId(jsonObject.getString("VacationId"));
|
|
|
LeaveSheet one = leaveSheetService.getOne(new LambdaQueryWrapper<LeaveSheet>().eq(LeaveSheet::getProcinstId,leaveSheet.getProcinstId()).eq(LeaveSheet::getOwnerId, first.get().getId()).eq(LeaveSheet::getStartDate, leaveSheet.getStartDate()).eq(LeaveSheet::getEndDate, endDate));
|
|
|
- if(one!=null){
|
|
|
- leaveSheet.setId(one.getId());
|
|
|
+ if(one==null){
|
|
|
+ leaveSheetList.add(leaveSheet);
|
|
|
}
|
|
|
- leaveSheetList.add(leaveSheet);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -511,7 +529,12 @@ public class UserWithBeisenController {
|
|
|
List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
|
|
|
&& (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
|
|
|
//加班数据可能存在结束日期是当前日期的情况的情况
|
|
|
- BigDecimal overTimeBigDecimal = new BigDecimal(0);
|
|
|
+ BigDecimal overTimeBigDecimal;
|
|
|
+ if(workDay){
|
|
|
+ overTimeBigDecimal = new BigDecimal(0);
|
|
|
+ }else {
|
|
|
+ overTimeBigDecimal = new BigDecimal(8);
|
|
|
+ }
|
|
|
LocalDate localDate = LocalDate.parse(createDate, df);
|
|
|
for (JSONObject o : overTimeList) {
|
|
|
//存在开始日期为当前日期的数据以及结束日期为当天日期的数据 分开计算
|
|
@@ -530,7 +553,10 @@ public class UserWithBeisenController {
|
|
|
// if(max.isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// timeDurantion=timeDurantion.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = timeDurantion.toMinutes() / 60;
|
|
|
+ System.out.println(timeDurantion.toMinutes());
|
|
|
+ BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(l<o.getDouble("OverTimeDuration")){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
|
|
|
}else {
|
|
@@ -549,11 +575,15 @@ public class UserWithBeisenController {
|
|
|
// if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// duration=duration.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = duration.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(duration.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(max.isAfter(LocalTime.parse("19:00:00",df4))){
|
|
|
//判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
|
|
|
Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max);
|
|
|
- long l1 = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l1 = decimal1.doubleValue();
|
|
|
if(l1<l){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
|
|
|
}else {
|
|
@@ -576,7 +606,9 @@ public class UserWithBeisenController {
|
|
|
// if(max.isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// timeDurantion=timeDurantion.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(l<o.getDouble("OverTimeDuration")){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
|
|
|
}else {
|
|
@@ -596,11 +628,15 @@ public class UserWithBeisenController {
|
|
|
// if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
|
|
|
// duration=duration.minusMinutes(30);
|
|
|
// }
|
|
|
- long l = duration.toMinutes() / 60;
|
|
|
+ BigDecimal decimal = new BigDecimal(duration.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l = decimal.doubleValue();
|
|
|
if(max.isAfter(LocalTime.parse("19:00:00",df4))){
|
|
|
//判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
|
|
|
Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max);
|
|
|
- long l1 = timeDurantion.toMinutes() / 60;
|
|
|
+ BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
|
|
|
+ decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ double l1 = decimal1.doubleValue();
|
|
|
if(l1<l){
|
|
|
overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
|
|
|
}else {
|
|
@@ -615,10 +651,12 @@ public class UserWithBeisenController {
|
|
|
workTime= workTime+overTimeBigDecimal.doubleValue();
|
|
|
}else {
|
|
|
//非工作日加班 根据实际打卡时长 比较 加班单时长
|
|
|
- if((between.toMinutes()/60)>overTimeBigDecimal.doubleValue()){
|
|
|
+ BigDecimal decimal = new BigDecimal(between.toMinutes());
|
|
|
+ decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
|
|
|
+ if((decimal.doubleValue())>overTimeBigDecimal.doubleValue()){
|
|
|
workTime= workTime+overTimeBigDecimal.doubleValue();
|
|
|
}else {
|
|
|
- workTime= workTime+(between.toMinutes()/60);
|
|
|
+ workTime= workTime+(decimal.doubleValue());
|
|
|
}
|
|
|
}
|
|
|
//处理修改
|