Browse Source

在库订单未入库。已入库包件展示

visual
汤建军 4 months ago
parent
commit
be0a2c2d2e
  1. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java
  2. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  3. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java
  4. 101
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java
  5. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java

@ -28,4 +28,13 @@ public interface ITrunklineAdvanceDetailClient {
@GetMapping(API_PREFIX+"/findListByWaybillId")
List<TrunklineAdvanceDetailEntity> findListByWaybillId(@RequestParam Long waybillId);
/**
* 查询暂存单详情
* @param orderCode
* @param warehouseIds
* @return
*/
@GetMapping(API_PREFIX+"/selectByOrderCodeAndWarehouseId")
List<TrunklineAdvanceDetailEntity> selectByOrderCodeAndWarehouseId(@RequestParam String orderCode,@RequestParam String warehouseIds);
}

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java

@ -189,6 +189,17 @@ public class DistributionStockArticleController extends BladeController {
return R.data(parcelNumberVOS);
}
/**
* 查询订单入库详情
*/
@GetMapping("/getOrderWarehouseDetail")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入distributionStockArticle")
public R getOrderWarehouseDetail(@ApiIgnore @RequestParam String orderCode) {
R r = distributionStockArticleService.getOrderWarehouseDetail(orderCode);
return r;
}
// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
// if (Func.isEmpty(myCurrentWarehouse)){

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java

@ -323,4 +323,12 @@ public interface IDistributionStockArticleService extends BaseService<Distributi
IPage<DistributionStockArticleVO> pageListOweTransfer(IPage<Object> page, Map<String, Object> distributionStockArticle);
R findZeroOrderInfo(Long orderId);
/**
* 查询订单入库详情
* @param orderCode
* @return
*/
R getOrderWarehouseDetail(String orderCode);
}

101
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java

@ -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

10
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java

@ -1,11 +1,13 @@
package com.logpm.trunkline.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.service.ITrunklineAdvanceDetailService;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ -41,4 +43,12 @@ public class TrunklineAdvanceDetailClient implements ITrunklineAdvanceDetailClie
.eq("is_deleted",0);
return advanceDetailService.list(queryWrapper);
}
@Override
public List<TrunklineAdvanceDetailEntity> selectByOrderCodeAndWarehouseId(String orderCode, String warehouseIds) {
return advanceDetailService.list(Wrappers.<TrunklineAdvanceDetailEntity>query().lambda()
.eq(TrunklineAdvanceDetailEntity::getOrderCode,orderCode)
.in(TrunklineAdvanceDetailEntity::getWarehouseId, Func.toLongList(warehouseIds))
);
}
}

Loading…
Cancel
Save