|
|
@@ -106,91 +106,97 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
rollbackFor = {Exception.class}
|
|
|
)
|
|
|
public ResponseResultVO<?> insert(IntoReturnVO intoReturnVO) {
|
|
|
- //校验明细长度
|
|
|
- List<IntoReturnItemVO> intoReturnItemVOList = intoReturnVO.getIntoReturnItemVOList();
|
|
|
- //明细不存在
|
|
|
- if (intoReturnItemVOList == null || intoReturnItemVOList.size() == 0) {
|
|
|
- //返回 采购退货明细不可为空,请重新操作
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
|
|
|
- }
|
|
|
- //查询采购订单
|
|
|
- PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnVO.getPurId());
|
|
|
- //设置总单
|
|
|
- intoReturnVO = this.insertTotal(intoReturnVO, purchaseResponse);
|
|
|
- //设置明细
|
|
|
- intoReturnItemVOList = this.insertDetail(intoReturnVO, intoReturnItemVOList);
|
|
|
-
|
|
|
- //反写入库单 反写退货数量金额
|
|
|
- Inbound inbound = inboundMapper.selectById(intoReturnVO.getIntoId());
|
|
|
- inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
|
|
|
- .setReturnQty(inbound.getReturnQty().add(intoReturnVO.getSumQuantity()))
|
|
|
- .setReturnAmt(inbound.getReturnAmt().add(intoReturnVO.getSumAmount())));
|
|
|
- //反写订单已入库退货数量、金额
|
|
|
- purchaseMapper.updateAmount(new Purchase().setPurId(purchaseResponse.getPurId())
|
|
|
- .setReturnQty(purchaseResponse.getReturnQty().add(intoReturnVO.getSumQuantity()))
|
|
|
- .setReturnAmt(purchaseResponse.getReturnAmt().add(intoReturnVO.getSumAmount()))
|
|
|
- );
|
|
|
-
|
|
|
- //反写入库订单明细、反写订单明细
|
|
|
- for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
-
|
|
|
- //根据退货明细中入库明细id查询入库明细数据
|
|
|
- InboundItem inboundItem = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
|
|
|
- inboundItemMapper.updateAmount(
|
|
|
- new InboundItem()
|
|
|
- .setItemId(inboundItem.getItemId())
|
|
|
- .setReturnQty(inboundItem.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
- .setReturnAmt(inboundItem.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
- );
|
|
|
- //TODO 反写订单出库明细 退货数量和退货金额
|
|
|
- //查询采购订单明细数据
|
|
|
- PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemVO.getPurItemId());
|
|
|
- //反写订单明细退货数量和退货金额
|
|
|
- purchaseItemMapper.updateAmount(
|
|
|
- new PurchaseItem()
|
|
|
- .setItemId(intoReturnItemVO.getPurItemId())
|
|
|
- .setReturnQty(purchaseItemResponse.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
- .setReturnAmt(purchaseItemResponse.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
-
|
|
|
+ //校验明细长度
|
|
|
+ List<IntoReturnItemVO> intoReturnItemVOList = intoReturnVO.getIntoReturnItemVOList();
|
|
|
+ //明细不存在
|
|
|
+ if (intoReturnItemVOList == null || intoReturnItemVOList.size() == 0) {
|
|
|
+ //返回 采购退货明细不可为空,请重新操作
|
|
|
+ return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
|
|
|
+ }
|
|
|
+ //查询采购订单
|
|
|
+ PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnVO.getPurId());
|
|
|
+ //设置总单
|
|
|
+ intoReturnVO = this.insertTotal(intoReturnVO, purchaseResponse);
|
|
|
+ //设置明细
|
|
|
+ intoReturnItemVOList = this.insertDetail(intoReturnVO, intoReturnItemVOList);
|
|
|
+
|
|
|
+
|
|
|
+ //反写采购订单已入库退货数量、金额
|
|
|
+ purchaseMapper.updateAmount(new Purchase().setPurId(intoReturnVO.getPurId())
|
|
|
+ .setReturnQty(purchaseResponse.getReturnQty().add(intoReturnVO.getSumQuantity()))
|
|
|
+ .setReturnAmt(purchaseResponse.getReturnAmt().add(intoReturnVO.getSumAmount()))
|
|
|
);
|
|
|
- }
|
|
|
-
|
|
|
- //新建出库单
|
|
|
- OutboundVO outboundVO = new OutboundVO();
|
|
|
- //来源ID
|
|
|
- outboundVO.setFromId(intoReturnVO.getReturnId());
|
|
|
- //来源单号
|
|
|
- outboundVO.setFromNo(intoReturnVO.getReturnNo());
|
|
|
- //部门
|
|
|
- outboundVO.setOrgId(intoReturnVO.getOrgId());
|
|
|
- //员工
|
|
|
- outboundVO.setStaffId(intoReturnVO.getStaffId());
|
|
|
- //出库状态 待出库
|
|
|
- outboundVO.setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
- //供应商
|
|
|
- outboundVO.setSupId(intoReturnVO.getSupId());
|
|
|
- outboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
|
|
|
- outboundVO.setCpId(authUtils.getStaff().getCpId());
|
|
|
+ BigDecimal sumReturnQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal sumReturnAmt = BigDecimal.ZERO;
|
|
|
+ //反写入库订单明细、反写订单明细
|
|
|
+ for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
+
|
|
|
+ //根据退货明细中入库明细id查询入库明细数据
|
|
|
+ InboundItem inboundItem = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
|
|
|
+ BigDecimal returnQty = inboundItem.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
+ BigDecimal returnAmt = inboundItem.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
+ sumReturnQty = sumReturnQty.add(returnQty);
|
|
|
+ sumReturnAmt = sumReturnAmt.add(returnAmt);
|
|
|
+ inboundItemMapper.updateAmount(
|
|
|
+ new InboundItem()
|
|
|
+ .setItemId(inboundItem.getItemId())
|
|
|
+ .setReturnQty(returnQty)
|
|
|
+ .setReturnAmt(returnAmt)
|
|
|
+ );
|
|
|
+ //TODO 反写订单出库明细 退货数量和退货金额
|
|
|
+ //查询采购订单明细数据
|
|
|
+ PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemVO.getPurItemId());
|
|
|
+ //反写订单明细退货数量和退货金额
|
|
|
+ purchaseItemMapper.updateAmount(
|
|
|
+ new PurchaseItem()
|
|
|
+ .setItemId(intoReturnItemVO.getPurItemId())
|
|
|
+ .setReturnQty(purchaseItemResponse.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
+ .setReturnAmt(purchaseItemResponse.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
+
|
|
|
+ );
|
|
|
+ }
|
|
|
+ //反写入库单退货数量金额 todo
|
|
|
+ Inbound inbound = inboundMapper.selectById(intoReturnVO.getIntoId());
|
|
|
+ inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
|
|
|
+ .setReturnQty(inbound.getReturnQty().add(sumReturnQty))
|
|
|
+ .setReturnAmt(inbound.getReturnAmt().add(sumReturnAmt)));
|
|
|
+ //新建出库单
|
|
|
+ OutboundVO outboundVO = new OutboundVO();
|
|
|
+ //来源ID
|
|
|
+ outboundVO.setFromId(intoReturnVO.getReturnId());
|
|
|
+ //来源单号
|
|
|
+ outboundVO.setFromNo(intoReturnVO.getReturnNo());
|
|
|
+ //部门
|
|
|
+ outboundVO.setOrgId(intoReturnVO.getOrgId());
|
|
|
+ //员工
|
|
|
+ outboundVO.setStaffId(intoReturnVO.getStaffId());
|
|
|
+ //出库状态 待出库
|
|
|
+ outboundVO.setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
+ //供应商
|
|
|
+ outboundVO.setSupId(intoReturnVO.getSupId());
|
|
|
+ outboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
|
|
|
+ outboundVO.setCpId(authUtils.getStaff().getCpId());
|
|
|
+
|
|
|
+ outboundVO.setFromId(intoReturnVO.getReturnId());
|
|
|
+ List<OutboundItemVO> itemList = new ArrayList<>();
|
|
|
+ Integer itemIndex = 0;
|
|
|
+ for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
+ //来源单ID 入库退货
|
|
|
+ OutboundItemVO outboundItemVO = new OutboundItemVO();
|
|
|
+
|
|
|
+ outboundItemVO.setFromId(intoReturnItemVO.getReturnId());
|
|
|
+ outboundItemVO.setFromItemId(intoReturnItemVO.getItemId());
|
|
|
+ outboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
|
|
|
+ outboundItemVO.setItemIndex(itemIndex + 1);
|
|
|
+ outboundItemVO.setPriceOut(intoReturnItemVO.getPriceReturn());
|
|
|
+ outboundItemVO.setInvId(intoReturnItemVO.getInvId());
|
|
|
+ itemList.add(outboundItemVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ outboundVO.setItemList(itemList);
|
|
|
+ //新建出库单
|
|
|
+ outboundService.insertOutBound(outboundVO);
|
|
|
|
|
|
- outboundVO.setFromId(intoReturnVO.getReturnId());
|
|
|
- List<OutboundItemVO> itemList = new ArrayList<>();
|
|
|
- Integer itemIndex = 0;
|
|
|
- for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
- //来源单ID 入库退货
|
|
|
- OutboundItemVO outboundItemVO = new OutboundItemVO();
|
|
|
-
|
|
|
- outboundItemVO.setFromId(intoReturnItemVO.getReturnId());
|
|
|
- outboundItemVO.setFromItemId(intoReturnItemVO.getItemId());
|
|
|
- outboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
|
|
|
- outboundItemVO.setItemIndex(itemIndex + 1);
|
|
|
- outboundItemVO.setPriceOut(intoReturnItemVO.getPriceReturn());
|
|
|
- outboundItemVO.setInvId(intoReturnItemVO.getInvId());
|
|
|
- itemList.add(outboundItemVO);
|
|
|
- }
|
|
|
-
|
|
|
- outboundVO.setItemList(itemList);
|
|
|
- //新建出库单
|
|
|
- outboundService.insertOutBound(outboundVO);
|
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
|
|
|
|
@@ -270,6 +276,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
|
|
|
|
|
|
//TODO 未完成
|
|
|
+
|
|
|
/**
|
|
|
* @desc : 冲正
|
|
|
* @date : 2022/6/28 16:58
|
|
|
@@ -288,7 +295,6 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
List<IntoReturnResponse> intoReturnResponsesList = intoReturnMapper.selectByCond(new IntoReturnQuery().setIntoReturnIdList(intoReturnIdList));
|
|
|
|
|
|
|
|
|
-
|
|
|
//本次冲正退货总额
|
|
|
BigDecimal sumReturnAmount = intoReturnResponsesList.stream().map(IntoReturnResponse::getSumAmount)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
@@ -328,8 +334,6 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
//endregion
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|