sinake
2 天以前 49120f2b9db33455756a911e56cfefd7c3120a14
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
@@ -11,6 +11,8 @@
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.FunddetailReqVo;
import com.ruoyi.project.domain.ServiceFunddetail;
import com.ruoyi.project.domain.SpStatBonus;
import com.ruoyi.project.domain.SpStatBonusDept;
import com.ruoyi.project.domain.SpStatBonusReq;
import com.ruoyi.project.domain.vo.TaxMoneyByItemEO;
import com.ruoyi.project.domain.vo.TaxMoneySumEO;
@@ -22,6 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
@@ -220,4 +223,71 @@
        startPage();
        return getDataTable(serviceFunddetailService.getListBySpStatBonus(spStatBonusReq));
    }
    /**
     * 导出绩效奖金统计
     */
    @ApiOperation("导出绩效奖金统计")
    @Log(title = "绩效统计", businessType = BusinessType.EXPORT)
    @GetMapping("/exportBonus")
    public AjaxResult exportBonus(SpStatBonusReq spStatBonusReq) {
        List<SpStatBonus> list = serviceFunddetailService.getListBySpStatBonus(spStatBonusReq);
        // 金额 0.00 不显示
        for (SpStatBonus row : list) {
            row.setAmount(blankZero(row.getAmount()));
            row.setMamount(blankZero(row.getMamount()));
            row.setSamount(blankZero(row.getSamount()));
            row.setYamount(blankZero(row.getYamount()));
        }
        ExcelUtil<SpStatBonus> util = new ExcelUtil<SpStatBonus>(SpStatBonus.class);
        return util.exportExcel(list, "绩效统计数据");
    }
    /**
     * 导出绩效统计(按业务组)
     */
    @ApiOperation("导出绩效统计(按业务组)")
    @Log(title = "绩效统计", businessType = BusinessType.EXPORT)
    @GetMapping("/exportBonusDept")
    public AjaxResult exportBonusDept(SpStatBonusReq spStatBonusReq) {
        List<SpStatBonus> list = serviceFunddetailService.getListBySpStatBonus(spStatBonusReq);
        Map<String, SpStatBonusDept> grouped = new LinkedHashMap<String, SpStatBonusDept>();
        for (SpStatBonus row : list) {
            String key = row.getDeptId() != null ? String.valueOf(row.getDeptId()) : row.getDeptName();
            if (key == null) {
                key = "";
            }
            SpStatBonusDept dept = grouped.get(key);
            if (dept == null) {
                dept = new SpStatBonusDept();
                dept.setDeptname(row.getDeptName() == null ? "未分组" : row.getDeptName());
                dept.setAmount(BigDecimal.ZERO);
                dept.setMamount(BigDecimal.ZERO);
                dept.setSamount(BigDecimal.ZERO);
                dept.setYamount(BigDecimal.ZERO);
                grouped.put(key, dept);
            }
            dept.setAmount(dept.getAmount().add(nz(row.getAmount())));
            dept.setMamount(dept.getMamount().add(nz(row.getMamount())));
            dept.setSamount(dept.getSamount().add(nz(row.getSamount())));
            dept.setYamount(dept.getYamount().add(nz(row.getYamount())));
        }
        List<SpStatBonusDept> result = new ArrayList<SpStatBonusDept>(grouped.values());
        for (SpStatBonusDept dept : result) {
            dept.setAmount(blankZero(dept.getAmount()));
            dept.setMamount(blankZero(dept.getMamount()));
            dept.setSamount(blankZero(dept.getSamount()));
            dept.setYamount(blankZero(dept.getYamount()));
        }
        ExcelUtil<SpStatBonusDept> util = new ExcelUtil<SpStatBonusDept>(SpStatBonusDept.class);
        return util.exportExcel(result, "绩效统计(按业务组)");
    }
    private BigDecimal nz(BigDecimal value) {
        return value == null ? BigDecimal.ZERO : value;
    }
    private BigDecimal blankZero(BigDecimal value) {
        return (value == null || value.compareTo(BigDecimal.ZERO) == 0) ? null : value;
    }
}