|
@@ -108,96 +108,96 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
rollbackFor = {Exception.class}
|
|
rollbackFor = {Exception.class}
|
|
|
)
|
|
)
|
|
|
public ResponseResultVO<?> insert(IntoReturnVO intoReturnVO) {
|
|
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);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //反写采购订单已入库退货数量、金额
|
|
|
|
|
- purchaseMapper.updateAmount(new Purchase().setPurId(intoReturnVO.getPurId())
|
|
|
|
|
- .setReturnQty(purchaseResponse.getReturnQty().add(intoReturnVO.getSumQuantity()))
|
|
|
|
|
- .setReturnAmt(purchaseResponse.getReturnAmt().add(intoReturnVO.getSumAmount()))
|
|
|
|
|
|
|
+ //校验明细长度
|
|
|
|
|
+ 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()))
|
|
|
|
|
+ );
|
|
|
|
|
+ BigDecimal sumReturnQty = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal sumReturnAmt = BigDecimal.ZERO;
|
|
|
|
|
+ //反写入库订单明细、反写订单明细
|
|
|
|
|
+ for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
|
|
+
|
|
|
|
|
+ //根据退货明细中入库明细id查询入库明细数据
|
|
|
|
|
+ InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
|
|
|
|
|
+ BigDecimal returnQty = inboundItemResponse.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
+ BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
+ sumReturnQty = sumReturnQty.add(returnQty);
|
|
|
|
|
+ sumReturnAmt = sumReturnAmt.add(returnAmt);
|
|
|
|
|
+ inboundItemMapper.updateAmount(
|
|
|
|
|
+ new InboundItem()
|
|
|
|
|
+ .setItemId(inboundItemResponse.getItemId())
|
|
|
|
|
+ .setReturnQty(returnQty)
|
|
|
|
|
+ .setReturnAmt(returnAmt)
|
|
|
);
|
|
);
|
|
|
- BigDecimal sumReturnQty = BigDecimal.ZERO;
|
|
|
|
|
- BigDecimal sumReturnAmt = BigDecimal.ZERO;
|
|
|
|
|
- //反写入库订单明细、反写订单明细
|
|
|
|
|
- for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
|
|
-
|
|
|
|
|
- //根据退货明细中入库明细id查询入库明细数据
|
|
|
|
|
- InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
|
|
|
|
|
- BigDecimal returnQty = inboundItemResponse.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
- BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
- sumReturnQty = sumReturnQty.add(returnQty);
|
|
|
|
|
- sumReturnAmt = sumReturnAmt.add(returnAmt);
|
|
|
|
|
- inboundItemMapper.updateAmount(
|
|
|
|
|
- new InboundItem()
|
|
|
|
|
- .setItemId(inboundItemResponse.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
|
|
|
|
|
- InboundResponse inboundResponse = inboundMapper.selectById(intoReturnVO.getIntoId());
|
|
|
|
|
- inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
|
|
|
|
|
- .setReturnQty(inboundResponse.getReturnQty().add(sumReturnQty))
|
|
|
|
|
- .setReturnAmt(inboundResponse.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);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ //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)))
|
|
|
|
|
|
|
|
- outboundVO.setItemList(itemList);
|
|
|
|
|
- //新建出库单
|
|
|
|
|
- outboundService.insertOutBound(outboundVO);
|
|
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ //反写入库单退货数量金额 todo
|
|
|
|
|
+ InboundResponse inboundResponse = inboundMapper.selectById(intoReturnVO.getIntoId());
|
|
|
|
|
+ inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
|
|
|
|
|
+ .setReturnQty(inboundResponse.getReturnQty().add(sumReturnQty))
|
|
|
|
|
+ .setReturnAmt(inboundResponse.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);
|
|
|
|
|
|
|
|
return ResponseResultUtil.success();
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
}
|
|
@@ -269,11 +269,12 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
intoReturnItemVO.setItemAmt(intoReturnItemVO.getItemQty().multiply(intoReturnItemVO.getPriceReturn()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
intoReturnItemVO.setItemAmt(intoReturnItemVO.getItemQty().multiply(intoReturnItemVO.getPriceReturn()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
//自动]出库赋值 已入库数量、已入库金额
|
|
//自动]出库赋值 已入库数量、已入库金额
|
|
|
if (intoReturnVO.getFlgAutoIvt()) {
|
|
if (intoReturnVO.getFlgAutoIvt()) {
|
|
|
|
|
+ intoReturnItemVO.setOutQty(intoReturnItemVO.getItemQty().abs());
|
|
|
|
|
+ intoReturnItemVO.setOutAmt(intoReturnItemVO.getItemAmt().abs());
|
|
|
|
|
|
|
|
- intoReturnItemVO.setIntoQty(intoReturnItemVO.getItemQty().abs());
|
|
|
|
|
-
|
|
|
|
|
- intoReturnItemVO.setIntoAmt(intoReturnItemVO.getItemAmt().abs());
|
|
|
|
|
-
|
|
|
|
|
|
|
+ }else{
|
|
|
|
|
+ intoReturnItemVO.setOutingQty(intoReturnItemVO.getItemQty().abs());
|
|
|
|
|
+ intoReturnItemVO.setOutingAmt(intoReturnItemVO.getItemAmt().abs());
|
|
|
}
|
|
}
|
|
|
//新建明细
|
|
//新建明细
|
|
|
IntoReturnItem intoReturnItem = intoReturnItemConvert.convertToPo(intoReturnItemVO);
|
|
IntoReturnItem intoReturnItem = intoReturnItemConvert.convertToPo(intoReturnItemVO);
|