|
@@ -1,5 +1,6 @@
|
|
|
package com.sckw.transport.service;
|
|
package com.sckw.transport.service;
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
@@ -10,15 +11,16 @@ import com.sckw.excel.utils.DateUtil;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.transport.dao.*;
|
|
import com.sckw.transport.dao.*;
|
|
|
import com.sckw.transport.model.*;
|
|
import com.sckw.transport.model.*;
|
|
|
-import com.sckw.transport.model.dto.OrderDto;
|
|
|
|
|
|
|
+import com.sckw.transport.model.dto.OrderDTO;
|
|
|
import com.sckw.transport.model.param.ConsignOrderQuery;
|
|
import com.sckw.transport.model.param.ConsignOrderQuery;
|
|
|
-import com.sckw.transport.model.vo.CarDataVo;
|
|
|
|
|
-import com.sckw.transport.model.vo.CarWaybillVo;
|
|
|
|
|
-import com.sckw.transport.model.vo.ConsignOrderVo;
|
|
|
|
|
|
|
+import com.sckw.transport.model.vo.CarDataVO;
|
|
|
|
|
+import com.sckw.transport.model.vo.CarWaybillVO;
|
|
|
|
|
+import com.sckw.transport.model.vo.ConsignOrderVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
@@ -74,35 +76,34 @@ public class ConsignOrderService {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public List<ConsignOrderVo> export(ConsignOrderQuery query) {
|
|
|
|
|
- return new ArrayList<ConsignOrderVo>();
|
|
|
|
|
|
|
+ public List<ConsignOrderVO> export(ConsignOrderQuery query) {
|
|
|
|
|
+ return new ArrayList<ConsignOrderVO>();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public HttpResult getCarWaybillByOrder(OrderDto orderDto) {
|
|
|
|
|
- List<CarWaybillVo> returnList = new ArrayList<>();
|
|
|
|
|
- CarWaybillVo carWaybillVo = new CarWaybillVo();
|
|
|
|
|
|
|
+ public HttpResult getCarWaybillByOrder(OrderDTO orderDto) {
|
|
|
|
|
+ List<CarWaybillVO> returnList = new ArrayList<>();
|
|
|
KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
- .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getOrderNo()))
|
|
|
|
|
|
|
+ .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
|
|
|
.eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
|
|
.eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
|
|
|
- .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())
|
|
|
|
|
- .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO));
|
|
|
|
|
|
|
+ .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
|
|
|
if (ObjectUtils.isEmpty(order)) {
|
|
if (ObjectUtils.isEmpty(order)) {
|
|
|
return HttpResult.ok(returnList);
|
|
return HttpResult.ok(returnList);
|
|
|
}
|
|
}
|
|
|
List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
|
|
List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
|
|
|
.eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
|
|
.eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
|
|
|
- .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtWaybillOrder::getLOrderId, orderDto.getOrderNo()));
|
|
|
|
|
|
|
+ .eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));
|
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
|
- KwtWaybillOrderTrack kwtWaybillOrderTrack = kwtWaybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
|
|
|
|
|
|
|
+ CarWaybillVO carWaybillVo = new CarWaybillVO();
|
|
|
|
|
+ KwtWaybillOrderTrack track = kwtWaybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getId()));
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getId()));
|
|
|
- KwtWaybillOrderTicket loadKwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
|
|
|
|
|
|
|
+ KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
|
|
|
- KwtWaybillOrderTicket unloadKwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
|
|
|
|
|
|
|
+ KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
|
- KwtLogisticsOrderCirculate kwtLogisticsOrderCirculate = kwtLogisticsOrderCirculateMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
|
|
|
|
|
|
|
+ KwtLogisticsOrderCirculate circulate = kwtLogisticsOrderCirculateMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtLogisticsOrderCirculate::getLOrderId, kwtWaybillOrder.getId())
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtLogisticsOrderCirculate::getLOrderId, kwtWaybillOrder.getId())
|
|
|
.eq(KwtLogisticsOrderCirculate::getEntId, order.getEntId()));
|
|
.eq(KwtLogisticsOrderCirculate::getEntId, order.getEntId()));
|
|
|
//扣亏量/吨->亏吨量-合理损耗
|
|
//扣亏量/吨->亏吨量-合理损耗
|
|
@@ -110,42 +111,58 @@ public class ConsignOrderService {
|
|
|
if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
|
|
if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
|
|
|
deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
|
|
deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
|
|
|
}
|
|
}
|
|
|
- carWaybillVo.setWaybillNumber(order.getLOrderNo())
|
|
|
|
|
- .setTruckNo(kwtWaybillOrder.getTruckNo())
|
|
|
|
|
- .setStatus(kwtWaybillOrderTrack == null ? null : String.valueOf(kwtWaybillOrderTrack.getStatus()))
|
|
|
|
|
- .setWaybillType(kwtWaybillOrder.getType())
|
|
|
|
|
- //todo 调用司机服务 dubbo
|
|
|
|
|
- .setDriverName(null)
|
|
|
|
|
- //todo 取mongo
|
|
|
|
|
- .setConsignMotorcade(null)
|
|
|
|
|
- .setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()))
|
|
|
|
|
- .setSendCarDate(DateUtil.getDateTime(kwtLogisticsOrderCirculate.getEntrustDate()))
|
|
|
|
|
- .setStowageWeigh(loadKwtWaybillOrderTicket.getAmount() == null ? null : String.valueOf(loadKwtWaybillOrderTicket.getAmount()))
|
|
|
|
|
- .setStowageDate(DateUtil.getDateTime(loadKwtWaybillOrderTicket.getCreateTime()))
|
|
|
|
|
- .setUnloadDate(DateUtil.getDateTime(unloadKwtWaybillOrderTicket.getCreateTime()))
|
|
|
|
|
- .setUnloadWeigh(unloadKwtWaybillOrderTicket.getAmount() == null ? null : String.valueOf(loadKwtWaybillOrderTicket.getAmount()))
|
|
|
|
|
- /**亏吨量/吨->装货量-卸货量
|
|
|
|
|
- 扣亏量/吨->亏吨量-合理损耗*/
|
|
|
|
|
- .setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()))
|
|
|
|
|
- .setDeduct(String.valueOf(deduct))
|
|
|
|
|
- .setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
|
|
|
|
|
|
|
+ carWaybillVo.setId(String.valueOf(kwtWaybillOrder.getId()));
|
|
|
|
|
+ carWaybillVo.setWaybillNumber(order.getLOrderNo());
|
|
|
|
|
+ carWaybillVo.setTruckNo(kwtWaybillOrder == null ? null : kwtWaybillOrder.getTruckNo());
|
|
|
|
|
+ carWaybillVo.setStatus(track == null ? null : String.valueOf(track.getStatus()));
|
|
|
|
|
+ carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
|
|
|
|
|
+ //todo 调用司机服务 dubbo
|
|
|
|
|
+ carWaybillVo.setDriverName(null);
|
|
|
|
|
+ //todo 取mongo
|
|
|
|
|
+ carWaybillVo.setConsignMotorcade(null);
|
|
|
|
|
+ carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
|
|
|
|
|
+ if (circulate != null) {
|
|
|
|
|
+ carWaybillVo.setSendCarDate(circulate.getCreateTime() == null ? null : DateUtil.getDateTime(circulate.getCreateTime()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ carWaybillVo.setSendCarDate(null);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (loadTicket != null) {
|
|
|
|
|
+ carWaybillVo.setStowageWeigh(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
|
|
|
|
|
+ carWaybillVo.setStowageDate(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ carWaybillVo.setSendCarWeigh(null);
|
|
|
|
|
+ carWaybillVo.setStowageDate(null);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (unloadTicket != null) {
|
|
|
|
|
+ carWaybillVo.setUnloadWeigh(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
|
|
|
|
|
+ carWaybillVo.setUnloadDate(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ carWaybillVo.setUnloadWeigh(null);
|
|
|
|
|
+ carWaybillVo.setUnloadDate(null);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**亏吨量/吨->装货量-卸货量
|
|
|
|
|
+ 扣亏量/吨->亏吨量-合理损耗*/
|
|
|
|
|
+ carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
|
|
|
|
|
+ carWaybillVo.setDeduct(String.valueOf(deduct));
|
|
|
|
|
+ carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
|
|
|
|
|
+ String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
|
|
|
returnList.add(carWaybillVo);
|
|
returnList.add(carWaybillVo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return HttpResult.ok(returnList);
|
|
return HttpResult.ok(returnList);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public HttpResult getCarListByOrder(OrderDto orderDto) {
|
|
|
|
|
|
|
+ public HttpResult getCarListByOrder(OrderDTO orderDto) {
|
|
|
KwtWaybillOrder waybillOrder = kwtWaybillOrderMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrder>()
|
|
KwtWaybillOrder waybillOrder = kwtWaybillOrderMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrder>()
|
|
|
- .eq(KwtWaybillOrder::getId, orderDto.getId())
|
|
|
|
|
|
|
+ .eq(KwtWaybillOrder::getLOrderId, orderDto.getId())
|
|
|
.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));
|
|
.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));
|
|
|
List<KwtLogisticsOrderCirculate> list = kwtLogisticsOrderCirculateMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
|
|
List<KwtLogisticsOrderCirculate> list = kwtLogisticsOrderCirculateMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
|
|
|
.eq(KwtLogisticsOrderCirculate::getLOrderId, orderDto.getId())
|
|
.eq(KwtLogisticsOrderCirculate::getLOrderId, orderDto.getId())
|
|
|
.eq(KwtLogisticsOrderCirculate::getEntId, LoginUserHolder.getEntId()));
|
|
.eq(KwtLogisticsOrderCirculate::getEntId, LoginUserHolder.getEntId()));
|
|
|
- List<CarDataVo> carDataVos = new ArrayList<CarDataVo>();
|
|
|
|
|
|
|
+ List<CarDataVO> carDataVOS = new ArrayList<CarDataVO>();
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
for (KwtLogisticsOrderCirculate circulate : list) {
|
|
for (KwtLogisticsOrderCirculate circulate : list) {
|
|
|
- CarDataVo carDataVo = new CarDataVo();
|
|
|
|
|
|
|
+ CarDataVO carDataVo = new CarDataVO();
|
|
|
//todo dubbo查询
|
|
//todo dubbo查询
|
|
|
// circulate.getDriverId() ;
|
|
// circulate.getDriverId() ;
|
|
|
// carDataVo.setDriverName();
|
|
// carDataVo.setDriverName();
|
|
@@ -154,9 +171,32 @@ public class ConsignOrderService {
|
|
|
// carDataVo.getLoadAmount();
|
|
// carDataVo.getLoadAmount();
|
|
|
carDataVo.setTruckNo(circulate.getTruckNo());
|
|
carDataVo.setTruckNo(circulate.getTruckNo());
|
|
|
carDataVo.setWOrderNo(waybillOrder.getWOrderNo());
|
|
carDataVo.setWOrderNo(waybillOrder.getWOrderNo());
|
|
|
- carDataVos.add(carDataVo);
|
|
|
|
|
|
|
+ carDataVOS.add(carDataVo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return HttpResult.ok(carDataVos);
|
|
|
|
|
|
|
+ return HttpResult.ok(carDataVOS);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ public HttpResult cancelConsign(OrderDTO orderDto) {
|
|
|
|
|
+ log.info("订单-撤销托运请求参数:{}", JSONObject.toJSONString(orderDto));
|
|
|
|
|
+ HttpResult result = new HttpResult();
|
|
|
|
|
+ KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
|
|
+ .eq(KwtLogisticsOrder::getId, orderDto.getId())
|
|
|
|
|
+ .eq(KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
|
|
|
|
|
+ .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
|
|
|
|
|
+ if (logisticsOrder == null) {
|
|
|
|
|
+ result.setMsg("单据不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ /**以此字段判别是否存在分包操作*/
|
|
|
|
|
+ if (logisticsOrder.getPid()==null){//撤销数据回归到贸易订单
|
|
|
|
|
+ //并不属于被分包
|
|
|
|
|
+ //待接单状态下才能撤销托运
|
|
|
|
|
+ //
|
|
|
|
|
+
|
|
|
|
|
+ }else {
|
|
|
|
|
+ //即代表存在分包,当次是属于被分包.需要将数据回归到上游数据。
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|