sinake
11 小时以前 d3b5c1badd7f652c4d629a97b0c95b06607bb849
器管回款显示列表内容调整
已修改1个文件
74 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java
@@ -16,6 +16,7 @@
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.dto.OrganfeeExportDto;
import com.ruoyi.project.service.IServiceDonorchargeorganService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +26,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -83,6 +85,78 @@
    }
    /**
     * 导出器官费用列表(查询条件与列表接口一致,含报告日期区间)
     */
    @ApiOperation("导出器官费用列表")
    @Log(title = "器官费用", businessType = BusinessType.EXPORT)
    @GetMapping("/exportOrganfee")
    public AjaxResult exportOrganfee(ServiceDonorchargeorgan serviceDonorchargeorgan) {
        log.info("导出器官费用列表的入参:{}", serviceDonorchargeorgan);
        List<ServiceDonorchargeorgan> list = null;
        if (Boolean.TRUE.equals(serviceDonorchargeorgan.getPaymentidIsNotNull())) {
            list = serviceDonorchargeorganService.queryList(serviceDonorchargeorgan);
        } else {
            list = serviceDonorchargeorganService.queryListBypaymentidIsNull(serviceDonorchargeorgan);
        }
        List<OrganfeeExportDto> exportList = new ArrayList<>(list.size());
        for (ServiceDonorchargeorgan serviceDonorchargeorganItem : list) {
            OrganfeeExportDto exportDto = DtoConversionUtils.sourceToTarget(serviceDonorchargeorganItem, OrganfeeExportDto.class);
            exportDto.setOrganStateName(organStateName(serviceDonorchargeorganItem.getOrganState()));
            BigDecimal receivableBalance = receivableBalance(serviceDonorchargeorganItem.getOrgancharge(), serviceDonorchargeorganItem.getAmount());
            exportDto.setReceivableBalance(receivableBalance);
            exportDto.setPayStatus(payStatus(receivableBalance));
            exportList.add(exportDto);
        }
        ExcelUtil<OrganfeeExportDto> util = new ExcelUtil<OrganfeeExportDto>(OrganfeeExportDto.class);
        return util.exportExcel(exportList, "器官费用数据");
    }
    /**
     * 器官状态值转文本
     */
    private String organStateName(String organState) {
        if (StringUtils.isEmpty(organState)) {
            return "";
        }
        switch (organState) {
            case "1":
                return "移植";
            case "2":
                return "弃用";
            case "3":
                return "库存";
            case "4":
                return "失功";
            case "5":
                return "直系免除";
            case "6":
                return "不良事件";
            default:
                return organState;
        }
    }
    /**
     * 应收金额-实收金额的差额,应收金额为空时返回 null
     */
    private BigDecimal receivableBalance(BigDecimal organcharge, BigDecimal amount) {
        if (organcharge == null) {
            return null;
        }
        return organcharge.subtract(amount == null ? BigDecimal.ZERO : amount);
    }
    /**
     * 差额为 0 已付,其它未付
     */
    private String payStatus(BigDecimal receivableBalance) {
        if (receivableBalance == null) {
            return "";
        }
        return receivableBalance.compareTo(BigDecimal.ZERO) == 0 ? "已付" : "未付";
    }
    /**
     * 获取捐献器官详细信息
     */
    @ApiOperation("获取捐献器官详细信息")