|
|
@@ -100,66 +100,68 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public void updatePrimaryTotal(OutboundVO outboundVO, Boolean posNegFlag) {
|
|
|
- //region 原入库单
|
|
|
- Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
|
|
|
- for (String str : outboundItemVOListOutPri.keySet()) {
|
|
|
- List<OutboundItemVO> outboundItemList = outboundItemVOListOutPri.get(str);
|
|
|
- //region 汇总退货数量 金额
|
|
|
- BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //endregion
|
|
|
- //查询原单
|
|
|
- OutboundResponse outboundResponse = outboundMapper.selectById(str);
|
|
|
- //校验数据
|
|
|
- if (returnSumQty.add(returnIngSumQty).compareTo(outboundResponse.getOutQty()) > 0) {
|
|
|
- throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
- ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
- }
|
|
|
- Outbound outboundPri = new Outbound();
|
|
|
- outboundPri.setOutId(str);
|
|
|
- if (posNegFlag) {
|
|
|
- outboundPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
|
|
|
- outboundPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
|
|
|
- } else {
|
|
|
- outboundPri.setReturnQty(returnSumQty.add(returnIngSumQty));
|
|
|
- outboundPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
|
|
|
+ if (outboundVO.getFromId() != null) {
|
|
|
+ //region 原入库单
|
|
|
+ Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
|
|
|
+ for (String str : outboundItemVOListOutPri.keySet()) {
|
|
|
+ List<OutboundItemVO> outboundItemList = outboundItemVOListOutPri.get(str);
|
|
|
+ //region 汇总退货数量 金额
|
|
|
+ BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //endregion
|
|
|
+ //查询原单
|
|
|
+ OutboundResponse outboundResponse = outboundMapper.selectById(str);
|
|
|
+ //校验数据
|
|
|
+ if (returnSumQty.add(returnIngSumQty).compareTo(outboundResponse.getOutQty()) > 0) {
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
+ ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
+ }
|
|
|
+ Outbound outboundPri = new Outbound();
|
|
|
+ outboundPri.setOutId(str);
|
|
|
+ if (posNegFlag) {
|
|
|
+ outboundPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
|
|
|
+ outboundPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
|
|
|
+ } else {
|
|
|
+ outboundPri.setReturnQty(returnSumQty.add(returnIngSumQty));
|
|
|
+ outboundPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
|
|
|
+ }
|
|
|
+ outboundMapper.updateReturnMessage(outboundPri);
|
|
|
}
|
|
|
- outboundMapper.updateReturnMessage(outboundPri);
|
|
|
- }
|
|
|
- //endregion
|
|
|
+ //endregion
|
|
|
|
|
|
- //region 原销售订单
|
|
|
- Map<String, List<OutboundItemVO>> outboundItemVOListOrderPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
|
|
|
- for (String str : outboundItemVOListOrderPri.keySet()) {
|
|
|
- List<OutboundItemVO> outboundItemList = outboundItemVOListOrderPri.get(str);
|
|
|
- //region 汇总退货数量 金额
|
|
|
- BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //region 原销售订单
|
|
|
+ Map<String, List<OutboundItemVO>> outboundItemVOListOrderPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
|
|
|
+ for (String str : outboundItemVOListOrderPri.keySet()) {
|
|
|
+ List<OutboundItemVO> outboundItemList = outboundItemVOListOrderPri.get(str);
|
|
|
+ //region 汇总退货数量 金额
|
|
|
+ BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
- //endregion
|
|
|
- //查询原单
|
|
|
- OrderResponse orderResponse = orderMapper.selectById(str);
|
|
|
- //校验数据
|
|
|
- if (returnSumQty.add(returnIngSumQty).compareTo(orderResponse.getOutQty()) > 0) {
|
|
|
- throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
- ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
- }
|
|
|
- Order orderPri = new Order();
|
|
|
- orderPri.setOrderId(str);
|
|
|
- if (posNegFlag) {
|
|
|
- orderPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
|
|
|
- orderPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
|
|
|
- } else {
|
|
|
- orderPri.setReturnQty(returnSumQty.add(returnIngSumQty));
|
|
|
- orderPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
|
|
|
+ //endregion
|
|
|
+ //查询原单
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(str);
|
|
|
+ //校验数据
|
|
|
+ if (returnSumQty.add(returnIngSumQty).compareTo(orderResponse.getOutQty()) > 0) {
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
+ ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
+ }
|
|
|
+ Order orderPri = new Order();
|
|
|
+ orderPri.setOrderId(str);
|
|
|
+ if (posNegFlag) {
|
|
|
+ orderPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
|
|
|
+ orderPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
|
|
|
+ } else {
|
|
|
+ orderPri.setReturnQty(returnSumQty.add(returnIngSumQty));
|
|
|
+ orderPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
|
|
|
+ }
|
|
|
+ orderMapper.updateReturnMessage(orderPri);
|
|
|
}
|
|
|
- orderMapper.updateReturnMessage(orderPri);
|
|
|
+ //endregion
|
|
|
}
|
|
|
- //endregion
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -172,54 +174,56 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public void updatePrimaryDetail(OutboundItemVO outboundItemVO, Boolean posNegFlag, Boolean isOutEdit) {
|
|
|
-
|
|
|
- //region 反写出库明细
|
|
|
- if (outboundItemVO.getSOutItemId() != null) {
|
|
|
- OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getSOutItemId());
|
|
|
- //region 校验可退数量
|
|
|
- if (outboundItemResponse.getOutQty().compareTo(outboundItemVO.getOutQty()) < 0) {
|
|
|
- throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
- ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
- }
|
|
|
- //endregion
|
|
|
- //region 赋值修改
|
|
|
- OutboundItem outboundItemPri = new OutboundItem();
|
|
|
- outboundItemPri.setItemId(outboundItemVO.getSOutItemId());
|
|
|
- if (posNegFlag) {
|
|
|
- outboundItemPri.setReturnQty(isOutEdit ? outboundItemVO.getOutQty().negate() : outboundItemVO.getOutingQty().negate());
|
|
|
- outboundItemPri.setReturnAmt(isOutEdit ? outboundItemVO.getOutAmt().negate() : outboundItemVO.getOutingAmt().negate());
|
|
|
- } else {
|
|
|
- outboundItemPri.setReturnQty(isOutEdit ? outboundItemVO.getOutQty() : outboundItemVO.getOutingQty());
|
|
|
- outboundItemPri.setReturnAmt(isOutEdit ? outboundItemVO.getOutAmt() : outboundItemVO.getOutingAmt());
|
|
|
+ if (outboundItemVO.getFromItemId() != null) {
|
|
|
+
|
|
|
+ //region 反写出库明细
|
|
|
+ if (outboundItemVO.getSOutItemId() != null) {
|
|
|
+ OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getSOutItemId());
|
|
|
+ //region 校验可退数量
|
|
|
+ if (outboundItemResponse.getOutQty().compareTo(outboundItemVO.getOutQty()) < 0) {
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
+ ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ //region 赋值修改
|
|
|
+ OutboundItem outboundItemPri = new OutboundItem();
|
|
|
+ outboundItemPri.setItemId(outboundItemVO.getSOutItemId());
|
|
|
+ if (posNegFlag) {
|
|
|
+ outboundItemPri.setReturnQty(isOutEdit ? outboundItemVO.getOutQty().negate() : outboundItemVO.getOutingQty().negate());
|
|
|
+ outboundItemPri.setReturnAmt(isOutEdit ? outboundItemVO.getOutAmt().negate() : outboundItemVO.getOutingAmt().negate());
|
|
|
+ } else {
|
|
|
+ outboundItemPri.setReturnQty(isOutEdit ? outboundItemVO.getOutQty() : outboundItemVO.getOutingQty());
|
|
|
+ outboundItemPri.setReturnAmt(isOutEdit ? outboundItemVO.getOutAmt() : outboundItemVO.getOutingAmt());
|
|
|
+ }
|
|
|
+ outboundItemMapper.updateReturnMessage(outboundItemPri);
|
|
|
+ //endregion
|
|
|
}
|
|
|
- outboundItemMapper.updateReturnMessage(outboundItemPri);
|
|
|
//endregion
|
|
|
- }
|
|
|
- //endregion
|
|
|
|
|
|
- //region 反写订单明细
|
|
|
- if (outboundItemVO.getSOrderItemId() != null) {
|
|
|
- OrderItemResponse orderItemResponse = orderItemMapper.selectById(outboundItemVO.getSOrderItemId());
|
|
|
- //region 校验可退数量
|
|
|
- if (orderItemResponse.getOutQty().compareTo(outboundItemVO.getOutQty()) < 0) {
|
|
|
- throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
- ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
- }
|
|
|
- //endregion
|
|
|
- //region 赋值修改
|
|
|
- OrderItem orderItem = new OrderItem();
|
|
|
- orderItem.setItemId(outboundItemVO.getSOutItemId());
|
|
|
- if (posNegFlag) {
|
|
|
- orderItem.setReturnQty(outboundItemVO.getOutingQty().negate());
|
|
|
- orderItem.setReturnAmt(outboundItemVO.getOutingAmt().negate());
|
|
|
- } else {
|
|
|
- orderItem.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
- orderItem.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
+ //region 反写订单明细
|
|
|
+ if (outboundItemVO.getSOrderItemId() != null) {
|
|
|
+ OrderItemResponse orderItemResponse = orderItemMapper.selectById(outboundItemVO.getSOrderItemId());
|
|
|
+ //region 校验可退数量
|
|
|
+ if (orderItemResponse.getOutQty().compareTo(outboundItemVO.getOutQty()) < 0) {
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
|
|
|
+ ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ //region 赋值修改
|
|
|
+ OrderItem orderItem = new OrderItem();
|
|
|
+ orderItem.setItemId(outboundItemVO.getSOutItemId());
|
|
|
+ if (posNegFlag) {
|
|
|
+ orderItem.setReturnQty(outboundItemVO.getOutingQty().negate());
|
|
|
+ orderItem.setReturnAmt(outboundItemVO.getOutingAmt().negate());
|
|
|
+ } else {
|
|
|
+ orderItem.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
+ orderItem.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
+ }
|
|
|
+ orderItemMapper.updateReturnMessage(orderItem);
|
|
|
+ //endregion
|
|
|
}
|
|
|
- orderItemMapper.updateReturnMessage(orderItem);
|
|
|
//endregion
|
|
|
}
|
|
|
- //endregion
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -229,55 +233,56 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public void rollBackTotalAndDetail(List<OutboundItemVO> deleteItemList) {
|
|
|
- //出库单
|
|
|
- Map<String, List<OutboundItemVO>> collect = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
|
|
|
- for (String outId : collect.keySet()) {
|
|
|
- List<OutboundItemVO> outboundItemVOList = collect.get(outId);
|
|
|
- BigDecimal delOutQty = outboundItemVOList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutingQty = outboundItemVOList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutingAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //总单
|
|
|
- Outbound outboundPri = new Outbound();
|
|
|
- outboundPri.setOutId(outId);
|
|
|
- outboundPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
|
|
|
- outboundPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
|
|
|
- outboundMapper.updateReturnMessage(outboundPri);
|
|
|
- //明细
|
|
|
- for (OutboundItemVO outboundItemVO : outboundItemVOList) {
|
|
|
- OutboundItem outboundItemPri = new OutboundItem();
|
|
|
- outboundItemPri.setItemId(outboundItemVO.getItemId());
|
|
|
- outboundItemPri.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
- outboundItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
- outboundItemMapper.updateReturnMessage(outboundItemPri);
|
|
|
+ if (deleteItemList.get(0).getFromItemId() != null) {
|
|
|
+ //出库单
|
|
|
+ Map<String, List<OutboundItemVO>> collect = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
|
|
|
+ for (String outId : collect.keySet()) {
|
|
|
+ List<OutboundItemVO> outboundItemVOList = collect.get(outId);
|
|
|
+ BigDecimal delOutQty = outboundItemVOList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutingQty = outboundItemVOList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutingAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //总单
|
|
|
+ Outbound outboundPri = new Outbound();
|
|
|
+ outboundPri.setOutId(outId);
|
|
|
+ outboundPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
|
|
|
+ outboundPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
|
|
|
+ outboundMapper.updateReturnMessage(outboundPri);
|
|
|
+ //明细
|
|
|
+ for (OutboundItemVO outboundItemVO : outboundItemVOList) {
|
|
|
+ OutboundItem outboundItemPri = new OutboundItem();
|
|
|
+ outboundItemPri.setItemId(outboundItemVO.getItemId());
|
|
|
+ outboundItemPri.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
+ outboundItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
+ outboundItemMapper.updateReturnMessage(outboundItemPri);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- //订单
|
|
|
- Map<String, List<OutboundItemVO>> orderCollect = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
|
|
|
- for (String orderId : orderCollect.keySet()) {
|
|
|
- List<OutboundItemVO> outboundItemVOList = orderCollect.get(orderId);
|
|
|
- BigDecimal delOutQty = outboundItemVOList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutingQty = outboundItemVOList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal delOutingAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //总单
|
|
|
- Order orderPri = new Order();
|
|
|
- orderPri.setOrderId(orderId);
|
|
|
- orderPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
|
|
|
- orderPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
|
|
|
- orderMapper.updateReturnMessage(orderPri);
|
|
|
- //明细
|
|
|
- for (OutboundItemVO outboundItemVO : outboundItemVOList) {
|
|
|
- OrderItem orderItemPri = new OrderItem();
|
|
|
- orderItemPri.setItemId(outboundItemVO.getItemId());
|
|
|
- orderItemPri.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
- orderItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
- orderItemMapper.updateReturnMessage(orderItemPri);
|
|
|
+ //订单
|
|
|
+ Map<String, List<OutboundItemVO>> orderCollect = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
|
|
|
+ for (String orderId : orderCollect.keySet()) {
|
|
|
+ List<OutboundItemVO> outboundItemVOList = orderCollect.get(orderId);
|
|
|
+ BigDecimal delOutQty = outboundItemVOList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutingQty = outboundItemVOList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal delOutingAmt = outboundItemVOList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //总单
|
|
|
+ Order orderPri = new Order();
|
|
|
+ orderPri.setOrderId(orderId);
|
|
|
+ orderPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
|
|
|
+ orderPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
|
|
|
+ orderMapper.updateReturnMessage(orderPri);
|
|
|
+ //明细
|
|
|
+ for (OutboundItemVO outboundItemVO : outboundItemVOList) {
|
|
|
+ OrderItem orderItemPri = new OrderItem();
|
|
|
+ orderItemPri.setItemId(outboundItemVO.getItemId());
|
|
|
+ orderItemPri.setReturnQty(outboundItemVO.getOutingQty());
|
|
|
+ orderItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
|
|
|
+ orderItemMapper.updateReturnMessage(orderItemPri);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 销售退货出库新建
|
|
|
* @date : 2024/3/7 14:13
|
|
|
@@ -295,7 +300,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
//region 查询当前公司的系统参数 自动办理信息 并赋值
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("cpId", outboundVO.getCpId());
|
|
|
- map.put("code", "IVT_001");
|
|
|
+ map.put("code", Constant.SystemConstant.IVT_001.getValue());
|
|
|
//自动办理标识
|
|
|
String flgHandleSetting = commonMapper.getSettingValue(map);
|
|
|
//自动办理标识为1 自动办理出库
|
|
|
@@ -414,7 +419,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
-
|
|
|
return ResponseResultUtil.success(outboundVO);
|
|
|
}
|
|
|
|
|
|
@@ -459,7 +463,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
|
|
|
//region 退账
|
|
|
if (outboundVO.getReceivableId() != null) {
|
|
|
- accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ accountService.reverseReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
@@ -539,7 +543,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 反写出库明细 反写订单明细
|
|
|
- this.updatePrimaryDetail(outboundItemVO, true,true);
|
|
|
+ this.updatePrimaryDetail(outboundItemVO, true, true);
|
|
|
//endregion
|
|
|
}
|
|
|
//endregion
|
|
|
@@ -584,9 +588,9 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
this.updatePrimaryTotal(outboundVO, true);
|
|
|
//endregion
|
|
|
|
|
|
- //region 账款
|
|
|
+ //region 入账
|
|
|
if (outboundVO.getReceivableId() != null) {
|
|
|
- accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
@@ -597,6 +601,9 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
inventoryService.operatingInventoryInformation(invMap);
|
|
|
//endregion
|
|
|
}
|
|
|
+ else{
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
|
|
|
+ }
|
|
|
//endregion
|
|
|
|
|
|
//region 自动办理参数false 出库中编辑
|
|
|
@@ -652,7 +659,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 反写出库明细 反写订单明细
|
|
|
- this.updatePrimaryDetail(outboundItemVO, true,false);
|
|
|
+ this.updatePrimaryDetail(outboundItemVO, true, false);
|
|
|
//endregion
|
|
|
}
|
|
|
//endregion
|
|
|
@@ -692,6 +699,9 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
this.updatePrimaryTotal(outboundVO, true);
|
|
|
//endregion
|
|
|
}
|
|
|
+ else{
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
|
|
|
+ }
|
|
|
//endregion
|
|
|
}
|
|
|
//endregion
|
|
|
@@ -718,7 +728,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundResponse.getFlgHandleSetting())) {
|
|
|
//region 退账
|
|
|
if (outboundResponse.getReceivableId() != null) {
|
|
|
- accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ accountService.reverseReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
@@ -759,17 +769,14 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
);
|
|
|
//endregion
|
|
|
|
|
|
- //region 入账
|
|
|
- if (outboundResponse.getReceivableId() != null) {
|
|
|
- accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
- }
|
|
|
- //endregion
|
|
|
|
|
|
//region 修改库存
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("delOutDetail", outboundItemResponseList);
|
|
|
inventoryService.operatingInventoryInformation(map);
|
|
|
//endregion
|
|
|
+ } else {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
@@ -789,6 +796,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
outboundItem.setItemId(outboundItemResponse.getItemId());
|
|
|
outboundItem.setOutingQty(BigDecimal.ZERO);
|
|
|
outboundItem.setOutingAmt(BigDecimal.ZERO);
|
|
|
+ outboundItem.setFlgValid(false);
|
|
|
//修改
|
|
|
outboundItemMapper.update(outboundItem,
|
|
|
new UpdateWrapper<OutboundItem>().lambda()
|
|
|
@@ -804,18 +812,20 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
outbound.setOutId(outboundResponse.getOutId());
|
|
|
outbound.setOutingQty(BigDecimal.ZERO);
|
|
|
outbound.setOutingAmt(BigDecimal.ZERO);
|
|
|
+ outbound.setFlgValid(false);
|
|
|
//修改
|
|
|
outboundMapper.update(outbound,
|
|
|
new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
);
|
|
|
//endregion
|
|
|
+ } else {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 销售退货出库办理
|
|
|
* @date : 2024/3/7 15:47
|
|
|
@@ -829,14 +839,20 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
|
|
|
}
|
|
|
|
|
|
+ //region 退账
|
|
|
+ if (outboundVO.getReceivableId() != null) {
|
|
|
+ accountService.reverseReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
//region 查询出库总单数据信息
|
|
|
OutboundResponse outboundResponse = outboundMapper.selectById(outboundVO.getOutId());
|
|
|
//endregion
|
|
|
|
|
|
//region 回滚原总单和明细信息(订单,出库单)
|
|
|
- List<OutboundItemVO> outboundItemVOList = new ArrayList<>();
|
|
|
+ List<OutboundItemVO> outboundItemVOList = new ArrayList<>();
|
|
|
for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
|
|
|
- if(outboundItemVO.getItemId()!=null){
|
|
|
+ if (outboundItemVO.getItemId() != null) {
|
|
|
OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
|
|
|
OutboundItemVO outboundItemVO1 = outboundItemConvert.convertResToVO(outboundItemResponse);
|
|
|
outboundItemVOList.add(outboundItemVO1);
|
|
|
@@ -922,7 +938,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 反写出库明细 反写订单明细
|
|
|
- this.updatePrimaryDetail(outboundItemVO, true,true);
|
|
|
+ this.updatePrimaryDetail(outboundItemVO, true, true);
|
|
|
//endregion
|
|
|
}
|
|
|
//endregion
|
|
|
@@ -976,7 +992,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 入账
|
|
|
- accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ accountService.accReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
//endregion
|
|
|
|
|
|
//region 调用库存
|
|
|
@@ -989,7 +1005,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
return ResponseResultUtil.success(outboundVO);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 销售退货出库撤销
|
|
|
* @date : 2024/3/7 17:06
|
|
|
@@ -1003,7 +1018,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
|
|
|
//region 退账
|
|
|
if (outboundResponse.getReceivableId() != null) {
|
|
|
- accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
+ accountService.reverseReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
}
|
|
|
|
|
|
//region 修改总单数据信息
|
|
|
@@ -1068,7 +1083,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 入库状态通用(目前本页面)
|
|
|
* @date : 2024/3/9 8:59
|
|
|
@@ -1095,7 +1109,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
|
|
|
return intoStatus;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 出库状态通用(目前本页面)
|
|
|
* @date : 2024/3/9 8:59
|