|
|
|
@ -47,6 +47,8 @@ import com.logpm.distribution.vo.app.queryOrderVO;
|
|
|
|
|
import com.logpm.distribution.wrapper.DistributionParcelListWrapper; |
|
|
|
|
import com.logpm.distribution.wrapper.DistributionStockArticleNewWrapper; |
|
|
|
|
import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; |
|
|
|
|
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; |
|
|
|
|
import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseWayBillDetail; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseWaybillEntity; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient; |
|
|
|
@ -150,6 +152,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
private final DistributionSignforMapper distributionSignforMapper; |
|
|
|
|
private final IWarehouseWaybillClient warehouseWaybillClient; |
|
|
|
|
private final IWarehouseWaybillDetailClient warehouseWaybillDetailClient; |
|
|
|
|
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionStockArticleVO> selectDistributionStockArticlePage(IPage<DistributionStockArticleVO> page, DistributionStockArticleVO distributionStockArticle) { |
|
|
|
@ -2828,6 +2831,104 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
return R.data(map); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R getOrderWarehouseDetail(String orderCode) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
List<Long> warehouseIdList = new ArrayList<>(); |
|
|
|
|
if (Objects.isNull(myCurrentWarehouse)){ |
|
|
|
|
//查询当前人的仓库列表
|
|
|
|
|
List<BasicdataWarehouseEntity> warehouseList = warehouseClient.getMyWarehouseList(); |
|
|
|
|
if (!warehouseList.isEmpty()) { |
|
|
|
|
warehouseIdList.addAll(warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList())); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
warehouseIdList.add(myCurrentWarehouse.getId()); |
|
|
|
|
} |
|
|
|
|
if (warehouseIdList.isEmpty()){ |
|
|
|
|
return R.fail("当前登录人仓库信息错误"); |
|
|
|
|
} |
|
|
|
|
Map<String,List<DistributionParcelListVO>> info = new HashMap<>(); |
|
|
|
|
//查询此暂存单数据在仓库的情况
|
|
|
|
|
List<TrunklineAdvanceDetailEntity> list = trunklineAdvanceDetailClient.selectByOrderCodeAndWarehouseId(orderCode,warehouseIdList.stream().map(String::valueOf).collect(Collectors.joining(","))); |
|
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
List<String> orderPackageCodes = list.stream().map(TrunklineAdvanceDetailEntity::getOrderPackageCode).collect(Collectors.toList()); |
|
|
|
|
info = handlePackageGroupByWarehouse(list,warehouseIdList,orderPackageCodes,Objects.isNull(myCurrentWarehouse),orderCode); |
|
|
|
|
|
|
|
|
|
return R.data(info); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return R.data(info,"未查询到相关出入库信息"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Map<String, List<DistributionParcelListVO>> handlePackageGroupByWarehouse(List<TrunklineAdvanceDetailEntity> list, List<Long> warehouseIdList, List<String> orderPackageCodes, boolean aNull,String orderCode) { |
|
|
|
|
Map<String,List<DistributionParcelListVO>> info = new HashMap<>(); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda() |
|
|
|
|
.eq(DistributionParcelListEntity::getOrderCode, orderCode) |
|
|
|
|
.in(DistributionParcelListEntity::getOrderPackageCode, orderPackageCodes) |
|
|
|
|
.eq(DistributionParcelListEntity::getIsTransfer, 0) |
|
|
|
|
.in(!aNull,DistributionParcelListEntity::getWarehouseId,warehouseIdList) |
|
|
|
|
); |
|
|
|
|
if (!parcelListEntities.isEmpty()) { |
|
|
|
|
List<DistributionParcelListVO> distributionParcelListVOS = DistributionParcelListWrapper.build().listVO(parcelListEntities); |
|
|
|
|
info.put("warehouse",distributionParcelListVOS); |
|
|
|
|
List<String> collect = parcelListEntities.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.toList()); |
|
|
|
|
Iterator<String> iterator = collect.iterator(); |
|
|
|
|
while (iterator.hasNext()){ |
|
|
|
|
String next = iterator.next(); |
|
|
|
|
orderPackageCodes.remove(next); |
|
|
|
|
iterator.remove(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!orderPackageCodes.isEmpty()) { |
|
|
|
|
//存在未入库的包件
|
|
|
|
|
//进行数据组装
|
|
|
|
|
List<TrunklineAdvanceDetailEntity> collect = list.stream().filter(f -> orderPackageCodes.contains(f.getOrderPackageCode())).collect(Collectors.toList()); |
|
|
|
|
List<DistributionParcelListVO> unWarehousePackage= handleUnWarehousePackage(collect); |
|
|
|
|
if (!unWarehousePackage.isEmpty()) { |
|
|
|
|
info.put("unWarehouse",unWarehousePackage); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return info; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<DistributionParcelListVO> handleUnWarehousePackage(List<TrunklineAdvanceDetailEntity> collect) { |
|
|
|
|
List<DistributionParcelListVO> parcelListVOS = new ArrayList<>(); |
|
|
|
|
List<Long> waybillNos = collect.stream().map(TrunklineAdvanceDetailEntity::getWaybillId).collect(Collectors.toList()); |
|
|
|
|
Map<Long, List<WarehouseWaybillEntity>> waybillMap = null; |
|
|
|
|
if (!waybillNos.isEmpty()) { |
|
|
|
|
List<WarehouseWaybillEntity> listByWaybillIds = warehouseWaybillClient.findListByWaybillIds(waybillNos); |
|
|
|
|
if (!listByWaybillIds.isEmpty()) { |
|
|
|
|
waybillMap = listByWaybillIds.stream().collect(Collectors.groupingBy(WarehouseWaybillEntity::getId)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (TrunklineAdvanceDetailEntity trunklineAdvanceDetailEntity : collect) { |
|
|
|
|
DistributionParcelListVO distributionParcelListVO = new DistributionParcelListVO(); |
|
|
|
|
distributionParcelListVO.setWaybillNumber(trunklineAdvanceDetailEntity.getWaybillNo()); |
|
|
|
|
distributionParcelListVO.setOrderCode(trunklineAdvanceDetailEntity.getOrderCode()); |
|
|
|
|
distributionParcelListVO.setWarehouse(trunklineAdvanceDetailEntity.getWarehouseName()); |
|
|
|
|
distributionParcelListVO.setOrderPackageStatusName(OrderPackageStatusConstant.weiruku.getName()); |
|
|
|
|
distributionParcelListVO.setFirsts(trunklineAdvanceDetailEntity.getFirstPackName()); |
|
|
|
|
distributionParcelListVO.setSecond(trunklineAdvanceDetailEntity.getSecondPackName()); |
|
|
|
|
distributionParcelListVO.setThirdProduct(trunklineAdvanceDetailEntity.getThirdPackName()); |
|
|
|
|
distributionParcelListVO.setMaterialName(trunklineAdvanceDetailEntity.getMaterialName()); |
|
|
|
|
distributionParcelListVO.setMaterialCode(trunklineAdvanceDetailEntity.getMaterialCode()); |
|
|
|
|
distributionParcelListVO.setQuantity(trunklineAdvanceDetailEntity.getQuantity()); |
|
|
|
|
distributionParcelListVO.setTrainNumber(trunklineAdvanceDetailEntity.getTrainNumber()); |
|
|
|
|
if (!Objects.isNull(waybillMap) && !Objects.isNull(trunklineAdvanceDetailEntity.getWaybillId())){ |
|
|
|
|
WarehouseWaybillEntity warehouseWaybillEntities = waybillMap.get(trunklineAdvanceDetailEntity.getWaybillId()).get(0); |
|
|
|
|
distributionParcelListVO.setSendWarehouseName(warehouseWaybillEntities.getDepartureWarehouseName()); |
|
|
|
|
distributionParcelListVO.setAcceptWarehouseName(warehouseWaybillEntities.getDestinationWarehouseName()); |
|
|
|
|
distributionParcelListVO.setServiceNumber(warehouseWaybillEntities.getServiceNo()); |
|
|
|
|
} |
|
|
|
|
parcelListVOS.add(distributionParcelListVO); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return parcelListVOS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param page |
|
|
|
|
* @param distributionSignforStockArticle |
|
|
|
|