|
|
@@ -196,7 +196,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
inboundVO.setIntoingAmt(intoReturnVO.getSumAmount().multiply(new BigDecimal(-1)));
|
|
|
List<InboundItemVO> list = new ArrayList<>();
|
|
|
for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
|
|
|
- System.out.println("'id==='"+intoReturnItemVO.getItemId());
|
|
|
+ System.out.println("'id==='" + intoReturnItemVO.getItemId());
|
|
|
InboundItemVO inboundItemVO = new InboundItemVO();
|
|
|
inboundItemVO.setIntoingQty(intoReturnItemVO.getItemQty().multiply(new BigDecimal(-1)));
|
|
|
inboundItemVO.setIntoingAmt(intoReturnItemVO.getItemAmt().multiply(new BigDecimal(-1)));
|
|
|
@@ -296,7 +296,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
// } else {
|
|
|
// intoReturnItemVO.setOutingQty(intoReturnItemVO.getItemQty());
|
|
|
// intoReturnItemVO.setOutingAmt(intoReturnItemVO.getItemAmt());
|
|
|
- intoReturnItemVO.setOutStatus(Constant.OutStatus.CHUKUZHONG.getName());
|
|
|
+ intoReturnItemVO.setOutStatus(Constant.OutStatus.CHUKUZHONG.getName());
|
|
|
// }
|
|
|
// //新建明细
|
|
|
IntoReturnItem intoReturnItem = intoReturnItemConvert.convertToPo(intoReturnItemVO);
|
|
|
@@ -307,7 +307,6 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 作废
|
|
|
* @date : 2022/6/28 16:58
|
|
|
@@ -317,14 +316,14 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
public ResponseResultVO<String> cancel(IntoReturnVO intoReturnVO) {
|
|
|
//根据入库退货单id查询到退货单
|
|
|
IntoReturnResponse intoReturnResponse = intoReturnMapper.selectById(intoReturnVO.getReturnId());
|
|
|
- if(intoReturnResponse.getReturnStatus().equals(Constant.returnStatus.OUT_REJECT_STATUS_RIGHTING_NOT.getName())){
|
|
|
+ if (intoReturnResponse.getReturnStatus().equals(Constant.returnStatus.OUT_REJECT_STATUS_RIGHTING_NOT.getName())) {
|
|
|
//当前单据已经作废,不能重复操
|
|
|
return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
|
|
|
}
|
|
|
|
|
|
//查询入库单 修改 已入库退货数量/金额
|
|
|
InboundResponse inboundResponse = inboundMapper.selectById(intoReturnVO.getIntoId());
|
|
|
- if (inboundResponse == null ) {
|
|
|
+ if (inboundResponse == null) {
|
|
|
//返回 单据所对应的原始单据不存在,请重新操作
|
|
|
return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
}
|
|
|
@@ -334,7 +333,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
|
|
|
//查询采购单
|
|
|
PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnResponse.getPurId());
|
|
|
- if (purchaseResponse == null ) {
|
|
|
+ if (purchaseResponse == null) {
|
|
|
//返回 单据所对应的原始单据不存在,请重新操作
|
|
|
return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
}
|
|
|
@@ -368,7 +367,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
);
|
|
|
//查询采购单明细
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemResponse.getPurId());
|
|
|
- if (purchaseItemResponse == null ) {
|
|
|
+ if (purchaseItemResponse == null) {
|
|
|
//返回 单据所对应的原始单据不存在,请重新操作
|
|
|
return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
}
|
|
|
@@ -396,11 +395,9 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
- * @desc : 获取单据信息(编辑用)
|
|
|
- * @date : 2024/3/16 16:28
|
|
|
+ * @desc : 获取单据信息(编辑用)
|
|
|
+ * @date : 2024/3/16 16:28
|
|
|
* @author : 于继渤
|
|
|
*/
|
|
|
public ResponseResultVO<?> selectByUpdate(String id) {
|
|
|
@@ -408,7 +405,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
//总单
|
|
|
IntoReturnResponse intoReturnResponse = intoReturnMapper.selectByIntoReturnQuery(new IntoReturnQuery().setReturnId(id));
|
|
|
//单据不存在
|
|
|
- if(intoReturnResponse==null){
|
|
|
+ if (intoReturnResponse == null) {
|
|
|
return ResponseResultUtil.error(ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getCode(),
|
|
|
ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
}
|
|
|
@@ -418,4 +415,131 @@ public class IntoReturnService extends BaseService<IntoReturn> {
|
|
|
dataInfo.put("dataItem", intoReturnItemResponses);
|
|
|
return ResponseResultUtil.success(dataInfo);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc :出库中 编辑
|
|
|
+ * @date : 2024/3/16 16:28
|
|
|
+ * @author : 于继渤
|
|
|
+ */
|
|
|
+ @Transactional(
|
|
|
+ rollbackFor = {Exception.class}
|
|
|
+ )
|
|
|
+ public ResponseResultVO<?> update(IntoReturnVO intoReturnVO) {
|
|
|
+ //校验单据
|
|
|
+ if (intoReturnVO.getReturnId() == null) {
|
|
|
+ return ResponseResultUtil.error(ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getCode(),
|
|
|
+ ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
|
|
|
+ }
|
|
|
+ //非出库中单据不能编辑
|
|
|
+ if (intoReturnVO.getOutStatus().equals(Constant.OutStatus.YICHUKU.getName())) {
|
|
|
+ return ResponseResultUtil.error(ErrorCodeEnum.NO_WAIT_INTO_RETURN.getCode(),
|
|
|
+ ErrorCodeEnum.NO_WAIT_INTO_RETURN.getMessage());
|
|
|
+ }
|
|
|
+ IntoReturn intoReturn = intoReturnConvert.convertToPo(intoReturnVO);
|
|
|
+ //查询原始退货总单
|
|
|
+ IntoReturnResponse intoReturnResponse = intoReturnMapper.selectById(intoReturnVO.getReturnId());
|
|
|
+ //负数转正数
|
|
|
+ intoReturnVO.setSumQuantity(intoReturnVO.getSumQuantity().abs());
|
|
|
+ intoReturnVO.setSumAmount(intoReturnVO.getSumAmount().abs());
|
|
|
+ //查询采购订单
|
|
|
+ PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnVO.getPurId());
|
|
|
+ //采购订单原始退货数量 - 原始退货单退货数量
|
|
|
+ BigDecimal purchaseReturnQty = purchaseResponse.getReturnQty().subtract(intoReturnResponse.getSumQuantity());
|
|
|
+ BigDecimal purchaseReturnAmt = purchaseResponse.getReturnAmt().subtract(intoReturnResponse.getSumAmount());
|
|
|
+ //反写采购订单已入库退货数量、金额
|
|
|
+ purchaseMapper.updateAmount(new Purchase().setPurId(intoReturnVO.getPurId())
|
|
|
+ .setReturnQty(purchaseReturnQty.add(intoReturnVO.getSumQuantity()))
|
|
|
+ .setReturnAmt(purchaseReturnAmt.add(intoReturnVO.getSumAmount()))
|
|
|
+ );
|
|
|
+ //校验明细
|
|
|
+ if (intoReturnVO.getIntoReturnItemVOList() != null && intoReturnVO.getIntoReturnItemVOList().size() > 0) {
|
|
|
+
|
|
|
+ for (IntoReturnItemVO intoReturnItemVO : intoReturnVO.getIntoReturnItemVOList()) {
|
|
|
+ //负数转正数
|
|
|
+ intoReturnItemVO.setPriceReturn(intoReturnItemVO.getPriceReturn().abs());
|
|
|
+ intoReturnItemVO.setItemQty(intoReturnItemVO.getItemQty().abs());
|
|
|
+ intoReturnItemVO.setItemAmt(intoReturnItemVO.getItemAmt().abs());
|
|
|
+ //查询原始采购退货明细
|
|
|
+ IntoReturnItem intoReturnItem = intoReturnItemMapper.selectById(new IntoReturnItem().setItemId(intoReturnItemVO.getPurItemId()));
|
|
|
+ //查询采购订单明细数据
|
|
|
+ PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemVO.getPurItemId());
|
|
|
+ BigDecimal purchaseItemReturnQty = purchaseItemResponse.getReturnQty().subtract(intoReturnItem.getItemQty());
|
|
|
+ BigDecimal purchaseItemReturnAmt = purchaseItemResponse.getReturnAmt().subtract(intoReturnItem.getItemAmt());
|
|
|
+ //反写采购订单明细退货数量和退货金额
|
|
|
+ purchaseItemMapper.updateAmount(
|
|
|
+ new PurchaseItem()
|
|
|
+ .setItemId(intoReturnItemVO.getPurItemId())
|
|
|
+ .setReturnQty(purchaseItemReturnQty.add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
+ .setReturnAmt(purchaseItemReturnAmt.add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
|
|
|
+
|
|
|
+ );
|
|
|
+ //根据退货明细中入库明细id查询入库明细数据
|
|
|
+ InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
|
|
|
+ BigDecimal inboundItemReturnQty = inboundItemResponse.getReturnQty().subtract(intoReturnItem.getItemQty());
|
|
|
+ BigDecimal inboundItemReturnAmt = inboundItemResponse.getReturnAmt().subtract(intoReturnItem.getItemAmt());
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal ReturnQty = inboundItemReturnQty.add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
+ BigDecimal ReturnAm = inboundItemReturnAmt.add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
|
|
|
+ //反写原始入库单明细 不是负向的入库单
|
|
|
+ inboundItemMapper.updateAmount(
|
|
|
+ new InboundItem()
|
|
|
+ .setItemId(inboundItemResponse.getItemId())
|
|
|
+ .setReturnQty(ReturnQty)
|
|
|
+ .setReturnAmt(ReturnAm)
|
|
|
+ );
|
|
|
+ //反写原始入库单
|
|
|
+ InboundResponse inboundResponse = inboundMapper.selectById(intoReturnItemVO.getIntoId());
|
|
|
+ BigDecimal inboundReturnQty = inboundResponse.getReturnQty().subtract(intoReturnItem.getItemQty());
|
|
|
+ BigDecimal inboundReturnAmt = inboundResponse.getReturnAmt().subtract(intoReturnItem.getItemAmt());
|
|
|
+ inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnItemVO.getIntoId())
|
|
|
+ .setReturnQty(inboundReturnQty.add(intoReturnItemVO.getItemQty()))
|
|
|
+ .setReturnAmt(inboundReturnAmt.add(intoReturnItemVO.getItemAmt())));
|
|
|
+
|
|
|
+ //新建编辑操作
|
|
|
+ if (intoReturnItemVO.getItemId() != null) {
|
|
|
+ //编辑明细
|
|
|
+ intoReturnItemMapper.updateById(intoReturnItem);
|
|
|
+ } else {
|
|
|
+ Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.PURCHASEOUT.getName(), false);
|
|
|
+ intoReturnItem.setItemId(codeMap.get("outId").toString());
|
|
|
+ intoReturnItemMapper.insert(intoReturnItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ intoReturnMapper.updateById(intoReturn);
|
|
|
+ //生成逆向 负数的 入库单
|
|
|
+ InboundVO inboundVO = new InboundVO();
|
|
|
+ //自动标识
|
|
|
+ inboundVO.setAutomaticFlg(intoReturnVO.getAutomaticFlg());
|
|
|
+ inboundVO.setFromId(intoReturnVO.getReturnId());
|
|
|
+ inboundVO.setFromNo(intoReturnVO.getReturnNo());
|
|
|
+ inboundVO.setStaffId(intoReturnVO.getStaffId());
|
|
|
+ inboundVO.setOrgId(intoReturnVO.getOrgId());
|
|
|
+ inboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
|
|
|
+ inboundVO.setMakeTime(LocalDateTime.now());
|
|
|
+ inboundVO.setIntoingQty(intoReturnVO.getSumQuantity().multiply(new BigDecimal(-1)));
|
|
|
+ inboundVO.setIntoingAmt(intoReturnVO.getSumAmount().multiply(new BigDecimal(-1)));
|
|
|
+ List<InboundItemVO> list = new ArrayList<>();
|
|
|
+ for (IntoReturnItemVO intoReturnItemVO : intoReturnVO.getIntoReturnItemVOList()) {
|
|
|
+ //删除原始负数入库单
|
|
|
+ if (intoReturnItemVO.getFromItemId() != null) {
|
|
|
+ inboundItemMapper.deleteByFromId(new InboundItem().setFromItemId(intoReturnItemVO.getItemId()));
|
|
|
+ }
|
|
|
+ InboundItemVO inboundItemVO = new InboundItemVO();
|
|
|
+ inboundItemVO.setIntoingQty(intoReturnItemVO.getItemQty().multiply(new BigDecimal(-1)));
|
|
|
+ inboundItemVO.setIntoingAmt(intoReturnItemVO.getItemAmt().multiply(new BigDecimal(-1)));
|
|
|
+ inboundItemVO.setPriceInto(intoReturnItemVO.getPriceReturn());
|
|
|
+ inboundItemVO.setFromItemId(intoReturnItemVO.getItemId());
|
|
|
+ inboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
|
|
|
+ inboundItemVO.setItemIndex(intoReturnItemVO.getItemIndex());
|
|
|
+ inboundItemVO.setNonStdCode(intoReturnItemVO.getNonStdCode());
|
|
|
+ inboundItemVO.setReturnQty(intoReturnItemVO.getItemQty());
|
|
|
+ inboundItemVO.setReturnAmt(intoReturnItemVO.getItemAmt());
|
|
|
+ list.add(inboundItemVO);
|
|
|
+ }
|
|
|
+ inboundVO.setItemList(list);
|
|
|
+ inboundPurchaseReturnService.purchaseReturnInboundInsert(inboundVO);
|
|
|
+ return ResponseResultUtil.success();
|
|
|
+ }
|
|
|
}
|