|
@@ -209,13 +209,13 @@ public class UserWithBeisenController {
|
|
if(between.toHours()<=0){
|
|
if(between.toHours()<=0){
|
|
continue;
|
|
continue;
|
|
}else {
|
|
}else {
|
|
- //去掉休息时长
|
|
|
|
- long rest1 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("12:00:00", df4), LocalTime.parse("13:00:00", df4));
|
|
|
|
- long rest2 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("17:30:00", df4), LocalTime.parse("18:00:00", df4));
|
|
|
|
- long lastWorkMinute = between.toMinutes() - rest1-rest2;
|
|
|
|
- BigDecimal decimal = new BigDecimal(lastWorkMinute);
|
|
|
|
- decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
|
|
|
|
- workTime=decimal.doubleValue();
|
|
|
|
|
|
+ if(workDay){
|
|
|
|
+ //去掉休息时长
|
|
|
|
+ workTime=8.0;
|
|
|
|
+ }else {
|
|
|
|
+ //去掉休息时长
|
|
|
|
+ workTime=0.0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> vacationStream = allVacationList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> vacationStream = allVacationList.stream().map(elment -> (JSONObject) elment);
|
|
@@ -252,7 +252,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
|
|
|
|
|
|
+ workTime=workTime+o.getDouble("OverTimeDuration");
|
|
|
|
+ }else{
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
@@ -266,7 +268,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>l){
|
|
if(divide.doubleValue()>l){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+l;
|
|
|
|
|
|
+ workTime=workTime+l;
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
|
|
}else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
|
|
@@ -277,7 +281,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
|
|
|
|
|
|
+ workTime=workTime+o.getDouble("OverTimeDuration");
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
@@ -291,7 +297,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>l){
|
|
if(divide.doubleValue()>l){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+l;
|
|
|
|
|
|
+ workTime=workTime+l;
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -446,13 +454,13 @@ public class UserWithBeisenController {
|
|
msg.setError("无考勤记录");
|
|
msg.setError("无考勤记录");
|
|
return msg;
|
|
return msg;
|
|
}else {
|
|
}else {
|
|
- //去掉休息时长
|
|
|
|
- long rest1 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("12:00:00", df4), LocalTime.parse("13:00:00", df4));
|
|
|
|
- long rest2 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("17:30:00", df4), LocalTime.parse("18:00:00", df4));
|
|
|
|
- long lastWorkMinute = between.toMinutes() - rest1-rest2;
|
|
|
|
- BigDecimal decimal = new BigDecimal(lastWorkMinute);
|
|
|
|
- decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
|
|
|
|
- workTime=decimal.doubleValue();
|
|
|
|
|
|
+ if(workDay){
|
|
|
|
+ //去掉休息时长
|
|
|
|
+ workTime=8.0;
|
|
|
|
+ }else {
|
|
|
|
+ //去掉休息时长
|
|
|
|
+ workTime=0.0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> vacationStream = vacationList.stream().map(elment -> (JSONObject) elment);
|
|
Stream<JSONObject> vacationStream = vacationList.stream().map(elment -> (JSONObject) elment);
|
|
@@ -490,7 +498,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
|
|
|
|
|
|
+ workTime=workTime+o.getDouble("OverTimeDuration");
|
|
|
|
+ }else{
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
@@ -504,7 +514,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>l){
|
|
if(divide.doubleValue()>l){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+l;
|
|
|
|
|
|
+ workTime=workTime+l;
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
|
|
}else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
|
|
@@ -515,7 +527,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
|
|
|
|
|
|
+ workTime=workTime+o.getDouble("OverTimeDuration");
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
//开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
|
|
@@ -529,7 +543,9 @@ public class UserWithBeisenController {
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
|
|
if(divide.doubleValue()>l){
|
|
if(divide.doubleValue()>l){
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
//打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
|
|
- workTime=workTime-divide.doubleValue()+l;
|
|
|
|
|
|
+ workTime=workTime+l;
|
|
|
|
+ }else {
|
|
|
|
+ workTime=workTime+divide.doubleValue();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|