Browse Source

入库码盘解绑bug

k 2 years ago
parent
commit
6441b949d3

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

@@ -693,11 +693,14 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
             detailsQuery.setAsnNo(asnNo);
             detailsQuery.setSku(qtt.getSku());
             List<WmsDocAsnDetails> details = wmsDocAsnDetailsMapper.selectWmsDocAsnDetailsList(detailsQuery);
-            // todo qty可能大于某条明细数量
+            // todo 物料qty可能大于某条明细数量
             BigDecimal qty = inv.getQty();
             for (WmsDocAsnDetails d : details) {
-                wmsDocAsnDetailsMapper.updateWmsReceivedQty(d.getAsnNo(), d.getAsnLineNo().intValue()
-                        , BigDecimal.valueOf(-1 * inv.getQty().doubleValue()), "30");
+                if (d.getReceivedQty().compareTo(qty) >= 0) {
+                    wmsDocAsnDetailsMapper.updateWmsReceivedQty(d.getAsnNo(), d.getAsnLineNo().intValue()
+                            , BigDecimal.valueOf(-1 * inv.getQty().doubleValue()), "30");
+                    break;
+                }
             }
             //删除库存 todo 物料增加库存的时候如果改成根据相同库存和批次可以累加数量,这边就需要减库存,而不是直接删除
             invLotLocIdMapper.deleteInvLotLocIdBy(inv.getLotnum(), inv.getSku(), inv.getLocationId(), inv.getCustomerId());