From 5cc987c2c45f4f327cb8377f5cb95f735e6db4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Fri, 17 Jul 2026 16:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E6=94=B6=E8=B4=A6=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BillManageApplicationService.java | 57 +++++++++++++++++++ .../interfaces/facadeApi/BillManageApi.java | 13 +++++ 2 files changed, 70 insertions(+) diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java index f59c2a3a6..6fc40bd3c 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java @@ -744,6 +744,63 @@ public class BillManageApplicationService { return billManageDomainService.synchronousNcSK(businessDocumentDetaliIds); } + /** + * 修改账单明细 + */ + @Transactional + public Boolean updateBillDetail(BillManageDTO billManageDTO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + throw new DigitalLogisticsException(UserError.TIMEOUT); + } + BillDetailDTO detailDTO = billManageDTO.getBillDetailDTOList() != null && !billManageDTO.getBillDetailDTOList().isEmpty() + ? billManageDTO.getBillDetailDTOList().get(0) : null; + if (detailDTO == null || detailDTO.getBillDetailId() == null) { + throw new ServiceException("明细id不能为空"); + } + BillDetailPO billDetailPO = billDetailDomainService.getInfo(detailDTO.getBillDetailId()); + if (billDetailPO == null) { + throw new ServiceException("明细不存在"); + } + BillManagePO billManagePO = billManageDomainService.getInfo(billDetailPO.getBillManageId()); + if (billManagePO == null || billManagePO.getBillState() != 1) { + throw new ServiceException("账单状态不为未确认,不可修改明细"); + } + BillDetailDO billDetailDO = new BillDetailDO(); + BeanUtils.copyProperties(detailDTO, billDetailDO); + billDetailDO.setBillDetailId(detailDTO.getBillDetailId()); + billDetailDO.setInvoiceItem(detailDTO.getFirstSubjectCode()); + billDetailDO.setInvoiceItemName(detailDTO.getFirstSubjectName()); + billDetailDO.setFeeType(detailDTO.getServiceItemsName()); + billDetailDO.setUpdateBy(loginUser.getUserid()); + billDetailDO.setUpdateByName(loginUser.getUserPo().getUserName()); + billDetailDO.setUpdateTime(new Date()); + Boolean flag = billDetailDomainService.update(billDetailDO); + // 重新计算账单总金额并更新主表 + List allDetails = billDetailDomainService.getDetailsByBillManageId(billManagePO.getBillManageId()); + allDetails = allDetails.stream().map(item -> { + if (item.getBillDetailId().equals(detailDTO.getBillDetailId())) { + item.setBillingTotalAmount(detailDTO.getBillingTotalAmount()); + item.setBillingAmount(detailDTO.getBillingAmount()); + item.setBillingDiscountAmount(detailDTO.getBillingDiscountAmount()); + } + return item; + }).collect(Collectors.toList()); + BigDecimal totalAmount = allDetails.stream().map(BillDetailPO::getBillingTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal amount = allDetails.stream().map(BillDetailPO::getBillingAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal discountAmount = allDetails.stream().map(BillDetailPO::getBillingDiscountAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BillManageDO billManageDO = new BillManageDO(); + billManageDO.setBillManageId(billManagePO.getBillManageId()); + billManageDO.setBillTotalAmount(totalAmount); + billManageDO.setBillAmount(amount); + billManageDO.setBillAmountUnsettled(amount); + billManageDO.setBillDiscountAmount(discountAmount); + billManageDO.setUpdateBy(loginUser.getUserid()); + billManageDO.setUpdateByName(loginUser.getUserPo().getUserName()); + billManageDO.setUpdateTime(new Date()); + Boolean flagTwo = billManageDomainService.update(billManageDO); + return flag && flagTwo; + } } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java index 464952268..bef4396b4 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java @@ -229,6 +229,19 @@ public class BillManageApi extends BaseController{ } + @ApiOperation("修改账单明细") + @PostMapping("/updateBillDetail") + public AjaxResult updateBillDetail(@RequestBody BillManageDTO billManageDTO) + { + try { + billManageApplicationService.updateBillDetail(billManageDTO); + return AjaxResult.success("操作成功"); + }catch (Exception e){ + return AjaxResult.error("修改明细失败:"+e.getMessage()); + } + } + + @ApiOperation("新增账单") @PostMapping("/addBill") public AjaxResult addBill(@RequestBody BillManageDTO billManageDTO)