|
|
|
@ -18,33 +18,45 @@ package com.logpm.basicdata.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.basicdata.dto.BasicdataDriverArteryDTO; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataDriverArteryEntity; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataDrivermiddleEntity; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataVehicleEntity; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
|
|
|
|
import com.logpm.basicdata.entity.*; |
|
|
|
|
import com.logpm.basicdata.excel.BasicdataDriverArteryExcel; |
|
|
|
|
import com.logpm.basicdata.excel.BasicdataDriverArteryImproterExcel; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
|
|
|
|
import com.logpm.basicdata.mapper.BasicdataDriverArteryMapper; |
|
|
|
|
import com.logpm.basicdata.mapper.BasicdataDrivermiddleMapper; |
|
|
|
|
import com.logpm.basicdata.mapper.BasicdataVehicleMapper; |
|
|
|
|
import com.logpm.basicdata.service.IBasicdataCarrierService; |
|
|
|
|
import com.logpm.basicdata.service.IBasicdataDriverArteryService; |
|
|
|
|
import com.logpm.basicdata.service.IBasicdataVehicleService; |
|
|
|
|
import com.logpm.basicdata.vo.BasicdataDriverArteryVO; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springblade.common.constant.driver.DriverTypeStatusConstant; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.system.cache.DictBizCache; |
|
|
|
|
import org.springblade.system.entity.User; |
|
|
|
|
import org.springblade.system.feign.IUserClient; |
|
|
|
|
import org.springblade.system.feign.IUserSearchClient; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.function.Function; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
|
import static com.alibaba.fastjson.JSONPatch.OperationType.copy; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 司机信息表 服务实现类 |
|
|
|
|
* |
|
|
|
@ -66,6 +78,10 @@ public class BasicdataDriverArteryServiceImpl extends BaseServiceImpl<BasicdataD
|
|
|
|
|
private final BasicdataDrivermiddleServiceImpl basicdataDrivermiddleService; |
|
|
|
|
|
|
|
|
|
private final IBasicdataWarehouseClient warehouseClient; |
|
|
|
|
private final IUserClient userClient; |
|
|
|
|
private final IBasicdataCarrierService basicdataCarrierService; |
|
|
|
|
private final BasicdataDriverArteryMapper basicdataDriverArteryMapper; |
|
|
|
|
private final BasicdataDrivermiddleServiceImpl basicdataDrivermiddleServiceImpl; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<BasicdataDriverArteryVO> selectBasicdataDriverArteryPage(IPage<BasicdataDriverArteryVO> page, BasicdataDriverArteryDTO basicdataDriverArtery) { |
|
|
|
@ -79,6 +95,7 @@ public class BasicdataDriverArteryServiceImpl extends BaseServiceImpl<BasicdataD
|
|
|
|
|
//basicdataDriverArteryList.forEach(basicdataDriverArtery -> {
|
|
|
|
|
// basicdataDriverArtery.setTypeName(DictCache.getValue(DictEnum.YES_NO, BasicdataDriverArtery.getType()));
|
|
|
|
|
//});
|
|
|
|
|
|
|
|
|
|
return basicdataDriverArteryList; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -134,17 +151,99 @@ public class BasicdataDriverArteryServiceImpl extends BaseServiceImpl<BasicdataD
|
|
|
|
|
return basicdataDriverArteryVOS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 导入 |
|
|
|
|
* |
|
|
|
|
* @param data |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public void importDriverArtery(List<BasicdataDriverArteryImproterExcel> data) { |
|
|
|
|
ArrayList<BasicdataDriverArteryEntity> arrayList = new ArrayList<>(); |
|
|
|
|
public void importDriverArtery(List<BasicdataDriverArteryImproterExcel> data) { |
|
|
|
|
log.info("传入参数>>>>>>>>>>>>>>>>>>>>>>>{}",data); |
|
|
|
|
outerLoop: |
|
|
|
|
for (BasicdataDriverArteryImproterExcel datum : data) { |
|
|
|
|
List<BasicdataDrivermiddleEntity> driverMiddleEntity = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
//检查数据是否为空
|
|
|
|
|
if (ObjectUtils.isEmpty(datum.getPhone())|| ObjectUtils.isEmpty(datum.getName())|| ObjectUtils.isEmpty(datum.getWarehouseName())|| ObjectUtils.isEmpty(datum.getCarrierName())) { |
|
|
|
|
|
|
|
|
|
// log.error("必填数据不能为空");
|
|
|
|
|
// continue;
|
|
|
|
|
throw new ServiceException("用户"+datum.getName() +"必填数据不能为空!"); |
|
|
|
|
} |
|
|
|
|
if(!ObjectUtils.isEmpty(datum.getPhone())){ |
|
|
|
|
R<User> userR = userClient.userInfoByPhone("627683", datum.getPhone()); |
|
|
|
|
if (userR.getData() == null){ |
|
|
|
|
// log.error("未找到用户");
|
|
|
|
|
// continue;
|
|
|
|
|
throw new ServiceException("用户"+datum.getName() +"未找到用户!"); |
|
|
|
|
}else { |
|
|
|
|
datum.setUserId(userR.getData().getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!ObjectUtils.isEmpty(datum.getBindVehicle())){ |
|
|
|
|
String[] car = datum.getBindVehicle().split(","); |
|
|
|
|
for (String s : car) { |
|
|
|
|
List<BasicdataVehicleEntity> carListByName = basicdataVehicleService.findCarListByName(s); |
|
|
|
|
|
|
|
|
|
if (carListByName.isEmpty()){ |
|
|
|
|
// log.error("未找到可绑定的车辆");
|
|
|
|
|
throw new ServiceException("用户"+datum.getName() +"未找到可绑定的车辆!"); |
|
|
|
|
}else{ |
|
|
|
|
BasicdataDrivermiddleEntity basicdataDrivermiddleEntity = new BasicdataDrivermiddleEntity(); |
|
|
|
|
basicdataDrivermiddleEntity.setBrandId(carListByName.get(0).getId()); |
|
|
|
|
driverMiddleEntity.add(basicdataDrivermiddleEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!ObjectUtils.isEmpty(datum.getCarrierName())){ |
|
|
|
|
//找到数据库内的承运商
|
|
|
|
|
List<BasicdataCarrierEntity> basicdataCarrierEntities = basicdataCarrierService.list(Wrappers.<BasicdataCarrierEntity>lambdaQuery().eq(BasicdataCarrierEntity::getCarrierName,datum.getCarrierName())); |
|
|
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(basicdataCarrierEntities)){ |
|
|
|
|
// log.error("未找到承运商");
|
|
|
|
|
// continue;
|
|
|
|
|
throw new ServiceException("用户"+datum.getName() +"未找到承运商!"); |
|
|
|
|
}else{ |
|
|
|
|
datum.setCarrierId(basicdataCarrierEntities.get(0).getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!ObjectUtils.isEmpty(datum.getWarehouseName())){ |
|
|
|
|
//在数据库找到仓库名字对应
|
|
|
|
|
BasicdataWarehouseEntity byName = warehouseClient.findByName(datum.getWarehouseName()); |
|
|
|
|
if (ObjectUtils.isEmpty(byName)){ |
|
|
|
|
// log.error("未找到仓库");
|
|
|
|
|
// continue;
|
|
|
|
|
throw new ServiceException("用户"+datum.getName() +"未找到仓库!"); |
|
|
|
|
}else{ |
|
|
|
|
datum.setWarehouseId(String.valueOf(byName.getId())); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//根据手机号去重 如果有手机号相同 就删除老数据
|
|
|
|
|
if (ObjectUtils.isNotNull(datum) && ObjectUtils.isNotNull(datum.getPhone())) { |
|
|
|
|
List<BasicdataDriverArteryEntity> basicdataVehicleEntities = baseMapper.selectList(new QueryWrapper<BasicdataDriverArteryEntity>().lambda() |
|
|
|
|
.eq(BasicdataDriverArteryEntity::getPhone, datum.getPhone())); |
|
|
|
|
if (!basicdataVehicleEntities.isEmpty()){ |
|
|
|
|
basicdataDriverArteryMapper.updateIsdeletedByPhone(datum.getPhone()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
BasicdataDriverArteryEntity copy = Func.copy(datum, BasicdataDriverArteryEntity.class); |
|
|
|
|
//连接到前端后取消注释
|
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
copy.setTenantId(user.getTenantId());// 租户号
|
|
|
|
|
copy.setUserId(user.getUserId()); // 创建人
|
|
|
|
|
copy.setUpdateUser(user.getUserId());// 更新人
|
|
|
|
|
log.info("复制后>>>>>>>>>>>>{}",copy); |
|
|
|
|
arrayList.add(copy); |
|
|
|
|
|
|
|
|
|
this.save(copy); |
|
|
|
|
//车辆和司机绑定关系
|
|
|
|
|
for (BasicdataDrivermiddleEntity basicdataDrivermiddleEntity : driverMiddleEntity) { |
|
|
|
|
basicdataDrivermiddleEntity.setDriverId(copy.getId()); |
|
|
|
|
basicdataDrivermiddleServiceImpl.save(basicdataDrivermiddleEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
this.saveBatch(arrayList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<BasicdataDriverArteryEntity> findDriverListByName(String driverName) { |
|
|
|
|
return baseMapper.findDriverListByName(driverName); |
|
|
|
|