Procházet zdrojové kódy

PDA理货备货(80%)

k před 2 roky
rodič
revize
f6c14009fb

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

@@ -315,6 +315,7 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         return this.moveDirect(moveForm);
     }
 
+    @Transactional
     @Override
     public AjaxResult clear(String locationId, Long warehouseId, String updateBy) {
         Long id; // 库位ID
@@ -337,18 +338,17 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
             // 是否需要清理批次表inv_lot_att
         }
         // 清除库存
-        int i = invLotLocIdMapper.deleteInvLotLocIdByLocationId(id);
-        if (i <= 0) {
-            return AjaxResult.error("清理库存失败!");
-        }
+        invLotLocIdMapper.deleteInvLotLocIdByLocationId(id);
         // 修改库位为空闲无货
         baseLocationInfoService.updateLocationIdleAndEmpty(id, warehouseId, updateBy);
         //修改托盘绑定
-        WmsBoxInfo wmsBoxInfo = iWmsBoxInfoService.selectByLocationId(locationId);
-        wmsBoxInfo.setIsFull("N");
-        wmsBoxInfo.setIsEmpty("Y");
-        wmsBoxInfo.setUpdateBy(updateBy);
-        iWmsBoxInfoService.updateWmsBoxInfoIsNull(wmsBoxInfo);
+        WmsBoxInfo wmsBoxInfo = iWmsBoxInfoService.selectByLocationId(baseLocationInfo.getId().toString());
+        if(wmsBoxInfo != null) {
+            wmsBoxInfo.setIsFull("N");
+            wmsBoxInfo.setIsEmpty("Y");
+            wmsBoxInfo.setUpdateBy(updateBy);
+            iWmsBoxInfoService.updateWmsBoxInfoIsNull(wmsBoxInfo);
+        }
         return AjaxResult.success("操作成功!");
     }
 

+ 8 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/mapper/ActAllocationDetailsMapper.java

@@ -79,6 +79,14 @@ public interface ActAllocationDetailsMapper {
      */
     List<ActAllocationDetails> queryAllocationDetailsByPalletNo(String palletNo);
 
+    /**
+     * 根据托盘编号查询分配记录 待拣
+     *
+     * @param palletNo
+     * @return
+     */
+    List<ActAllocationDetails> queryAllocationDetailsToPickByPalletNo(String palletNo);
+
     /**
      * 根据订单查询分配明细
      *

+ 8 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/service/IActAllocationDetailsService.java

@@ -96,6 +96,14 @@ public interface IActAllocationDetailsService {
      */
     List<ActAllocationDetails> queryAllocationDetailsByPalletNo(String palletNo);
 
+    /**
+     * 根据托盘编号查询分配明细 待拣
+     *
+     * @param palletNo
+     * @return
+     */
+    List<ActAllocationDetails> queryAllocationDetailsToPickByPalletNo(String palletNo);
+
     /**
      * 查询分配明细
      * @param orderNo

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

@@ -166,6 +166,11 @@ public class ActAllocationDetailsServiceImpl implements IActAllocationDetailsSer
         return actAllocationDetailsMapper.queryAllocationDetailsByPalletNo(palletNo);
     }
 
+    @Override
+    public List<ActAllocationDetails> queryAllocationDetailsToPickByPalletNo(String palletNo) {
+        return actAllocationDetailsMapper.queryAllocationDetailsToPickByPalletNo(palletNo);
+    }
+
     @Override
     public List<ActAllocationDetails> queryAllocationDetailsByOrderNo(String orderNo) {
         return actAllocationDetailsMapper.queryAllocationDetailsByOrderNo(orderNo);

+ 13 - 10
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -359,7 +359,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     @Override
     public List<PickingListVO> pickingList(String palletNo) {
         List<PickingListVO> pickingListVOS = new ArrayList<>();
-        List<ActAllocationDetails> allocationDetails = actAllocationDetailsService.queryAllocationDetailsByPalletNo(palletNo);
+        List<ActAllocationDetails> allocationDetails = actAllocationDetailsService.queryAllocationDetailsToPickByPalletNo(palletNo);
         for (ActAllocationDetails de : allocationDetails) {
             PickingListVO pickingListVO = new PickingListVO();
             pickingListVO.setOrderNo(de.getOrderNo());
@@ -551,21 +551,24 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
             return AjaxResult.error("查询不到分配记录");
         }
         for (ActAllocationDetails actAllocationDetails : actAllocationDetailsList) {
+            InvLotAtt invLotAtt = invLotAttMapper.selectInvLotAttByLotnum(actAllocationDetails.getLotnum());
+            if (!invLotAtt.getLotatt02().equals(arrangeStockForm.getSn())) {
+                continue;
+            }
             //把拣货库位上的库存移动到一个新的托盘上
-            //actAllocationDetails.setPickToLocation(boxTo.getLocationId().toString());
             actAllocationDetails.setPickQty(actAllocationDetails.getPickQty().add(new BigDecimal(arrangeStockForm.getQty())));
-            //actAllocationDetails.setStatus("40");
+            if (actAllocationDetails.getQty().compareTo(actAllocationDetails.getPickQty()) == 1) {
+                actAllocationDetails.setStatus("30");
+            }else {
+                actAllocationDetails.setStatus("40");
+            }
             actAllocationDetailsService.updateActAllocationDetails(actAllocationDetails);
             //修改托盘状态
             boxTo.setIsFull("N");
             wmsBoxInfoService.updateWmsBoxInfo(boxTo);
-            //库存进行移动
-            //invLotLocIdService.stockTransferPick(actAllocationDetails.getLocationId(), boxTo.getLocationId(), actAllocationDetails.getLotnum(), new BigDecimal(arrangeStockForm.getQty()), arrangeStockForm.getBoxNo());
-
-            //新增分配明细
-            ActAllocationDetails pickAllocation = new ActAllocationDetails();
-            pickAllocation.setQty(new BigDecimal(arrangeStockForm.getQty()));
-
+            //todo 库存进行移动
+//            invLotLocIdService.stockTransferPick(actAllocationDetails.getLocationId(), boxTo.getLocationId()
+//                    , actAllocationDetails.getLotnum(), new BigDecimal(arrangeStockForm.getQty()), arrangeStockForm.getBoxNo());
 
             //更新出库单拣货数量
             WmsDocOrderDetails wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByNoLineNo(actAllocationDetails.getOrderNo(), actAllocationDetails.getLineNo());

+ 6 - 0
warewms-ams/src/main/resources/mapper/docOrder/ActAllocationDetailsMapper.xml

@@ -173,6 +173,12 @@
         where al.userdefine1 = #{palletNo}
     </select>
 
+    <select id="queryAllocationDetailsToPickByPalletNo" parameterType="String" resultMap="ActAllocationDetailsResult">
+        select al.*
+        from act_allocation_details al
+        where al.userdefine1 = #{palletNo} and status = '20'
+    </select>
+
     <select id="queryAllocationDetailsByOrderNo" parameterType="String" resultMap="ActAllocationDetailsResult">
         select al.*
         from act_allocation_details al