feat(wms): 更新应付款管理功能

- 在 IWmsPayableService 接口中添加了 updatePaidAmountAndAddJournal 方法
- 在 WmsPayableController 中添加了 updatePaidAmount 控制器方法- 在 WmsPayableServiceImpl 中实现了 updatePaidAmountAndAddJournal 方法
- 新增了应付款已付金额更新和资金日记账添加的功能
This commit is contained in:
JR
2025-08-13 15:50:43 +08:00
parent fe82c72b89
commit f6fdc5ff37
3 changed files with 61 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import com.klp.domain.bo.WmsReceivableBo;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
@@ -75,6 +76,16 @@ public class WmsPayableController extends BaseController {
return toAjax(iWmsPayableService.insertByBo(bo));
}
/**
* 更新应付款已付金额 & 新增资金日记账
*/
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/updatePaidAmount")
public R<Void> updatePaidAmount(@RequestBody WmsPayableBo bo) {
return toAjax(iWmsPayableService.updatePaidAmountAndAddJournal(bo));
}
/**
* 修改应付款管理(宽松版)
*/

View File

@@ -46,4 +46,9 @@ public interface IWmsPayableService {
* 校验并批量删除应付款管理(宽松版)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 更新应付款管理(宽松版)的已付款金额和添加流水
*/
Boolean updatePaidAmountAndAddJournal(WmsPayableBo bo);
}

View File

@@ -8,6 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsJournal;
import com.klp.domain.WmsReceivable;
import com.klp.mapper.WmsJournalMapper;
import com.klp.mapper.WmsSupplierMapper;
import com.klp.service.IWmsJournalService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsPayableBo;
@@ -16,6 +21,9 @@ import com.klp.domain.WmsPayable;
import com.klp.mapper.WmsPayableMapper;
import com.klp.service.IWmsPayableService;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Collection;
@@ -31,6 +39,13 @@ public class WmsPayableServiceImpl implements IWmsPayableService {
private final WmsPayableMapper baseMapper;
@Resource
private WmsJournalMapper journalMapper;
@Resource
private WmsSupplierMapper supplierMapper;
@Resource
private IWmsJournalService wmsJournalService;
/**
* 查询应付款管理(宽松版)
*/
@@ -124,4 +139,34 @@ public class WmsPayableServiceImpl implements IWmsPayableService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public Boolean updatePaidAmountAndAddJournal(WmsPayableBo bo) {
// 1. 更新应付款已付金额
WmsPayable payable = baseMapper.selectById(bo.getPayableId());
if (payable == null) {
throw new RuntimeException("应付款记录不存在");
}
// bo.getPaidAmount()传入的是变化量
BigDecimal changePaidAmount = bo.getPaidAmount();
BigDecimal newPaidAmount = payable.getPaidAmount().add(changePaidAmount);
WmsPayable updateWmsPayable = new WmsPayable();
updateWmsPayable.setPayableId(bo.getPayableId());
updateWmsPayable.setPaidAmount(newPaidAmount);
int countFlag = baseMapper.updateById(updateWmsPayable);
// 2. 新增资金日记账记录
WmsJournal journal = new WmsJournal();
journal.setJournalDate(new Date());
journal.setSummary("向供应商付款");
journal.setTransType("支出");
journal.setCounterpart(supplierMapper.selectById(payable.getSupplierId()).getName());
journal.setIncomeAmount(changePaidAmount);
journal.setExpenseAmount(BigDecimal.ZERO);
wmsJournalService.computeBalance(journal);
journal.setRemark("应付款ID: " + bo.getPayableId());
countFlag += journalMapper.insert(journal);
return countFlag == 2;
}
}