From 49120f2b9db33455756a911e56cfefd7c3120a14 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期三, 28 十月 2026 17:05:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/SpStatExpenseController.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/SpStatExpenseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/SpStatExpenseController.java
index 1addef2..112822e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/SpStatExpenseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/SpStatExpenseController.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.SpStatExpense;
+import com.ruoyi.project.domain.SpStatExpenseDept;
import com.ruoyi.project.domain.SpStatExpenseReq;
import com.ruoyi.project.service.SpstatExpenseService;
import io.swagger.annotations.Api;
@@ -20,7 +21,10 @@
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
/**
* 鎶ラ攢缁熻
@@ -68,6 +72,56 @@
return util.exportExcel(list, "璐圭敤缁熻鏁版嵁");
}
+ /**
+ * 瀵煎嚭璐圭敤缁熻锛堟寜涓氬姟缁勶級
+ */
+ @ApiOperation("瀵煎嚭璐圭敤缁熻锛堟寜涓氬姟缁勶級")
+ @Log(title = "璐圭敤缁熻", businessType = BusinessType.EXPORT)
+ @GetMapping("/exportDept")
+ public AjaxResult exportDept(SpStatExpenseReq spStatExpenseReq) {
+ List<SpStatExpense> list = spstatExpenseService.getListBySpstatExpense(spStatExpenseReq);
+ Map<String, SpStatExpenseDept> grouped = new LinkedHashMap<String, SpStatExpenseDept>();
+ for (SpStatExpense row : list) {
+ String key = row.getDeptmentno() != null ? row.getDeptmentno() : row.getDeptmentName();
+ if (key == null) {
+ key = "";
+ }
+ SpStatExpenseDept dept = grouped.get(key);
+ if (dept == null) {
+ dept = new SpStatExpenseDept();
+ dept.setDeptname(row.getDeptmentName() == null ? "鏈垎缁�" : row.getDeptmentName());
+ dept.setAmount(BigDecimal.ZERO);
+ dept.setExpertfee(BigDecimal.ZERO);
+ dept.setEthicalistfee(BigDecimal.ZERO);
+ dept.setMedicalcost(BigDecimal.ZERO);
+ dept.setOfficecost(BigDecimal.ZERO);
+ dept.setReimcost(BigDecimal.ZERO);
+ grouped.put(key, dept);
+ }
+ dept.setAmount(dept.getAmount().add(nz(row.getAmount())));
+ dept.setExpertfee(dept.getExpertfee().add(nz(row.getExpertfee())));
+ dept.setEthicalistfee(dept.getEthicalistfee().add(nz(row.getEthicalistfee())));
+ dept.setMedicalcost(dept.getMedicalcost().add(nz(row.getMedicalcost())));
+ dept.setOfficecost(dept.getOfficecost().add(nz(row.getOfficecost())));
+ dept.setReimcost(dept.getReimcost().add(nz(row.getReimcost())));
+ }
+ List<SpStatExpenseDept> result = new ArrayList<SpStatExpenseDept>(grouped.values());
+ for (SpStatExpenseDept dept : result) {
+ dept.setAmount(blankZero(dept.getAmount()));
+ dept.setExpertfee(blankZero(dept.getExpertfee()));
+ dept.setEthicalistfee(blankZero(dept.getEthicalistfee()));
+ dept.setMedicalcost(blankZero(dept.getMedicalcost()));
+ dept.setOfficecost(blankZero(dept.getOfficecost()));
+ dept.setReimcost(blankZero(dept.getReimcost()));
+ }
+ ExcelUtil<SpStatExpenseDept> util = new ExcelUtil<SpStatExpenseDept>(SpStatExpenseDept.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;
}
--
Gitblit v1.9.3