BucketWcsToWmsApiService.java 3.6 KB

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