package com.dsh.guns.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.dsh.course.feignClient.activity.CompanyClient;
|
import com.dsh.course.feignClient.activity.model.CompanyInfoRes;
|
import com.dsh.course.feignClient.activity.model.DriverNameReq;
|
import com.dsh.course.feignClient.activity.model.DriverNameRes;
|
import com.dsh.course.feignClient.driver.DriverClient;
|
import com.dsh.course.mapper.TCarMapper;
|
import com.dsh.guns.config.UserExt;
|
import com.dsh.guns.modular.system.model.Driver;
|
import com.dsh.guns.modular.system.model.TCar;
|
import com.dsh.guns.modular.system.service.ITCarService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 车辆 服务实现类
|
* </p>
|
*
|
* @author 吕雪
|
* @since 2020-06-05
|
*/
|
@Service
|
public class TCarServiceImpl extends ServiceImpl<TCarMapper, TCar> implements ITCarService {
|
|
@Autowired
|
private DriverClient driverClient;
|
|
@Autowired
|
private CompanyClient companyClient;
|
|
@Override
|
public List<Map<String, Object>> getCarList(Page<Map<String, Object>> page, Integer roleType, Integer nowUserId, String beginTime, String endTime, String id, String brandName, String modelName, String carColor, String serverStr, String carLicensePlate, String driverName, String companyName, String franchiseeName) {
|
List<Map<String, Object>> list = new ArrayList<>();
|
if(id=="")
|
id=null;
|
if(brandName=="")
|
brandName=null;
|
if(modelName=="")
|
modelName=null;
|
if(carColor=="")
|
carColor=null;
|
if(serverStr=="")
|
serverStr=null;
|
if(carLicensePlate=="")
|
carLicensePlate=null;
|
if(driverName=="")
|
driverName=null;
|
if(companyName=="")
|
companyName=null;
|
if(franchiseeName=="")
|
franchiseeName=null;
|
if(driverName==null || driverName=="") {
|
Integer language = UserExt.getLanguage();
|
String ids = driverClient.getGroupConcat(nowUserId);
|
List<Map<String, Object>> carList = this.baseMapper.getCarList(page, roleType, nowUserId, beginTime, endTime, id, brandName, modelName, carColor, serverStr, carLicensePlate, driverName, companyName, franchiseeName,language,ids);
|
for (Map<String, Object> stringObjectMap : carList) {
|
stringObjectMap.put("carColor",stringObjectMap.get("color"));
|
}
|
ArrayList<Integer> integers = new ArrayList<>();
|
|
for (Map<String, Object> data : carList) {
|
integers.add((Integer) data.get("id"));
|
// 所属机构 Affiliated institution
|
Integer companyId = (Integer)data.get("companyId");
|
CompanyInfoRes companyInfoRes = companyClient.queryById(companyId);
|
data.put("companyName", null == companyInfoRes ? "" : companyInfoRes.getName());
|
}
|
// 关联司机 Associated driver
|
List<DriverNameRes> name = driverClient.getDriverName(new DriverNameReq(integers, driverName,companyName,franchiseeName));
|
for (DriverNameRes driverNameRes : name) {
|
for (Map<String, Object> stringObjectMap : carList) {
|
if (((Integer) stringObjectMap.get("id")).equals(driverNameRes.getId())) {
|
stringObjectMap.put("driverName", driverNameRes.getDriverName());
|
// if(driverNameRes.getFname()!=null){
|
// stringObjectMap.put("companyName", driverNameRes.getFname());
|
// }
|
// if(driverNameRes.getCname()!=null){
|
// stringObjectMap.put("companyName", driverNameRes.getCname());
|
// }
|
|
list.add(stringObjectMap);
|
}
|
}
|
}
|
|
return list;
|
}else {
|
List<Driver> drivers = driverClient.getdriverFromName(driverName);
|
ArrayList<Integer> integers = new ArrayList<>();
|
for (Driver driver : drivers) {
|
integers.add(driver.getCarId());
|
}
|
if(integers.size()==0){
|
integers.add(-1);
|
}
|
String ids = driverClient.getGroupConcat(nowUserId);
|
List<Map<String, Object>> carList = this.baseMapper.getCarList1(page, roleType, nowUserId, beginTime, endTime, id, brandName, modelName, carColor, serverStr, carLicensePlate, driverName, companyName, franchiseeName,integers,ids);
|
for (Map<String, Object> stringObjectMap : carList) {
|
for (Driver driver : drivers) {
|
if(stringObjectMap.get("id").equals(driver.getCarId())){
|
stringObjectMap.put("driverName",driver.getName());
|
list.add(stringObjectMap);
|
}
|
}
|
}
|
return list;
|
}
|
}
|
|
@Override
|
public List<Map<String, Object>> getCarListNoPage(Integer roleType, Integer nowUserId) {
|
return this.baseMapper.getCarListNoPage(roleType, nowUserId);
|
}
|
|
@Override
|
public TCar getById1(Integer carId1) {
|
return this.baseMapper.getById1(carId1);
|
|
}
|
|
@Override
|
public TCar getCarID(String newCarId) {
|
return this.baseMapper.getCarID(newCarId);
|
}
|
}
|