BucketWcsToWmsApiService.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.ruoyi.ams.xuankuang.service;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
  5. import com.ruoyi.ams.inv.service.IInvLotLocIdService;
  6. import com.ruoyi.base.constant.Constant;
  7. import com.ruoyi.base.domain.BaseLocationInfo;
  8. import com.ruoyi.base.domain.vo.BaseLocationLotattDTO;
  9. import com.ruoyi.base.domain.vo.LotattVO;
  10. import com.ruoyi.base.service.IBaseLocationInfoService;
  11. import com.ruoyi.common.constant.Constants;
  12. import com.ruoyi.common.utils.ConvertUtils;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.List;
  17. import java.util.stream.Collectors;
  18. /**
  19. * @author HuKang
  20. * @version 1.0
  21. * @date 2023/3/30 15:42
  22. */
  23. @Slf4j
  24. @Service("bucketWcsToWmsApiService")
  25. public class BucketWcsToWmsApiService extends WcsToWmsApiService {
  26. @Autowired
  27. private IBaseLocationInfoService baseLocationInfoService;
  28. @Autowired
  29. private WcsToWmsApiService wcsToWmsApiService;
  30. @Autowired
  31. private IInvLotLocIdService invLotLocIdService;
  32. /**
  33. * 入库分配库位
  34. * @return
  35. * TODO 李卫
  36. */
  37. @Override
  38. protected BaseLocationInfo selectLocationInfo(){
  39. //4,5,6
  40. List<BaseLocationInfo> locationInfoList =
  41. baseLocationInfoService.selectLocationInfoList(Constants.EMPTY_PALLET_INV, Constant.PALLET_TYPE,
  42. Boolean.TRUE, Constant.STOCK_STATUS.STOCK00.getValue());
  43. //获得库存表的排序 orderby
  44. //1,2,3,4,5,6
  45. List<Long> bucketLocationIdList = wcsToWmsApiService.getBucketLocationIdList(Constants.EMPTY_PALLET_INV_SORT);
  46. List<BaseLocationInfo> finalLocationInfoList = bucketLocationIdList.stream().map(id ->
  47. locationInfoList.stream().filter(info -> id.equals(info.getId())).findFirst().orElseGet(() -> null)
  48. ).filter(ObjectUtil::isNotNull).collect(Collectors.toList());
  49. //4
  50. return CollectionUtil.getFirst(finalLocationInfoList);
  51. }
  52. /**
  53. * 出库分配库存
  54. * @return
  55. * TODO 李卫
  56. */
  57. protected BaseLocationLotattDTO allocateLocationInfo(){
  58. //1,2,3
  59. List<BaseLocationInfo> locationInfoList =
  60. baseLocationInfoService.selectLocationInfoList(Constants.EMPTY_PALLET_INV, Constant.PALLET_TYPE,
  61. Boolean.FALSE, Constant.STOCK_STATUS.STOCK00.getValue());
  62. //获得库存表的排序 orderby
  63. //1,2,3,4,5,6
  64. List<Long> bucketLocationIdList = wcsToWmsApiService.getBucketLocationIdList(Constants.EMPTY_PALLET_INV_SORT);
  65. List<BaseLocationInfo> finalLocationInfoList = bucketLocationIdList.stream().map(id ->
  66. locationInfoList.stream().filter(info -> id.equals(info.getId())).findFirst().orElseGet(() -> null)
  67. ).filter(ObjectUtil::isNotNull).collect(Collectors.toList());
  68. //3
  69. BaseLocationInfo baseLocationInfo = CollectionUtil.getLast(finalLocationInfoList);
  70. List<InvLotLocIdLotattVO> invLotLocIdLotattVOS = invLotLocIdService.selectInvLocIdLotattByLocationId(baseLocationInfo.getId());
  71. BaseLocationLotattDTO baseLocationLotatt = ConvertUtils.sourceToTarget(baseLocationInfo, BaseLocationLotattDTO.class);
  72. LotattVO lotattVO = new LotattVO();
  73. lotattVO.setLotatt07(invLotLocIdLotattVOS.get(0).getLotatt07());
  74. baseLocationLotatt.setLotattVO(lotattVO);
  75. return baseLocationLotatt;
  76. }
  77. }