فهرست منبع

AGV呼叫,库位分配

andy 3 سال پیش
والد
کامیت
d451c66909

+ 80 - 0
warewms-ams/src/main/java/com/ruoyi/ams/config/domain/dto/AgvCallDTO.java

@@ -0,0 +1,80 @@
+package com.ruoyi.ams.config.domain.dto;
+
+/**
+ * AGV呼叫业务模型
+ */
+public class AgvCallDTO {
+
+    private String sku;
+    private Float qty;
+    private Float weight;
+    private String supplier;
+    private String locationFrom;
+    private String locationTo;
+    private LotattDTO lotattDTO;
+    private Integer warehouseId;
+
+    public String getSku() {
+        return sku;
+    }
+
+    public void setSku(String sku) {
+        this.sku = sku;
+    }
+
+    public Float getQty() {
+        return qty;
+    }
+
+    public void setQty(Float qty) {
+        this.qty = qty;
+    }
+
+    public Float getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Float weight) {
+        this.weight = weight;
+    }
+
+    public String getSupplier() {
+        return supplier;
+    }
+
+    public void setSupplier(String supplier) {
+        this.supplier = supplier;
+    }
+
+    public String getLocationFrom() {
+        return locationFrom;
+    }
+
+    public void setLocationFrom(String locationFrom) {
+        this.locationFrom = locationFrom;
+    }
+
+    public String getLocationTo() {
+        return locationTo;
+    }
+
+    public void setLocationTo(String locationTo) {
+        this.locationTo = locationTo;
+    }
+
+    public LotattDTO getLotattDTO() {
+        return lotattDTO;
+    }
+
+    public void setLotattDTO(LotattDTO lotattDTO) {
+        this.lotattDTO = lotattDTO;
+    }
+
+    public Integer getWarehouseId() {
+        return warehouseId;
+    }
+
+    public void setWarehouseId(Integer warehouseId) {
+        this.warehouseId = warehouseId;
+    }
+}

+ 71 - 0
warewms-ams/src/main/java/com/ruoyi/ams/config/domain/dto/InWarehouseDTO.java

@@ -0,0 +1,71 @@
+package com.ruoyi.ams.config.domain.dto;
+
+/**
+ * 入库业务模型
+ */
+public class InWarehouseDTO {
+
+    private String sku;
+    private Double qty;
+    private Double weight;
+    private String supplier;
+    private String locationFrom;
+    private String locationTo;
+    private LotattDTO lotattDTO;
+
+    public String getSku() {
+        return sku;
+    }
+
+    public void setSku(String sku) {
+        this.sku = sku;
+    }
+
+    public Double getQty() {
+        return qty;
+    }
+
+    public void setQty(Double qty) {
+        this.qty = qty;
+    }
+
+    public Double getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Double weight) {
+        this.weight = weight;
+    }
+
+    public String getSupplier() {
+        return supplier;
+    }
+
+    public void setSupplier(String supplier) {
+        this.supplier = supplier;
+    }
+
+    public String getLocationFrom() {
+        return locationFrom;
+    }
+
+    public void setLocationFrom(String locationFrom) {
+        this.locationFrom = locationFrom;
+    }
+
+    public String getLocationTo() {
+        return locationTo;
+    }
+
+    public void setLocationTo(String locationTo) {
+        this.locationTo = locationTo;
+    }
+
+    public LotattDTO getLotattDTO() {
+        return lotattDTO;
+    }
+
+    public void setLotattDTO(LotattDTO lotattDTO) {
+        this.lotattDTO = lotattDTO;
+    }
+}

+ 170 - 0
warewms-ams/src/main/java/com/ruoyi/ams/config/domain/dto/LotattDTO.java

@@ -0,0 +1,170 @@
+package com.ruoyi.ams.config.domain.dto;
+
+/**
+ * 批次属性业务
+ */
+public class LotattDTO {
+
+    private String lotatt01;
+    private String lotatt02;
+    private String lotatt03;
+    private String lotatt04;
+    private String lotatt05;
+    private String lotatt06;
+    private String lotatt07;
+    private String lotatt08;
+    private String lotatt09;
+    private String lotatt10;
+    private String lotatt11;
+    private String lotatt12;
+    private String lotatt13;
+    private String lotatt14;
+    private String lotatt15;
+    private String lotatt16;
+    private String lotatt17;
+    private String lotatt18;
+
+    public String getLotatt01() {
+        return lotatt01;
+    }
+
+    public void setLotatt01(String lotatt01) {
+        this.lotatt01 = lotatt01;
+    }
+
+    public String getLotatt02() {
+        return lotatt02;
+    }
+
+    public void setLotatt02(String lotatt02) {
+        this.lotatt02 = lotatt02;
+    }
+
+    public String getLotatt03() {
+        return lotatt03;
+    }
+
+    public void setLotatt03(String lotatt03) {
+        this.lotatt03 = lotatt03;
+    }
+
+    public String getLotatt04() {
+        return lotatt04;
+    }
+
+    public void setLotatt04(String lotatt04) {
+        this.lotatt04 = lotatt04;
+    }
+
+    public String getLotatt05() {
+        return lotatt05;
+    }
+
+    public void setLotatt05(String lotatt05) {
+        this.lotatt05 = lotatt05;
+    }
+
+    public String getLotatt06() {
+        return lotatt06;
+    }
+
+    public void setLotatt06(String lotatt06) {
+        this.lotatt06 = lotatt06;
+    }
+
+    public String getLotatt07() {
+        return lotatt07;
+    }
+
+    public void setLotatt07(String lotatt07) {
+        this.lotatt07 = lotatt07;
+    }
+
+    public String getLotatt08() {
+        return lotatt08;
+    }
+
+    public void setLotatt08(String lotatt08) {
+        this.lotatt08 = lotatt08;
+    }
+
+    public String getLotatt09() {
+        return lotatt09;
+    }
+
+    public void setLotatt09(String lotatt09) {
+        this.lotatt09 = lotatt09;
+    }
+
+    public String getLotatt10() {
+        return lotatt10;
+    }
+
+    public void setLotatt10(String lotatt10) {
+        this.lotatt10 = lotatt10;
+    }
+
+    public String getLotatt11() {
+        return lotatt11;
+    }
+
+    public void setLotatt11(String lotatt11) {
+        this.lotatt11 = lotatt11;
+    }
+
+    public String getLotatt12() {
+        return lotatt12;
+    }
+
+    public void setLotatt12(String lotatt12) {
+        this.lotatt12 = lotatt12;
+    }
+
+    public String getLotatt13() {
+        return lotatt13;
+    }
+
+    public void setLotatt13(String lotatt13) {
+        this.lotatt13 = lotatt13;
+    }
+
+    public String getLotatt14() {
+        return lotatt14;
+    }
+
+    public void setLotatt14(String lotatt14) {
+        this.lotatt14 = lotatt14;
+    }
+
+    public String getLotatt15() {
+        return lotatt15;
+    }
+
+    public void setLotatt15(String lotatt15) {
+        this.lotatt15 = lotatt15;
+    }
+
+    public String getLotatt16() {
+        return lotatt16;
+    }
+
+    public void setLotatt16(String lotatt16) {
+        this.lotatt16 = lotatt16;
+    }
+
+    public String getLotatt17() {
+        return lotatt17;
+    }
+
+    public void setLotatt17(String lotatt17) {
+        this.lotatt17 = lotatt17;
+    }
+
+    public String getLotatt18() {
+        return lotatt18;
+    }
+
+    public void setLotatt18(String lotatt18) {
+        this.lotatt18 = lotatt18;
+    }
+}

+ 71 - 0
warewms-ams/src/main/java/com/ruoyi/ams/config/domain/dto/OutWarehouseDTO.java

@@ -0,0 +1,71 @@
+package com.ruoyi.ams.config.domain.dto;
+
+/**
+ * 出库业务模型
+ */
+public class OutWarehouseDTO {
+    //出库可以使用物料也可以根据物料类型匹配
+    private String sku;
+    private String skuType;
+    private Double weight;
+    private String supplier;
+    private String locationFrom;
+    private String locationTo;
+    private LotattDTO lotattDTO;
+
+    public String getSku() {
+        return sku;
+    }
+
+    public void setSku(String sku) {
+        this.sku = sku;
+    }
+
+    public String getSkuType() {
+        return skuType;
+    }
+
+    public void setSkuType(String skuType) {
+        this.skuType = skuType;
+    }
+
+    public Double getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Double weight) {
+        this.weight = weight;
+    }
+
+    public String getSupplier() {
+        return supplier;
+    }
+
+    public void setSupplier(String supplier) {
+        this.supplier = supplier;
+    }
+
+    public String getLocationFrom() {
+        return locationFrom;
+    }
+
+    public void setLocationFrom(String locationFrom) {
+        this.locationFrom = locationFrom;
+    }
+
+    public String getLocationTo() {
+        return locationTo;
+    }
+
+    public void setLocationTo(String locationTo) {
+        this.locationTo = locationTo;
+    }
+
+    public LotattDTO getLotattDTO() {
+        return lotattDTO;
+    }
+
+    public void setLotattDTO(LotattDTO lotattDTO) {
+        this.lotattDTO = lotattDTO;
+    }
+}

+ 0 - 33
warewms-ams/src/main/java/com/ruoyi/ams/config/domain/form/LineCallForm.java

@@ -1,33 +0,0 @@
-package com.ruoyi.ams.config.domain.form;
-
-/**
- * Created by IntelliJ IDEA.
- * User: andy.qu
- * Date: 2022/2/27
- */
-public class LineCallForm {
-    private String sku;
-    private Double qty;
-    private Double weight;
-    private String supplier;
-    private String locationFrom;
-    private String locationTo;
-    private String lotatt01;
-    private String lotatt02;
-    private String lotatt03;
-    private String lotatt04;
-    private String lotatt05;
-    private String lotatt06;
-    private String lotatt07;
-    private String lotatt08;
-    private String lotatt09;
-    private String lotatt10;
-    private String lotatt11;
-    private String lotatt12;
-    private String lotatt13;
-    private String lotatt14;
-    private String lotatt15;
-    private String lotatt16;
-    private String lotatt17;
-    private String lotatt18;
-}

+ 21 - 4
warewms-ams/src/main/java/com/ruoyi/ams/config/service/IBusinessService.java

@@ -1,8 +1,15 @@
 package com.ruoyi.ams.config.service;
 
+import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
+import com.ruoyi.ams.config.domain.dto.InWarehouseDTO;
+import com.ruoyi.ams.config.domain.dto.OutWarehouseDTO;
 import com.ruoyi.base.domain.BaseLocationInfo;
+import com.ruoyi.common.core.domain.AjaxResult;
+
+import java.util.List;
 
 /**
+ * AMS业务逻辑
  * Created by IntelliJ IDEA.
  * User: andy.qu
  * Date: 2022/2/27
@@ -10,12 +17,22 @@ import com.ruoyi.base.domain.BaseLocationInfo;
 public interface IBusinessService {
 
     /**
-     * 入库库位分配
-     * @param sku
+     * AGV呼叫业务
+     * @param agvCallDTOList
      * @return
      */
-    BaseLocationInfo inLocationAllocation(String sku);
+    AjaxResult agvCall(List<AgvCallDTO> agvCallDTOList);
 
+    /**
+     * 入库库位分配
+     * @param inWarehouseDTO
+     * @return
+     */
+    BaseLocationInfo inLocationAllocation(InWarehouseDTO inWarehouseDTO);
 
-    BaseLocationInfo invAllocation();
+    /**
+     * 出库库存分配
+     * @return
+     */
+    BaseLocationInfo OutInvAllocation(OutWarehouseDTO outWarehouseDTO);
 }

+ 57 - 0
warewms-ams/src/main/java/com/ruoyi/ams/config/service/impl/BusinessServiceImpl.java

@@ -0,0 +1,57 @@
+package com.ruoyi.ams.config.service.impl;
+
+import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
+import com.ruoyi.ams.config.domain.dto.InWarehouseDTO;
+import com.ruoyi.ams.config.domain.dto.OutWarehouseDTO;
+import com.ruoyi.ams.config.service.IBusinessService;
+import com.ruoyi.base.domain.BaseLocationInfo;
+import com.ruoyi.base.service.IBaseLocationInfoService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class BusinessServiceImpl implements IBusinessService {
+
+    @Autowired
+    private IBusinessService businessService;
+    @Autowired
+    private IBaseLocationInfoService baseLocationInfoService;
+
+    @Transactional
+    @Override
+    public AjaxResult agvCall(List<AgvCallDTO> agvCallDTOList) {
+        for (AgvCallDTO agvCallDTO : agvCallDTOList) {
+            if (!StringUtils.isEmpty(agvCallDTO.getLocationFrom()) && StringUtils.isEmpty(agvCallDTO.getLocationTo())) {
+                //如果起始库位不为空、目标库位为空则表示为入库
+                
+            } else if (StringUtils.isEmpty(agvCallDTO.getLocationFrom()) && !StringUtils.isEmpty(agvCallDTO.getLocationTo())) {
+                //如果起始库位为空、目标库位不为空则表示为出库
+            } else if (!StringUtils.isEmpty(agvCallDTO.getLocationFrom()) && !StringUtils.isEmpty(agvCallDTO.getLocationTo())) {
+                //如果都不为空则表示指定任务
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public BaseLocationInfo inLocationAllocation(InWarehouseDTO inWarehouseDTO) {
+        /**
+         * 根据sku查询可以存放的zone
+         * 根据每个zone的配置去分配可以存放的库位
+         */
+        if (!StringUtils.isEmpty(inWarehouseDTO.getLocationTo())) {
+
+        }
+        return null;
+    }
+
+    @Override
+    public BaseLocationInfo OutInvAllocation(OutWarehouseDTO outWarehouseDTO) {
+        return null;
+    }
+}

+ 11 - 2
warewms-base/src/main/java/com/ruoyi/base/service/IBaseLocationInfoService.java

@@ -22,6 +22,14 @@ public interface IBaseLocationInfoService
      */
      BaseLocationInfo selectBaseLocationInfoById(Long id);
 
+    /**
+     * 根据id或者编号查询库位信息
+     * @param idOrNo
+     * @param warehouseId
+     * @return
+     */
+     BaseLocationInfo selectBaseLocationInfoByIdOrNo(String idOrNo,Long warehouseId);
+
     /**
      * 查询库位信息列表
      * 
@@ -79,8 +87,9 @@ public interface IBaseLocationInfoService
 
     /**
      * 检测是库位还是库区,由于下拉树库位和库区没有做区分所以用这个方法来判断下类型
-     * @param id
+     * @param idOrNo id或者编号
+     * @param warehouseId 仓库id
      * @return
      */
-     boolean checkIsLocation(Long id);
+     boolean checkIsLocation(String idOrNo, Long warehouseId);
 }

+ 25 - 2
warewms-base/src/main/java/com/ruoyi/base/service/impl/BaseLocationInfoServiceImpl.java

@@ -39,6 +39,29 @@ public class BaseLocationInfoServiceImpl implements IBaseLocationInfoService {
         return baseLocationInfoMapper.selectBaseLocationInfoById(id);
     }
 
+    @Override
+    public BaseLocationInfo selectBaseLocationInfoByIdOrNo(String idOrNo, Long warehouseId) {
+        BaseLocationInfo locationInfo = null;
+        try {
+            locationInfo = baseLocationInfoMapper.selectBaseLocationInfoById(Long.parseLong(idOrNo));
+        } catch (Exception e) {
+
+        }
+        if (locationInfo == null) {
+            BaseLocationInfo query = new BaseLocationInfo();
+            query.setLocationNo(idOrNo);
+            query.setWarehouseId(warehouseId);
+            List<BaseLocationInfo> locationInfoList = baseLocationInfoMapper.selectBaseLocationInfoList(query);
+            if (locationInfoList == null || locationInfoList.size() == 0) {
+                return null;
+            } else {
+                return locationInfoList.get(0);
+            }
+        } else {
+            return locationInfo;
+        }
+    }
+
     /**
      * 查询库位信息列表
      *
@@ -131,8 +154,8 @@ public class BaseLocationInfoServiceImpl implements IBaseLocationInfoService {
     }
 
     @Override
-    public boolean checkIsLocation(Long id) {
-        BaseLocationInfo baseLocationInfo = baseLocationInfoMapper.selectBaseLocationInfoById(id);
+    public boolean checkIsLocation(String idOrNo, Long warehouseId) {
+        BaseLocationInfo baseLocationInfo = this.selectBaseLocationInfoByIdOrNo(idOrNo, warehouseId);
         if (baseLocationInfo == null) {
             return false;
         } else {