|
@@ -11,7 +11,6 @@ import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -29,6 +28,7 @@ public class MaintenanceDataService {
|
|
|
|
|
|
@Resource
|
|
|
private MaintenanceDataMapper maintenanceDataMapper;
|
|
|
+
|
|
|
/**
|
|
|
* @param
|
|
|
* @return
|
|
@@ -80,13 +80,12 @@ public class MaintenanceDataService {
|
|
|
List<MaintenanceDataModel> maintenanceDataModelList = getMaintenanceDataListFromRedis(maintenanceDataRequest);
|
|
|
if (maintenanceDataModelList != null && maintenanceDataModelList.size() > 0) {
|
|
|
//获取超期数
|
|
|
- maintenanceDataModelList = maintenanceDataModelList.stream()
|
|
|
- .filter(maintenanceDataModel -> {
|
|
|
- if (maintenanceDataModel.getStatus()!= null) {
|
|
|
- return maintenanceDataModel.getStatus() == -1;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ maintenanceDataModelList = maintenanceDataModelList.stream().filter(maintenanceDataModel -> {
|
|
|
+ if (maintenanceDataModel.getStatus() != null) {
|
|
|
+ return maintenanceDataModel.getStatus() == -1;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
Map<String, Long> allProjectNameToBeyondNum = maintenanceDataModelList.stream()
|
|
|
.collect(Collectors.groupingBy(MaintenanceDataModel::getProjectName, Collectors.counting()));
|
|
|
//通过超期台量倒序排列
|
|
@@ -94,7 +93,7 @@ public class MaintenanceDataService {
|
|
|
//获取前5的数据
|
|
|
AtomicInteger i = new AtomicInteger(1);
|
|
|
allProjectNameToBeyondNum.forEach((key, value) -> {
|
|
|
- if(i.getAndIncrement() <= 5) {
|
|
|
+ if (i.getAndIncrement() <= 5) {
|
|
|
projectNameToBeyondNum.put(key, value);
|
|
|
}
|
|
|
});
|
|
@@ -131,7 +130,7 @@ public class MaintenanceDataService {
|
|
|
//获取当前时间
|
|
|
LocalDate now = LocalDate.now();
|
|
|
//设置超期类型
|
|
|
- setBeyondType(maintenanceDataModelList, beyondMaintenanceDataModelList, now);
|
|
|
+ setBeyondType(beyondMaintenanceDataModelList);
|
|
|
//设置计划超期数
|
|
|
long planBeyondNum = beyondMaintenanceDataModelList.stream()
|
|
|
.filter(maintenanceDataModel -> {
|
|
@@ -160,35 +159,9 @@ public class MaintenanceDataService {
|
|
|
* @description 设置超期类型
|
|
|
* @date 2020/2/9 10:01 下午
|
|
|
*/
|
|
|
- private void setBeyondType(List<MaintenanceDataModel> maintenanceDataModelList, List<MaintenanceDataModel> beyondMaintenanceDataModelList, LocalDate now) {
|
|
|
- //通过电梯将维保记录分组
|
|
|
- Map<Long, List<MaintenanceDataModel>> liftIdToMaintenanceData = maintenanceDataModelList.stream()
|
|
|
- .collect(Collectors.groupingBy(MaintenanceDataModel::getLiftId));
|
|
|
- //设置超期类型 1:计划超期 2:法规超期
|
|
|
- beyondMaintenanceDataModelList.forEach(beyondMaintenanceDataModel -> {
|
|
|
- //获取电梯的维保计划
|
|
|
- List<MaintenanceDataModel> liftMaintenanceDataModelList =
|
|
|
- liftIdToMaintenanceData.get(beyondMaintenanceDataModel.getLiftId());
|
|
|
- //保养时间
|
|
|
- LocalDate maintenanceDate;
|
|
|
- if (beyondMaintenanceDataModel.getCount() == 1) {
|
|
|
- //第一次保养, 获取首保时间
|
|
|
- maintenanceDate = beyondMaintenanceDataModel.getFirstDate();
|
|
|
- } else {
|
|
|
- //获取上次保养记录
|
|
|
- MaintenanceDataModel lastMaintenanceDataModel = liftMaintenanceDataModelList.stream()
|
|
|
- .filter(maintenanceDataModel -> maintenanceDataModel.getCount() == beyondMaintenanceDataModel.getCount() - 1)
|
|
|
- .collect(Collectors.toList()).get(0);
|
|
|
- //获取保养完成时间
|
|
|
- maintenanceDate = lastMaintenanceDataModel.getFinishDate();
|
|
|
- }
|
|
|
- //计划现在时间与上次保养间隔天数
|
|
|
- long intervalDay = Duration.between(now, maintenanceDate).toDays();
|
|
|
- beyondMaintenanceDataModel.setBeyondType(1);
|
|
|
- //间隔天数大于15属于法规超期
|
|
|
- if (intervalDay > 15) {
|
|
|
- beyondMaintenanceDataModel.setBeyondType(2);
|
|
|
- }
|
|
|
+ private void setBeyondType(List<MaintenanceDataModel> maintenanceDataModelList) {
|
|
|
+ maintenanceDataModelList.forEach(maintenanceDataModel -> {
|
|
|
+ maintenanceDataModel.setBeyondType(1);
|
|
|
});
|
|
|
}
|
|
|
}
|