|
@@ -1,28 +1,28 @@
|
|
|
package com.ruoyi.ams.xuankuang.service;
|
|
|
|
|
|
+import cn.hutool.core.comparator.CompareUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
|
|
|
import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
|
|
|
import com.ruoyi.ams.asn.mapper.WmsDocAsnDetailsMapper;
|
|
|
import com.ruoyi.ams.asn.mapper.WmsDocAsnHeaderMapper;
|
|
|
import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
|
|
|
-import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
|
|
|
import com.ruoyi.ams.config.domain.dto.LotattDTO;
|
|
|
-import com.ruoyi.ams.inv.service.IInvLotLocIdService;
|
|
|
-import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
|
|
|
import com.ruoyi.ams.task.domain.WcsTask;
|
|
|
import com.ruoyi.ams.task.service.IWcsTaskService;
|
|
|
import com.ruoyi.ams.xuankuang.domain.form.*;
|
|
|
import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
|
|
|
import com.ruoyi.base.constant.Constant;
|
|
|
import com.ruoyi.base.domain.BaseLocationInfo;
|
|
|
-import com.ruoyi.base.domain.BaseSku;
|
|
|
import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
|
|
|
import com.ruoyi.base.service.IBaseLocationInfoService;
|
|
|
import com.ruoyi.base.service.IBaseSkuService;
|
|
|
import com.ruoyi.base.utils.IdSequenceUtils;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.hard.xuankang.StirringTankClient;
|
|
|
import com.ruoyi.hard.xuankang.UnpackingMachineSubClient;
|
|
|
+import io.jsonwebtoken.lang.Assert;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -276,9 +276,10 @@ public class WcsToWmsApiService {
|
|
|
return AjaxResult.error("仓库中无库存");
|
|
|
}
|
|
|
BaseLocationLotattVO baseLocationLotattVO = filterInv1(baseLocationLotattVOS);
|
|
|
- BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, Constant.PALLET_TYPE);
|
|
|
+ Assert.isTrue(ObjectUtil.isNotNull(baseLocationLotattVO), "仓库中无库存");
|
|
|
|
|
|
- String pallentNo = baseLocationLotattVO.getLotattVO().getLotatt07();
|
|
|
+ String pallentNo = ObjectUtil.isNotNull(baseLocationLotattVO.getLotattVO())
|
|
|
+ ? baseLocationLotattVO.getLotattVO().getLotatt07() : StringUtils.EMPTY;
|
|
|
String locationFrom = baseLocationLotattVO.getLocationNo();
|
|
|
|
|
|
// 生成四向车出库任务
|
|
@@ -311,28 +312,14 @@ public class WcsToWmsApiService {
|
|
|
/**
|
|
|
* 匹配库存
|
|
|
*
|
|
|
- * @param baseLocationLotattVOS
|
|
|
+ * @param locationLotattList
|
|
|
* @return
|
|
|
*/
|
|
|
- public synchronized BaseLocationLotattVO filterInv1(List<BaseLocationLotattVO> baseLocationLotattVOS) {
|
|
|
-
|
|
|
- for (BaseLocationLotattVO baseLocationLotattVO : baseLocationLotattVOS) {
|
|
|
- //库存数量
|
|
|
- BigDecimal qty = new BigDecimal(1);
|
|
|
- String sku = Constant.PALLET_TYPE;
|
|
|
- if (!sku.equals(Constant.PALLET_TYPE)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- int i = qty.compareTo(BigDecimal.ONE);
|
|
|
- if (i == 0) {
|
|
|
- return baseLocationLotattVO;
|
|
|
- } else if (i > 0) {
|
|
|
- return baseLocationLotattVO;
|
|
|
- } else if (i < 0) {
|
|
|
- return baseLocationLotattVO;
|
|
|
- }
|
|
|
- }
|
|
|
- return baseLocationLotattVOS.get(0);
|
|
|
+ public synchronized BaseLocationLotattVO filterInv1(List<BaseLocationLotattVO> locationLotattList) {
|
|
|
+ return locationLotattList.parallelStream()
|
|
|
+ .filter(item -> ObjectUtil.isNotNull(item)
|
|
|
+ && StringUtils.equals(Constant.PALLET_TYPE, item.getSku())
|
|
|
+ && CompareUtil.compare(item.getQty(), 1F) == 0).findFirst().orElse(null);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -628,8 +615,6 @@ public class WcsToWmsApiService {
|
|
|
|
|
|
/**
|
|
|
* 桶装入库
|
|
|
- *
|
|
|
- * @param stackingCompletion
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional
|
|
@@ -713,7 +698,6 @@ public class WcsToWmsApiService {
|
|
|
|
|
|
/**
|
|
|
* 出库任务下发
|
|
|
- * @param callbackTaskFrom
|
|
|
* @return
|
|
|
*/
|
|
|
public AjaxResult outboundRequest(OutboundForm outboundForm) {
|