wujianwei
2025-12-22 babfb0032090ec99403ed1410b42aa17b78486c3
修改生成账单
3个文件已修改
53 ■■■■ 已修改文件
service/src/main/java/com/ruoyi/cwgl/controller/ReceivableFeeManagementController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/vo/ReceivableFeeStatisticsVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/controller/ReceivableFeeManagementController.java
@@ -17,8 +17,8 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.cwgl.domain.ReceivableFeeManagement;
import com.ruoyi.cwgl.service.IReceivableFeeManagementService;
import com.ruoyi.cwgl.domain.vo.ReceivableBillCreateVo;
import com.ruoyi.cwgl.service.IReceivableFeeManagementService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -126,7 +126,7 @@
    @PostMapping("/createBill")
    public AjaxResult createBill(@RequestBody ReceivableBillCreateVo billCreateVo)
    {
        Integer billId = receivableFeeManagementService.createReceivableBill(billCreateVo);
        return AjaxResult.success(billId);
        return toAjax(receivableFeeManagementService.createReceivableBill(billCreateVo));
    }
}
service/src/main/java/com/ruoyi/cwgl/domain/vo/ReceivableFeeStatisticsVo.java
@@ -41,4 +41,9 @@
     * 明细列表
     */
    private List<ReceivableFeeDetail> detailList;
    /**
     * 应收费用主表id集合
     */
    private Integer[] ids;
}
service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java
@@ -2,6 +2,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
@@ -263,6 +264,7 @@
        result.setTotalAmountRmb(totalReceivableAmount);
        result.setTotalAmountHkd(totalAmountHkd);
        result.setDetailList(detailList);
        result.setIds(ids);
        
        return result;
    }
@@ -300,36 +302,26 @@
        }
        // 4. 保存主账单记录
        receivableBillManagementService.insertReceivableBillManagement(billManagement);
        Integer billId = billManagement.getId();
        int i = receivableBillManagementService.insertReceivableBillManagement(billManagement);
        // 5. 创建应收账单结算明细
        List<ReceivableBillSettlementDetail> detailList = new java.util.ArrayList<>();
        for (ReceivableFeeDetail feeDetail : statisticsVo.getDetailList()) {
            ReceivableBillSettlementDetail settlementDetail = new ReceivableBillSettlementDetail();
            settlementDetail.setBillId(billId);
        // 5. 更新应收费用主表的关联账单编号
        if (statisticsVo.getIds() != null && statisticsVo.getIds().length > 0) {
            // 获取生成的账单系统编号
            String billSystemNo = billManagement.getSystemNo();
            
            // 根据账单类型设置明细金额
            if (billType == 0) {
                // 人民币账单使用原金额
                settlementDetail.setReceiptAmount(feeDetail.getBillingAmount());
            } else {
                // 港币账单转换金额
                settlementDetail.setReceiptAmount(feeDetail.getBillingAmount().divide(statisticsVo.getRate(), 2, RoundingMode.HALF_UP));
            // 批量更新应收费用主表的关联账单编号
            List<ReceivableFeeManagement> feeManagements = new ArrayList<>();
            for (Integer feeId : statisticsVo.getIds()) {
                ReceivableFeeManagement feeManagement = new ReceivableFeeManagement();
                feeManagement.setId(feeId);
                feeManagement.setRelatedBillNo(billSystemNo);
                feeManagements.add(feeManagement);
            }
            
            // 设置其他明细信息
            settlementDetail.setSettlementMethod("0"); // 默认为空,后续可以更新
            settlementDetail.setCreateTime(DateUtils.getNowDate());
            detailList.add(settlementDetail);
            // 调用批量更新方法
            updateReceivableFeeManagementBatch(feeManagements);
        }
        // 6. 批量保存明细记录
        if (!detailList.isEmpty()) {
            receivableBillSettlementDetailService.insertReceivableBillSettlementDetailBatch(detailList);
        }
        return billId;
        return i;
    }
}