|
@@ -8,7 +8,6 @@ import cn.com.ty.lift.batch.applet.dao.model.request.EmergencyRepairDataRequest;
|
|
|
import cn.com.ty.lift.batch.applet.dao.model.response.EmergencyTimeStatisticsResponse;
|
|
|
import cn.com.ty.lift.batch.applet.util.DataStatisticsUtil;
|
|
|
import cn.com.ty.lift.common.constants.ApiConstants;
|
|
|
-import cn.com.ty.lift.common.judge.Judge;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -43,6 +42,22 @@ public class EmergencyRepairDataService {
|
|
|
//获取时间段内的急修数据
|
|
|
List<EmergencyRepairDataModel> emergencyRepairDataModelList = emergencyRepairDataMapper
|
|
|
.getEmergencyRepairDataList(commonRequest);
|
|
|
+ if (emergencyRepairDataModelList != null && emergencyRepairDataModelList.size() > 0) {
|
|
|
+ emergencyRepairDataModelList.forEach(a -> {
|
|
|
+ //计算接单时长
|
|
|
+ if (a.getAssignTime() != null && a.getTakingTime() != null) {
|
|
|
+ a.setTakingTimeLength(DataStatisticsUtil.getDiffMinute(a.getTakingTime(), a.getAssignTime()));
|
|
|
+ }
|
|
|
+ //计算到达时长
|
|
|
+ if (a.getTakingTime() != null && a.getArriveTime() != null) {
|
|
|
+ a.setArriveTimeLength(DataStatisticsUtil.getDiffMinute(a.getArriveTime(), a.getTakingTime()));
|
|
|
+ }
|
|
|
+ //计算修理时长
|
|
|
+ if (a.getArriveTime() != null && a.getRecoveryDate() != null) {
|
|
|
+ a.setFixTimeLength(DataStatisticsUtil.getDiffMinute(a.getRecoveryDate(), a.getTakingTime()));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
//通过公司id给数据分组,并将数据放入redis中
|
|
|
DataStatisticsUtil.putStatisticsDataToRedis(emergencyRepairDataModelList, redisTemplate,
|
|
|
DataStatisticsConstants.EMERGENCY_REPAIR_DATA_FIELD);
|
|
@@ -64,13 +79,23 @@ public class EmergencyRepairDataService {
|
|
|
//过滤起始时间之前的数据
|
|
|
if (emergencyRepairDataRequest.getStartTimeDate() != null) {
|
|
|
emergencyRepairDataModelList = emergencyRepairDataModelList.stream()
|
|
|
- .filter(a -> a.getCallerDate().isAfter(emergencyRepairDataRequest.getStartTimeDate()))
|
|
|
+ .filter(a -> {
|
|
|
+ if (a.getCallerDate() != null) {
|
|
|
+ return a.getCallerDate().isAfter(emergencyRepairDataRequest.getStartTimeDate());
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ })
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
//过滤终止时间之后的数据
|
|
|
if (emergencyRepairDataRequest.getEndTimeDate() != null) {
|
|
|
emergencyRepairDataModelList = emergencyRepairDataModelList.stream()
|
|
|
- .filter(a -> a.getCallerDate().isBefore(emergencyRepairDataRequest.getEndTimeDate()))
|
|
|
+ .filter(a -> {
|
|
|
+ if (a.getCallerDate() != null) {
|
|
|
+ return a.getCallerDate().isBefore(emergencyRepairDataRequest.getEndTimeDate());
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ })
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
//通过区域id过滤数据
|
|
@@ -82,7 +107,12 @@ public class EmergencyRepairDataService {
|
|
|
//通过状态过滤数据
|
|
|
if (emergencyRepairDataRequest.getStatus() != null) {
|
|
|
emergencyRepairDataModelList = emergencyRepairDataModelList.stream()
|
|
|
- .filter(a -> a.getStatus() == emergencyRepairDataRequest.getStatus())
|
|
|
+ .filter(a -> {
|
|
|
+ if (a.getStatus() != null) {
|
|
|
+ return a.getStatus() == emergencyRepairDataRequest.getStatus();
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ })
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
}
|
|
@@ -102,12 +132,14 @@ public class EmergencyRepairDataService {
|
|
|
//从redis中获取时间段内的急修数据
|
|
|
List<EmergencyRepairDataModel> emergencyRepairDataModelList =
|
|
|
getEmergencyRepairDataListFromRedis(emergencyRepairDataRequest);
|
|
|
- //将数据组合成月->台量的map
|
|
|
- Map<String, Long> monthToUnitsRow = emergencyRepairDataModelList.stream()
|
|
|
- .collect(Collectors.groupingBy(emergencyRepairDataModel ->
|
|
|
- DataStatisticsUtil.getMonthStr(emergencyRepairDataModel.getCallerDate()), Collectors.counting()));
|
|
|
- //将monthToUnitsRow月份对应台量的值放入monthToUnits中
|
|
|
- monthToUnitsRow.forEach((key, value) -> monthToUnits.put(key, value));
|
|
|
+ if (emergencyRepairDataModelList != null && emergencyRepairDataModelList.size() > 0) {
|
|
|
+ //将数据组合成月->台量的map
|
|
|
+ Map<String, Long> monthToUnitsRow = emergencyRepairDataModelList.stream()
|
|
|
+ .collect(Collectors.groupingBy(emergencyRepairDataModel ->
|
|
|
+ DataStatisticsUtil.getMonthStr(emergencyRepairDataModel.getCallerDate()), Collectors.counting()));
|
|
|
+ //将monthToUnitsRow月份对应台量的值放入monthToUnits中
|
|
|
+ monthToUnitsRow.forEach((key, value) -> monthToUnits.put(key, value));
|
|
|
+ }
|
|
|
return RestResponse.success(monthToUnits, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
|
|
|
}
|
|
|
|
|
@@ -119,7 +151,7 @@ public class EmergencyRepairDataService {
|
|
|
*/
|
|
|
public RestResponse emergencyTimeStatistics(EmergencyRepairDataRequest emergencyRepairDataRequest) {
|
|
|
//获取急修完成的急修信息
|
|
|
- emergencyRepairDataRequest.setStatus(Judge.Repair.STATUS_FINISH);
|
|
|
+ //emergencyRepairDataRequest.setStatus(Judge.Repair.STATUS_FINISH);
|
|
|
List<EmergencyRepairDataModel> emergencyRepairDataModelList =
|
|
|
getEmergencyRepairDataListFromRedis(emergencyRepairDataRequest);
|
|
|
EmergencyTimeStatisticsResponse emergencyTimeStatisticsResponse = new EmergencyTimeStatisticsResponse();
|
|
@@ -164,10 +196,12 @@ public class EmergencyRepairDataService {
|
|
|
public RestResponse emergencyStatus(EmergencyRepairDataRequest emergencyRepairDataRequest) {
|
|
|
List<EmergencyRepairDataModel> emergencyRepairDataModelList =
|
|
|
getEmergencyRepairDataListFromRedis(emergencyRepairDataRequest);
|
|
|
- //通过发起急修时间降序排列,并获取前5条数据
|
|
|
- emergencyRepairDataModelList = emergencyRepairDataModelList.stream()
|
|
|
- .sorted(Comparator.comparing(EmergencyRepairDataModel::getCallerDate).reversed()).limit(5)
|
|
|
- .collect(Collectors.toList());
|
|
|
+ if(emergencyRepairDataModelList != null && emergencyRepairDataModelList.size() > 0){
|
|
|
+ //通过发起急修时间降序排列,并获取前5条数据
|
|
|
+ emergencyRepairDataModelList = emergencyRepairDataModelList.stream()
|
|
|
+ .sorted(Comparator.comparing(EmergencyRepairDataModel::getCallerDate).reversed()).limit(5)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
return RestResponse.success(emergencyRepairDataModelList, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
|
|
|
}
|
|
|
}
|