dzx 1 سال پیش
والد
کامیت
d865876b1f

+ 2 - 0
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -116,7 +116,9 @@ public class StatisticsController {
             long count = carMessageApplyService.count(
                     new MPJLambdaWrapper<CarMessageApply>()
                             .innerJoin(CarOutInRecord.class, CarOutInRecord::getCarMessageApplyId, CarMessageApply::getId)
+                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, CarMessageApply::getUserId)
                             .le(CarOutInRecord::getRecordTime, endTime)
+                            .eq(dto.getDeptId() != null, UserDeptRelation::getDeptId, dto.getDeptId())
                             .eq("DATE_FORMAT(record_time, '%Y-%m-%d')", endTime.toLocalDate())
                             .ge(dto.getTimePeriod() == 2 && amEndTime != null, CarOutInRecord::getRecordTime, amEndTime)
                             .eq(CarOutInRecord::getStatus, OutInStatusEnum.enter.getCode())

+ 3 - 0
src/main/java/com/xjrsoft/module/student/service/impl/PbVXsxxsfytbServiceImpl.java

@@ -314,6 +314,9 @@ public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapp
         Integer allCount = (result.getStayCount() == null?0:result.getStayCount())
                 + (result.getNotStayCount() == null?0:result.getNotStayCount());
         BigDecimal divide = BigDecimal.ZERO;
+        if(result.getStayCount() == null){
+            result.setStayCount(0);
+        }
         if(allCount != 0){
             divide = BigDecimal.valueOf(result.getStayCount()).divide(BigDecimal.valueOf(allCount), 4, RoundingMode.HALF_UP);
         }