wujianwei
2026-01-06 350267802d21cab53d5ec2c39e404d5649be3524
service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java
@@ -1,11 +1,14 @@
package com.ruoyi.cwgl.service.impl;
import java.util.ArrayList;
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;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.cwgl.domain.InvoiceDetail;
import org.springframework.transaction.annotation.Transactional;
@@ -108,7 +111,6 @@
     * @param invoiceManage 发票管理
     * @return 结果
     */
    @Transactional
    @Override
    public int insertInvoiceManage(InvoiceManage invoiceManage)
    {
@@ -156,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);
        
        // 记录修改发票管理日志
@@ -245,6 +247,7 @@
            for (InvoiceDetail invoiceDetail : invoiceDetailList)
            {
                invoiceDetail.setInvoiceManageId(id);
                invoiceDetail.setCreateTime(new Date());
                list.add(invoiceDetail);
            }
            if (list.size() > 0)
@@ -265,7 +268,7 @@
        try {
            InvoiceManageLog log = new InvoiceManageLog();
            log.setInvoiceManageId(invoiceManage.getId());
            log.setOperator(invoiceManage.getCreateBy());
            log.setOperator(SecurityUtils.getUsername());
            log.setOperationTime(DateUtils.getNowDate());
            
            // 构建操作描述,包含开票金额、关联账单编号和对应开票金额
@@ -298,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());
        }
    }
}