| | |
| | | package com.xiaopeng.maintenance.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xiaopeng.api.feignClient.account.XpOperationsUserClient; |
| | | import com.xiaopeng.api.model.account.XpOperationsUser; |
| | | import com.xiaopeng.api.model.maintenance.XpCheckLocation; |
| | | import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRecord; |
| | | import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRuleLocation; |
| | | import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO; |
| | | import com.xiaopeng.common.core.web.page.PageInfo; |
| | | import com.xiaopeng.maintenance.mapper.XpCruiseCheckInRecordMapper; |
| | | import com.xiaopeng.maintenance.model.vo.AppXpCruiseCheckInLocationVo; |
| | | import com.xiaopeng.maintenance.service.IXpCheckLocationService; |
| | | import com.xiaopeng.maintenance.service.IXpCruiseCheckInRecordService; |
| | | import com.xiaopeng.maintenance.service.IXpCruiseCheckInRuleLocationService; |
| | | import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordQuery; |
| | | import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordVO; |
| | | import com.xiaopeng.maintenance.vo.XpCruiseCheckInStatisticsQuery; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | return pageInfo; |
| | | } |
| | | |
| | | IXpCheckLocationService checkLocationService; |
| | | @Resource |
| | | IXpCruiseCheckInRuleLocationService xpCruiseCheckInRuleLocationService; |
| | | |
| | | @Override |
| | | public XpCruiseCheckInRecordVO detail(Long id) { |
| | | |
| | | XpCruiseCheckInRecordVO vo = xpCruiseCheckInRecordMapper.detail(id); |
| | | |
| | | // Xp |
| | | |
| | | XpCheckLocation location = checkLocationService.getById(vo.getCheckLocationId()); |
| | | vo.setLocationRange(location.getLocationRange()); |
| | | vo.setDetailAddr(location.getLocationAddress()); |
| | | List<XpCruiseCheckInRuleLocation> list = xpCruiseCheckInRuleLocationService.list(new LambdaQueryWrapper<XpCruiseCheckInRuleLocation>() |
| | | .eq(XpCruiseCheckInRuleLocation::getCruiseCheckInRuleId,vo.getRuleId()).orderByAsc(XpCruiseCheckInRuleLocation::getSort)); |
| | | vo.setPointCount(list.size()); |
| | | List<Long> ids = Collections.singletonList(vo.getOperationsUserId()); |
| | | List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData(); |
| | | Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity())); |
| | | XpOperationsUser user = userMap.get(vo.getOperationsUserId()); |
| | | XpOperationsUser user = xpOperationsUserClient.listByIds(ids).getData().get(0); |
| | | if (user != null) { |
| | | XpOperationsUserProfileVO profile = xpOperationsUserClient.getProfile(user.getId()).getData(); |
| | | vo.setOperationsUserId(user.getId()); |
| | |
| | | vo.setFleetName(profile.getFleet().getFleetName()); |
| | | vo.setRole(profile.getRoles().stream().map(XpOperationsUserProfileVO.RoleInfoVO::getRoleName).collect(Collectors.joining(","))); |
| | | } |
| | | |
| | | return vo; |
| | | } |
| | | |