Browse Source

库位清空同时清空托盘
bug修复

andy 2 years ago
parent
commit
e11471bd4d

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/pda/PdaController.java

@@ -29,6 +29,7 @@ import com.ruoyi.ams.lineCall.service.ILineCallService;
 import com.ruoyi.ams.order.domain.ActAllocationDetails;
 import com.ruoyi.ams.order.form.ArrangeStockForm;
 import com.ruoyi.ams.order.form.CheckOutForm;
+import com.ruoyi.ams.order.form.ClearLocationForm;
 import com.ruoyi.ams.order.form.PickForm;
 import com.ruoyi.ams.order.service.IActAllocationDetailsService;
 import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;

+ 1 - 1
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/WarehouseTest.java

@@ -250,7 +250,7 @@ public class WarehouseTest {
             details.setCustomerId(Constant.CUSTOMER_ID);
             details.setOrderLineNo(BigDecimal.valueOf(i));
             details.setSku(arr[i - 1]);
-            details.setQtyOrdered(BigDecimal.valueOf(10));
+            details.setQtyOrdered(BigDecimal.valueOf(5));
             details.setQtyOrderedEach(details.getQtyOrdered());
             details.setQtyPicked(BigDecimal.ZERO);
             details.setQtyPickedEach(BigDecimal.ZERO);

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/impl/WmsDocAsnHeaderServiceImpl.java

@@ -424,7 +424,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
                             lotattDTO.setLotatt05("90");
                             lotattDTO.setLotatt07(stockForm.getPalletNo());
                             lotattDTO.setLotatt08(details.getAsnNo());
-                            lotattDTO.setLotatt12("N");
+                            lotattDTO.setLotatt12("Y");
                             lotattDTO.setLotatt13(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD));
                             lotattDTO.setLotatt14(stockForm.getOrderNo());
                             String lotnum = invLotLocIdService.initInv(STAGE01, codeSkuRelationshipVO.getSku(), Constant.CUSTOMER_ID, current.doubleValue(), lotattDTO, BigDecimal.ZERO);

+ 8 - 1
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -319,7 +319,14 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         }
         // 修改库位为空闲无货
         baseLocationInfoService.updateLocationIdleAndEmpty(id, warehouseId, updateBy);
-
+        //修改托盘绑定
+        WmsBoxInfo wmsBoxInfo = iWmsBoxInfoService.selectByLocationId(locationId);
+        wmsBoxInfo.setLocationId(null);
+        wmsBoxInfo.setIsFull("N");
+        wmsBoxInfo.setIsEmpty("Y");
+        wmsBoxInfo.setUpdateBy(updateBy);
+        wmsBoxInfo.setUpdateTime(new Date());
+        iWmsBoxInfoService.updateWmsBoxInfo(wmsBoxInfo);
         return AjaxResult.success("操作成功!");
     }
 

+ 8 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/form/ClearLocationForm.java

@@ -0,0 +1,8 @@
+package com.ruoyi.ams.order.form;
+
+import lombok.Data;
+
+@Data
+public class ClearLocationForm {
+    private String locationNo;
+}

+ 2 - 4
warewms-ams/src/main/java/com/ruoyi/ams/order/service/IWmsDocOrderHeaderService.java

@@ -4,10 +4,7 @@ import java.util.List;
 
 import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
 import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
-import com.ruoyi.ams.order.form.ArrangeStockForm;
-import com.ruoyi.ams.order.form.CheckOutForm;
-import com.ruoyi.ams.order.form.InvTallyForm;
-import com.ruoyi.ams.order.form.PickForm;
+import com.ruoyi.ams.order.form.*;
 import com.ruoyi.ams.order.vo.CheckOutVO;
 import com.ruoyi.ams.order.vo.PickingListVO;
 import com.ruoyi.ams.order.vo.StockOrderVO;
@@ -194,4 +191,5 @@ public interface IWmsDocOrderHeaderService {
      * @return
      */
     AjaxResult invTally(InvTallyForm invTallyForm);
+
 }

+ 11 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/ActAllocationDetailsServiceImpl.java

@@ -6,6 +6,8 @@ import java.util.List;
 import com.ruoyi.ams.box.domain.WmsBoxInfo;
 import com.ruoyi.ams.box.service.IWmsBoxInfoService;
 import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.base.domain.BaseLocationInfo;
+import com.ruoyi.base.service.IBaseLocationInfoService;
 import com.ruoyi.base.utils.IdSequenceUtils;
 import com.ruoyi.common.core.domain.AjaxResult;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +15,7 @@ import org.springframework.stereotype.Service;
 import com.ruoyi.ams.order.mapper.ActAllocationDetailsMapper;
 import com.ruoyi.ams.order.domain.ActAllocationDetails;
 import com.ruoyi.ams.order.service.IActAllocationDetailsService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 分配查询Service业务层处理
@@ -29,6 +32,8 @@ public class ActAllocationDetailsServiceImpl implements IActAllocationDetailsSer
     private IdSequenceUtils idSequenceUtils;
     @Autowired
     private IWmsBoxInfoService wmsBoxInfoService;
+    @Autowired
+    private IBaseLocationInfoService baseLocationInfoService;
 
     /**
      * 查询分配查询
@@ -112,6 +117,7 @@ public class ActAllocationDetailsServiceImpl implements IActAllocationDetailsSer
         return actAllocationDetailsMapper.deleteActAllocationDetailsByAllocationId(allocationId);
     }
 
+    @Transactional
     @Override
     public AjaxResult addActAllocationDetails(String lotnum, String locationId, BigDecimal qty, WmsDocOrderDetails orderDetails) {
         WmsBoxInfo wmsBoxInfo = wmsBoxInfoService.selectByLocationId(locationId);
@@ -131,6 +137,11 @@ public class ActAllocationDetailsServiceImpl implements IActAllocationDetailsSer
         }
         int count = actAllocationDetailsMapper.insertActAllocationDetails(actAllocationDetails);
         if (count > 0) {
+            //TODO 锁定库位(如果没有AGV需要把这部分去除)
+            BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoById(Long.parseLong(locationId));
+            baseLocationInfo.setStockStatus("10");
+            baseLocationInfoService.updateBaseLocationInfo(baseLocationInfo);
+
             return AjaxResult.success("分配明细生成成功", qty);
         } else {
             return AjaxResult.error("分配明细生成失败");

+ 2 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -85,6 +85,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     private IActTransactionLogService actTransactionLogService;
     @Autowired
     private IdSequenceUtils idSequenceUtils;
+    @Autowired
+    private IBaseLocationInfoService baseLocationInfoService;
 
     /**
      * 查询出库单头

+ 4 - 1
warewms-ams/src/main/resources/mapper/ams/InvLotLocIdMapper.xml

@@ -446,13 +446,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="queryInvOrderBy" parameterType="InvLotLocId" resultMap="InvLotLocIdResult">
-        <include refid="selectInvLotLocIdVo"/>
+        select inv.* from inv_lot_loc_id inv
+        left join base_location_info b on inv.location_id = b.id
         <where>
             <if test="lotnum != null  and lotnum != ''"> and lotnum = #{lotnum}</if>
             <if test="sku != null  and sku != ''"> and sku = #{sku}</if>
             <if test="location != null  and location != ''"> and location_id = #{location}</if>
             <if test="customerId != null  and customerId != ''"> and customer_id = #{customerId}</if>
+            and b.stock_status = '00'
         </where>
+        order by lpad(b.row_no, 11, '0'),b.row_index,lpad(b.shift_no, 11, '0'),b.shift_index,lpad(b.col_no, 11, '0'),b.col_index desc
     </select>
 
     <select id="queryInvByInvLotatt" resultMap="InvLotLocIdResult">

+ 0 - 1
warewms-base/src/main/java/com/ruoyi/base/service/IBaseLocationInfoService.java

@@ -236,5 +236,4 @@ public interface IBaseLocationInfoService {
      * @return
      */
     boolean updateLocationIdleAndNoEmpty(Long id, Long warehouseId, String updateBy);
-
 }