|
@@ -781,8 +781,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//region 提取新建分组后的明细
|
|
//region 提取新建分组后的明细
|
|
|
List<InboundItemVO> purchaseIntoItemVOListGroup = purchaseIntoItemVOListMap.get(fromId);
|
|
List<InboundItemVO> purchaseIntoItemVOListGroup = purchaseIntoItemVOListMap.get(fromId);
|
|
|
//分组后的明细 出库数量和金额总和
|
|
//分组后的明细 出库数量和金额总和
|
|
|
- BigDecimal purchaseSumQty = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
- BigDecimal purchaseSumAmt = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
+ BigDecimal purchaseSumQtying = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ BigDecimal purchaseSumAmting = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ BigDecimal purchaseSumQty = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ BigDecimal purchaseSumAmt = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
//分组后的明细 原出库数量和金额总和
|
|
//分组后的明细 原出库数量和金额总和
|
|
|
BigDecimal updatePurchaseIntoQty = BigDecimal.ZERO;
|
|
BigDecimal updatePurchaseIntoQty = BigDecimal.ZERO;
|
|
|
BigDecimal updatePurchaseIntoAmt = BigDecimal.ZERO;
|
|
BigDecimal updatePurchaseIntoAmt = BigDecimal.ZERO;
|
|
@@ -835,8 +837,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
}
|
|
}
|
|
|
//入库中
|
|
//入库中
|
|
|
else if (Constant.IntoStatus.RUKUZHONG.getName().equals(inboundResponse.getIntoStatus())) {
|
|
else if (Constant.IntoStatus.RUKUZHONG.getName().equals(inboundResponse.getIntoStatus())) {
|
|
|
- purchase.setIntoingQty(purchaseSumQty.subtract(updatePurchaseIntoingQty).subtract(purchaseDelOutQty));
|
|
|
|
|
- purchase.setIntoingAmt(purchaseSumAmt.subtract(updatePurchaseIntoingAmt).subtract(purchaseDelOutAmt));
|
|
|
|
|
|
|
+ purchase.setIntoingQty(purchaseSumQtying.subtract(updatePurchaseIntoingQty).subtract(purchaseDelOutQty));
|
|
|
|
|
+ purchase.setIntoingAmt(purchaseSumAmting.subtract(updatePurchaseIntoingAmt).subtract(purchaseDelOutAmt));
|
|
|
purchase.setUpdateIntoingMessageFlag(true);
|
|
purchase.setUpdateIntoingMessageFlag(true);
|
|
|
//入库状态
|
|
//入库状态
|
|
|
String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
|
|
String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
|
|
@@ -1783,8 +1785,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty, BigDecimal sumQty) {
|
|
public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty, BigDecimal sumQty) {
|
|
|
//入库状态
|
|
//入库状态
|
|
|
String intoStatus = null;
|
|
String intoStatus = null;
|
|
|
- //入库中小于等于总数,已入库小于总数,并且入库中+已入库大于0
|
|
|
|
|
- if (intoingQty.compareTo(sumQty) <= 0 && intoQty.compareTo(sumQty) < 0 && intoingQty.add(intoQty).compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
|
|
+ //已入库数量>=0 入库中数量>0
|
|
|
|
|
+ if (intoQty.compareTo(BigDecimal.ZERO) >= 0 && intoingQty.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
//入库中
|
|
//入库中
|
|
|
intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
|
|
intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
|
|
|
}
|
|
}
|
|
@@ -1793,8 +1795,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//待入库
|
|
//待入库
|
|
|
intoStatus = Constant.IntoStatus.DAIRUKU.getName();
|
|
intoStatus = Constant.IntoStatus.DAIRUKU.getName();
|
|
|
}
|
|
}
|
|
|
- //入库中+已入库 等于 总数 并且 入库中数量小于等于订单总数量
|
|
|
|
|
- else if (intoingQty.compareTo(sumQty) < 0 && intoingQty.add(intoQty).compareTo(sumQty) == 0) {
|
|
|
|
|
|
|
+ //已入库 数量>0 入库中数量=0
|
|
|
|
|
+ else if (intoQty.compareTo(BigDecimal.ZERO) > 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
//已入库
|
|
//已入库
|
|
|
intoStatus = Constant.IntoStatus.YIRUKU.getName();
|
|
intoStatus = Constant.IntoStatus.YIRUKU.getName();
|
|
|
}
|
|
}
|