|
|
@@ -155,7 +155,18 @@ public class KwtWaybillOrderV1Service {
|
|
|
//物流订单装卸货地址委派量统计
|
|
|
Map<Long, BigDecimal> truckTotalEntrustAmount = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
for (SendCarInfoDto sendCar:sends) {
|
|
|
- //趟次(循环单默认趟次为1)
|
|
|
+ //循环单校验所派车辆是否存在未完结运单
|
|
|
+ if (params.getType() == Global.NUMERICAL_TWO) {
|
|
|
+ WaybillCountVo countVo = waybillOrderV1Dao.findUnfinishedByTruck(Global.NUMERICAL_TWO, sendCar.getTruckId());
|
|
|
+ if (countVo.getTotalExecute() > 0) {
|
|
|
+ //车辆信息
|
|
|
+ RTruckVo truck = remoteFleetService.findTruck(sendCar.getTruckId());
|
|
|
+ String msg = truck != null ? truck.getTruckNo() : Global.EMPTY_STRING;
|
|
|
+ return HttpResult.error("车辆"+ msg +"存在未完结的循环运单!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //趟次单(循环单默认趟次为1)
|
|
|
int count = params.getType() == Global.NUMERICAL_ONE ? sendCar.getCount() : Global.NUMERICAL_ONE;
|
|
|
//运输委托信息
|
|
|
List<SendCarEntrustDto> entrusts = sendCar.getEntrusts();
|
|
|
@@ -223,7 +234,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
//物流订单对应地址信息(所有)
|
|
|
List<SendCarEntrustDto> sendCarEntrustAll = new ArrayList<>();
|
|
|
for (SendCarInfoDto sendCar:sends) {
|
|
|
- //趟次(循环单默认趟次为1)
|
|
|
+ //趟次单(循环单默认趟次为1)
|
|
|
int count = params.getType() == Global.NUMERICAL_ONE ? sendCar.getCount() : Global.NUMERICAL_ONE;
|
|
|
for (int i=0; i<count; i++) {
|
|
|
//新增运单信息
|
|
|
@@ -879,14 +890,104 @@ public class KwtWaybillOrderV1Service {
|
|
|
/*4、新增装卸货榜单信息*/
|
|
|
waybillOrderTicketService.addTicketV1(loading, waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getUrls(), params.getOperateTime(), Global.NUMERICAL_ONE);
|
|
|
|
|
|
- /*5、更新司机/车辆数据*/
|
|
|
+ /*5、校验运单-子单是否全部运输完毕*/
|
|
|
+ //运单地址信息
|
|
|
+ List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findBySubtaskId(params.getWSubtaskId(), null);
|
|
|
+ //运单地址榜单信息
|
|
|
+ List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, params.getWSubtaskId(), null, null);
|
|
|
+ //运单子单是否已经运输完成
|
|
|
+ boolean bool = addresses.size() == tickets.size();
|
|
|
+ if (!bool) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新运单-子单状态
|
|
|
+ orderSubtask.setStatus(CarWaybillEnum.APPROVAL_TREAT.getCode());
|
|
|
+ waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
+
|
|
|
+ /*6、校验运单是否全部运输完毕*/
|
|
|
+ //运单地址信息
|
|
|
+ addresses = waybillOrderAddressDao.findByAddresses(params.getWOrderId(), null);
|
|
|
+ //运单地址榜单信息
|
|
|
+ tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, null);
|
|
|
+ //运单是否已经运输完成
|
|
|
+ bool = addresses.size() == tickets.size();
|
|
|
+ if (!bool) {
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /*6.1、更新运单状态*/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.APPROVAL_TREAT.getCode());
|
|
|
+ waybillOrderV1Dao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /*6.2、新增运单状态记录*/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /*7、更新司机/车辆数据*/
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
editTruck(waybillOrder.getTruckId());
|
|
|
+
|
|
|
+ /*8、循环单全部装卸货完重新生成运单*/
|
|
|
+ if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
+ recreateWaybillOrder(waybillOrder);
|
|
|
+ }
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param waybillOrder {}
|
|
|
+ * @desc 重新生成运单
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/7
|
|
|
+ **/
|
|
|
+ public void recreateWaybillOrder(KwtWaybillOrderV1 waybillOrder) {
|
|
|
+ //运单信息kwt_waybill_order
|
|
|
+ KwtWaybillOrderV1 waybillOrderNew = new KwtWaybillOrderV1();
|
|
|
+ BeanUtils.copyProperties(waybillOrder, waybillOrderNew);
|
|
|
+ waybillOrderNew.setId(null);
|
|
|
+ waybillOrderNew.setWOrderNo("W"+System.currentTimeMillis());
|
|
|
+ waybillOrderNew.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
|
|
|
+ waybillOrderNew.setCreateTime(null);
|
|
|
+ waybillOrderNew.setUpdateTime(null);
|
|
|
+ waybillOrderV1Dao.insert(waybillOrderNew);
|
|
|
+
|
|
|
+ //运单子单信息kwt_waybill_order_subtask
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(waybillOrder.getId());
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ KwtWaybillOrderSubtask subtaskNew = new KwtWaybillOrderSubtask();
|
|
|
+ BeanUtils.copyProperties(subtask, subtaskNew);
|
|
|
+ subtaskNew.setId(null);
|
|
|
+ subtaskNew.setWOrderId(waybillOrderNew.getId());
|
|
|
+ subtaskNew.setWOrderNo(waybillOrderNew.getWOrderNo());
|
|
|
+ subtaskNew.setLoadAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
+ subtaskNew.setUnloadAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
+ subtaskNew.setDeficitAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
+ subtaskNew.setDeficitPrice(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
+ subtaskNew.setStatus(waybillOrderNew.getStatus());
|
|
|
+ subtaskNew.setCreateTime(null);
|
|
|
+ subtaskNew.setUpdateTime(null);
|
|
|
+ waybillOrderSubtaskDao.insert(subtaskNew);
|
|
|
+
|
|
|
+ //运单地址信息kwt_waybill_order_address
|
|
|
+ List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findBySubtaskId(subtask.getId(), null);
|
|
|
+ for (KwtWaybillOrderAddress address:addresses) {
|
|
|
+ KwtWaybillOrderAddress addressNew = new KwtWaybillOrderAddress();
|
|
|
+ BeanUtils.copyProperties(address, addressNew);
|
|
|
+ addressNew.setId(null);
|
|
|
+ addressNew.setWOrderId(waybillOrderNew.getId());
|
|
|
+ addressNew.setWSubtaskId(subtaskNew.getId());
|
|
|
+ addressNew.setCreateTime(null);
|
|
|
+ addressNew.setUpdateTime(null);
|
|
|
+ waybillOrderAddressDao.insert(addressNew);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //新增运单状态记录kwt_waybill_order_track
|
|
|
+ setWaybillOrderTrack(waybillOrderNew.getId(), null, waybillOrderNew.getCreateTime(), waybillOrderNew.getStatus(), null);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param params {}
|
|
|
* @desc 修改单证-装卸货-多单位
|