Browse Source

add:增加发车的异常处理

visual
pref_mail@163.com 6 months ago
parent
commit
69d25dd76b
  1. 149
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

149
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -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()));
}

Loading…
Cancel
Save