From dfdd2e2a693b01b2e38396cab7e3d9dcc390ff99 Mon Sep 17 00:00:00 2001 From: lizhenhua <1075222162@qq.com> Date: Fri, 19 Sep 2025 16:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/reportforms/beans/OrgConsume.java | 1 + .../controller/reportformsController.java | 18 ++++++++++- .../mapper/reportforms/OrgConsumerMapper.xml | 32 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/beans/OrgConsume.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/beans/OrgConsume.java index d10cc998..387e901f 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/beans/OrgConsume.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/beans/OrgConsume.java @@ -19,6 +19,7 @@ public class OrgConsume { private String endPayTime;//结束支付时间 private String custName; private String custNameLike; + private String remark; private String flowId; private Integer flowType; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java index 0d152943..c1996448 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java @@ -11,7 +11,11 @@ import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; import java.util.List; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; + @RestController @RequestMapping({"/api/v2/report"}) public class reportformsController extends BaseController { @@ -36,7 +40,17 @@ public class reportformsController extends BaseController { * @return */ @PostMapping("/consume/exportExcel") - public void exportExcel(HttpServletResponse response, CanteenRecord orgConsume) { + public void exportExcel(HttpServletResponse response, CanteenRecord orgConsume) throws UnsupportedEncodingException { + if (orgConsume.getCustName() != null && !orgConsume.getCustName().trim().isEmpty()) { + try { + String decodedName = URLDecoder.decode(orgConsume.getCustName(), StandardCharsets.UTF_8.name()); + orgConsume.setCustName(decodedName); + } catch (Exception e) { + // 出错时打印日志,但不要影响后续逻辑 + e.printStackTrace(); + } + } + // 1. 查询数据 List peoplelist = service.getPeoplelist(orgConsume); // 2. 给 flowTypeText 赋值 @@ -45,8 +59,10 @@ public class reportformsController extends BaseController { record.setAmount(record.getAmount()/100); if ("110".equals(record.getFlowType())) { record.setFlowTypeText("消费"); + record.setAmount(-record.getAmount()); } else if ("120".equals(record.getFlowType())) { record.setFlowTypeText("补助"); + record.setAmount(-record.getAmount()); } else if ("130".equals(record.getFlowType())) { record.setFlowTypeText("退款"); } else { diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml index 509405f0..701b7302 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml @@ -591,6 +591,38 @@ rf.flow_type AS flowType, rf.pay_time AS payTime, rf.ord_time AS ordTime, + (SELECT SUM(rf2.flow_amount) + FROM report_account_flow rf2 + LEFT JOIN cust_info ci2 ON rf2.cust_id = ci2.cust_id + LEFT JOIN cust_org co2 ON ci2.org_id = co2.org_id + WHERE rf2.flow_type IN (110, 120) + + AND rf2.cust_id = ci.cust_id + + + AND co2.org_id IN + + #{orgId} + + + AND rf2.pay_time >= #{startPayTime} + AND rf2.pay_time <= #{endPayTime}) AS totalConsume, + (SELECT SUM(rf3.flow_amount) + FROM report_account_flow rf3 + LEFT JOIN cust_info ci3 ON rf3.cust_id = ci3.cust_id + LEFT JOIN cust_org co3 ON ci3.org_id = co3.org_id + WHERE rf3.flow_type = 130 + + AND rf3.cust_id = ci.cust_id + + + AND co3.org_id IN + + #{orgId} + + + AND rf3.pay_time >= #{startPayTime} + AND rf3.pay_time <= #{endPayTime}) AS totalRefund, rf.remark AS remark FROM report_account_flow rf LEFT JOIN cust_info ci ON rf.cust_id = ci.cust_id