|
@@ -6,6 +6,7 @@ import cn.com.ty.lift.business.framework.util.MessageUtils;
|
|
|
import cn.com.ty.lift.business.library.dao.entity.Lift;
|
|
|
import cn.com.ty.lift.business.library.dao.entity.model.request.LiftExtensionRequest;
|
|
|
import cn.com.ty.lift.business.library.service.LiftService;
|
|
|
+import cn.com.ty.lift.business.maintenance.dao.entity.model.MaintenanceCount;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceRecordRequest;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceAppResponse;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.mapper.MaintenancePlanMapper;
|
|
@@ -19,7 +20,6 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectLiftResp
|
|
|
import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
|
|
|
import cn.com.ty.lift.business.project.dao.mapper.ProjectMapper;
|
|
|
import cn.com.ty.lift.business.project.dao.mapper.ProjectUserMapper;
|
|
|
-import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -127,32 +128,37 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
|
|
|
* @description 保养任务日历统计
|
|
|
* @date 2020/4/30 2:15 下午
|
|
|
*/
|
|
|
- public Map<String, Long> count(MaintenanceRecordRequest request) {
|
|
|
+ public List<MaintenanceCount> count(MaintenanceRecordRequest request) {
|
|
|
request.setEndTime(request.getBeginTime().with(TemporalAdjusters.lastDayOfMonth()));
|
|
|
//总经理查询所有保养任务
|
|
|
if (DefaultRole.HIGH_DIRECTOR.getCode().equals(request.getCurrentRoleCode())) {
|
|
|
request.setUserId(null);
|
|
|
}
|
|
|
- List<MaintenanceAppResponse> planCountResult = maintenancePlanMapper.countPlanByWorkerId(request);
|
|
|
- //统计待保养、超期的任务
|
|
|
- Map<String, Long> planCollect = planCountResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
|
|
|
-
|
|
|
- Long waitingMaintenance = planCollect.get(MaintenancePlanStatus.WAITING_MAINTENANCE.getCode());
|
|
|
- Long overdue = planCollect.get(MaintenancePlanStatus.OVERDUE.getCode());
|
|
|
-
|
|
|
- List<MaintenanceAppResponse> recordCountResult = maintenanceRecordMapper.countRecordByWorkerId(request);
|
|
|
- //统计保养中、保养完成任务
|
|
|
- Map<String, Long> recordCollect = recordCountResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
|
|
|
-
|
|
|
- Long inProgress = recordCollect.get(MaintenanceRecordStatus.MAINTENANCE_DOING.getCode());
|
|
|
- Long complete = recordCollect.get(MaintenanceRecordStatus.COMPLETE.getCode());
|
|
|
-
|
|
|
- Map<String, Long> countMap = new HashMap<>();
|
|
|
- countMap.put("inProgress", inProgress == null ? 0 : inProgress);
|
|
|
- countMap.put("complete", complete == null ? 0 : complete);
|
|
|
- countMap.put("overdue", overdue == null ? 0 : overdue);
|
|
|
- countMap.put("waitingMaintenance", waitingMaintenance == null ? 0 : waitingMaintenance);
|
|
|
- return countMap;
|
|
|
+ List<MaintenanceCount> planCountResult = maintenancePlanMapper.countPlanByWorkerId(request);
|
|
|
+ Set<LocalDate> set = planCountResult.stream().map(MaintenanceCount::getPlanDate).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<MaintenanceCount> recordCountResult = maintenanceRecordMapper.countRecordByWorkerId(request);
|
|
|
+ List<LocalDate> recordDateList = recordCountResult.stream().map(MaintenanceCount::getPlanDate).collect(Collectors.toList());
|
|
|
+ set.addAll(recordDateList);
|
|
|
+
|
|
|
+ List<MaintenanceCount> resultList = new ArrayList<>();
|
|
|
+ for (LocalDate entry : set) {
|
|
|
+ MaintenanceCount count = new MaintenanceCount();
|
|
|
+ count.setPlanDate(entry);
|
|
|
+ Optional<MaintenanceCount> plan = planCountResult.stream().filter(maintenanceCount -> maintenanceCount.getPlanDate().equals(entry)).findFirst();
|
|
|
+ plan.ifPresent(p -> {
|
|
|
+ count.setWaitingMaintenance(p.getWaitingMaintenance());
|
|
|
+ count.setOverdue(p.getOverdue());
|
|
|
+ });
|
|
|
+
|
|
|
+ Optional<MaintenanceCount> record = recordCountResult.stream().filter(maintenanceCount -> maintenanceCount.getPlanDate().equals(entry)).findFirst();
|
|
|
+ record.ifPresent(r -> {
|
|
|
+ count.setInProgress(r.getInProgress());
|
|
|
+ count.setComplete(r.getComplete());
|
|
|
+ });
|
|
|
+ resultList.add(count);
|
|
|
+ }
|
|
|
+ return resultList;
|
|
|
}
|
|
|
|
|
|
/**
|