Browse Source

AGV任务状态反馈
1.回调入库:修改入库上架状态
2.回调回库:修改库存批次lotatt15为空
3.回调出库:修改分配明细,备货单,库内理货单状态

k 2 years ago
parent
commit
b248e4c3d9

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

@@ -594,16 +594,6 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
             //删除库存 todo 物料增加库存的时候如果改成根据相同库存和批次可以累加数量,这边就需要减库存,而不是直接删除
             invLotLocIdMapper.deleteInvLotLocIdBy(inv.getLotnum(), inv.getSku(), inv.getLocationId(), inv.getCustomerId());
         }
-        //查询分配单
-//        ActAllocationDetails allQuery = new ActAllocationDetails();
-//        allQuery.setLotnum(unlockForm.getLotnum());
-//        allQuery.setUserdefine1(unlockForm.getPalletNo());
-//        List<ActAllocationDetails> allocationDetails = actAllocationDetailsService.selectActAllocationDetailsList(allQuery);
-//        for (ActAllocationDetails actAllocationDetails : allocationDetails) {
-//            //删除分配表
-//            actAllocationDetailsService.deleteActAllocationDetailsByAllocationId(actAllocationDetails.getAllocationId());
-//            wmsDocOrderDetailsMapper.updateOrderDetailsStock(actAllocationDetails.getOrderNo(), actAllocationDetails.getLineNo(), (-1 * actAllocationDetails.getQty().doubleValue()), "00");
-//        }
         return AjaxResult.success("解绑成功");
     }
 
@@ -676,6 +666,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
             WmsDocAsnDetails details = new WmsDocAsnDetails();
             details.setAsnNo(asnNo);
             details.setAsnLineNo(Long.valueOf(index));
+            details.setLineStatus("00");
             details.setSku(erpOrder.getIma01());            //品号
             details.setReceivedQty(BigDecimal.ZERO);
             details.setReceivedQtyEach(BigDecimal.ZERO);
@@ -833,7 +824,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
 
             InvLotAtt invLotAtt = invLotAttService.selectInvLotAttByLotnum(inv.getLotnum());
 
-            // 修改入库单状态
+            // 修改入库单状态,这边写的不是很严谨,但是不影响主体业务
             WmsDocAsnDetails query = new WmsDocAsnDetails();
             query.setAsnNo(invLotAtt.getLotatt08());
             query.setSku(invLotAtt.getSku());

+ 9 - 0
warewms-ams/src/main/java/com/ruoyi/ams/inv/domain/form/InvLocIdSearchFrom.java

@@ -17,6 +17,7 @@ public class InvLocIdSearchFrom {
     private String lotatt07;
     private String lotatt08;
     private String lotatt14;
+    private String lotatt15;
 
     public String getSku() {
         return sku;
@@ -89,4 +90,12 @@ public class InvLocIdSearchFrom {
     public void setLotatt14(String lotatt14) {
         this.lotatt14 = lotatt14;
     }
+
+    public String getLotatt15() {
+        return lotatt15;
+    }
+
+    public void setLotatt15(String lotatt15) {
+        this.lotatt15 = lotatt15;
+    }
 }

+ 16 - 0
warewms-ams/src/main/java/com/ruoyi/ams/inv/mapper/InvLotLocIdMapper.java

@@ -73,6 +73,22 @@ public interface InvLotLocIdMapper {
      */
     int updateInvLotLocId(InvLotLocId invLotLocId);
 
+    /**
+     * 修改库位库存信息的某个字段为空
+     *
+     * @param lotnum
+     * @return
+     */
+    int updateInvLotLocIdLotatt14IsNull(String lotnum);
+
+    /**
+     * 修改库位库存信息的某个字段为空
+     *
+     * @param lotnum
+     * @return
+     */
+    int updateInvLotLocIdLotatt15IsNull(String lotnum);
+
     /**
      * 删除库位库存信息
      *

+ 23 - 0
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/IInvLotLocIdService.java

@@ -158,6 +158,21 @@ public interface IInvLotLocIdService {
      */
     int updateInvLotLocId(InvLotLocId invLotLocId);
 
+    /**
+     * 修改库位库存信息的某个字段为空
+     *
+     * @param
+     * @return
+     */
+    int updateInvLotLocIdLotatt14IsNull(String lotnum);
+
+    /**
+     * 修改库位库存信息的某个字段为空
+     *
+     * @return
+     */
+    int updateInvLotLocIdLotatt15IsNull(String lotnum);
+
     /**
      * 批量删除库位库存信息
      *
@@ -333,4 +348,12 @@ public interface IInvLotLocIdService {
      * @return false代表托盘上已经备货了出库单
      */
     AjaxResult checkPalletIsOnlyOrderNo(String palletNo,String orderNo);
+
+    /**
+     * 清空库存lotatt15(分配出库单号)根据托盘号
+     *
+     * @param palletNo
+     * @return
+     */
+    AjaxResult clearInvActOrderNoByPalletNo(String palletNo);
 }

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

@@ -463,6 +463,16 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         return invLotLocIdMapper.updateInvLotLocId(invLotLocId);
     }
 
+    @Override
+    public int updateInvLotLocIdLotatt14IsNull(String lotnum) {
+        return invLotLocIdMapper.updateInvLotLocIdLotatt14IsNull(lotnum);
+    }
+
+    @Override
+    public int updateInvLotLocIdLotatt15IsNull(String lotnum) {
+        return invLotLocIdMapper.updateInvLotLocIdLotatt15IsNull(lotnum);
+    }
+
     /**
      * 批量删除库位库存信息
      *
@@ -836,4 +846,18 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         }
         return AjaxResult.success();
     }
+
+    @Override
+    public AjaxResult clearInvActOrderNoByPalletNo(String palletNo) {
+        InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
+        invLocIdSearchFrom.setLotatt07(palletNo);
+        List<InvLotLocIdLotattVO> invLotLocIdLotattVOS = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
+        if(invLotLocIdLotattVOS.size() == 0){
+            return AjaxResult.success();
+        }
+        for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattVOS) {
+            invLotLocIdService.updateInvLotLocIdLotatt15IsNull(invLotLocIdLotattVO.getLotnum());
+        }
+        return AjaxResult.success();
+    }
 }

+ 10 - 2
warewms-ams/src/main/java/com/ruoyi/ams/order/service/IActAllocationDetailsService.java

@@ -138,19 +138,27 @@ public interface IActAllocationDetailsService {
      */
     void updateAllocationDetailsLocationIdByPalletNo(String locationId, String palletNo);
 
+
     /**
-     * 修改分配任务完成
+     * 修改分配明细为任务完成
      *
+     * @param orderNo
+     * @param locationId
+     * @param palletNo
      * @return
      */
     AjaxResult modifyAssignmentTaskStatus(String orderNo,Long locationId,String palletNo);
 
+
     /**
      * 修改分配任务为拣货完成,备货(没有备货完成的)
+     *
      * @param orderNo
      * @param locationId
      * @param palletNo
      * @return
      */
-    AjaxResult modifyAssignmentStockTaskStatus(String orderNo,Long locationId,String palletNo);
+    AjaxResult modifyAssignmentStockTaskStatusPickingComplete(String orderNo, Long locationId, String palletNo);
+
+
 }

+ 24 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/service/IWmsDocOrderHeaderService.java

@@ -283,6 +283,30 @@ public interface IWmsDocOrderHeaderService {
      */
     AjaxResult synchronizeErpBarcodeList(String orderNo);
 
+
+    /**
+     * 修改备货出库单状态
+     * 1 如果非备货完成状态:分配明细为拣货完成
+     * 2 如果备货完成状态:出库单修改为部分出库,完全出库
+     *
+     * @param orderNo
+     * @param locationId
+     * @param palletNo
+     * @return
+     */
+    AjaxResult modifyAssignmentStockTaskStatus(String orderNo,Long locationId,String palletNo);
+
+    /**
+     * 修改出库单为完成,备货(备货完成的)
+     *
+     * @param orderNo
+     * @param locationId
+     * @param palletNo
+     * @param isBH 是否备货单
+     * @return
+     */
+    AjaxResult modifyAssignmentStockTaskStatusComplete(String orderNo,Long locationId,String palletNo,boolean isBH);
+
     /**
      * 修改库内理货为完成
      *

+ 12 - 17
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/ActAllocationDetailsServiceImpl.java

@@ -251,23 +251,18 @@ public class ActAllocationDetailsServiceImpl implements IActAllocationDetailsSer
     }
 
     @Override
-    public AjaxResult modifyAssignmentStockTaskStatus(String orderNo, Long locationId, String palletNo) {
-        WmsDocOrderHeader header = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
-        // 备货单分配明细可以改为拣货完成
-        if (header != null
-                && header.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())) {
-            ActAllocationDetailsFrom actAllocationQuery = new ActAllocationDetailsFrom();
-            actAllocationQuery.setOrderNo(orderNo);
-            actAllocationQuery.setLocationId(locationId);
-            actAllocationQuery.setLotatt07(palletNo);
-            actAllocationQuery.setStatus(Constant.ORDER_STS.STS21.getValue());
-            List<ActAllocationDetailsFrom> actAllocationDetailsFromList = this.selectActAllocationDetailsInvLotAttList(actAllocationQuery);
-            for (ActAllocationDetailsFrom allocationDetails : actAllocationDetailsFromList) {
-                ActAllocationDetails allocationDetailsUpdate = new ActAllocationDetails();
-                allocationDetailsUpdate.setAllocationId(allocationDetails.getAllocationId());
-                allocationDetailsUpdate.setStatus(Constant.ORDER_STS.STS40.getValue());
-                this.updateActAllocationDetails(allocationDetailsUpdate);
-            }
+    public AjaxResult modifyAssignmentStockTaskStatusPickingComplete(String orderNo, Long locationId, String palletNo) {
+        ActAllocationDetailsFrom actAllocationQuery = new ActAllocationDetailsFrom();
+        actAllocationQuery.setOrderNo(orderNo);
+        actAllocationQuery.setLocationId(locationId);
+        actAllocationQuery.setLotatt07(palletNo);
+        actAllocationQuery.setStatus(Constant.ORDER_STS.STS21.getValue());
+        List<ActAllocationDetailsFrom> actAllocationDetailsFromList = this.selectActAllocationDetailsInvLotAttList(actAllocationQuery);
+        for (ActAllocationDetailsFrom allocationDetails : actAllocationDetailsFromList) {
+            ActAllocationDetails allocationDetailsUpdate = new ActAllocationDetails();
+            allocationDetailsUpdate.setAllocationId(allocationDetails.getAllocationId());
+            allocationDetailsUpdate.setStatus(Constant.ORDER_STS.STS40.getValue());
+            this.updateActAllocationDetails(allocationDetailsUpdate);
         }
         return AjaxResult.success();
     }

+ 93 - 33
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -1243,6 +1243,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
             WmsDocOrderDetails details = new WmsDocOrderDetails();
             details.setOrderNo(orderNo);
             details.setOrderLineNo(BigDecimal.valueOf(index));
+            details.setLineStatus("00");
             details.setQtyOrdered(erpOrder.getQty());
             details.setQtyOrderedEach(erpOrder.getQty());
             details.setQtyAllocatedEach(BigDecimal.ZERO);
@@ -1328,47 +1329,106 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     }
 
     @Override
-    public AjaxResult modifyTheTallyStatusInTheWarehouse(String orderNo,Long locationId,String palletNo) {
-        WmsDocOrderHeader header = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
-        if (header != null && header.getOrderType().equals(Constant.ORDER_TYP.LH.getValue())) {
-            // 分配明细为拣货完成
-            ActAllocationDetailsFrom actAllocationQuery = new ActAllocationDetailsFrom();
-            actAllocationQuery.setOrderNo(orderNo);
-            actAllocationQuery.setLocationId(locationId);
-            actAllocationQuery.setLotatt07(palletNo);
-            actAllocationQuery.setStatus(Constant.ORDER_STS.STS20.getValue());
-            List<ActAllocationDetailsFrom> actAllocationDetailsFromList = actAllocationDetailsService.selectActAllocationDetailsInvLotAttList(actAllocationQuery);
-            for (ActAllocationDetailsFrom allocationDetails : actAllocationDetailsFromList) {
-                ActAllocationDetails allocationDetailsUpdate = new ActAllocationDetails();
-                allocationDetailsUpdate.setAllocationId(allocationDetails.getAllocationId());
-                allocationDetailsUpdate.setStatus(Constant.ORDER_STS.STS40.getValue());
-                actAllocationDetailsService.updateActAllocationDetails(allocationDetailsUpdate);
-                // 出库单明细改为完成
-                WmsDocOrderDetails wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByNoLineNo(allocationDetails.getOrderNo(), allocationDetails.getLineNo());
-                WmsDocOrderDetails wmsDocOrderDetailsUpdate = new WmsDocOrderDetails();
-                wmsDocOrderDetailsUpdate.setOrderNo(wmsDocOrderDetails.getOrderNo());
-                wmsDocOrderDetailsUpdate.setOrderLineNo(wmsDocOrderDetails.getOrderLineNo());
-                wmsDocOrderDetailsUpdate.setLineStatus(Constant.ORDER_STS.STS99.getValue());
-                wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(wmsDocOrderDetailsUpdate);
+    public AjaxResult modifyAssignmentStockTaskStatus(String orderNo, Long locationId, String palletNo) {
+        WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
+        if (!wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())) {
+            return AjaxResult.success();
+        }
+        // 出库单备货完成,部分出库状态修改出库单出库状态,其余修改分配明细为拣货完成
+        if (wmsDocOrderHeader.getOrderStatus().equals(Constant.ORDER_STS.STS23.getValue())
+                || wmsDocOrderHeader.getOrderStatus().equals(Constant.ORDER_STS.STS98.getValue())) {
+            return wmsDocOrderHeaderService.modifyAssignmentStockTaskStatusComplete(orderNo, locationId, palletNo,true);
+        } else {
+            return actAllocationDetailsService.modifyAssignmentStockTaskStatusPickingComplete(orderNo, locationId, palletNo);
+        }
+    }
+
+    @Override
+    public AjaxResult modifyAssignmentStockTaskStatusComplete(String orderNo, Long locationId, String palletNo,boolean isBH) {
+        InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
+        invLocIdSearchFrom.setLocationNo(locationId.toString());
+        invLocIdSearchFrom.setLotatt07(palletNo);
+        if (isBH) {
+            invLocIdSearchFrom.setLotatt14(orderNo);
+        }else {
+            invLocIdSearchFrom.setLotatt15(orderNo);
+        }
+        List<InvLotLocIdLotattVO> invLotLocIdLotattVOS = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
+        for (InvLotLocIdLotattVO inv : invLotLocIdLotattVOS) {
+            // 修改出库单状态,这边写的不是很严谨,但是不影响主体业务
+            WmsDocOrderDetails query = new WmsDocOrderDetails();
+            query.setOrderNo(orderNo);
+            query.setSku(inv.getSku());
+            List<WmsDocOrderDetails> detailsList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsList(query);
+            if (detailsList != null && detailsList.size() > 0) {
+                for (WmsDocOrderDetails de : detailsList) {
+                    de.setLineStatus(Constant.ORDER_STS.STS99.getValue());
+                    wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(de);
+                }
             }
-            // 出库单头
-            String orderSts = Constant.ORDER_STS.STS99.getValue();
-            WmsDocOrderHeader wmsDocOrderHeader = new WmsDocOrderHeader();
-            wmsDocOrderHeader.setOrderNo(orderNo);
-            List<WmsDocOrderDetails> wmsDocOrderDetailsList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
-            for (WmsDocOrderDetails details : wmsDocOrderDetailsList) {
-                if (!details.getLineStatus().equals(Constant.ORDER_STS.STS99.getValue())) {
-                    orderSts = Constant.ORDER_STS.STS98.getValue();
+            //修改头单状态
+            String asnStatus = Constant.ORDER_STS.STS99.getValue();
+            WmsDocOrderDetails detailsQuery = new WmsDocOrderDetails();
+            detailsQuery.setOrderNo(orderNo);
+            List<WmsDocOrderDetails> detailsCheckList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsList(detailsQuery);
+            for (WmsDocOrderDetails d : detailsCheckList) {
+                if (!d.getLineStatus().equals(Constant.ORDER_STS.STS99.getValue())) {
+                    asnStatus = Constant.ORDER_STS.STS98.getValue();
                     break;
                 }
             }
-            wmsDocOrderHeader.setOrderStatus(orderSts);
-            wmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
-
+            WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
+            headerUpdate.setOrderNo(orderNo);
+            headerUpdate.setOrderStatus(asnStatus);
+            headerUpdate.setUpdateTime(new Date());
+            wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
         }
         return AjaxResult.success();
     }
 
+    @Override
+    public AjaxResult modifyTheTallyStatusInTheWarehouse(String orderNo,Long locationId,String palletNo) {
+        WmsDocOrderHeader header = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
+        if (header != null && header.getOrderType().equals(Constant.ORDER_TYP.LH.getValue())) {
+            return wmsDocOrderHeaderService.modifyAssignmentStockTaskStatusComplete(orderNo, locationId, palletNo,false);
+        }
+
+//        // 分配明细为拣货完成 库内理货不生成分配明细
+//        ActAllocationDetailsFrom actAllocationQuery = new ActAllocationDetailsFrom();
+//        actAllocationQuery.setOrderNo(orderNo);
+//        actAllocationQuery.setLocationId(locationId);
+//        actAllocationQuery.setLotatt07(palletNo);
+//        actAllocationQuery.setStatus(Constant.ORDER_STS.STS21.getValue());
+//        List<ActAllocationDetailsFrom> actAllocationDetailsFromList = actAllocationDetailsService.selectActAllocationDetailsInvLotAttList(actAllocationQuery);
+//        for (ActAllocationDetailsFrom allocationDetails : actAllocationDetailsFromList) {
+//            ActAllocationDetails allocationDetailsUpdate = new ActAllocationDetails();
+//            allocationDetailsUpdate.setAllocationId(allocationDetails.getAllocationId());
+//            allocationDetailsUpdate.setStatus(Constant.ORDER_STS.STS40.getValue());
+//            actAllocationDetailsService.updateActAllocationDetails(allocationDetailsUpdate);
+//            // 出库单明细改为完成
+//            WmsDocOrderDetails wmsDocOrderDetails = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByNoLineNo(allocationDetails.getOrderNo(), allocationDetails.getLineNo());
+//            WmsDocOrderDetails wmsDocOrderDetailsUpdate = new WmsDocOrderDetails();
+//            wmsDocOrderDetailsUpdate.setOrderNo(wmsDocOrderDetails.getOrderNo());
+//            wmsDocOrderDetailsUpdate.setOrderLineNo(wmsDocOrderDetails.getOrderLineNo());
+//            wmsDocOrderDetailsUpdate.setLineStatus(Constant.ORDER_STS.STS99.getValue());
+//            wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(wmsDocOrderDetailsUpdate);
+//        }
+//        // 出库单头
+//        String orderSts = Constant.ORDER_STS.STS99.getValue();
+//        WmsDocOrderHeader wmsDocOrderHeader = new WmsDocOrderHeader();
+//        wmsDocOrderHeader.setOrderNo(orderNo);
+//        List<WmsDocOrderDetails> wmsDocOrderDetailsList = wmsDocOrderDetailsMapper.selectWmsDocOrderDetailsByOrderNo(orderNo);
+//        for (WmsDocOrderDetails details : wmsDocOrderDetailsList) {
+//            if (!details.getLineStatus().equals(Constant.ORDER_STS.STS99.getValue())) {
+//                orderSts = Constant.ORDER_STS.STS98.getValue();
+//                break;
+//            }
+//        }
+//        wmsDocOrderHeader.setOrderStatus(orderSts);
+//        wmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
+        return AjaxResult.success();
+    }
+
     @Override
     public AjaxResult modifystockCompletionStatus(String palletNo) {
         //获取库存当前的托盘位置

+ 9 - 6
warewms-ams/src/main/java/com/ruoyi/ams/task/service/impl/WcsTaskServiceImpl.java

@@ -211,20 +211,23 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
                 break;
             // 出库 (托盘,出库单号)
             case "6":
-                // 修改分配明细为任务完成
+                // 修改分配明细为任务完成21
                 actAllocationDetailsService.modifyAssignmentTaskStatus(wcsTask.getExt6()
                         ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
-                // 修改备货单(1)分配明细为拣货完成
-                actAllocationDetailsService.modifyAssignmentStockTaskStatus(wcsTask.getExt6()
+                // 修改备货单(1 如果非备货完成状态:分配明细为拣货完成40
+                //         (2)如果备货完成状态:出库单修改为部分出库,完全出库98,99
+                wmsDocOrderHeaderService.modifyAssignmentStockTaskStatus(wcsTask.getExt6()
                         ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
-                // 修改库内理货(1)分配明细为拣货完成(2)出库单状态为完成
+                // 修改库内理货(1)库内理货不生成分配明细所以不修改分配状态(2)出库单状态为完成98,99
                 wmsDocOrderHeaderService.modifyTheTallyStatusInTheWarehouse(wcsTask.getExt6()
                         ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
                 break;
             // 回库 (托盘)
             case "9":
-                // 修改备货单完成状态
-                wmsDocOrderHeaderService.modifystockCompletionStatus(wcsTask.getExt5());
+                // 修改批次lotatt15(出库单号)为空
+                invLotLocIdService.clearInvActOrderNoByPalletNo(wcsTask.getExt5());
+
+                // todo 非备货库存清空分配数
                 break;
             default:
                 break;

+ 10 - 0
warewms-ams/src/main/resources/mapper/ams/InvLotLocIdMapper.xml

@@ -229,6 +229,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and sku = #{sku}
     </update>
 
+    <update id="updateInvLotLocIdLotatt14IsNull" parameterType="String">
+        update inv_lot_att set lotatt14 = ''
+        where lotnum = #{lotnum}
+    </update>
+
+    <update id="updateInvLotLocIdLotatt15IsNull" parameterType="String">
+        update inv_lot_att set lotatt15 = ''
+        where lotnum = #{lotnum}
+    </update>
+
     <delete id="deleteInvLotLocIdByLotnum" parameterType="String">
         delete from inv_lot_loc_id where lotnum = #{lotnum}
     </delete>

+ 7 - 2
warewms-ams/src/main/resources/mapper/docOrder/WmsDocOrderDetailsMapper.xml

@@ -98,7 +98,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectWmsDocOrderDetailsList" parameterType="WmsDocOrderDetails" resultMap="WmsDocOrderDetailsResult">
         <include refid="selectWmsDocOrderDetailsVo"/>
-        where order_no = #{orderNo} and order_line_no = #{orderLineNo}
+        <where>
+            <if test="orderNo != null  and orderNo != ''"> and order_no = #{orderNo}</if>
+            <if test="orderLineNo != null  and orderLineNo != ''"> and order_line_no  #{orderLineNo}</if>
+            <if test="sku != null  and sku != ''"> and sku = #{sku} </if>
+            <if test="lineStatus != null  and lineStatus != ''"> and lineStatus = #{lineStatus} </if>
+        </where>
     </select>
 
     <select id="selectWmsDocOrderDetailsByOrderNo" parameterType="String" resultMap="WmsDocOrderDetailsResult">
@@ -381,4 +386,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <delete id="deleteWmsDocAsnDetailsByOrderNoLineNo">
         delete from wms_doc_order_details where order_no = #{orderNo} and order_line_no = #{orderLineNo}
     </delete>
-</mapper>
+</mapper>