|
|
@@ -569,7 +569,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
public KwtWaybillOrderAddress getAddress(Long lOrderId, int addressType) {
|
|
|
/**查询数据**/
|
|
|
- KwtLogisticsOrderAddress orderAddress = logisticsOrderAddressDao.findByAddress(lOrderId, addressType);
|
|
|
+ KwtWaybillOrderAddress orderAddress = waybillOrderAddressDao.findByAddress(lOrderId, addressType);
|
|
|
|
|
|
/**组装数据**/
|
|
|
KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
|
|
|
@@ -874,6 +874,75 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.ok("车辆运单撤回成功!");
|
|
|
}
|
|
|
|
|
|
+ public HttpResult cancelSendCarV1(List<Long> ids){
|
|
|
+ /**1数据校验**/
|
|
|
+ if (CollectionUtils.isEmpty(ids)) {
|
|
|
+ return HttpResult.error("请选择需要撤回的车辆运单!");
|
|
|
+ }
|
|
|
+ //1校验运单ID是否有效/2循环派车才能撤回/3运单当前状态是否可以撤回
|
|
|
+ for (Long id : ids) {
|
|
|
+ KwtWaybillOrder order = waybillOrderDao.selectById(id);
|
|
|
+ //1校验运单ID是否有效
|
|
|
+ if (order != null) {
|
|
|
+ //3待接单的车辆运单才能撤回
|
|
|
+ if (order.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
|
|
|
+ return HttpResult.error("运单"+order.getWOrderNo()+"当前状态已不能撤回!");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //循环派车信息
|
|
|
+ KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.selectById(id);
|
|
|
+ //2循环派车才能撤回
|
|
|
+ if (circulate != null) {
|
|
|
+ return HttpResult.error("循环派车单不能撤回!");
|
|
|
+ }
|
|
|
+ return HttpResult.error("选择撤回车辆运单的数据不存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ List<KwtWaybillOrder> waybillOrders = new ArrayList();
|
|
|
+ Map<Long, KwtLogisticsOrder> logisticsOrderData = new HashMap();
|
|
|
+ for (Long id : ids) {
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(id);
|
|
|
+ if (waybillOrder != null) {
|
|
|
+ //待接单的车辆运单才能撤回
|
|
|
+ if (waybillOrder.getStatus() == CarWaybillEnum.PENDING_ORDER.getCode()) {
|
|
|
+ /**2更新车辆运单**/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+ waybillOrders.add(waybillOrder);
|
|
|
+
|
|
|
+ /**3新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getUpdateTime(), waybillOrder.getStatus(), null);
|
|
|
+
|
|
|
+ /**4回退承运订单entrustAmount**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
|
|
|
+ BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
|
|
|
+ logisticsOrder.setEntrustAmount(entrustAmount.subtract(waybillOrder.getEntrustAmount()));
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+ logisticsOrderData.put(logisticsOrder.getId(), logisticsOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
+ //1车辆订单
|
|
|
+ for (KwtWaybillOrder waybillOrder:waybillOrders) {
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+ }
|
|
|
+
|
|
|
+ //2承运订单
|
|
|
+ for (Map.Entry<Long, KwtLogisticsOrder> entry : logisticsOrderData.entrySet()) {
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ editSckwLogisticsOrder(lOrder, entry.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ return HttpResult.ok("车辆运单撤回成功!");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param wOrder mongodb中车辆运单信息
|
|
|
* @param order 车辆运单信息
|
|
|
@@ -1660,12 +1729,14 @@ public class KwtWaybillOrderService {
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
- wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
+ wOrder.setLoadAmount(params.getType() == Global.NUMERICAL_ONE ? params.getAmount() : null);
|
|
|
wOrder.setLoadTime(params.getType() == Global.NUMERICAL_ONE ? params.getOperateTime() : null);
|
|
|
- wOrder.setUnloadUrls(params.getType() == Global.NUMERICAL_ONE ? params.getUrls() : null);
|
|
|
- wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
|
|
|
+ wOrder.setLoadUrls(params.getType() == Global.NUMERICAL_ONE ? params.getUrls() : null);
|
|
|
+
|
|
|
+ wOrder.setUnloadAmount(params.getType() == Global.NUMERICAL_TWO ? params.getAmount() : null);
|
|
|
wOrder.setUnloadTime(params.getType() == Global.NUMERICAL_TWO ? params.getOperateTime() : null);
|
|
|
- wOrder.setLoadUrls(params.getType() == Global.NUMERICAL_TWO ? params.getUrls() : null);
|
|
|
+ wOrder.setUnloadUrls(params.getType() == Global.NUMERICAL_TWO ? params.getUrls() : null);
|
|
|
+
|
|
|
wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
|
|
|
wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, Global.NUMERICAL_TWO);
|