|
@@ -149,9 +149,13 @@ public class OutReturnService extends BaseService<OutReturn> {
|
|
|
if (outReturnVO.getItemList() != null && outReturnVO.getItemList().size() > 0) {
|
|
if (outReturnVO.getItemList() != null && outReturnVO.getItemList().size() > 0) {
|
|
|
OrderItem orderItemForUpdate;
|
|
OrderItem orderItemForUpdate;
|
|
|
OutboundItem outboundItemForUpdate;
|
|
OutboundItem outboundItemForUpdate;
|
|
|
- String outId = "";
|
|
|
|
|
|
|
+ // 出库IdList,一个退货单可能有多个出库单
|
|
|
|
|
+ List<String> outIdList = new ArrayList<>();
|
|
|
for (OutReturnItemVO outReturnItemVO : outReturnVO.getItemList()) {
|
|
for (OutReturnItemVO outReturnItemVO : outReturnVO.getItemList()) {
|
|
|
- outId = outReturnItemVO.getOutId();
|
|
|
|
|
|
|
+ // 把出库Id存起来
|
|
|
|
|
+ if (!outIdList.contains(outReturnItemVO.getOutId())) {
|
|
|
|
|
+ outIdList.add(outReturnItemVO.getOutId());
|
|
|
|
|
+ }
|
|
|
OutReturnItem outReturnItem = outReturnItemConvert.convertToPo(outReturnItemVO);
|
|
OutReturnItem outReturnItem = outReturnItemConvert.convertToPo(outReturnItemVO);
|
|
|
outReturnItem.setReturnId(outReturn.getReturnId()).setCpId(outReturn.getCpId()).setIntoStatus(Constant.IntoStatus.DAIRUKU.getName());
|
|
outReturnItem.setReturnId(outReturn.getReturnId()).setCpId(outReturn.getCpId()).setIntoStatus(Constant.IntoStatus.DAIRUKU.getName());
|
|
|
outReturnItemMapper.insert(outReturnItem);
|
|
outReturnItemMapper.insert(outReturnItem);
|
|
@@ -184,18 +188,21 @@ public class OutReturnService extends BaseService<OutReturn> {
|
|
|
/********************* 反写订单明细退货数量、金额 end **********************/
|
|
/********************* 反写订单明细退货数量、金额 end **********************/
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 计算出库明细的退货数量,金额合计
|
|
|
|
|
- List<OutboundItem> outboundItemList = outboundItemMapper.selectByZIdForUpdate(outId);
|
|
|
|
|
- OutboundItem outboundItem = outboundItemList.stream().reduce((x, y) -> {
|
|
|
|
|
- OutboundItem item = new OutboundItem();
|
|
|
|
|
- item.setReturnQty(x.getReturnQty().add(y.getReturnQty()));
|
|
|
|
|
- item.setReturnAmt(x.getReturnAmt().add(y.getReturnAmt()));
|
|
|
|
|
- return item;
|
|
|
|
|
- }).get();
|
|
|
|
|
- // 更新出库单上的退货数量,金额
|
|
|
|
|
- Outbound outboundUpdate = new Outbound();
|
|
|
|
|
- outboundUpdate.setReturnQty(outboundItem.getReturnQty()).setReturnAmt(outboundItem.getReturnAmt()).setOutId(outId);
|
|
|
|
|
- outboundService.updateByUuid(outboundUpdate);
|
|
|
|
|
|
|
+ // 可能有多个出库单,所以要循环更新总单
|
|
|
|
|
+ for (String outId : outIdList) {
|
|
|
|
|
+ // 计算出库明细的退货数量,金额合计
|
|
|
|
|
+ List<OutboundItem> outboundItemList = outboundItemMapper.selectByZIdForUpdate(outId);
|
|
|
|
|
+ OutboundItem outboundItem = outboundItemList.stream().reduce((x, y) -> {
|
|
|
|
|
+ OutboundItem item = new OutboundItem();
|
|
|
|
|
+ item.setReturnQty(x.getReturnQty().add(y.getReturnQty()));
|
|
|
|
|
+ item.setReturnAmt(x.getReturnAmt().add(y.getReturnAmt()));
|
|
|
|
|
+ return item;
|
|
|
|
|
+ }).get();
|
|
|
|
|
+ // 更新出库单上的退货数量,金额
|
|
|
|
|
+ Outbound outboundUpdate = new Outbound();
|
|
|
|
|
+ outboundUpdate.setReturnQty(outboundItem.getReturnQty()).setReturnAmt(outboundItem.getReturnAmt()).setOutId(outId);
|
|
|
|
|
+ outboundService.updateByUuid(outboundUpdate);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// 计算订单明细的退货数量,金额合计
|
|
// 计算订单明细的退货数量,金额合计
|
|
|
List<OrderItem> orderItemList = orderItemMapper.selectByZIdForUpdate(outReturnVO.getOrderId());
|
|
List<OrderItem> orderItemList = orderItemMapper.selectByZIdForUpdate(outReturnVO.getOrderId());
|
|
@@ -326,21 +333,27 @@ public class OutReturnService extends BaseService<OutReturn> {
|
|
|
List<OutReturnItem> outReturnItemList = outReturnItemMapper.selectByZIdForUpdate(id);
|
|
List<OutReturnItem> outReturnItemList = outReturnItemMapper.selectByZIdForUpdate(id);
|
|
|
OutboundItem outboundItemForUpdate;
|
|
OutboundItem outboundItemForUpdate;
|
|
|
OrderItem orderItemForUpdate;
|
|
OrderItem orderItemForUpdate;
|
|
|
- String outId = "";
|
|
|
|
|
String orderId = "";
|
|
String orderId = "";
|
|
|
|
|
+
|
|
|
|
|
+ // 出库IdList,一个退货单可能有多个出库单
|
|
|
|
|
+ List<String> outIdList = new ArrayList<>();
|
|
|
for (OutReturnItem outReturnItemForUpdate : outReturnItemList) {
|
|
for (OutReturnItem outReturnItemForUpdate : outReturnItemList) {
|
|
|
- outId = outReturnItemForUpdate.getOutId();
|
|
|
|
|
|
|
+ // 把出库Id存起来
|
|
|
|
|
+ if (!outIdList.contains(outReturnItemForUpdate.getOutId())) {
|
|
|
|
|
+ outIdList.add(outReturnItemForUpdate.getOutId());
|
|
|
|
|
+ }
|
|
|
orderId = outReturnItemForUpdate.getOrderId();
|
|
orderId = outReturnItemForUpdate.getOrderId();
|
|
|
- outboundItemForUpdate = outboundItemMapper.selectByIdForUpdate(outReturnItemForUpdate.getOutItemId());
|
|
|
|
|
|
|
+
|
|
|
// 更新出库明细退货数量
|
|
// 更新出库明细退货数量
|
|
|
|
|
+ outboundItemForUpdate = outboundItemMapper.selectByIdForUpdate(outReturnItemForUpdate.getOutItemId());
|
|
|
OutboundItem outboundItemUpdate = new OutboundItem();
|
|
OutboundItem outboundItemUpdate = new OutboundItem();
|
|
|
outboundItemUpdate.setReturnQty(outboundItemForUpdate.getReturnQty().subtract(outReturnItemForUpdate.getItemQty()))
|
|
outboundItemUpdate.setReturnQty(outboundItemForUpdate.getReturnQty().subtract(outReturnItemForUpdate.getItemQty()))
|
|
|
.setReturnAmt(outboundItemForUpdate.getReturnAmt().subtract(outReturnItemForUpdate.getItemAmt()))
|
|
.setReturnAmt(outboundItemForUpdate.getReturnAmt().subtract(outReturnItemForUpdate.getItemAmt()))
|
|
|
.setItemId(outboundItemForUpdate.getItemId());
|
|
.setItemId(outboundItemForUpdate.getItemId());
|
|
|
outboundItemService.updateByUuid(outboundItemUpdate);
|
|
outboundItemService.updateByUuid(outboundItemUpdate);
|
|
|
|
|
|
|
|
- orderItemForUpdate = orderItemMapper.selectByIdForUpdate(outReturnItemForUpdate.getOrderItemId());
|
|
|
|
|
// 更新订单明细退货数量
|
|
// 更新订单明细退货数量
|
|
|
|
|
+ orderItemForUpdate = orderItemMapper.selectByIdForUpdate(outReturnItemForUpdate.getOrderItemId());
|
|
|
OrderItem orderItemUpdate = new OrderItem();
|
|
OrderItem orderItemUpdate = new OrderItem();
|
|
|
orderItemUpdate.setReturnQty(orderItemForUpdate.getReturnQty().subtract(outReturnItemForUpdate.getItemQty()))
|
|
orderItemUpdate.setReturnQty(orderItemForUpdate.getReturnQty().subtract(outReturnItemForUpdate.getItemQty()))
|
|
|
.setReturnAmt(orderItemForUpdate.getReturnAmt().subtract(outReturnItemForUpdate.getItemAmt()))
|
|
.setReturnAmt(orderItemForUpdate.getReturnAmt().subtract(outReturnItemForUpdate.getItemAmt()))
|
|
@@ -348,18 +361,21 @@ public class OutReturnService extends BaseService<OutReturn> {
|
|
|
orderItemService.updateByUuid(orderItemUpdate);
|
|
orderItemService.updateByUuid(orderItemUpdate);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 计算出库明细的退货数量,金额合计
|
|
|
|
|
- List<OutboundItem> outboundItemList = outboundItemMapper.selectByZIdForUpdate(outId);
|
|
|
|
|
- OutboundItem outboundItem = outboundItemList.stream().reduce((x, y) -> {
|
|
|
|
|
- OutboundItem item = new OutboundItem();
|
|
|
|
|
- item.setReturnQty(x.getReturnQty().add(y.getReturnQty()));
|
|
|
|
|
- item.setReturnAmt(x.getReturnAmt().add(y.getReturnAmt()));
|
|
|
|
|
- return item;
|
|
|
|
|
- }).get();
|
|
|
|
|
- // 更新出库单上的退货数量,金额
|
|
|
|
|
- Outbound outboundUpdate = new Outbound();
|
|
|
|
|
- outboundUpdate.setReturnQty(outboundItem.getReturnQty()).setReturnAmt(outboundItem.getReturnAmt()).setOutId(outId);
|
|
|
|
|
- outboundService.updateByUuid(outboundUpdate);
|
|
|
|
|
|
|
+ // 可能有多个出库单,所以要循环更新总单
|
|
|
|
|
+ for (String outId : outIdList) {
|
|
|
|
|
+ // 计算出库明细的退货数量,金额合计
|
|
|
|
|
+ List<OutboundItem> outboundItemList = outboundItemMapper.selectByZIdForUpdate(outId);
|
|
|
|
|
+ OutboundItem outboundItem = outboundItemList.stream().reduce((x, y) -> {
|
|
|
|
|
+ OutboundItem item = new OutboundItem();
|
|
|
|
|
+ item.setReturnQty(x.getReturnQty().add(y.getReturnQty()));
|
|
|
|
|
+ item.setReturnAmt(x.getReturnAmt().add(y.getReturnAmt()));
|
|
|
|
|
+ return item;
|
|
|
|
|
+ }).get();
|
|
|
|
|
+ // 更新出库单上的退货数量,金额
|
|
|
|
|
+ Outbound outboundUpdate = new Outbound();
|
|
|
|
|
+ outboundUpdate.setReturnQty(outboundItem.getReturnQty()).setReturnAmt(outboundItem.getReturnAmt()).setOutId(outId);
|
|
|
|
|
+ outboundService.updateByUuid(outboundUpdate);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// 计算订单明细的退货数量,金额合计
|
|
// 计算订单明细的退货数量,金额合计
|
|
|
List<OrderItem> orderItemList = orderItemMapper.selectByZIdForUpdate(orderId);
|
|
List<OrderItem> orderItemList = orderItemMapper.selectByZIdForUpdate(orderId);
|