|
@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
@@ -20,6 +22,7 @@ import com.sckw.core.common.enums.enums.DictEnum;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.exception.SystemException;
|
|
import com.sckw.core.exception.SystemException;
|
|
|
|
|
+import com.sckw.core.exception.SystemException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.constant.NumberConstant;
|
|
import com.sckw.core.model.constant.NumberConstant;
|
|
|
import com.sckw.core.model.enums.*;
|
|
import com.sckw.core.model.enums.*;
|
|
@@ -49,6 +52,7 @@ import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
|
|
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
import com.sckw.transport.common.config.MessageUrlConfig;
|
|
import com.sckw.transport.common.config.MessageUrlConfig;
|
|
|
import com.sckw.transport.dao.*;
|
|
import com.sckw.transport.dao.*;
|
|
|
import com.sckw.transport.model.*;
|
|
import com.sckw.transport.model.*;
|
|
@@ -57,6 +61,7 @@ import com.sckw.transport.model.param.*;
|
|
|
import com.sckw.transport.model.vo.*;
|
|
import com.sckw.transport.model.vo.*;
|
|
|
import com.sckw.transport.repository.*;
|
|
import com.sckw.transport.repository.*;
|
|
|
import com.sckw.transport.utils.DistanceUtils;
|
|
import com.sckw.transport.utils.DistanceUtils;
|
|
|
|
|
+import com.sckw.transport.utils.DistanceUtils;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.validation.Valid;
|
|
import jakarta.validation.Valid;
|
|
@@ -72,6 +77,7 @@ import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
|
+import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
@@ -2246,8 +2252,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
Map<String, KwtLogisticsOrderUnit> logOrderIdAndUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
Map<String, KwtLogisticsOrderUnit> logOrderIdAndUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
|
if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
|
logOrderIdAndUnitTypeKeyAndUnitMap = unitList.stream()
|
|
logOrderIdAndUnitTypeKeyAndUnitMap = unitList.stream()
|
|
|
- .peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getUnitType()))
|
|
|
|
|
- .collect(Collectors.toMap(KwtLogisticsOrderUnit::getLogisticsOrderIdAndUnitTypeKey,
|
|
|
|
|
|
|
+ .collect(Collectors.toMap(x -> x.getLOrderId() + "-" + x.getUnitType(),
|
|
|
Function.identity(), (x, y) -> x));
|
|
Function.identity(), (x, y) -> x));
|
|
|
}
|
|
}
|
|
|
//查询商品信息
|
|
//查询商品信息
|
|
@@ -2279,8 +2284,8 @@ public class KwtLogisticsConsignmentService {
|
|
|
Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap = logOrderIdAndContractMap;
|
|
Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap = logOrderIdAndContractMap;
|
|
|
|
|
|
|
|
List<LogisticsOrderResp> resps = records.stream()
|
|
List<LogisticsOrderResp> resps = records.stream()
|
|
|
- .map(x ->getLogisticsOrderResp(x,
|
|
|
|
|
- finalLogOrderIdAndUnitTypeKeyAndUnitMap, finalLogIdAndGoodsMap, finalGoodsIdAndGoodsMap, finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap, finalLogOrderIdAndContractMap))
|
|
|
|
|
|
|
+ .map(x ->getLogisticsOrderResp(x, finalLogOrderIdAndUnitTypeKeyAndUnitMap, finalLogIdAndGoodsMap
|
|
|
|
|
+ , finalGoodsIdAndGoodsMap, finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap, finalLogOrderIdAndContractMap))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
return PageDataResult.of(page,resps);
|
|
return PageDataResult.of(page,resps);
|
|
@@ -2378,7 +2383,12 @@ public class KwtLogisticsConsignmentService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
@NotNull
|
|
|
- private static LogisticsOrderResp getLogisticsOrderResp(KwtLogisticsOrder kwtLogisticsOrder, Map<String, KwtLogisticsOrderUnit> finalLogOrderIdAndUnitTypeKeyAndUnitMap, Map<Long, KwtLogisticsOrderGoods> finalLogIdAndGoodsMap, Map<Long, KwpGoods> finalGoodsIdAndGoodsMap, Map<String, KwtLogisticsOrderAddress> finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap, Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap) {
|
|
|
|
|
|
|
+ private static LogisticsOrderResp getLogisticsOrderResp(KwtLogisticsOrder kwtLogisticsOrder,
|
|
|
|
|
+ Map<String, KwtLogisticsOrderUnit> finalLogOrderIdAndUnitTypeKeyAndUnitMap,
|
|
|
|
|
+ Map<Long, KwtLogisticsOrderGoods> finalLogIdAndGoodsMap,
|
|
|
|
|
+ Map<Long, KwpGoods> finalGoodsIdAndGoodsMap,
|
|
|
|
|
+ Map<String, KwtLogisticsOrderAddress> finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap,
|
|
|
|
|
+ Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap) {
|
|
|
LogisticsOrderResp logisticsOrderResp = new LogisticsOrderResp();
|
|
LogisticsOrderResp logisticsOrderResp = new LogisticsOrderResp();
|
|
|
logisticsOrderResp.setLogisticsOrderId(String.valueOf(kwtLogisticsOrder.getId()));
|
|
logisticsOrderResp.setLogisticsOrderId(String.valueOf(kwtLogisticsOrder.getId()));
|
|
|
logisticsOrderResp.setLogisticsOrderNo(kwtLogisticsOrder.getLOrderNo());
|
|
logisticsOrderResp.setLogisticsOrderNo(kwtLogisticsOrder.getLOrderNo());
|
|
@@ -2393,7 +2403,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
logisticsOrderResp.setCarriageCompanyName(carriageCompany.getFirmName());
|
|
logisticsOrderResp.setCarriageCompanyName(carriageCompany.getFirmName());
|
|
|
|
|
|
|
|
KwtLogisticsOrderGoods goods = finalLogIdAndGoodsMap.getOrDefault(kwtLogisticsOrder.getId(), new KwtLogisticsOrderGoods());
|
|
KwtLogisticsOrderGoods goods = finalLogIdAndGoodsMap.getOrDefault(kwtLogisticsOrder.getId(), new KwtLogisticsOrderGoods());
|
|
|
- KwpGoods kwpGoods = finalGoodsIdAndGoodsMap.getOrDefault(goods.getId(), new KwpGoods());
|
|
|
|
|
|
|
+ KwpGoods kwpGoods = finalGoodsIdAndGoodsMap.getOrDefault(goods.getGoodsId(), new KwpGoods());
|
|
|
logisticsOrderResp.setGoodsId(String.valueOf(goods.getId()));
|
|
logisticsOrderResp.setGoodsId(String.valueOf(goods.getId()));
|
|
|
logisticsOrderResp.setGoodsName(kwpGoods.getName());
|
|
logisticsOrderResp.setGoodsName(kwpGoods.getName());
|
|
|
logisticsOrderResp.setTransportPrice(Objects.nonNull(kwtLogisticsOrder.getPrice()) ? kwtLogisticsOrder.getPrice().setScale(2,
|
|
logisticsOrderResp.setTransportPrice(Objects.nonNull(kwtLogisticsOrder.getPrice()) ? kwtLogisticsOrder.getPrice().setScale(2,
|
|
@@ -2405,19 +2415,11 @@ public class KwtLogisticsConsignmentService {
|
|
|
kwtLogisticsOrder.getAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
kwtLogisticsOrder.getAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
BigDecimal expectedTransportPrice = BigDecimal.ZERO;
|
|
BigDecimal expectedTransportPrice = BigDecimal.ZERO;
|
|
|
BigDecimal actualTransportPrice = BigDecimal.ZERO;
|
|
BigDecimal actualTransportPrice = BigDecimal.ZERO;
|
|
|
- if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),DictEnum.CHARGING_TYPE_1.getValue())){
|
|
|
|
|
- expectedTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getLoadAmount()) ?
|
|
|
|
|
|
|
+ expectedTransportPrice =
|
|
|
|
|
+ Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getAmount()) ?
|
|
|
kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getLoadAmount()) : BigDecimal.ZERO;
|
|
kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getLoadAmount()) : BigDecimal.ZERO;
|
|
|
- actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getTotalLoadAmount()) ?
|
|
|
|
|
- kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getTotalLoadAmount()) : BigDecimal.ZERO;
|
|
|
|
|
-
|
|
|
|
|
- }else if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),DictEnum.CHARGING_TYPE_2.getValue())){
|
|
|
|
|
- expectedTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
|
|
|
|
|
- kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getUnloadAmount()) : BigDecimal.ZERO;
|
|
|
|
|
- actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getTotalUnloadAmount()) ?
|
|
|
|
|
- kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getTotalUnloadAmount()) : BigDecimal.ZERO;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getTotalUnloadAmount()) ?
|
|
|
|
|
+ kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getTotalUnloadAmount()) : BigDecimal.ZERO;
|
|
|
|
|
|
|
|
logisticsOrderResp.setExpectedTransportPrice(expectedTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
logisticsOrderResp.setExpectedTransportPrice(expectedTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
@@ -2440,6 +2442,8 @@ public class KwtLogisticsConsignmentService {
|
|
|
new KwtLogisticsOrderContract());
|
|
new KwtLogisticsOrderContract());
|
|
|
logisticsOrderResp.setContractNo(orderContract.getContractNo());
|
|
logisticsOrderResp.setContractNo(orderContract.getContractNo());
|
|
|
logisticsOrderResp.setCreateTime(DateUtils.format(kwtLogisticsOrder.getCreateTime(), DateUtils.DATE_TIME_PATTERN));
|
|
logisticsOrderResp.setCreateTime(DateUtils.format(kwtLogisticsOrder.getCreateTime(), DateUtils.DATE_TIME_PATTERN));
|
|
|
|
|
+ logisticsOrderResp.setStatus(String.valueOf(kwtLogisticsOrder.getStatus()));
|
|
|
|
|
+ logisticsOrderResp.setStatusDesc(LogisticsOrderV1Enum.getDesc(kwtLogisticsOrder.getStatus()));
|
|
|
|
|
|
|
|
return logisticsOrderResp;
|
|
return logisticsOrderResp;
|
|
|
}
|
|
}
|
|
@@ -2457,8 +2461,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
Map<String, KwtLogisticsOrderUnit> logOrderIdUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
Map<String, KwtLogisticsOrderUnit> logOrderIdUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
|
logOrderIdUnitTypeKeyAndUnitMap = unitList.stream()
|
|
logOrderIdUnitTypeKeyAndUnitMap = unitList.stream()
|
|
|
- .peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getUnitType()))
|
|
|
|
|
- .collect(Collectors.toMap(KwtLogisticsOrderUnit::getLogisticsOrderIdAndUnitTypeKey, Function.identity(), (v1, v2) -> v1));
|
|
|
|
|
|
|
+ .collect(Collectors.toMap(x -> x.getLOrderId() + "-" + x.getUnitType(), Function.identity(), (v1, v2) -> v1));
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2773,6 +2776,110 @@ public class KwtLogisticsConsignmentService {
|
|
|
return logisticsOrderCirculateRepository.updateCirculates(orderCirculates);
|
|
return logisticsOrderCirculateRepository.updateCirculates(orderCirculates);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public DispatchCarResp dispatchCar(@Valid DispatchCarReq req) {
|
|
|
|
|
+ log.info("派车请求参数:{}", JSON.toJSONString(req));
|
|
|
|
|
+ //查询物流订单
|
|
|
|
|
+ Long logOrderId = Long.parseLong(req.getLogisticOrderId());
|
|
|
|
|
+ KwtLogisticsOrder logisticsOrder =
|
|
|
|
|
+ logisticsOrderRepository.queryByLogisticsOrderId(logOrderId);
|
|
|
|
|
+ if (Objects.isNull(logisticsOrder)){
|
|
|
|
|
+ throw new BusinessException("未找到该物流订单信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ //车牌id去重
|
|
|
|
|
+ List<DispatchCarReq.CarInfo> carInfos = req.getCarInfos();
|
|
|
|
|
+ Set<String> truckIds = carInfos.stream()
|
|
|
|
|
+ .map(DispatchCarReq.CarInfo::getTruckId)
|
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
+ //查询派车信息
|
|
|
|
|
+ List<KwtLogisticsOrderCirculate> logisticsOrderCirculates =
|
|
|
|
|
+ logisticsOrderCirculateRepository.findOneByLogOrderIdsAndTruckIds(logisticsOrder.getId(), truckIds);
|
|
|
|
|
+
|
|
|
|
|
+ List<KwtLogisticsOrderCirculate> insertOrderCirculates = Lists.newArrayList();
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(logisticsOrderCirculates)){
|
|
|
|
|
+ //直接新增
|
|
|
|
|
+ List<KwtLogisticsOrderCirculate> saveOrderCirculates = carInfos.stream()
|
|
|
|
|
+ .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ insertOrderCirculates.addAll(saveOrderCirculates);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ //过滤掉已有的车
|
|
|
|
|
+ List<Long> truckIdList = logisticsOrderCirculates.stream()
|
|
|
|
|
+ .map(KwtLogisticsOrderCirculate::getTruckId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ List<KwtLogisticsOrderCirculate> saveOrderCirculates = carInfos.stream().filter(t -> !truckIdList.contains(t.getTruckId()))
|
|
|
|
|
+ .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ insertOrderCirculates.addAll(saveOrderCirculates);
|
|
|
|
|
+ }
|
|
|
|
|
+ DispatchCarResp dispatchCarResp = new DispatchCarResp();
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(insertOrderCirculates)){
|
|
|
|
|
+ //批量新增
|
|
|
|
|
+ dispatchCarResp.setSuccessCount("0");
|
|
|
|
|
+ return new DispatchCarResp();
|
|
|
|
|
+ }
|
|
|
|
|
+ Boolean b = logisticsOrderCirculateRepository.insertCirculates(insertOrderCirculates);
|
|
|
|
|
+ if (!b){
|
|
|
|
|
+ throw new BusinessException("派车失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ dispatchCarResp.setSuccessCount(String.valueOf(insertOrderCirculates.size()));
|
|
|
|
|
+ return dispatchCarResp;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @NotNull
|
|
|
|
|
+ private static KwtLogisticsOrderCirculate getKwtLogisticsOrderCirculate(DispatchCarReq req,
|
|
|
|
|
+ DispatchCarReq.CarInfo carInfo, Long logOrderId, KwtLogisticsOrder logisticsOrder) {
|
|
|
|
|
+ KwtLogisticsOrderCirculate logisticsOrderCirculate = new KwtLogisticsOrderCirculate();
|
|
|
|
|
+ logisticsOrderCirculate.setEntId(Long.valueOf(req.getEntId()));
|
|
|
|
|
+ logisticsOrderCirculate.setLOrderId(logOrderId);
|
|
|
|
|
+ logisticsOrderCirculate.setTruckId(Long.valueOf(carInfo.getTruckId()));
|
|
|
|
|
+ logisticsOrderCirculate.setTruckNo(carInfo.getTruckNo());
|
|
|
|
|
+ Date startDate = Objects.nonNull(logisticsOrder.getStartTime()) ?
|
|
|
|
|
+ Date.from(logisticsOrder.getStartTime().atZone(ZoneId.systemDefault()).toInstant()) : null;
|
|
|
|
|
+ logisticsOrderCirculate.setStartTime(startDate);
|
|
|
|
|
+ Date endDate = Objects.nonNull(logisticsOrder.getEndTime()) ?
|
|
|
|
|
+ Date.from(logisticsOrder.getEndTime().atZone(ZoneId.systemDefault()).toInstant()) : null;
|
|
|
|
|
+ logisticsOrderCirculate.setEndTime(endDate);
|
|
|
|
|
+ logisticsOrderCirculate.setUnit(logisticsOrder.getUnit());
|
|
|
|
|
+ logisticsOrderCirculate.setEntrustAmount(logisticsOrder.getEntrustAmount());
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
|
+ logisticsOrderCirculate.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
+ logisticsOrderCirculate.setCreateTime(date);
|
|
|
|
|
+ logisticsOrderCirculate.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
|
|
+ logisticsOrderCirculate.setUpdateTime(date);
|
|
|
|
|
+ return logisticsOrderCirculate;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public Boolean logisticOrderFinish(@Valid OrderFinishReq req) {
|
|
|
|
|
+ log.info("物流订单-完结订单传递参数信息:{}", JSONObject.toJSONString(req));
|
|
|
|
|
+ //查询物流订单
|
|
|
|
|
+ Long logOrderId = Long.parseLong(req.getLogisticOrderId());
|
|
|
|
|
+ KwtLogisticsOrder logisticsOrder =
|
|
|
|
|
+ logisticsOrderRepository.queryByLogisticsOrderId(logOrderId);
|
|
|
|
|
+ if (Objects.isNull(logisticsOrder)){
|
|
|
|
|
+ throw new BusinessException("未找到该物流订单信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ KwtLogisticsOrder updateLogisticsOrder = new KwtLogisticsOrder();
|
|
|
|
|
+ updateLogisticsOrder.setId(logOrderId);
|
|
|
|
|
+ if (Objects.equals(logisticsOrder.getStatus(), LogisticsOrderV1Enum.WAIT_DELIVERY.getCode())){
|
|
|
|
|
+ updateLogisticsOrder.setStatus(LogisticsOrderV1Enum.HAVE_FINISHED.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //查询物流订单下的所有运单
|
|
|
|
|
+ List<KwtWaybillOrderSubtask> waybillOrderSubtasks = logisticsOrderSubtaskRepository.queryByLogId(logOrderId);
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(waybillOrderSubtasks) && Objects.equals(logisticsOrder.getStatus(), LogisticsOrderV1Enum.IN_TRANSIT.getCode())){
|
|
|
|
|
+ boolean b = waybillOrderSubtasks.stream().anyMatch(x -> !Objects.equals(x.getStatus(),
|
|
|
|
|
+ CarWaybillV1Enum.WAIT_UNLOADING.getCode()) || !Objects.equals(x.getStatus(),
|
|
|
|
|
+ CarWaybillV1Enum.APPROVAL_TREAT.getCode()));
|
|
|
|
|
+ if (b){
|
|
|
|
|
+ updateLogisticsOrder.setStatus(LogisticsOrderEnum.NEARING_COMPLETION.getCode());
|
|
|
|
|
+ }else if (Objects.equals(logisticsOrder.getStatus(), LogisticsOrderEnum.NEARING_COMPLETION.getCode())){
|
|
|
|
|
+ updateLogisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return logisticsOrderRepository.updateLogisticsOrder(updateLogisticsOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 查询司机关联完成运单和累计运输量
|
|
* 查询司机关联完成运单和累计运输量
|
|
|
* @param param
|
|
* @param param
|
|
@@ -2886,7 +2993,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
List<LogisticsOrderResp> ordderList = logOrderList.stream()
|
|
List<LogisticsOrderResp> ordderList = logOrderList.stream()
|
|
|
.map(order -> {
|
|
.map(order -> {
|
|
|
return getLogisticsOrderResp(order, logOrderIdAndGoodsMap, goodsIdAndGoodsMap, logOrderIdAndUnitMap,
|
|
return getLogisticsOrderResp(order, logOrderIdAndGoodsMap, goodsIdAndGoodsMap, logOrderIdAndUnitMap,
|
|
|
- tOrderIdAndUnitMap, logOrderIdAndAddressMap, logOrderIdAndCirculateMap);
|
|
|
|
|
|
|
+ tOrderIdAndUnitMap, logOrderIdAndAddressMap, logOrderIdAndCirculateMap);
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
log.info("查询司机关联车辆的物流订单成功!");
|
|
log.info("查询司机关联车辆的物流订单成功!");
|
|
|
return PageDataResult.success(param.getPageNum(), param.getPageSize(), (long) ordderList.size(), ordderList);
|
|
return PageDataResult.success(param.getPageNum(), param.getPageSize(), (long) ordderList.size(), ordderList);
|
|
@@ -2975,6 +3082,4 @@ public class KwtLogisticsConsignmentService {
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|