|
|
|
@ -610,9 +610,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
} |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleMapper.selectById(parcelListEntity.getStockArticleId()); |
|
|
|
|
if (shangpeiFlag) { |
|
|
|
|
|
|
|
|
|
List<DistributionReservationEntity> reservationEntities = reservationEntityList.stream().filter(r -> Func.isNotEmpty(r.getConsignee()) && r.getConsignee().equals(stockArticleEntity.getCustomerName()) && r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress()) && r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone()) && r.getMallName().equals(stockArticleEntity.getMallName())).collect(Collectors.toList()); |
|
|
|
|
//查看是否存在满足条件的预约单
|
|
|
|
|
if (reservationEntities.size() == 1) { |
|
|
|
|
if (Func.isEmpty(distrilbutionloadingscanDTO.getReservationId())){ |
|
|
|
|
log.info("异常装车未指定客户"); |
|
|
|
|
return Resp.scanFail("请指定客户进行异常装车","请指定客户进行异常装车"); |
|
|
|
|
} |
|
|
|
|
return R.fail(5000, "异常装车"); |
|
|
|
|
// return Resp.scanFail("装车失败","程序出错,请联系彪桑");
|
|
|
|
|
} else { |
|
|
|
@ -624,12 +629,17 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
shangpeiFlag = reservationEntityList.stream().allMatch(r -> r.getDeliveryType().equals(DistributionTypeConstant.shangpei.getValue())); |
|
|
|
|
if (shangpeiFlag) { |
|
|
|
|
List<DistributionReservationEntity> reservationEntities = reservationEntityList.stream().filter(r -> r.getReceivingUnit().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName())).collect(Collectors.toList()); |
|
|
|
|
//查询是否满足商配异常装车
|
|
|
|
|
boolean flag = reservationEntityList.stream().anyMatch(r -> r.getReceivingUnit().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName())); |
|
|
|
|
if (reservationEntities.size() == 1) { |
|
|
|
|
if (Func.isEmpty(distrilbutionloadingscanDTO.getReservationId())){ |
|
|
|
|
log.info("异常装车未指定客户"); |
|
|
|
|
return Resp.scanFail("请指定客户进行异常装车","请指定客户进行异常装车"); |
|
|
|
|
} |
|
|
|
|
return R.fail(5000, "异常装车"); |
|
|
|
|
} else { |
|
|
|
|
return Resp.scanFail("装车失败", "窜货"); |
|
|
|
@ -2128,11 +2138,11 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
Integer a = distributionDeliveryListMapper.updateloadingTimeById(distributionLoadscaninvnEntity.getDeliveryId()); |
|
|
|
|
//更新签收表的装车数量
|
|
|
|
|
Integer j = distributionSignforMapper.updateloadByinvn(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getLoadedNub()); |
|
|
|
|
//处理出库问题
|
|
|
|
|
distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub()); |
|
|
|
|
//异步处理状态信息
|
|
|
|
|
distributionAsyncService.changeMarketDeliveryListStatus(distributionLoadscaninvnEntity.getOrderPackageCode(), distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId()); |
|
|
|
|
//处理出库问题
|
|
|
|
|
//扣减出库数量
|
|
|
|
|
distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub()); |
|
|
|
|
// DistributionStockListEntity distributionStockListEntity = distributionStockListMapper.selectOne(Wrappers.<DistributionStockListEntity>query().lambda().eq(DistributionStockListEntity::getId, distributionLoadscaninvnEntity.getInventoryId()));
|
|
|
|
|
// BigDecimal quantityStock = new BigDecimal(distributionStockListEntity.getQuantityStock());
|
|
|
|
|
// BigDecimal loadedNub = new BigDecimal(distributionLoadscaninvnEntity.getLoadedNub());
|
|
|
|
@ -4185,22 +4195,25 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<DistributionParcelListVO> getPackageListByDeliverylistId(IPage<DistributionParcelListEntity> page, DistributionDeliveryInfoDTO distributionDeliveryInfoDTO) { |
|
|
|
|
|
|
|
|
|
public List<DistributionParcelListVO> getPackageListByDeliverylistId(IPage<DistributionParcelListEntity> page, Map<String,Object> distributionDeliveryInfoDTO) { |
|
|
|
|
if (Func.isEmpty(distributionDeliveryInfoDTO.get("deliveryId"))){ |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
Long deliveryId = Long.parseLong((String) distributionDeliveryInfoDTO.get("deliveryId")) ; |
|
|
|
|
//查询零担订单包件
|
|
|
|
|
// List<DistributionParcelNumberVO> parcelNumberVOS = baseMapper.getZeroPackageListByDeliveryId(distributionDeliveryInfoDTO.getDeliveryId());
|
|
|
|
|
List<DistributionStockArticleVO> deliveryStockArticleInfo = baseMapper.getDeliveryStockArticleInfo(distributionDeliveryInfoDTO.getDeliveryId()); |
|
|
|
|
List<DistributionStockArticleVO> deliveryStockArticleInfo = baseMapper.getDeliveryStockArticleInfo(deliveryId); |
|
|
|
|
if (Func.isEmpty(deliveryStockArticleInfo)) { |
|
|
|
|
log.error("配送任务订单查询异常:{}", deliveryStockArticleInfo); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.getReservationStockArticleByDeliveryId(distributionDeliveryInfoDTO.getDeliveryId()); |
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.getReservationStockArticleByDeliveryId(deliveryId); |
|
|
|
|
if (Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
log.error("配送任务订单查询异常:{}", reservationStockarticleEntityList); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<DistributionLoadscanEntity> loadscanEntities = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getDeliveryId, distributionDeliveryInfoDTO.getDeliveryId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
List<DistributionLoadscanEntity> loadscanEntities = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getDeliveryId, deliveryId).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
Map<Long, DistributionLoadscanEntity> loadingDataMap = null; |
|
|
|
|
if (Func.isNotEmpty(loadscanEntities)) { |
|
|
|
|
loadingDataMap = loadscanEntities.stream().collect(Collectors.toMap(DistributionLoadscanEntity::getPackageId, Function.identity(), (k1, k2) -> k2)); |
|
|
|
@ -4208,7 +4221,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
ArrayList<DistributionParcelListVO> distributionParcelListVOS = new ArrayList<>(); |
|
|
|
|
for (DistributionReservationStockarticleEntity reservationStockarticleEntity : reservationStockarticleEntityList) { |
|
|
|
|
if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.getReservationPackage(reservationStockarticleEntity.getReservationId(), reservationStockarticleEntity.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.getReservationPackage(reservationStockarticleEntity.getReservationId(), reservationStockarticleEntity.getStockArticleId(),distributionDeliveryInfoDTO); |
|
|
|
|
List<DistributionParcelListVO> parcelListVOList = DistributionParcelListWrapper.build().listVO(parcelListEntityList); |
|
|
|
|
for (DistributionParcelListVO distributionParcelListVO : parcelListVOList) { |
|
|
|
|
if (Func.isNotEmpty(loadingDataMap)) { |
|
|
|
@ -4254,8 +4267,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionParcelListVOS.add(distributionParcelListVO); |
|
|
|
|
} |
|
|
|
|
} else if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.yes.getValue())) { |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.getReservationPackage(reservationStockarticleEntity.getReservationId(), reservationStockarticleEntity.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListEntity> zeroParcelListEntityList = baseMapper.getZeroPackageListByDeliveryId(distributionDeliveryInfoDTO.getDeliveryId(), reservationStockarticleEntity.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListEntity> zeroParcelListEntityList = baseMapper.getZeroPackageListByDeliveryId(deliveryId, reservationStockarticleEntity.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListVO> zeroParcelListVOList = DistributionParcelListWrapper.build().listVO(zeroParcelListEntityList); |
|
|
|
|
for (DistributionParcelListVO parcelListVO : zeroParcelListVOList) { |
|
|
|
|
if (Func.isNotEmpty(loadingDataMap)) { |
|
|
|
@ -4528,11 +4540,15 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<DistributionReservationStocklistVO> selectDistributionDeliveryinventory(IPage<Object> page, DistributionDeliveryInfoDTO distributionDeliveryInfoDTO) { |
|
|
|
|
|
|
|
|
|
List<DistributionReservationStocklistVO> distributionStockListEntities = baseMapper.getInventoryByDeliveryId(page, distributionDeliveryInfoDTO.getDeliveryId()); |
|
|
|
|
public List<DistributionReservationStocklistVO> selectDistributionDeliveryinventory(IPage<Object> page,Map<String,Object> distributionInventoryDTO) { |
|
|
|
|
if (Func.isEmpty(distributionInventoryDTO.get("deliveryId"))){ |
|
|
|
|
log.info("#####查询配送计划库存品列表deliveryId缺失"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
Long deliveryId = Long.parseLong(distributionInventoryDTO.get("deliveryId").toString()); |
|
|
|
|
List<DistributionReservationStocklistVO> distributionStockListEntities = baseMapper.getInventoryByDeliveryId(page, deliveryId,distributionInventoryDTO); |
|
|
|
|
distributionStockListEntities.forEach(rs -> { |
|
|
|
|
List<DistributionLoadscaninvnEntity> list = distributionLoadscaninvnService.list(Wrappers.<DistributionLoadscaninvnEntity>query().lambda().eq(DistributionLoadscaninvnEntity::getInventoryId, rs.getStocklistId()).eq(DistributionLoadscaninvnEntity::getReservationId, rs.getReservationId()).eq(DistributionLoadscaninvnEntity::getDeliveryId, distributionDeliveryInfoDTO.getDeliveryId()).ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
List<DistributionLoadscaninvnEntity> list = distributionLoadscaninvnService.list(Wrappers.<DistributionLoadscaninvnEntity>query().lambda().eq(DistributionLoadscaninvnEntity::getInventoryId, rs.getStocklistId()).eq(DistributionLoadscaninvnEntity::getReservationId, rs.getReservationId()).eq(DistributionLoadscaninvnEntity::getDeliveryId, deliveryId).ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
rs.setLoadedinNumber(0); |
|
|
|
|
if (Func.isNotEmpty(list)) { |
|
|
|
|
//存在装车记录
|
|
|
|
@ -5969,42 +5985,45 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
return aftersalesAbnormalPackageVOS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* 工单查询配送数据 |
|
|
|
|
* @param page |
|
|
|
|
* @param distributionDeliveryInfoDTO |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionDeliveryWordVO> getShippingInformation(IPage<Object> page, DistributionDeliveryListDTO distributionDeliveryInfoDTO) { |
|
|
|
|
IPage<DistributionDeliveryWordVO> iPage= baseMapper.getShippingInformation(page,distributionDeliveryInfoDTO); |
|
|
|
|
if(!iPage.getRecords().isEmpty()){ |
|
|
|
|
iPage.getRecords().forEach( i ->{ |
|
|
|
|
if("1".equals(i.getKind())){ |
|
|
|
|
//自主
|
|
|
|
|
//查询司机信息
|
|
|
|
|
List<DistributionDeliverySelfEntity> distributionDeliverySelfEntities = distributionDeliverySelfMapper.selectList(Wrappers.<DistributionDeliverySelfEntity>query().lambda() |
|
|
|
|
.eq(DistributionDeliverySelfEntity::getDeliveryId, i.getId()) |
|
|
|
|
); |
|
|
|
|
if(!distributionDeliverySelfEntities.isEmpty()){ |
|
|
|
|
String collect = distributionDeliverySelfEntities.stream().map(DistributionDeliverySelfEntity::getDriverName).collect(Collectors.joining(",")); |
|
|
|
|
i.setDriverName(collect); |
|
|
|
|
public IPage<DistributionDeliveryInfoVO> getClientDetail(IPage<DistributionDeliveryInfoVO> page, Map<String, Object> distributionReservationDTO) { |
|
|
|
|
if (Func.isEmpty(distributionReservationDTO.get("deliveryId"))){ |
|
|
|
|
log.info("############获取客户详情失败,deliveryId为空"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
Long deliveryId = Long.parseLong((String)distributionReservationDTO.get("deliveryId")); |
|
|
|
|
List<DistributionDeliveryInfoVO> customList = distributionDeliveryInfoMapper.selectClientList(deliveryId,distributionReservationDTO); |
|
|
|
|
if (!customList.isEmpty()) { |
|
|
|
|
customList.forEach(c -> { |
|
|
|
|
if (Func.isNotEmpty(c.getLoadingStatus())) { |
|
|
|
|
switch (c.getLoadingStatus()) { |
|
|
|
|
case "10": |
|
|
|
|
c.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getName()); |
|
|
|
|
break; |
|
|
|
|
case "20": |
|
|
|
|
c.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getName()); |
|
|
|
|
break; |
|
|
|
|
case "30": |
|
|
|
|
c.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getName()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
//三方
|
|
|
|
|
List<DistributionDeliveryTripartiteEntity> list = distributionDeliveryTripartiteService.list(Wrappers.<DistributionDeliveryTripartiteEntity>query().lambda() |
|
|
|
|
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, i.getId()) |
|
|
|
|
); |
|
|
|
|
if(!list.isEmpty()){ |
|
|
|
|
String collect = list.stream().map(DistributionDeliveryTripartiteEntity::getDriverName).collect(Collectors.joining(",")); |
|
|
|
|
i.setDriverName(collect); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(c.getReservationSigningStatus())) { |
|
|
|
|
switch (c.getReservationSigningStatus()) { |
|
|
|
|
case "10": |
|
|
|
|
c.setReservationSigningStatus(ReservationSigningStatusConstant.daiqianshou.getName()); |
|
|
|
|
break; |
|
|
|
|
case "20": |
|
|
|
|
c.setReservationSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getName()); |
|
|
|
|
break; |
|
|
|
|
case "30": |
|
|
|
|
c.setReservationSigningStatus(ReservationSigningStatusConstant.yiqianshou.getName()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return iPage; |
|
|
|
|
return page.setRecords(customList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|