|
|
@@ -306,109 +306,50 @@ public class InboundReturnService extends BaseService<Inbound> {
|
|
|
public ResponseResultVO<String> cancel(InboundVO inboundVO) {
|
|
|
//查询当前 采退入库单 负
|
|
|
InboundResponse inboundResponse = inboundMapper.selectInboundReturnById(inboundVO.getIntoId());
|
|
|
- if (inboundResponse.getIntoStatus().equals(Constant.IntoStatus.ZUOFEI.getName())) {
|
|
|
- //当前单据已经作废,不能重复操
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
|
|
|
- }
|
|
|
- //校验单据是否可以作废
|
|
|
-
|
|
|
-
|
|
|
- //region 查询当前公司的系统参数 自动办理信息 并赋值
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("cpId", inboundVO.getCpId());
|
|
|
- map.put("code", Constant.SystemConstant.IVT_001.getValue());
|
|
|
- //自动办理标识
|
|
|
- String flgHandleSetting = commonMapper.getSettingValue(map);
|
|
|
- //自动办理标识为1 自动办理入库
|
|
|
- if (Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)) {
|
|
|
- inboundVO.setFlgAutoHandle(Constant.FlgAutoHandle.TRUE.getValue());
|
|
|
- }
|
|
|
-
|
|
|
- //TODO //系统参数自动出入库办理 已出库(未退款)可以作废,已出库(已退款)不可以作废
|
|
|
- if (inboundResponse.getFlgAutoHandle() && inboundResponse.getIntoStatus().equals(Constant.IntoStatus.YIRUKU.getName())) {
|
|
|
- return ResponseResultUtil.error(ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getCode(),
|
|
|
- ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getMessage());
|
|
|
- }
|
|
|
- //系统参数手动出入库办理 出库中,可以作废,已出库(未收款、已收款),不可以作废
|
|
|
- if (!inboundResponse.getFlgAutoHandle() && inboundResponse.getIntoStatus().equals(Constant.IntoStatus.YIRUKU.getName())) {
|
|
|
- return ResponseResultUtil.error(ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getCode(),
|
|
|
- ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getMessage());
|
|
|
- }
|
|
|
if(inboundResponse.getFromId()!=null){
|
|
|
- //查询采购单
|
|
|
- PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundResponse.getFromId());
|
|
|
- if (purchaseResponse == null) {
|
|
|
- //返回 单据所对应的原始单据不存在,请重新操作
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
+ //反写上游入库单退货数量金额
|
|
|
+ InboundResponse sInboundResponse = inboundMapper.selectById(inboundResponse.getFromId());
|
|
|
+ if(sInboundResponse != null){
|
|
|
+ inboundMapper.updateAmount(new Inbound().setIntoId(sInboundResponse.getIntoId())
|
|
|
+ .setReturnQty(sInboundResponse.getReturnQty().subtract(inboundResponse.getIntoQty().abs()))
|
|
|
+ .setReturnAmt(sInboundResponse.getReturnAmt().subtract(inboundResponse.getIntoAmt().abs())));
|
|
|
+ }
|
|
|
+ //反写上游采购订单退货数量金额
|
|
|
+ if(sInboundResponse.getFromId()!=null){
|
|
|
+ //查询采购单
|
|
|
+ PurchaseResponse purchaseResponse = purchaseMapper.selectById(sInboundResponse.getFromId());
|
|
|
+ purchaseMapper.updateAmount(
|
|
|
+ new Purchase().setReturnQty(purchaseResponse.getReturnQty().subtract(inboundResponse.getIntoQty().abs()))
|
|
|
+ .setReturnAmt(purchaseResponse.getReturnAmt().subtract(inboundResponse.getIntoAmt().abs())).setPurId(purchaseResponse.getPurId())
|
|
|
+ );
|
|
|
}
|
|
|
- //修改采购单 已入库数量/金额
|
|
|
- //TODO 如果 退货存的 退货数量是负数的话
|
|
|
- System.out.println(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty()));
|
|
|
|
|
|
- purchaseMapper.updateAmount(
|
|
|
- new Purchase().setReturnQty(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty().abs()))
|
|
|
- .setReturnAmt(purchaseResponse.getReturnAmt().subtract(inboundResponse.getReturnAmt().abs())).setPurId(purchaseResponse.getPurId())
|
|
|
- );
|
|
|
}
|
|
|
-
|
|
|
//查询退货明细
|
|
|
List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
|
|
|
for (InboundItemResponse inboundItemRespons : inboundItemResponses) {
|
|
|
+
|
|
|
if(inboundItemRespons.getSIntoItemId() != null){
|
|
|
//查询源入库单明细
|
|
|
InboundItemResponse inboundItem = inboundItemMapper.selectById(inboundItemRespons.getSIntoItemId());
|
|
|
- if (inboundItem == null) {
|
|
|
- //返回 单据所对应的原始单据不存在,请重新操作
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
- }
|
|
|
//修改入库单明细 已入库退货数量/金额
|
|
|
inboundItemMapper.updateAmount(new InboundItem()
|
|
|
.setItemId(inboundItem.getItemId())
|
|
|
- .setReturnQty(inboundItem.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
|
|
|
- .setReturnAmt(inboundItem.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
|
|
|
+ .setReturnQty(inboundItem.getReturnQty().subtract(inboundItemRespons.getIntoQty().abs()))
|
|
|
+ .setReturnAmt(inboundItem.getReturnAmt().subtract(inboundItemRespons.getIntoAmt().abs()))
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
- if(inboundItemRespons.getSIntoId() != null){
|
|
|
- //查询源入库单 修改 已入库退货数量/金额
|
|
|
- InboundResponse inboundRes = inboundMapper.selectById(inboundItemRespons.getSIntoId());
|
|
|
- if (inboundRes == null) {
|
|
|
- //返回 单据所对应的原始单据不存在,请重新操作
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
- }
|
|
|
- inboundMapper.updateAmount(new Inbound().setIntoId(inboundRes.getIntoId())
|
|
|
- .setReturnQty(inboundRes.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
|
|
|
- .setReturnAmt(inboundRes.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs())));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
if(inboundItemRespons.getSPurItemId()!=null){
|
|
|
//查询采购单明细
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemRespons.getSPurItemId());
|
|
|
- if (purchaseItemResponse == null) {
|
|
|
- //返回 单据所对应的原始单据不存在,请重新操作
|
|
|
- return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
- }
|
|
|
//修改采购单明细 已入库退货数量/金额
|
|
|
purchaseItemMapper.updateAmount(
|
|
|
new PurchaseItem()
|
|
|
.setItemId(purchaseItemResponse.getItemId())
|
|
|
- .setReturnQty(purchaseItemResponse.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
|
|
|
- .setReturnAmt(purchaseItemResponse.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
|
|
|
+ .setReturnQty(purchaseItemResponse.getReturnQty().subtract(inboundItemRespons.getIntoQty().abs()))
|
|
|
+ .setReturnAmt(purchaseItemResponse.getReturnAmt().subtract(inboundItemRespons.getIntoAmt().abs()))
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- //修改 负向入库单 状态为作废
|
|
|
- inboundMapper.updateIntoStatus(new Inbound()
|
|
|
- .setIntoId(inboundVO.getIntoId())
|
|
|
- .setIntoStatus(Constant.IntoStatus.ZUOFEI.getName()));
|
|
|
- //修改 负向入库单明细 状态为作废
|
|
|
- if (inboundItemResponses != null && inboundItemResponses.size() > 0) {
|
|
|
- for (InboundItemResponse inboundItemRespons : inboundItemResponses) {
|
|
|
- inboundItemMapper.updateIntoStatus(new InboundItem().setItemId(inboundItemRespons.getItemId()).setIntoStatus(Constant.IntoStatus.ZUOFEI.getName()));
|
|
|
- }
|
|
|
}
|
|
|
inboundPurchaseReturnService.purchaseReturnInboundRepeal(inboundVO.getIntoId());
|
|
|
return ResponseResultUtil.success();
|