From de31eed424e62a219d6378fe193e615a8584ae0c Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 15 八月 2025 14:28:23 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 152 insertions(+), 1 deletions(-)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
index 31520d5..645050d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -1,5 +1,8 @@
package com.dy.pipIrrTerminal.card;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
@@ -17,6 +20,7 @@
import com.dy.pipIrrTerminal.card.enums.ManagementCardStateENUM;
import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM;
import com.dy.pipIrrTerminal.card.enums.RechargeTypeENUM;
+import com.dy.pipIrrTerminal.card.qo.QoTransaction;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +29,7 @@
import org.springframework.transaction.annotation.Transactional;
import com.dy.common.util.IDLongGenerator;
+import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -527,7 +532,7 @@
}
}
- Float balance = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum)).orElse(0f);
+ Float balance = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum, null)).orElse(0f);
Double waterPrice = prWaterPriceMapper.getPrice();
VoTermActiveCard voTermActiveCard = new VoTermActiveCard();
@@ -1414,4 +1419,150 @@
Long totalCount = seClientCardMapper.checkCardAddrExists(cardAddr);
return totalCount != null && totalCount > 0;
}
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍
+ *
+ * @param vo
+ * @return
+ */
+ public Map getTransactions(QoTransaction vo) {
+ DecimalFormat df = new DecimalFormat("0.00");
+ // 琛ラ綈鏌ヨ鏃堕棿
+ String operateTimeStart = vo.operateTimeStart;
+ String operateTimeStop = vo.operateTimeStop;
+ if (operateTimeStart != null) {
+ operateTimeStart = operateTimeStart + " 00:00:00";
+ vo.setOperateTimeStart(operateTimeStart);
+ }
+ if (operateTimeStop != null) {
+ operateTimeStop = operateTimeStop + " 23:59:59";
+ vo.setOperateTimeStop(operateTimeStop);
+ }
+
+ // 鐢熸垚鏌ヨ鍙傛暟
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+ // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+ Long itemTotal = Optional.ofNullable(seCardOperateMapper.getTransactionRecordCount(params)).orElse(0L);
+
+ QueryResultVo<List<VoTradeDetails>> rsVo = new QueryResultVo<>();
+ rsVo.pageSize = vo.pageSize;
+ rsVo.pageCurr = vo.pageCurr;
+ rsVo.calculateAndSet(itemTotal, params);
+
+ rsVo.obj = seCardOperateMapper.getTransactions(params);
+ List<VoTradeDetails> list = rsVo.obj;
+ if (list.size() == 0) {
+ return new HashMap();
+ }
+//鍏冭皨涓�鏈熼檰甯镐附闇�姹傛妸璧犻�侀噾棰濅笌鍏呭�奸噾棰濆垎寮�鏄剧ず
+ for (int i = list.size()-1; i >= 0 ; i--) {
+ Optional.ofNullable(list.get(i).getGift()).orElse(0d);
+ if (!list.get(i).getGift().equals(0d)){
+ Double gift1 = list.get(i).getGift();//璧犻�侀噾棰�
+ String districtTitle = list.get(i).getDistrictTitle();//鍦板潃
+ String clientNum = list.get(i).getClientNum();//鍐滄埛缂栧彿
+ String clientName = list.get(i).getClientName();//鍐滄埛濮撳悕
+ String phone = list.get(i).getPhone();//鎵嬫満鍙�
+ Date tradeTime = list.get(i).getTradeTime();//浜ゆ槗鏃堕棿
+ String orderNumber = list.get(i).getOrderNumber();//璁㈠崟缂栧彿
+ String cardNum = list.get(i).getCardNum();//鍗$紪鍙�
+ String idCard = list.get(i).getIdCard();//韬唤璇�
+ String cashierName = list.get(i).getCashierName();//鎿嶄綔浜�
+ Double money = list.get(i).getMoney();//浣欓
+ Double cardCost1 = list.get(i).getCardCost();//璐崱閲戦
+ Double tradeAmount = list.get(i).getTradeAmount();//浜ゆ槗閲戦
+ Double waterCost1 = list.get(i).getWaterCost();//璐按閲戦
+ Double refundAmount1 = list.get(i).getRefundAmount();//杩斿洖閲戦
+ String paymentName = list.get(i).getPaymentName();//鏀粯鏂瑰紡
+ String operateType = list.get(i).getOperateType();//涓氬姟绫诲瀷
+ String cardState = list.get(i).getCardState();//鍗$姸鎬�
+ Long villageId = list.get(i).getVillageId();//鏉慽d
+ Long cashierId = list.get(i).getCashierId();//鏀堕摱鍛榠d
+
+ list.get(i).setGift(0d);
+ list.get(i).setMoney(money-gift1);
+
+ VoTradeDetails voTradeDetail = new VoTradeDetails();
+ voTradeDetail.setDistrictTitle(districtTitle);//2
+ voTradeDetail.setClientNum(clientNum);//2
+ voTradeDetail.setClientName(clientName);//2
+ voTradeDetail.setPhone(phone);//2
+ voTradeDetail.setOperateType("璧犻��");//2
+ voTradeDetail.setTradeTime(tradeTime);//2
+ voTradeDetail.setWaterCost(0d);//2
+ voTradeDetail.setCardCost(0d);//2
+ voTradeDetail.setGift(gift1);//2
+ voTradeDetail.setTradeAmount(0d);//2
+ voTradeDetail.setRefundAmount(refundAmount1);//2
+ voTradeDetail.setMoney(money);//寰�2
+ voTradeDetail.setPaymentName("璧犻��");//2
+ voTradeDetail.setOrderNumber(orderNumber);//2
+ voTradeDetail.setCardNum(cardNum);//2
+ voTradeDetail.setIdCard(idCard);//2
+ voTradeDetail.setCashierName(cashierName);//2
+ voTradeDetail.setCashierId(cashierId);//2
+ voTradeDetail.setCardState(cardState);//2
+ voTradeDetail.setVillageId(villageId);//2
+
+ list.add(voTradeDetail);
+ itemTotal = itemTotal + 1;
+ }
+ }
+ list.sort(Comparator.comparing(VoTradeDetails::getTradeTime));
+ rsVo.obj = list;
+ rsVo.calculateAndSet(itemTotal, params);
+
+ // 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬昏喘姘撮噾棰濄�佽喘鍗¢噾棰�
+ Double totalWaterCost = 0.0;
+ Double totalCardCost = 0.0;
+ Double totalGift = 0.0;
+ Double totalRefund = 0.0;
+
+ JSONArray array = JSONArray.parseArray(JSON.toJSONString(list));
+ for (int i = 0; i < array.size(); i++) {
+ JSONObject job = array.getJSONObject(i);
+ Double waterCost = Optional.ofNullable(job.getDouble("waterCost")).orElse(0.0);
+ Double cardCost = Optional.ofNullable(job.getDouble("cardCost")).orElse(0.0);
+ Double gift = Optional.ofNullable(job.getDouble("gift")).orElse(0.0);
+ Double refundAmount = Optional.ofNullable(job.getDouble("refundAmount")).orElse(0.0);
+
+ totalWaterCost = totalWaterCost + waterCost;
+ totalCardCost = totalCardCost + cardCost;
+ totalGift = totalGift + gift;
+ totalRefund = totalRefund + refundAmount;
+ }
+
+ Map map_record = new HashMap();
+ map_record.put("list", rsVo);
+
+ Map map_result = new HashMap();
+ map_result.put("waterCost", df.format(totalWaterCost));
+ map_result.put("cardCost", df.format(totalCardCost));
+ map_result.put("gift", df.format(totalGift));
+ map_result.put("refund", df.format(totalRefund));
+
+ map_result.put("records", map_record);
+
+ return map_result;
+ }
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鎴栨按鍗″湴鍧�鑾峰彇鎿嶄綔璁板綍鍙婁綑棰�
+ * @param cardNum
+ * @return
+ */
+ public Map getOperateRecordsAndMoney(Long cardNum, String cardAddr) {
+
+ List<Map<String, Object>> list = Optional.ofNullable(seClientCardMapper.getOperateRecordsByCardNum(cardNum, cardAddr)).orElse(new ArrayList<>());
+ Float mondy = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum, cardAddr)).orElse(0f);
+ Float amount = Optional.ofNullable(seClientCardMapper.sumRechargeByCardNum(cardNum, cardAddr)).orElse(0f);
+
+ Map map = new HashMap();
+ map.put("mondy", mondy);
+ map.put("amount", amount);
+ map.put("list", list);
+ return map;
+ }
}
--
Gitblit v1.8.0