|
@@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -46,6 +47,8 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
|
|
|
int weekends = 0;
|
|
|
int legalHolidays = 0;
|
|
|
BigDecimal workHours = new BigDecimal(0);
|
|
|
+ BigDecimal addDays = new BigDecimal(0);
|
|
|
+ BigDecimal addHours = new BigDecimal(0);
|
|
|
BigDecimal workDays;
|
|
|
int violationDays = 0;
|
|
|
|
|
@@ -58,9 +61,9 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
|
|
|
workHours = workHours.add(tbDingStatistic.getWorkHours());
|
|
|
violationDays = violationDays + tbDingStatistic.getViolationDays();
|
|
|
}
|
|
|
- workDays = BigDecimal.valueOf(actualDays);
|
|
|
TBDingStatisticByPerson tbDingStatisticByPerson = new TBDingStatisticByPerson();
|
|
|
tbDingStatisticByPerson.setServiceId(serviceId);
|
|
|
+ tbDingStatisticByPerson.setUserId(tbDingStatisticList.get(0).getUserId());
|
|
|
tbDingStatisticByPerson.setServiceName(serviceName);
|
|
|
tbDingStatisticByPerson.setSupplierName(tbDingStatisticList.get(0).getSupplierName());
|
|
|
tbDingStatisticByPerson.setUserInfo(
|
|
@@ -69,21 +72,27 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
|
|
|
tbDingStatisticByPerson.setWeekdays(weekdays);
|
|
|
tbDingStatisticByPerson.setWeekends(weekends);
|
|
|
tbDingStatisticByPerson.setLegalHolidays(legalHolidays);
|
|
|
-
|
|
|
+ tbDingStatisticByPerson.setWorkDays(BigDecimal.valueOf(actualDays));
|
|
|
+ tbDingStatisticByPerson.setWorkHours(workHours);
|
|
|
tbDingStatisticByPerson.setViolationDays(violationDays);
|
|
|
|
|
|
// 处理工时增加
|
|
|
List<TBDingAdd> dingAddList = dingAddDatasource.stream().filter(e -> serviceId.equals(e.getServiceId()) && userId.equals(e.getUserId())).limit(1)
|
|
|
.collect(Collectors.toList());
|
|
|
if (CollectionUtils.isNotEmpty(dingAddList)) {
|
|
|
- TBDingAdd dingAdd = dingAddList.get(0);
|
|
|
- tbDingStatisticByPerson.setAddDays(dingAdd.getAddDays());
|
|
|
- tbDingStatisticByPerson.setAddHours(dingAdd.getAddHours());
|
|
|
- workDays = workDays.add(dingAdd.getAddDays());
|
|
|
- workHours = workHours.add(dingAdd.getAddHours());
|
|
|
+ for (TBDingAdd tbDingAdd : dingAddList) {
|
|
|
+ if (Objects.nonNull(tbDingAdd.getAddDays())){
|
|
|
+ addDays = addDays.add(tbDingAdd.getAddDays());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(tbDingAdd.getAddHours())){
|
|
|
+ addHours = addHours.add(tbDingAdd.getAddHours());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tbDingStatisticByPerson.setAddDays(addDays);
|
|
|
+ tbDingStatisticByPerson.setAddHours(addHours);
|
|
|
+ tbDingStatisticByPerson.setWorkDays(tbDingStatisticByPerson.getWorkDays().add(addDays));
|
|
|
+ tbDingStatisticByPerson.setWorkHours(workHours.add(addHours));
|
|
|
}
|
|
|
- tbDingStatisticByPerson.setWorkDays(workDays);
|
|
|
- tbDingStatisticByPerson.setWorkHours(workHours);
|
|
|
result.add(tbDingStatisticByPerson);
|
|
|
}
|
|
|
}
|