|
|
@@ -409,7 +409,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
BigDecimal sumIntoPriceAmt = BigDecimal.ZERO;
|
|
|
if (orderTransmitFlag) {
|
|
|
sumIntoQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getPriceOut).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+// sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getPriceOut).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
+ for (OutboundItemVO outboundItemVO : outboundVO.getItemList()){
|
|
|
+ sumIntoPriceAmt = sumIntoPriceAmt.add( outboundItemVO.getOutingQty().multiply(outboundItemVO.getPriceOut())) ;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
//获取 id/单号
|
|
|
Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.SALEORDER.getName(), false);
|
|
|
@@ -429,7 +434,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
outboundVO
|
|
|
.setOutQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
|
|
|
- .setOutAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
|
|
|
+ .setOutAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
|
|
|
.setOutingQty(BigDecimal.ZERO)
|
|
|
.setOutingAmt(BigDecimal.ZERO)
|
|
|
;
|
|
|
@@ -439,7 +444,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
.setOutAmt(BigDecimal.ZERO)
|
|
|
//用于销售订单自动创建出库单
|
|
|
.setOutingQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
|
|
|
- .setOutingAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
|
|
|
+ .setOutingAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
|
|
|
;
|
|
|
}
|
|
|
|
|
|
@@ -485,13 +490,14 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
}
|
|
|
}
|
|
|
//endregion
|
|
|
-
|
|
|
+ BigDecimal factAmt = BigDecimal.ZERO; //总单的实际金额
|
|
|
//region 明细
|
|
|
//校验明细
|
|
|
if (outboundVO.getItemList().size() == 0) {
|
|
|
throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getCode(),
|
|
|
ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
|
|
|
}
|
|
|
+
|
|
|
for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
|
|
|
outboundItemVO.setItemId(null);
|
|
|
//region 将库存需要的参数赋值
|
|
|
@@ -512,13 +518,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
.setOutingQty(BigDecimal.ZERO)
|
|
|
.setOutingAmt(BigDecimal.ZERO)
|
|
|
.setCostPrice(outboundItemVO.getPriceOut())
|
|
|
- .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP))
|
|
|
- ;
|
|
|
+ .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP)) ;
|
|
|
} else {
|
|
|
outboundItemVO
|
|
|
.setOutQty(BigDecimal.ZERO)
|
|
|
.setOutAmt(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ factAmt = factAmt.add(outboundItemVO.getFactAmt()); //把明细的 实际金额相加就是总单的
|
|
|
//出库状态
|
|
|
outboundItemVO.setOutStatus(outboundVO.getOutStatus());
|
|
|
//实体转换
|
|
|
@@ -549,6 +555,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
orderItem.setOutQty(BigDecimal.ZERO);
|
|
|
orderItem.setOutAmt(BigDecimal.ZERO);
|
|
|
}
|
|
|
+
|
|
|
//出库状态
|
|
|
String outStatus = this.setOutStatus(orderItemResponse.getOutingQty().add(orderItem.getOutingQty()),
|
|
|
orderItemResponse.getOutQty().add(orderItem.getOutQty()), orderItemResponse.getItemQty());
|
|
|
@@ -564,7 +571,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
|
|
|
}
|
|
|
//endregion
|
|
|
-
|
|
|
+ Outbound outboundup = new Outbound();
|
|
|
+ outboundup.setOutId(outbound.getOutId()).setFactAmt(factAmt);
|
|
|
+ //反写总单实际金额
|
|
|
+ outboundMapper.update(outboundup,
|
|
|
+ new UpdateWrapper<Outbound>().lambda()
|
|
|
+ .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
+ );
|
|
|
//region 已出库 应收记账
|
|
|
if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|