From a485c380200759905753498875dd260cce9cddf7 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期三, 28 十月 2026 17:02:18 +0800
Subject: [PATCH] 修改了统计
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
index 4dc7e41..d03d66f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
+++ b/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;
@@ -87,6 +90,13 @@
@PostMapping("/add")
@NotRepeatCommit(key = "param:arg[1]", value = 30000)
public AjaxResult add(@RequestBody ServiceFunddetail serviceFunddetail) {
+ // 2026-10-15锛氶檮浠舵枃浠跺悕瑙勮寖浜屾鏍¢獙锛堜笌鍓嶇 opo-web/src/utils/fileNameCheck.js 鍚屽彛寰勶紝
+ // 鐩殑鏄槻姝㈢粫杩囧墠绔洿鎺ヨ皟鎺ュ彛淇濆瓨涓嶅悎瑙勯檮浠跺悕锛夈�傛柊澧炲満鏅病鏈夊巻鍙查檮浠讹紝鐢ㄤ弗鏍兼ā寮忋��
+ String nameError = com.ruoyi.project.common.AttachmentNameValidator
+ .checkJsonList(serviceFunddetail.getInvoicefiles(), serviceFunddetail.getAnnexfiles());
+ if (nameError != null) {
+ return AjaxResult.error("闄勪欢鏂囦欢鍚嶄笉绗﹀悎瑕佹眰锛屾棤娉曚繚瀛橈細" + nameError);
+ }
boolean save = serviceFunddetailService.save(serviceFunddetail);
return AjaxResult.success(serviceFunddetail);
}
@@ -101,6 +111,24 @@
@NotRepeatCommit(key = "param:arg[1]", value = 30000)
public AjaxResult edit(@RequestBody ServiceFunddetail serviceFunddetail) {
log.info("淇敼鐨勬暟鎹俊鎭細{}", serviceFunddetail);
+ // 2026-10-15锛氶檮浠舵枃浠跺悕瑙勮寖浜屾鏍¢獙銆備慨鏀瑰満鏅寜涓氬姟鍙e緞"鍙牎楠屾湰娆″彉鏇寸殑闄勪欢"锛�
+ // 淇濆瓨鍓嶈鏄庣粏宸插瓨鍦ㄧ殑鍘嗗彶闄勪欢鍚嶄笉鍙備笌鏍¢獙锛屽惁鍒欒�佸崟鎹紙鍘嗗彶涓嶅悎瑙勫悕鍗犳瘮寰堥珮锛夋敼涓噾棰濋兘瀛樹笉杩涘幓銆�
+ java.util.Set<String> existingNames = new java.util.HashSet<>();
+ if (serviceFunddetail.getId() != null) {
+ ServiceFunddetail oldDetail = serviceFunddetailService.getById(serviceFunddetail.getId());
+ if (oldDetail != null) {
+ existingNames.addAll(com.ruoyi.project.common.AttachmentNameValidator
+ .collectNames(oldDetail.getInvoicefiles()));
+ existingNames.addAll(com.ruoyi.project.common.AttachmentNameValidator
+ .collectNames(oldDetail.getAnnexfiles()));
+ }
+ }
+ String nameError = com.ruoyi.project.common.AttachmentNameValidator
+ .checkJsonListForUpdate(existingNames, serviceFunddetail.getInvoicefiles(),
+ serviceFunddetail.getAnnexfiles());
+ if (nameError != null) {
+ return AjaxResult.error("闄勪欢鏂囦欢鍚嶄笉绗﹀悎瑕佹眰锛屾棤娉曚繚瀛橈細" + nameError);
+ }
return toAjax(serviceFunddetailService.updateById(serviceFunddetail));
}
@@ -195,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;
+ }
}
--
Gitblit v1.9.3