From f6fdc5ff373d197dff7c96b2009aab36af7bb661 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 13 Aug 2025 15:50:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=9B=B4=E6=96=B0=E5=BA=94?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsPayableService 接口中添加了 updatePaidAmountAndAddJournal 方法 - 在 WmsPayableController 中添加了 updatePaidAmount 控制器方法- 在 WmsPayableServiceImpl 中实现了 updatePaidAmountAndAddJournal 方法 - 新增了应付款已付金额更新和资金日记账添加的功能 --- .../klp/controller/WmsPayableController.java | 11 +++++ .../com/klp/service/IWmsPayableService.java | 5 +++ .../service/impl/WmsPayableServiceImpl.java | 45 +++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsPayableController.java b/klp-wms/src/main/java/com/klp/controller/WmsPayableController.java index 41193bea..dcabe6b3 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsPayableController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsPayableController.java @@ -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 updatePaidAmount(@RequestBody WmsPayableBo bo) { + return toAjax(iWmsPayableService.updatePaidAmountAndAddJournal(bo)); + } + /** * 修改应付款管理(宽松版) */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsPayableService.java b/klp-wms/src/main/java/com/klp/service/IWmsPayableService.java index 7a7c6c45..bcda1850 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsPayableService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsPayableService.java @@ -46,4 +46,9 @@ public interface IWmsPayableService { * 校验并批量删除应付款管理(宽松版)信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 更新应付款管理(宽松版)的已付款金额和添加流水 + */ + Boolean updatePaidAmountAndAddJournal(WmsPayableBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsPayableServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsPayableServiceImpl.java index a48db454..8484edbd 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsPayableServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsPayableServiceImpl.java @@ -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; + } }