Parcourir la source

1.入库-AGV上架之后回调修改入库单完成状态
2.备货,库内理货-出库完成之后修改出库单状态

k il y a 2 ans
Parent
commit
7d5f18745f

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

@@ -18,6 +18,8 @@ import com.ruoyi.ams.erp.domain.ErpOrderList;
 import com.ruoyi.ams.erp.service.IErpBarcodesService;
 import com.ruoyi.ams.inv.domain.InvLotAtt;
 import com.ruoyi.ams.inv.domain.InvLotLocId;
+import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom;
+import com.ruoyi.ams.inv.domain.form.InvLotLocIdForm;
 import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
 import com.ruoyi.ams.inv.mapper.InvLotLocIdMapper;
 import com.ruoyi.ams.inv.service.IActTransactionLogService;
@@ -868,7 +870,15 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
 
             //修改头单状态
             String asnStatus = Constant.ASN_STS.STS99.getValue();
-
+            //查询入库单是否还有未上架的托盘
+            String lotatt08 = invLotAtt.getLotatt08();
+            InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
+            invLocIdSearchFrom.setLocationId(Constant.LOC_STAGE_CACHE.toString());
+            invLocIdSearchFrom.setLotatt08(lotatt08);
+            List<InvLotLocIdLotattVO> invLotLocIdLotattVOList = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
+            if (invLotLocIdLotattVOList.size() > 0) {
+                asnStatus = Constant.ASN_STS.STS50.getValue();
+            }
 
             WmsDocAsnHeader headerUpdate = new WmsDocAsnHeader();
             headerUpdate.setAsnNo(invLotAtt.getLotatt08());

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

@@ -305,7 +305,10 @@ public interface IWmsDocOrderHeaderService {
     AjaxResult modifyAssignmentStockTaskStatus(String orderNo,Long locationId,String palletNo);
 
     /**
-     * 修改出库单为完成,备货(备货完成的)
+     * 修改出库单出库状态
+     * 调这个方法的以下几种清空
+     * 1.备货单完全备货并且出库释放的时候
+     * 2.理货单出库任务卸货完成的时候
      *
      * @param orderNo
      * @param locationId

+ 14 - 31
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -1699,46 +1699,29 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     @Override
     public AjaxResult modifyAssignmentStockTaskStatusComplete(String orderNo, Long locationId, String palletNo, boolean isBH) {
         InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
-//        invLocIdSearchFrom.setLocationId(Constant.LOC_MIDDLE_CACHE.toString());
-        invLocIdSearchFrom.setLotatt07(palletNo);
         if (isBH) {
             invLocIdSearchFrom.setLotatt14(orderNo);
         } else {
             invLocIdSearchFrom.setLotatt15(orderNo);
         }
+        //修改头单状态
+        String soStatus = Constant.ORDER_STS.STS99.getValue();
         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) {
-                    if (de.getQtyOrdered().compareTo(de.getQtyAllocated()) == 0
-                            && de.getQtyAllocated().compareTo(de.getQtySoftAllocated()) == 0) {
-                        de.setLineStatus(Constant.ORDER_STS.STS99.getValue());
-                        wmsDocOrderDetailsMapper.updateWmsDocOrderDetails(de);
-                    }
-                }
-            }
-            //修改头单状态
-            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;
+        if (isBH && invLotLocIdLotattVOS.size() > 0) {
+            soStatus = Constant.ORDER_STS.STS98.getValue();
+        } else {
+            for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattVOS) {
+                if (invLotLocIdLotattVO.getZoneId().equals(Constant.ZONE_TYPE.ZONE_INV.getValue())) {
+                    soStatus = Constant.ORDER_STS.STS98.getValue();
                 }
             }
-            WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
-            headerUpdate.setOrderNo(orderNo);
-            headerUpdate.setOrderStatus(asnStatus);
-            headerUpdate.setUpdateTime(new Date());
-            wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
         }
+
+        WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
+        headerUpdate.setOrderNo(orderNo);
+        headerUpdate.setOrderStatus(soStatus);
+        headerUpdate.setUpdateTime(new Date());
+        wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
         return AjaxResult.success();
     }