|
|
@@ -49,6 +49,8 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -292,7 +294,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
|
|
|
|
/*车辆运单状态记录*/
|
|
|
- this.setWaybillOrderTrack(waybillOrder.getId(), null, waybillOrder.getUpdateTime(), waybillOrder.getStatus(), null);
|
|
|
+ this.setWaybillOrderTrack(waybillOrder.getId(), null, null, waybillOrder.getUpdateTime(), waybillOrder.getStatus(), null);
|
|
|
}
|
|
|
}
|
|
|
return sendCarEntrustAll;
|
|
|
@@ -300,6 +302,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
|
|
|
/**
|
|
|
* @param sendCarEntrusts 委派参数
|
|
|
+ * @param type 运单类型
|
|
|
* @desc 更新承运订单委派信息
|
|
|
* @author zk
|
|
|
* @date 2024/3/5
|
|
|
@@ -450,16 +453,18 @@ public class KwtWaybillOrderV1Service {
|
|
|
/**
|
|
|
* @param wOrderId 车辆订单ID
|
|
|
* @param wSubtaskId 车辆运单子单ID
|
|
|
+ * @param wAddressId 车辆订单地址id
|
|
|
* @param status 车辆运单状态
|
|
|
* @param remark 备注
|
|
|
* @desc 新增运单状态记录
|
|
|
* @author zk
|
|
|
* @date 2023/7/20
|
|
|
**/
|
|
|
- public void setWaybillOrderTrack(Long wOrderId, Long wSubtaskId, Date operateTime, int status, String remark) {
|
|
|
+ public void setWaybillOrderTrack(Long wOrderId, Long wSubtaskId, Long wAddressId, Date operateTime, int status, String remark) {
|
|
|
KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
|
|
|
orderTrack.setWOrderId(wOrderId);
|
|
|
orderTrack.setWSubtaskId(wSubtaskId);
|
|
|
+ orderTrack.setWAddressId(wAddressId);
|
|
|
orderTrack.setOperateTime(operateTime == null ? new Date() : operateTime);
|
|
|
orderTrack.setStatus(status);
|
|
|
orderTrack.setRemark(remark);
|
|
|
@@ -497,7 +502,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
/*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, waybillOrder.getUpdateTime(), waybillOrder.getStatus(), null);
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, waybillOrder.getUpdateTime(), waybillOrder.getStatus(), null);
|
|
|
|
|
|
/*4、回退物流订单委托量*/
|
|
|
/*4.1、装货址委派量entrustAmount回退*/
|
|
|
@@ -516,6 +521,10 @@ public class KwtWaybillOrderV1Service {
|
|
|
//运单子订单
|
|
|
List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
+ //更新运单子单状态
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+
|
|
|
//物流订单
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
//承运订单已委派量=承运订单原委派量-当前车辆运单委派量
|
|
|
@@ -551,10 +560,18 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.PENDING_VEHICLE.getCode());
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
- /*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ //3、运单子单更新状态
|
|
|
+ List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
+ //更新运单子单状态
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
|
|
|
- /*4、更新司机/车辆数据*/
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /*5、更新司机/车辆数据*/
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
@@ -564,8 +581,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
- /*5、累加物流订单委托量(循环运单)*/
|
|
|
- /*5.1、装货址委派量entrustAmount累加*/
|
|
|
+ /*6、累加物流订单委托量(循环运单)*/
|
|
|
+ /*6.1、装货址委派量entrustAmount累加*/
|
|
|
//运单装货地址
|
|
|
List<KwtWaybillOrderAddress> orderAddresses = waybillOrderAddressDao.findByAddresses(wOrderId, AddressDefaultTypeEnum.SHIPMENT.getCode());
|
|
|
for (KwtWaybillOrderAddress address:orderAddresses) {
|
|
|
@@ -577,9 +594,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrderAmountDao.updateById(logisticsOrderAmount);
|
|
|
}
|
|
|
|
|
|
- /*5.2、物流订单委派量entrustAmount累加*/
|
|
|
- //运单子订单
|
|
|
- List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ /*6.2、物流订单委派量entrustAmount累加*/
|
|
|
for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
//物流订单
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
@@ -616,15 +631,23 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
/*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ //4、运单子单更新状态
|
|
|
+ List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
+ //更新运单子单状态
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
|
|
|
//循环运单不对物流订单委托量变更
|
|
|
if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
- /*4、回退物流订单委托量(循环运单)*/
|
|
|
- /*4.1、装货址委派量entrustAmount回退*/
|
|
|
+ /*5、回退物流订单委托量(循环运单)*/
|
|
|
+ /*5.1、装货址委派量entrustAmount回退*/
|
|
|
//运单装货地址
|
|
|
List<KwtWaybillOrderAddress> orderAddresses = waybillOrderAddressDao.findByAddresses(wOrderId, AddressDefaultTypeEnum.SHIPMENT.getCode());
|
|
|
for (KwtWaybillOrderAddress address:orderAddresses) {
|
|
|
@@ -636,9 +659,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrderAmountDao.updateById(logisticsOrderAmount);
|
|
|
}
|
|
|
|
|
|
- /*4.2、物流订单委派量entrustAmount回退*/
|
|
|
- //运单子订单
|
|
|
- List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ /*5.2、物流订单委派量entrustAmount回退*/
|
|
|
for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
//物流订单
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
@@ -679,10 +700,18 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
- /*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ //3、运单子单更新状态
|
|
|
+ List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
+ //更新运单子单状态
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /*4、更新司机/车辆数据*/
|
|
|
+ /*5、更新司机/车辆数据*/
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
@@ -714,11 +743,19 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
- /*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ //3、运单子单更新状态
|
|
|
+ List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
+ //更新运单子单状态
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /*4、回退物流订单委托量*/
|
|
|
- /*4.1、装货址委派量entrustAmount回退*/
|
|
|
+ /*5、回退物流订单委托量*/
|
|
|
+ /*5.1、装货址委派量entrustAmount回退*/
|
|
|
//运单装货地址
|
|
|
List<KwtWaybillOrderAddress> orderAddresses = waybillOrderAddressDao.findByAddresses(wOrderId, AddressDefaultTypeEnum.SHIPMENT.getCode());
|
|
|
for (KwtWaybillOrderAddress address:orderAddresses) {
|
|
|
@@ -730,9 +767,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrderAmountDao.updateById(logisticsOrderAmount);
|
|
|
}
|
|
|
|
|
|
- /*4.2、物流订单委派量entrustAmount回退*/
|
|
|
- //运单子订单
|
|
|
- List<KwtWaybillOrderSubtask> orderSubtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ /*5.2、物流订单委派量entrustAmount回退*/
|
|
|
for (KwtWaybillOrderSubtask subtask:orderSubtasks) {
|
|
|
//物流订单
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
@@ -768,8 +803,14 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.WAIT_LOADING.getCode());
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
- /*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ /*3、更新车辆运单-子单*/
|
|
|
+ //运单子单信息
|
|
|
+ KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(params.getWSubtaskId());
|
|
|
+ orderSubtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
@@ -808,7 +849,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
|
|
|
/*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
/*4、新增装卸货榜单信息*/
|
|
|
waybillOrderTicketService.addTicketV1(loading, waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getUrls(), params.getOperateTime(), Global.NUMERICAL_ONE);
|
|
|
@@ -839,8 +880,14 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.WAIT_UNLOADING.getCode());
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
- /*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ /*3、更新车辆运单-子单*/
|
|
|
+ //运单子单信息
|
|
|
+ KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(params.getWSubtaskId());
|
|
|
+ orderSubtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
@@ -885,7 +932,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
|
|
|
/*3、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
/*4、新增装卸货榜单信息*/
|
|
|
waybillOrderTicketService.addTicketV1(loading, waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getUrls(), params.getOperateTime(), Global.NUMERICAL_TWO);
|
|
|
@@ -921,7 +968,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
|
|
|
/*6.2、新增运单状态记录*/
|
|
|
- setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
/*7、更新司机/车辆数据*/
|
|
|
//更新司机信息
|
|
|
@@ -985,19 +1032,25 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
|
|
|
|
//新增运单状态记录kwt_waybill_order_track
|
|
|
- setWaybillOrderTrack(waybillOrderNew.getId(), null, waybillOrderNew.getCreateTime(), waybillOrderNew.getStatus(), null);
|
|
|
+ setWaybillOrderTrack(waybillOrderNew.getId(), null, null, waybillOrderNew.getCreateTime(), waybillOrderNew.getStatus(), null);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param params {}
|
|
|
- * @desc 修改单证-装卸货-多单位
|
|
|
+ * @desc 修改单证
|
|
|
* @author zk
|
|
|
- * @date 2024/3/6
|
|
|
+ * @date 2024/3/7
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public HttpResult editTicketV1(WaybillOrderTicketV4Dto params) {
|
|
|
+ public HttpResult editTicketV1(WaybillOrderEditTicketDto params) {
|
|
|
/*1、校验*/
|
|
|
- Long wOrderId = params.getWOrderId();
|
|
|
+ Long wTicketId = params.getWTicketId();
|
|
|
+ KwtWaybillOrderTicket ticket = waybillOrderTicketDao.selectById(wTicketId);
|
|
|
+ //榜单信息
|
|
|
+ if (ticket == null) {
|
|
|
+ return HttpResult.error("榜单信息不存在,请确认!");
|
|
|
+ }
|
|
|
+ Long wOrderId = ticket.getWOrderId();
|
|
|
//运单信息
|
|
|
KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
|
|
|
if (waybillOrder == null) {
|
|
|
@@ -1008,7 +1061,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
return HttpResult.error("运单" + waybillOrder.getWOrderNo() + "当前状态已不能修改榜单!");
|
|
|
}
|
|
|
//地址信息
|
|
|
- KwtWaybillOrderAddress address = waybillOrderAddressDao.selectById(params.getWAddressId());
|
|
|
+ KwtWaybillOrderAddress address = waybillOrderAddressDao.selectById(ticket.getWAddressId());
|
|
|
if (address == null) {
|
|
|
return HttpResult.error("运单该地址已不存在!");
|
|
|
}
|
|
|
@@ -1016,17 +1069,17 @@ public class KwtWaybillOrderV1Service {
|
|
|
/*2、更新装卸货榜单信息*/
|
|
|
//榜单信息
|
|
|
List<WaybillOrderTicketLoadingDto> loading = params.getLoading();
|
|
|
- waybillOrderTicketService.editTicketV1(loading, params.getWAddressId(), params.getUrls(), params.getOperateTime());
|
|
|
+ waybillOrderTicketService.editTicketV1(loading, ticket.getWAddressId(), params.getUrls(), params.getOperateTime());
|
|
|
|
|
|
/*3、更新车辆运单-子单*/
|
|
|
//运单子单信息
|
|
|
- KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(params.getWSubtaskId());
|
|
|
+ KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(ticket.getWSubtaskId());
|
|
|
//物流运单信息
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(orderSubtask.getLOrderId());
|
|
|
//运单-子单装货榜单信息
|
|
|
- List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, params.getWSubtaskId(), AddressDefaultTypeEnum.SHIPMENT.getCode(), orderSubtask.getUnit());
|
|
|
+ List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, ticket.getWSubtaskId(), AddressDefaultTypeEnum.SHIPMENT.getCode(), orderSubtask.getUnit());
|
|
|
//运单-子单卸货榜单信息
|
|
|
- List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, params.getWSubtaskId(), AddressDefaultTypeEnum.TAKE.getCode(), orderSubtask.getUnit());
|
|
|
+ List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, ticket.getWSubtaskId(), AddressDefaultTypeEnum.TAKE.getCode(), orderSubtask.getUnit());
|
|
|
//装货-总量
|
|
|
BigDecimal loadAmount = loadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//卸货-总量
|
|
|
@@ -1038,9 +1091,372 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
orderSubtask.setDeficitPrice(deficitPrice.doubleValue());
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+
|
|
|
+ /*4、更新车辆运单子单状态*/
|
|
|
+ //运单子单信息
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(orderSubtask.getWOrderId());
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ //运单子单状态不为驳回状态则不更新运单状态
|
|
|
+ if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+ //榜单存在审核失败状态则不更新运单状态
|
|
|
+ List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(null, subtask.getId(), null);
|
|
|
+ for (KwtWaybillOrderTicket ticket1:tickets) {
|
|
|
+ if (ticket1.getStatus() == Global.NUMERICAL_ONE) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //运单-子弹当前为驳回则状态更新为单证更新审核中
|
|
|
+ int status = orderSubtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode()) ? CarWaybillEnum.APPROVAL_IN.getCode() : orderSubtask.getStatus();
|
|
|
+ subtask.setStatus(status);
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*5、更新车辆运单-状态*/
|
|
|
+ //运单状态不为驳回状态则不更新运单状态
|
|
|
+ if (!waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+ //运单子单存在非待审核和审核中则不更新
|
|
|
+ subtasks = waybillOrderSubtaskDao.findByWOrderId(orderSubtask.getWOrderId());
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_IN.getCode())
|
|
|
+ && !subtask.getStatus().equals(CarWaybillEnum.APPROVAL_TREAT.getCode())) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.APPROVAL_IN.getCode());
|
|
|
+ waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /*4.2、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, null, waybillOrder.getStatus(), null);
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 单证审核-驳回
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult approvalReject(List<WaybillOrderTicketApprovalRejectDto> params) {
|
|
|
+ /*1、验证*/
|
|
|
+ if (CollectionUtils.isEmpty(params)) {
|
|
|
+ return HttpResult.error("请选择需要驳回的榜单!");
|
|
|
+ }
|
|
|
+ //运单ID集
|
|
|
+ List<Long> wOrderIds = new ArrayList<>();
|
|
|
+ //运单-子单ID集
|
|
|
+ List<Long> wSubtaskIds = new ArrayList<>();
|
|
|
+ for (WaybillOrderTicketApprovalRejectDto approval:params) {
|
|
|
+ KwtWaybillOrderTicket ticket = waybillOrderTicketDao.selectById(approval.getWTicketId());
|
|
|
+ if (ticket == null) {
|
|
|
+ return HttpResult.error("榜单不存在请确认!");
|
|
|
+ }
|
|
|
+ wOrderIds.add(ticket.getWOrderId());
|
|
|
+ wSubtaskIds.add(ticket.getWSubtaskId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /*2、数据处理*/
|
|
|
+ /*2.1、修改榜单状态*/
|
|
|
+ for (WaybillOrderTicketApprovalRejectDto approval:params) {
|
|
|
+ KwtWaybillOrderTicket ticket = waybillOrderTicketDao.selectById(approval.getWTicketId());
|
|
|
+ ticket.setStatus(Global.NUMERICAL_ONE);
|
|
|
+ ticket.setRemark(approval.getRemark());
|
|
|
+ waybillOrderTicketDao.updateById(ticket);
|
|
|
+ }
|
|
|
+ /*2.2、修改运单状态*/
|
|
|
+ for (Long wOrderId:wOrderIds) {
|
|
|
+ KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
|
|
|
+ if (waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
|
|
|
+ waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /*2.3、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, null, waybillOrder.getStatus(), null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*2.4、修改运单-子单状态*/
|
|
|
+ for (Long wSubtaskId:wSubtaskIds) {
|
|
|
+ KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(wSubtaskId);
|
|
|
+ if (orderSubtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ orderSubtask.setStatus(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
|
|
|
+ waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+ }
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 单证审核(编辑单证)
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult approvalEditTicketV1(WaybillOrderTicketApprovalV2Dto params) {
|
|
|
+ /*1、校验*/
|
|
|
+ Long wOrderId = params.getWOrderId();
|
|
|
+ //运单信息
|
|
|
+ KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("运单" + wOrderId + "不存在,请确认!");
|
|
|
+ }
|
|
|
+ //已出车、到达装货地、已装货、到达卸货地、已卸货的车辆运单才能卸货
|
|
|
+ if (!waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_TREAT.getCode())
|
|
|
+ && waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())
|
|
|
+ && waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_IN.getCode())) {
|
|
|
+ return HttpResult.error("运单" + waybillOrder.getWOrderNo() + "当前状态已不能审核!");
|
|
|
+ }
|
|
|
+ //变更榜单信息校验
|
|
|
+ if (CollectionUtils.isNotEmpty(params.getTickets())) {
|
|
|
+ //变更榜单信息
|
|
|
+ List<WaybillOrderTicketV4Dto> tickets = params.getTickets();
|
|
|
+ for (WaybillOrderTicketV4Dto ticket:tickets) {
|
|
|
+ //地址信息
|
|
|
+ KwtWaybillOrderAddress address = waybillOrderAddressDao.selectById(ticket.getWAddressId());
|
|
|
+ if (address == null) {
|
|
|
+ return HttpResult.error("运单该地址已不存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*2、更新榜单信息*/
|
|
|
+ /*2.1、同步更新变更榜单信息*/
|
|
|
+ editTicket(params);
|
|
|
+
|
|
|
+ /*2.2、更新榜单状态为审核通过*/
|
|
|
+ List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null);
|
|
|
+ for (KwtWaybillOrderTicket ticket:tickets) {
|
|
|
+ ticket.setStatus(Global.NUMERICAL_TWO);
|
|
|
+ waybillOrderTicketDao.updateById(ticket);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*3、修改运单状态*/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.APPROVAL_PASS.getCode());
|
|
|
+ waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /*4、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, null, null, waybillOrder.getStatus(), null);
|
|
|
+
|
|
|
+ /*5、修改运单-子单状态*/
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ subtask.setStatus(waybillOrder.getStatus());
|
|
|
+ waybillOrderSubtaskDao.updateById(subtask);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*6、更新司机/车辆数据*/
|
|
|
+ //更新司机信息
|
|
|
+ editDriver(waybillOrder.getDriverId());
|
|
|
+ //更新车辆信息
|
|
|
+ editTruck(waybillOrder.getTruckId());
|
|
|
+
|
|
|
+ /*7、物流订单信息更新*/
|
|
|
+ editLogisticsOrder(subtasks);
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 更新榜单信息-单证审核
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ public void editTicket(WaybillOrderTicketApprovalV2Dto params) {
|
|
|
+ //变更榜单信息
|
|
|
+ List<WaybillOrderTicketV4Dto> tickets = params.getTickets();
|
|
|
+ if (CollectionUtils.isEmpty(tickets)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (WaybillOrderTicketV4Dto ticket:tickets) {
|
|
|
+ //车辆运单ID
|
|
|
+ Long wOrderId = ticket.getWOrderId();
|
|
|
+
|
|
|
+ /*1、更新装卸货榜单信息*/
|
|
|
+ //榜单信息
|
|
|
+ List<WaybillOrderTicketLoadingDto> loading = ticket.getLoading();
|
|
|
+ waybillOrderTicketService.editTicketV1(loading, ticket.getWAddressId(), ticket.getUrls(), ticket.getOperateTime());
|
|
|
+
|
|
|
+ /*2、更新车辆运单-子单*/
|
|
|
+ //运单子单信息
|
|
|
+ KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(ticket.getWSubtaskId());
|
|
|
+ //物流运单信息
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(orderSubtask.getLOrderId());
|
|
|
+ //运单-子单装货榜单信息
|
|
|
+ List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, ticket.getWSubtaskId(), AddressDefaultTypeEnum.SHIPMENT.getCode(), orderSubtask.getUnit());
|
|
|
+ //运单-子单卸货榜单信息
|
|
|
+ List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, ticket.getWSubtaskId(), AddressDefaultTypeEnum.TAKE.getCode(), orderSubtask.getUnit());
|
|
|
+ //装货-总量
|
|
|
+ BigDecimal loadAmount = loadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //卸货-总量
|
|
|
+ BigDecimal unloadAmount = unloadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ orderSubtask.setLoadAmount(loadAmount.doubleValue());
|
|
|
+ orderSubtask.setUnloadAmount(unloadAmount.doubleValue());
|
|
|
+ orderSubtask.setDeficitAmount(BigDecimal.valueOf(orderSubtask.getLoadAmount()).subtract(BigDecimal.valueOf(orderSubtask.getUnloadAmount())).doubleValue());
|
|
|
+ BigDecimal deficitPrice = deficitPrice(BigDecimal.valueOf(orderSubtask.getLoadAmount()), BigDecimal.valueOf(orderSubtask.getDeficitAmount()),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
+ orderSubtask.setDeficitPrice(deficitPrice.doubleValue());
|
|
|
+ waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param subtasks {}
|
|
|
+ * @desc 更新物流订单信息-单证审核
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ public void editLogisticsOrder(List<KwtWaybillOrderSubtask> subtasks) {
|
|
|
+ //数据处理
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ /*1、物流订单信息更新*/
|
|
|
+ //物流订单信息
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
+ //装货统计
|
|
|
+ Map<String, Object> queryParams = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ queryParams.put("lOrderId", subtask.getLOrderId());
|
|
|
+ queryParams.put("unit", logisticsOrder.getUnit());
|
|
|
+ queryParams.put("type", NumberConstant.ONE);
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo loadCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ //卸货统计
|
|
|
+ queryParams.put("type", NumberConstant.TWO);
|
|
|
+ WaybillCountVo unloadCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+
|
|
|
+ //委派量多退少补entrustAmount(委派未运量=运单子单承运委派量-运单子单装货量)
|
|
|
+ BigDecimal residue = BigDecimal.valueOf(subtask.getEntrustAmount()).subtract(BigDecimal.valueOf(subtask.getLoadAmount()));
|
|
|
+ logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
|
|
|
+ logisticsOrder.setLoadAmount(loadCount.getAmount());
|
|
|
+ logisticsOrder.setLoadTime(loadCount.getLoadTime());
|
|
|
+ logisticsOrder.setUnloadAmount(unloadCount.getAmount());
|
|
|
+ logisticsOrder.setUnloadTime(unloadCount.getUnloadTime());
|
|
|
+ logisticsOrder.setDeficitAmount(logisticsOrder.getLoadAmount().subtract(logisticsOrder.getUnloadAmount()));
|
|
|
+ BigDecimal deficitPrice = deficitPrice(logisticsOrder.getLoadAmount(), logisticsOrder.getDeficitAmount(),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /*2、物流订单地址运量信息更新*/
|
|
|
+ List<KwtLogisticsOrderAmount> amounts = logisticsOrderAmountDao.findByLOrderId(subtask.getLOrderId());
|
|
|
+ for (KwtLogisticsOrderAmount amount:amounts) {
|
|
|
+ //物流运单地址信息
|
|
|
+ KwtLogisticsOrderAddress address = logisticsOrderAddressDao.selectById(amount.getLAddressId());
|
|
|
+ //运单地址进行统计
|
|
|
+ queryParams.clear();
|
|
|
+ queryParams.put("lAddressId", amount.getLAddressId());
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo waybillCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ if (address.getAddressType().equals(AddressDefaultTypeEnum.SHIPMENT.getCode())) {
|
|
|
+ //计算单个地址需要回退委派量
|
|
|
+ BigDecimal countEntrustAmount = countEntrustAmount(subtask, amount.getLAddressId());
|
|
|
+ amount.setEntrustAmount(amount.getEntrustAmount().subtract(countEntrustAmount));
|
|
|
+ amount.setLoadAmount(waybillCount.getAmount());
|
|
|
+ amount.setLoadTime(LocalDateTime.ofInstant(waybillCount.getLoadTime().toInstant(), ZoneId.systemDefault()));
|
|
|
+ } else {
|
|
|
+ amount.setUnloadAmount(waybillCount.getAmount());
|
|
|
+ amount.setUnloadTime(LocalDateTime.ofInstant(waybillCount.getUnloadTime().toInstant(), ZoneId.systemDefault()));
|
|
|
+ }
|
|
|
+ logisticsOrderAmountDao.updateById(amount);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*3、物流订单辅助单位信息更新*/
|
|
|
+ kwtLogisticsOrderGoodsService.editLogisticsOrderGoodsLoading(logisticsOrder.getId());
|
|
|
+
|
|
|
+ /*4、校验当前承运订单是否运输完成(修改状态+统计量)*/
|
|
|
+ editLogisticsTotalCount(logisticsOrder.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param subtask {}
|
|
|
+ * @desc 计算单个地址需要回退委派量-单证审核
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ public BigDecimal countEntrustAmount(KwtWaybillOrderSubtask subtask, Long lAddressId){
|
|
|
+ List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findBySubtaskId(subtask.getId(), AddressDefaultTypeEnum.SHIPMENT.getCode());
|
|
|
+ //运单地址进行统计
|
|
|
+ Map<String, Object> queryParams = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ queryParams.put("wOrderId", subtask.getWOrderId());
|
|
|
+ queryParams.put("lAddressId", lAddressId);
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo waybillCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ //地址总委派量
|
|
|
+ BigDecimal entrustAmount = addresses.stream().map(KwtWaybillOrderAddress::getEntrustAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //委派量多退少补entrustAmount(委派未运量=运单子单承运委派量-运单子单装货量)
|
|
|
+ return entrustAmount.subtract(waybillCount.getAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param lOrderId 承运订单ID
|
|
|
+ * @desc 校验当前承运订单是否运输完成(修改状态 + 统计量)
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/8
|
|
|
+ **/
|
|
|
+ public void editLogisticsTotalCount(Long lOrderId) {
|
|
|
+ /*1、物流订单信息更新*/
|
|
|
+ //物流订单信息
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(lOrderId);
|
|
|
+ //装货统计
|
|
|
+ Map<String, Object> queryParams = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ queryParams.put("upperlOrderId", lOrderId);
|
|
|
+ queryParams.put("unit", logisticsOrder.getUnit());
|
|
|
+ queryParams.put("type", NumberConstant.ONE);
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo loadCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ //卸货统计
|
|
|
+ queryParams.put("type", NumberConstant.TWO);
|
|
|
+ WaybillCountVo unloadCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ logisticsOrder.setTotalLoadAmount(loadCount.getAmount());
|
|
|
+ logisticsOrder.setTotalUnloadAmount(unloadCount.getAmount());
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /*2、物流订单地址运量信息更新*/
|
|
|
+ List<KwtLogisticsOrderAmount> amounts = logisticsOrderAmountDao.findByLOrderId(lOrderId);
|
|
|
+ for (KwtLogisticsOrderAmount amount:amounts) {
|
|
|
+ //物流运单地址信息
|
|
|
+ KwtLogisticsOrderAddress address = logisticsOrderAddressDao.selectById(amount.getLAddressId());
|
|
|
+
|
|
|
+ //运单地址进行统计
|
|
|
+ queryParams.clear();
|
|
|
+ queryParams.put("lAddressId", amount.getLAddressId());
|
|
|
+ queryParams.put("upperlOrderId", lOrderId);
|
|
|
+ queryParams.put("unit", logisticsOrder.getUnit());
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo waybillCount1 = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
+ if (address.getAddressType().equals(AddressDefaultTypeEnum.SHIPMENT.getCode())) {
|
|
|
+ amount.setTotalLoadAmount(waybillCount1.getAmount());
|
|
|
+ } else {
|
|
|
+ amount.setTotalUnloadAmount(waybillCount1.getAmount());
|
|
|
+ }
|
|
|
+ logisticsOrderAmountDao.updateById(amount);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*3、物流订单辅助单位信息更新*/
|
|
|
+ kwtLogisticsOrderGoodsService.editLogisticsOrderGoodsTotalLoading(logisticsOrder.getId());
|
|
|
+
|
|
|
+ /*4、递归处理上级物流订单*/
|
|
|
+ //获取所有上级物流订单ID
|
|
|
+ String pids = logisticsOrder.getPids();
|
|
|
+ if (StringUtils.isNotBlank(pids)) {
|
|
|
+ String[] idArray = pids.split(Global.COMMA);
|
|
|
+ for (String id : idArray) {
|
|
|
+ Long pid = Long.parseLong(id);
|
|
|
+ //当前物流订单ID除外
|
|
|
+ if (!pid.equals(lOrderId)) {
|
|
|
+ /*校验当前承运订单是否运输完成*/
|
|
|
+ editLogisticsTotalCount(pid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|