service/src/main/java/com/ruoyi/cwgl/controller/InvoiceManageController.java
@@ -1,6 +1,8 @@ package com.ruoyi.cwgl.controller; import java.util.List; import com.ruoyi.common.core.domain.R; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -98,23 +100,15 @@ */ @PreAuthorize("@ss.hasPermi('cwgl:invoiceManage:apply')") @Log(title = "发票管理", businessType = BusinessType.UPDATE) @PostMapping("/apply") public AjaxResult applyInvoice(@RequestBody InvoiceManage invoiceManage) @PostMapping("/apply/{id}") public AjaxResult applyInvoice(@PathVariable("id") Integer id) { try { // 调用服务层方法处理申请开票逻辑 int result = invoiceManageService.updateInvoiceManage(invoiceManage); if (result > 0) { // 记录申请开票日志 recordApplyInvoiceLog(invoiceManage); return AjaxResult.success("申请开票成功"); } else { return AjaxResult.error("申请开票失败"); } } catch (Exception e) { return AjaxResult.error("申请开票异常:" + e.getMessage()); } return invoiceManageService.applyInvoice(id); } /** @@ -139,47 +133,4 @@ return toAjax(invoiceManageService.deleteInvoiceManageByIds(ids)); } /** * 记录申请开票日志 * * @param invoiceManage 发票管理对象 */ private void recordApplyInvoiceLog(InvoiceManage invoiceManage) { try { InvoiceManageLog log = new InvoiceManageLog(); log.setInvoiceManageId(invoiceManage.getId()); log.setOperator(getUsername()); log.setOperationTime(new java.util.Date()); // 构建操作描述,包含开票金额、关联账单编号和对应开票金额 StringBuilder descBuilder = new StringBuilder(); descBuilder.append("申请开票: "); if (invoiceManage.getInvoiceAmount() != null) { descBuilder.append("开票金额=").append(invoiceManage.getInvoiceAmount()).append("; "); } // 获取关联账单信息 if (invoiceManage.getInvoiceDetailList() != null && !invoiceManage.getInvoiceDetailList().isEmpty()) { descBuilder.append("关联账单信息: "); for (com.ruoyi.cwgl.domain.InvoiceDetail detail : invoiceManage.getInvoiceDetailList()) { if (detail.getReceivableBillNo() != null) { descBuilder.append("账单编号=").append(detail.getReceivableBillNo()); } if (detail.getCurrentBilledAmount() != null) { descBuilder.append(", 本次开票金额=").append(detail.getCurrentBilledAmount()); } descBuilder.append("; "); } } log.setOperationDesc(descBuilder.toString()); log.setCreateTime(new java.util.Date()); invoiceManageLogService.insertInvoiceManageLog(log); } catch (Exception e) { logger.error("记录申请开票日志失败: {}", e.getMessage()); } } } service/src/main/java/com/ruoyi/cwgl/service/IInvoiceManageService.java
@@ -1,6 +1,8 @@ package com.ruoyi.cwgl.service; import java.util.List; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.cwgl.domain.InvoiceManage; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -106,4 +108,11 @@ * @param invoiceManage 发票管理对象 */ public void insertInvoiceDetail(InvoiceManage invoiceManage); /** * 申请开票 * @param id * @return */ AjaxResult applyInvoice(Integer id); } service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java
@@ -4,6 +4,7 @@ import java.util.Date; import java.util.List; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import javax.annotation.Resource; @@ -157,8 +158,8 @@ public int updateInvoiceManage(InvoiceManage invoiceManage) { invoiceManage.setUpdateTime(DateUtils.getNowDate()); // invoiceManageMapper.deleteInvoiceDetailByInvoiceManageId(invoiceManage.getId()); // insertInvoiceDetail(invoiceManage); invoiceManageMapper.deleteInvoiceDetailByInvoiceManageId(invoiceManage.getId()); insertInvoiceDetail(invoiceManage); int rows = invoiceManageMapper.updateInvoiceManage(invoiceManage); // 记录修改发票管理日志 @@ -300,4 +301,54 @@ logger.error("记录发票管理操作日志失败: {}", e.getMessage()); } } @Override public AjaxResult applyInvoice(Integer id) { return AjaxResult.success("申请开票成功"); } /** * 记录申请开票日志 * * @param invoiceManage 发票管理对象 */ private void recordApplyInvoiceLog(InvoiceManage invoiceManage) { try { InvoiceManageLog log = new InvoiceManageLog(); log.setInvoiceManageId(invoiceManage.getId()); log.setOperator(SecurityUtils.getUsername()); log.setOperationTime(new java.util.Date()); // 构建操作描述,包含开票金额、关联账单编号和对应开票金额 StringBuilder descBuilder = new StringBuilder(); descBuilder.append("申请开票: "); if (invoiceManage.getInvoiceAmount() != null) { descBuilder.append("开票金额=").append(invoiceManage.getInvoiceAmount()).append("; "); } // 获取关联账单信息 if (invoiceManage.getInvoiceDetailList() != null && !invoiceManage.getInvoiceDetailList().isEmpty()) { descBuilder.append("关联账单信息: "); for (com.ruoyi.cwgl.domain.InvoiceDetail detail : invoiceManage.getInvoiceDetailList()) { if (detail.getReceivableBillNo() != null) { descBuilder.append("账单编号=").append(detail.getReceivableBillNo()); } if (detail.getCurrentBilledAmount() != null) { descBuilder.append(", 本次开票金额=").append(detail.getCurrentBilledAmount()); } descBuilder.append("; "); } } log.setOperationDesc(descBuilder.toString()); log.setCreateTime(new java.util.Date()); invoiceManageLogService.insertInvoiceManageLog(log); } catch (Exception e) { logger.error("记录申请开票日志失败: {}", e.getMessage()); } } }