|
|
|
@ -590,80 +590,85 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
public Boolean start(DistributionDeliveryListDTO distributionDeliveryList) { |
|
|
|
|
log.info("开始发车>>>>>>>>>{}", distributionDeliveryList); |
|
|
|
|
//获取关联的客户信息
|
|
|
|
|
if (distributionDeliveryList.getSource() == 1) { |
|
|
|
|
String reservationId = distributionDeliveryList.getReservationId(); |
|
|
|
|
List<Long> reservationIds = Collections.singletonList(Long.valueOf(Arrays.toString(reservationId.split(",")))); |
|
|
|
|
//查询客户信息,装车情况
|
|
|
|
|
// List<DistributionDeliveryInfoEntity> distributionDeliveryInfoEntities = distributionDeliveryInfoMapper.selectList(new QueryWrapper<DistributionDeliveryInfoEntity>().lambda()
|
|
|
|
|
// .eq(DistributionDeliveryInfoEntity::getLoadedState, "2")
|
|
|
|
|
// .in(null != reservationIds && reservationIds.size() > 0, DistributionDeliveryInfoEntity::getReservationId, reservationIds)
|
|
|
|
|
// );
|
|
|
|
|
//统计客户的配送数量,加入签收表(通过预约单查询总数量)
|
|
|
|
|
List<DistributionReservationEntity> distributionReservationEntities = distributionReservationMapper.selectBatchIds(reservationIds); |
|
|
|
|
ArrayList<DistributionSignforEntity> distributionSignforEntities = new ArrayList<DistributionSignforEntity>(); |
|
|
|
|
//TODO 冗余加入签收表
|
|
|
|
|
distributionReservationEntities.forEach(e -> { |
|
|
|
|
DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity(); |
|
|
|
|
Func.copy(e, distributionSignforEntity); |
|
|
|
|
distributionSignforEntity.setReservationId(e.getId()); |
|
|
|
|
distributionSignforEntity.setConsignee(e.getConsignee()); |
|
|
|
|
distributionSignforEntity.setWarehouseId(distributionDeliveryList.getWarehouseId()); |
|
|
|
|
distributionSignforEntity.setWarehouseName(distributionDeliveryList.getWarehouseName()); |
|
|
|
|
distributionSignforEntity.setTrainNumber(distributionDeliveryList.getTrainNumber()); |
|
|
|
|
distributionSignforEntity.setDeliveryDriverName(distributionDeliveryList.getDriverName()); |
|
|
|
|
distributionSignforEntity.setDeliveryDriverId(distributionDeliveryList.getDriverId()); |
|
|
|
|
//配送时间
|
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); |
|
|
|
|
String format = simpleDateFormat.format(new Date()); |
|
|
|
|
distributionSignforEntity.setDeliveryTime(format); |
|
|
|
|
//通过客户查询已经上车的订单(待定)
|
|
|
|
|
// String orderIds = distributionDeliveryInfoMapper.selectorderIdList(e.getId());
|
|
|
|
|
// distributionSignforEntity.setOrderId(e.getStockArticleId());
|
|
|
|
|
//查询订单总数
|
|
|
|
|
// Integer i = StringUtils.countMatches(e.getStockArticleId(), ",") + 1;
|
|
|
|
|
//// distributionSignforEntity.setOrderTotal(i);
|
|
|
|
|
//该客户总件数
|
|
|
|
|
Integer i1 = distributionDeliveryInfoMapper.selectWrapCount(e.getId()); |
|
|
|
|
distributionSignforEntity.setReservationNum(i1); |
|
|
|
|
//装车件数
|
|
|
|
|
Integer dre = distributionLoadscanMapper.selectWrapdreCount(e.getId()); |
|
|
|
|
distributionSignforEntity.setLoadedNumber(dre); |
|
|
|
|
//签收状态
|
|
|
|
|
distributionSignforEntity.setSigningStatus("1"); |
|
|
|
|
distributionSignforEntity.setReservationId(e.getId()); |
|
|
|
|
distributionSignforEntities.add(distributionSignforEntity); |
|
|
|
|
}); |
|
|
|
|
distributionSignforService.saveBatch(distributionSignforEntities); |
|
|
|
|
} else { |
|
|
|
|
try { |
|
|
|
|
if (distributionDeliveryList.getSource() == 1) { |
|
|
|
|
String reservationId = distributionDeliveryList.getReservationId(); |
|
|
|
|
List<Long> reservationIds = Collections.singletonList(Long.valueOf(Arrays.toString(reservationId.split(",")))); |
|
|
|
|
//查询客户信息,装车情况
|
|
|
|
|
// List<DistributionDeliveryInfoEntity> distributionDeliveryInfoEntities = distributionDeliveryInfoMapper.selectList(new QueryWrapper<DistributionDeliveryInfoEntity>().lambda()
|
|
|
|
|
// .eq(DistributionDeliveryInfoEntity::getLoadedState, "2")
|
|
|
|
|
// .in(null != reservationIds && reservationIds.size() > 0, DistributionDeliveryInfoEntity::getReservationId, reservationIds)
|
|
|
|
|
// );
|
|
|
|
|
//统计客户的配送数量,加入签收表(通过预约单查询总数量)
|
|
|
|
|
List<DistributionReservationEntity> distributionReservationEntities = distributionReservationMapper.selectBatchIds(reservationIds); |
|
|
|
|
ArrayList<DistributionSignforEntity> distributionSignforEntities = new ArrayList<DistributionSignforEntity>(); |
|
|
|
|
//TODO 冗余加入签收表
|
|
|
|
|
distributionReservationEntities.forEach(e -> { |
|
|
|
|
DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity(); |
|
|
|
|
Func.copy(e, distributionSignforEntity); |
|
|
|
|
distributionSignforEntity.setReservationId(e.getId()); |
|
|
|
|
distributionSignforEntity.setConsignee(e.getConsignee()); |
|
|
|
|
distributionSignforEntity.setWarehouseId(distributionDeliveryList.getWarehouseId()); |
|
|
|
|
distributionSignforEntity.setWarehouseName(distributionDeliveryList.getWarehouseName()); |
|
|
|
|
distributionSignforEntity.setTrainNumber(distributionDeliveryList.getTrainNumber()); |
|
|
|
|
distributionSignforEntity.setDeliveryDriverName(distributionDeliveryList.getDriverName()); |
|
|
|
|
distributionSignforEntity.setDeliveryDriverId(distributionDeliveryList.getDriverId()); |
|
|
|
|
//配送时间
|
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); |
|
|
|
|
String format = simpleDateFormat.format(new Date()); |
|
|
|
|
distributionSignforEntity.setDeliveryTime(format); |
|
|
|
|
//通过客户查询已经上车的订单(待定)
|
|
|
|
|
// String orderIds = distributionDeliveryInfoMapper.selectorderIdList(e.getId());
|
|
|
|
|
// distributionSignforEntity.setOrderId(e.getStockArticleId());
|
|
|
|
|
//查询订单总数
|
|
|
|
|
// Integer i = StringUtils.countMatches(e.getStockArticleId(), ",") + 1;
|
|
|
|
|
//// distributionSignforEntity.setOrderTotal(i);
|
|
|
|
|
//该客户总件数
|
|
|
|
|
Integer i1 = distributionDeliveryInfoMapper.selectWrapCount(e.getId()); |
|
|
|
|
distributionSignforEntity.setReservationNum(i1); |
|
|
|
|
//装车件数
|
|
|
|
|
Integer dre = distributionLoadscanMapper.selectWrapdreCount(e.getId()); |
|
|
|
|
distributionSignforEntity.setLoadedNumber(dre); |
|
|
|
|
//签收状态
|
|
|
|
|
distributionSignforEntity.setSigningStatus("1"); |
|
|
|
|
distributionSignforEntity.setReservationId(e.getId()); |
|
|
|
|
distributionSignforEntities.add(distributionSignforEntity); |
|
|
|
|
}); |
|
|
|
|
distributionSignforService.saveBatch(distributionSignforEntities); |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//获取关联订单
|
|
|
|
|
String orderId = distributionDeliveryList.getOrderId(); |
|
|
|
|
List<Long> orderIds = Collections.singletonList(Long.valueOf(Arrays.toString(orderId.split(",")))); |
|
|
|
|
//查询在库订单
|
|
|
|
|
List<DistributionStockArticleEntity> distributionStockArticleEntities = distributionStockArticleMapper.selectBatchIds(orderIds); |
|
|
|
|
//插入配送详情表
|
|
|
|
|
ArrayList<DistributionSigndetailEntity> arrayList = new ArrayList<>(); |
|
|
|
|
distributionStockArticleEntities.forEach(e -> { |
|
|
|
|
DistributionSigndetailEntity distributionSigndetailEntity = new DistributionSigndetailEntity(); |
|
|
|
|
Func.copy(e, distributionSigndetailEntity); |
|
|
|
|
//查询签收表id
|
|
|
|
|
Long masterId = distributionSignforService.selectIdByOrderId(e.getId()); |
|
|
|
|
distributionSigndetailEntity.setMasterId(masterId); |
|
|
|
|
distributionSigndetailEntity.setOrderId(e.getId()); |
|
|
|
|
}); |
|
|
|
|
distributionSigndetailService.saveBatch(arrayList); |
|
|
|
|
//插入签收包条表
|
|
|
|
|
ArrayList<DistributionPackadeliEntity> DistributionPackadeliEntitys = new ArrayList<>(); |
|
|
|
|
List<DistributionLoadscanEntity> distributionLoadscanEntities = distributionLoadscanMapper.selectList(new QueryWrapper<DistributionLoadscanEntity>().lambda().eq(DistributionLoadscanEntity::getDeliveryId, distributionDeliveryList.getId()).ne(DistributionLoadscanEntity::getScanStatus, 1)); |
|
|
|
|
distributionLoadscanEntities.forEach(e -> { |
|
|
|
|
DistributionPackadeliEntity distributionPackadeliEntity = new DistributionPackadeliEntity(); |
|
|
|
|
|
|
|
|
|
DistributionPackadeliEntitys.add(distributionPackadeliEntity); |
|
|
|
|
}); |
|
|
|
|
distributionPackadeliService.saveBatch(DistributionPackadeliEntitys); |
|
|
|
|
//TODO 修改配送表
|
|
|
|
|
return this.update(new UpdateWrapper<DistributionDeliveryListEntity>().lambda().eq(DistributionDeliveryListEntity::getId, distributionDeliveryList.getId()).set(DistributionDeliveryListEntity::getDeliveryStatus, DeliveryStatusConstant.peisongzhong.getValue())); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("发车异常", e); |
|
|
|
|
throw new CustomerException("发车异常"); |
|
|
|
|
} |
|
|
|
|
//获取关联订单
|
|
|
|
|
String orderId = distributionDeliveryList.getOrderId(); |
|
|
|
|
List<Long> orderIds = Collections.singletonList(Long.valueOf(Arrays.toString(orderId.split(",")))); |
|
|
|
|
//查询在库订单
|
|
|
|
|
List<DistributionStockArticleEntity> distributionStockArticleEntities = distributionStockArticleMapper.selectBatchIds(orderIds); |
|
|
|
|
//插入配送详情表
|
|
|
|
|
ArrayList<DistributionSigndetailEntity> arrayList = new ArrayList<>(); |
|
|
|
|
distributionStockArticleEntities.forEach(e -> { |
|
|
|
|
DistributionSigndetailEntity distributionSigndetailEntity = new DistributionSigndetailEntity(); |
|
|
|
|
Func.copy(e, distributionSigndetailEntity); |
|
|
|
|
//查询签收表id
|
|
|
|
|
Long masterId = distributionSignforService.selectIdByOrderId(e.getId()); |
|
|
|
|
distributionSigndetailEntity.setMasterId(masterId); |
|
|
|
|
distributionSigndetailEntity.setOrderId(e.getId()); |
|
|
|
|
}); |
|
|
|
|
distributionSigndetailService.saveBatch(arrayList); |
|
|
|
|
//插入签收包条表
|
|
|
|
|
ArrayList<DistributionPackadeliEntity> DistributionPackadeliEntitys = new ArrayList<>(); |
|
|
|
|
List<DistributionLoadscanEntity> distributionLoadscanEntities = distributionLoadscanMapper.selectList(new QueryWrapper<DistributionLoadscanEntity>().lambda().eq(DistributionLoadscanEntity::getDeliveryId, distributionDeliveryList.getId()).ne(DistributionLoadscanEntity::getScanStatus, 1)); |
|
|
|
|
distributionLoadscanEntities.forEach(e -> { |
|
|
|
|
DistributionPackadeliEntity distributionPackadeliEntity = new DistributionPackadeliEntity(); |
|
|
|
|
|
|
|
|
|
DistributionPackadeliEntitys.add(distributionPackadeliEntity); |
|
|
|
|
}); |
|
|
|
|
distributionPackadeliService.saveBatch(DistributionPackadeliEntitys); |
|
|
|
|
//TODO 修改配送表
|
|
|
|
|
return this.update(new UpdateWrapper<DistributionDeliveryListEntity>().lambda().eq(DistributionDeliveryListEntity::getId, distributionDeliveryList.getId()).set(DistributionDeliveryListEntity::getDeliveryStatus, DeliveryStatusConstant.peisongzhong.getValue())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|