package com.ozs.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ozs.common.utils.AppendUtils; import com.ozs.common.utils.StringUtils; import com.ozs.entity.BaseRailwayManagement; import com.ozs.entity.BaseTerminal; import com.ozs.entity.VehiclePosition; import com.ozs.entity.vo.VehiclePositionResp; import com.ozs.mapper.BaseRailwayManagementMapper; import com.ozs.mapper.BaseTerminalMapper; import com.ozs.mapper.VehiclePositionMapper; import com.ozs.service.VehiclePositionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; /** *

* 机车行驶表 服务实现类 *

* * @author ozs * @since 2023-04-11 */ @Service public class VehiclePositionServiceImpl extends ServiceImpl implements VehiclePositionService { @Autowired private VehiclePositionMapper vehiclePositionMapper; @Autowired private BaseTerminalMapper baseTerminalMapper; @Autowired private BaseRailwayManagementMapper baseRailwayManagementMapper; @Override public List selectVehiclePositionList(VehiclePositionResp vehiclePositionResp) { List list = vehiclePositionMapper.list(vehiclePositionResp.getVehicleCode(), vehiclePositionResp.getRailwayCode(), vehiclePositionResp.getLineDir(), vehiclePositionResp.getStatus()); return list; } @Override public IPage listToPage(List list, int pageNum, int pageSize) { List pageList = new ArrayList<>(); int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0; for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) { pageList.add(list.get(curIdx + i)); } IPage page = new Page<>(pageNum, pageSize); page.setRecords(pageList); page.setTotal(list.size()); return page; } @Override public List vehiclePositionPage(VehiclePositionResp vehiclePositionResp) { boolean state = true; LambdaQueryWrapper wrapper3=new LambdaQueryWrapper<>(); if (StringUtils.isNotEmpty(vehiclePositionResp.getTerminalCode())){ wrapper3.eq(BaseTerminal::getTerminalCode,vehiclePositionResp.getTerminalCode()); } if (StringUtils.isNotEmpty(vehiclePositionResp.getTerminalName())){ wrapper3.like(BaseTerminal::getTerminalName,vehiclePositionResp.getTerminalName()); } if (!ObjectUtils.isEmpty(vehiclePositionResp.getStatus())){ wrapper3.eq(BaseTerminal::getStatus,vehiclePositionResp.getStatus()); } List baseTerminals = baseTerminalMapper.selectList(wrapper3); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.orderByDesc("create_time"); List vehiclePositions = baseMapper.selectList(wrapper); ArrayList vehiclePositionArrayList = new ArrayList<>(); for (BaseTerminal baseTerminal : baseTerminals) { state = true; for (VehiclePosition vehiclePosition : vehiclePositions) { if (baseTerminal.getTerminalCode().equals(vehiclePosition.getTerminalCode())) { vehiclePosition.setTerminalName(baseTerminal.getTerminalName()); // 查询线路 LambdaQueryWrapper lwBaseRailwayManagement = new LambdaQueryWrapper<>(); if (!StringUtils.isEmptySunhh(vehiclePosition.getRailwayCode())) { lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, vehiclePosition.getRailwayCode()); } BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement); if (!ObjectUtils.isEmpty(baseRailwayManagement)) { vehiclePosition.setRailwayName(baseRailwayManagement.getRailwayName()); } if (!ObjectUtils.isEmpty(vehiclePosition.getTravelMile())) { vehiclePosition.setTravelMileFormat(AppendUtils.stringAppend(vehiclePosition.getTravelMile())); } if (!ObjectUtils.isEmpty(vehiclePosition.getLineDir())) { vehiclePosition.setLineDirName(vehiclePosition.getLineDir() == 1 ? "上行" : "下行"); } if (!ObjectUtils.isEmpty(baseTerminal.getStatus())) { vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线"); } String builder = vehiclePosition.getRailwayName() + "-" + vehiclePosition.getLineDirName() + "-" + "里程位置" + vehiclePosition.getTravelMileFormat(); vehiclePosition.setMileagePosition(builder); vehiclePositionArrayList.add(vehiclePosition); state = false; break; } } if (state) { VehiclePosition vehiclePosition = new VehiclePosition(); vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线"); vehiclePosition.setTerminalCode(baseTerminal.getTerminalCode()); vehiclePosition.setTerminalName(baseTerminal.getTerminalName()); vehiclePositionArrayList.add(vehiclePosition); } } return vehiclePositionArrayList; } }