|
@@ -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());
|