Browse Source

库存移动(根据托盘号)

k 2 years ago
parent
commit
44940ade6b

+ 15 - 8
warewms-ams/src/main/java/com/ruoyi/ams/box/service/IWmsBoxInfoService.java

@@ -5,15 +5,15 @@ import com.ruoyi.ams.box.domain.WmsBoxInfo;
 
 /**
  * 容器管理Service接口
- * 
+ *
  * @author ruoyi
  * @date 2022-11-01
  */
-public interface IWmsBoxInfoService 
+public interface IWmsBoxInfoService
 {
     /**
      * 查询容器管理
-     * 
+     *
      * @param id 容器管理主键
      * @return 容器管理
      */
@@ -21,12 +21,19 @@ public interface IWmsBoxInfoService
 
     /**
      * 查询容器管理列表
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 容器管理集合
      */
      List<WmsBoxInfo> selectWmsBoxInfoList(WmsBoxInfo wmsBoxInfo);
 
+    /**
+     * 查询容器管理(根据boxNo)
+     * @param boxNo
+     * @return
+     */
+     WmsBoxInfo selectWmsBoxInfoByBoxNo(String boxNo);
+
     /**
      * 查询容器管理
      *
@@ -37,7 +44,7 @@ public interface IWmsBoxInfoService
 
     /**
      * 新增容器管理
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 结果
      */
@@ -45,7 +52,7 @@ public interface IWmsBoxInfoService
 
     /**
      * 修改容器管理
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 结果
      */
@@ -53,7 +60,7 @@ public interface IWmsBoxInfoService
 
     /**
      * 批量删除容器管理
-     * 
+     *
      * @param ids 需要删除的容器管理主键集合
      * @return 结果
      */
@@ -61,7 +68,7 @@ public interface IWmsBoxInfoService
 
     /**
      * 删除容器管理信息
-     * 
+     *
      * @param id 容器管理主键
      * @return 结果
      */

+ 19 - 8
warewms-ams/src/main/java/com/ruoyi/ams/box/service/impl/WmsBoxInfoServiceImpl.java

@@ -10,19 +10,19 @@ import com.ruoyi.ams.box.service.IWmsBoxInfoService;
 
 /**
  * 容器管理Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2022-11-01
  */
 @Service
-public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService 
+public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 {
     @Autowired
     private WmsBoxInfoMapper wmsBoxInfoMapper;
 
     /**
      * 查询容器管理
-     * 
+     *
      * @param id 容器管理主键
      * @return 容器管理
      */
@@ -34,7 +34,7 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 
     /**
      * 查询容器管理列表
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 容器管理
      */
@@ -44,6 +44,17 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
         return wmsBoxInfoMapper.selectWmsBoxInfoList(wmsBoxInfo);
     }
 
+    @Override
+    public WmsBoxInfo selectWmsBoxInfoByBoxNo(String boxNo) {
+        WmsBoxInfo wmsBoxInfo = new WmsBoxInfo();
+        wmsBoxInfo.setBoxNo(boxNo);
+        List<WmsBoxInfo> wmsBoxInfoList = this.selectWmsBoxInfoList(wmsBoxInfo);
+        if (wmsBoxInfoList.size() >= 0) {
+            return wmsBoxInfoList.get(0);
+        }
+        return null;
+    }
+
     /**
      * 查询容器管理
      *
@@ -63,7 +74,7 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 
     /**
      * 新增容器管理
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 结果
      */
@@ -76,7 +87,7 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 
     /**
      * 修改容器管理
-     * 
+     *
      * @param wmsBoxInfo 容器管理
      * @return 结果
      */
@@ -89,7 +100,7 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 
     /**
      * 批量删除容器管理
-     * 
+     *
      * @param ids 需要删除的容器管理主键
      * @return 结果
      */
@@ -101,7 +112,7 @@ public class WmsBoxInfoServiceImpl implements IWmsBoxInfoService
 
     /**
      * 删除容器管理信息
-     * 
+     *
      * @param id 容器管理主键
      * @return 结果
      */

+ 19 - 4
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/IInvLotLocIdService.java

@@ -97,6 +97,20 @@ public interface IInvLotLocIdService {
      */
     AjaxResult moveDirect(InvLotLocIdMoveForm invLotLocIdMoveForm);
 
+    /**
+     * 库存移动(根据托盘
+     *
+     * @param palletNo
+     * @param locationTo
+     * @param isCallCar
+     * @param reason
+     * @param warehouseId
+     * @param updateBy
+     * @return
+     */
+    AjaxResult movePallet(String palletNo, String locationTo, String isCallCar, String reason
+            , Long warehouseId, String updateBy);
+
     /**
      * 库存清理
      *
@@ -152,11 +166,12 @@ public interface IInvLotLocIdService {
 
     /**
      * 初始化库存
+     *
      * @param locationFrom 库存所在库位
-     * @param sku 物料编号
-     * @param customerId 所属货主(未使用)
-     * @param qty 数量
-     * @param lotattDTO 批次属性
+     * @param sku          物料编号
+     * @param customerId   所属货主(未使用)
+     * @param qty          数量
+     * @param lotattDTO    批次属性
      * @param qtyallocated 指定已分配数量
      * @return 生成的lotnum
      */

+ 36 - 0
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.ams.inv.service.impl;
 
+import com.ruoyi.ams.box.domain.WmsBoxInfo;
+import com.ruoyi.ams.box.service.IWmsBoxInfoService;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.ams.inv.domain.InvLotAtt;
 import com.ruoyi.ams.inv.domain.InvLotLocId;
@@ -16,6 +18,7 @@ import com.ruoyi.base.service.IBaseLocationInfoService;
 import com.ruoyi.base.utils.IdSequenceUtils;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +47,8 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
     private IBaseLocationInfoService baseLocationInfoService;
     @Autowired
     private IdSequenceUtils idSequenceUtils;
+    @Autowired
+    private IWmsBoxInfoService iWmsBoxInfoService;
 
     /**
      * 查询库位库存信息
@@ -248,6 +253,37 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         return AjaxResult.success("操作成功!");
     }
 
+    @Override
+    public AjaxResult movePallet(String palletNo, String locationTo, String isCallCar, String reason
+            , Long warehouseId, String updateBy) {
+        String locationFrom;
+        boolean callCar = false; // 是否叫车(不传默认不叫车)
+        if (StringUtils.isEmpty(palletNo)) {
+            AjaxResult.error("托盘号不能为空!");
+        }
+        WmsBoxInfo wmsBoxInfo = iWmsBoxInfoService.selectWmsBoxInfoByBoxNo(palletNo);
+        if (wmsBoxInfo == null) {
+            return AjaxResult.error("不存在对应托盘信息!" + palletNo);
+        }
+        locationFrom = wmsBoxInfo.getLocationId().toString();
+        if (StringUtils.isNotEmpty(isCallCar)) {
+            callCar = isCallCar.equals(Constant.IS_YES.Y.getValue());
+        }
+
+        // 执行库存移动
+        InvLotLocIdMoveForm moveForm = new InvLotLocIdMoveForm();
+        moveForm.setLocationFrom(locationFrom);
+        moveForm.setLocationTo(locationTo);
+        moveForm.setReason(reason);
+        moveForm.setWarehouseId(warehouseId);
+        moveForm.setUpdateBy(updateBy);
+        // 是否叫车
+        if (callCar) {
+            return this.move(moveForm);
+        }
+        return this.moveDirect(moveForm);
+    }
+
     @Override
     public AjaxResult clear(String locationId, Long warehouseId, String updateBy) {
         Long id; // 库位ID

+ 7 - 6
warewms-ams/src/main/resources/mapper/box/WmsBoxInfoMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.ams.box.mapper.WmsBoxInfoMapper">
-    
+
     <resultMap type="WmsBoxInfo" id="WmsBoxInfoResult">
         <result property="id"    column="id"    />
         <result property="boxNo"    column="box_no"    />
@@ -27,16 +27,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectWmsBoxInfoList" parameterType="WmsBoxInfo" resultMap="WmsBoxInfoResult">
         <include refid="selectWmsBoxInfoVo"/>
-        <where>  
+        <where>
             <if test="isFull != null  and isFull != ''"> and is_full = #{isFull}</if>
+            <if test="boxNo != null  and boxNo != ''"> and box_no = #{boxNo}</if>
         </where>
     </select>
-    
+
     <select id="selectWmsBoxInfoById" parameterType="Long" resultMap="WmsBoxInfoResult">
         <include refid="selectWmsBoxInfoVo"/>
         where id = #{id}
     </select>
-        
+
     <insert id="insertWmsBoxInfo" parameterType="WmsBoxInfo" useGeneratedKeys="true" keyProperty="id">
         insert into wms_box_info
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -96,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteWmsBoxInfoByIds" parameterType="String">
-        delete from wms_box_info where id in 
+        delete from wms_box_info where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -115,4 +116,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update wms_box_info set location_id = '',is_full = 'N'
         where location_id = #{locationId}
     </update>
-</mapper>
+</mapper>