From 171c413e6a3d1e4c24fae4fa54fcb7982a1a822d Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 28 三月 2026 15:35:31 +0800
Subject: [PATCH] 销售看板统计的汇总
---
src/main/java/com/ruoyi/home/controller/HomeController.java | 17 +++++
src/main/java/com/ruoyi/home/service/HomeService.java | 2
src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java | 133 ++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 25 ++++++++
4 files changed, 175 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/home/controller/HomeController.java b/src/main/java/com/ruoyi/home/controller/HomeController.java
index fcdfc16..bf4eb14 100644
--- a/src/main/java/com/ruoyi/home/controller/HomeController.java
+++ b/src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -1,14 +1,17 @@
package com.ruoyi.home.controller;
import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.energy.vo.EnergyStatisticsVo;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.domain.R;
import com.ruoyi.home.annotation.DefaultType;
import com.ruoyi.home.dto.*;
import com.ruoyi.home.service.HomeService;
import com.ruoyi.dto.MapDto;
+import com.ruoyi.productionPlan.service.SalesDeliveryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +29,7 @@
* @date : 2025/7/25 9:15
*/
@RestController
-@Api(tags = "棣栭〉缁熻")
+@Api(tags = "缁熻")
@RequestMapping("/home")
public class HomeController extends BaseController {
@@ -321,4 +324,16 @@
return AjaxResult.success(list);
}
+
+
+
+
+ /*******************************************瀹佸涓洓寤烘潗鐨勫ぇ灞忕粺璁�***************************************************/
+
+ @GetMapping("/total")
+ @ApiOperation("閿�鍞粺璁$湅鏉�---鎬绘暟鎹眹鎬�")
+ public AjaxResult total() {
+ return AjaxResult.success(homeService.total());
+ }
+
}
diff --git a/src/main/java/com/ruoyi/home/service/HomeService.java b/src/main/java/com/ruoyi/home/service/HomeService.java
index 2c3c89b..0626812 100644
--- a/src/main/java/com/ruoyi/home/service/HomeService.java
+++ b/src/main/java/com/ruoyi/home/service/HomeService.java
@@ -95,4 +95,6 @@
QualityStatisticsDto qualityInspectionStatistics(Integer type);
List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processIds);
+
+ Map<String,Long> total();
}
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 2d3e608..988804f 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.mapper.AccountIncomeMapper;
import com.ruoyi.account.pojo.AccountExpense;
@@ -41,6 +42,9 @@
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.production.pojo.ProductWorkOrder;
+import com.ruoyi.productionPlan.enums.AddressRegionEnum;
+import com.ruoyi.productionPlan.mapper.SalesDeliveryMapper;
+import com.ruoyi.productionPlan.pojo.SalesDelivery;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
@@ -145,12 +149,15 @@
@Autowired
private ProductProcessMapper productProcessMapper;
-
+
@Autowired
private AccountExpenseMapper accountExpenseMapper;
@Autowired
private AccountIncomeMapper accountIncomeMapper;
+
+ @Autowired
+ private SalesDeliveryMapper salesDeliveryMapper;
@Override
public HomeBusinessDto business() {
@@ -2512,4 +2519,20 @@
return productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processIds);
}
+
+ @Override
+ public Map<String, Long> total() {
+ Map<String, Long> map = new HashMap<>();
+ //鎬婚攢鍞噾棰�
+ List<SalesDelivery> salesDeliveries = salesDeliveryMapper.selectList(null);
+ long sum = salesDeliveries.stream().mapToLong(value -> Long.parseLong(value.getPrice().toString())).sum();
+ map.put("price",sum/1000);//鍗曚綅w
+ //鎬诲彂璐у崟
+ map.put("delivery",salesDeliveries.stream().count());
+ //鎬婚攢鍞尯?
+ //绱瀹㈡埛
+ Long count = customerMapper.selectCount(null);
+ map.put("customer",count);
+ return map;
+ }
}
diff --git a/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java b/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java
new file mode 100644
index 0000000..5269a25
--- /dev/null
+++ b/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java
@@ -0,0 +1,133 @@
+package com.ruoyi.productionPlan.enums;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鍦板潃褰掑睘鍦版灇涓�
+ * 鏍规嵁鍦板潃鍏抽敭瀛楄嚜鍔ㄥ尮閰嶏細閾跺窛/鐭冲槾灞�/鍚村繝/鍥哄師/涓崼/鑷彁/鍐呰挋鍙�/鍏朵粬
+ */
+@Getter
+public enum AddressRegionEnum {
+
+ /**
+ * 閾跺窛甯�
+ */
+ YINCHUAN("閾跺窛", Arrays.asList("鍏村簡", "瑗垮", "閲戝嚖", "姘稿畞", "璐哄叞", "鐏垫")),
+
+ /**
+ * 鐭冲槾灞卞競
+ */
+ SHIZUISHAN("鐭冲槾灞�", Arrays.asList("澶ф鍙�", "骞崇綏", "鎯犲啘", "鍒╅��")),
+
+ /**
+ * 鍚村繝甯�
+ */
+ WUZHONG("鍚村繝", Arrays.asList("绾㈠鍫�", "鐩愭睜", "鍚屽績", "闈掗摐宄�")),
+
+ /**
+ * 鍥哄師甯�
+ */
+ GUYUAN("鍥哄師",Arrays.asList("鍘熷窞", "娉炬簮", "褰槼", "涓畞", "娴峰師", "闅嗗痉", "瑗垮悏")),
+
+ /**
+ * 涓崼甯�
+ */
+ ZHONGWEI("涓崼", Arrays.asList("娌欏潯澶�", "涓畞", "娴峰師")),
+
+ /**
+ * 鑷彁
+ */
+ SELF_PICKUP("鑷彁", Arrays.asList("鑷彁")),
+
+ /**
+ * 鍐呰挋鍙わ紙鍖呭惈浣犳彁渚涚殑鎵�鏈夊尯鍘垮叧閿瓧锛�
+ */
+ INNER_MONGOLIA("鍐呰挋鍙�", Arrays.asList(
+ // 鍛煎拰娴╃壒
+ "鍛煎拰娴╃壒", "鏂板煄", "鍥炴皯", "鐜夋硥", "璧涚綍", "鍦熼粯鐗瑰乏鏃�", "鍦熼粯鐗�", "鎵樺厠鎵�", "鍜屾灄鏍煎皵", "娓呮按娌�", "姝﹀窛",
+ // 鍖呭ご
+ "鍖呭ご", "涓滄渤", "鏄嗛兘浠�", "闈掑北", "鐭虫嫄", "鐧戒簯閯傚崥", "涔濆師", "鍦熼粯鐗瑰彸鏃�", "鍥洪槼", "杈惧皵缃曡寕鏄庡畨鑱斿悎鏃�",
+ // 涔屾捣
+ "涔屾捣", "娴峰媰婀�", "娴峰崡", "涔岃揪",
+ // 璧ゅ嘲
+ "璧ゅ嘲", "绾㈠北", "鍏冨疂灞�", "鏉惧北", "闃块瞾绉戝皵娌佹棗", "宸存灄宸︽棗", "宸存灄鍙虫棗", "鏋楄タ", "鍏嬩粈鍏嬭吘鏃�", "缈佺墰鐗规棗", "鍠�鍠囨瞾鏃�", "瀹佸煄", "鏁栨眽鏃�",
+ // 閫氳窘
+ "閫氳窘", "绉戝皵娌�", "闇嶆灄閮嫆", "绉戝皵娌佸乏缈间腑鏃�", "绉戝皵娌佸乏缈煎悗鏃�", "寮�椴�", "搴撲鸡鏃�", "濂堟浖鏃�", "鎵庨瞾鐗规棗",
+ // 閯傚皵澶氭柉锛堝惈鑷畾涔夊湴鍧�锛�
+ "閯傚皵澶氭柉", "涓滆儨", "搴峰反浠�", "杈炬媺鐗规棗", "鍑嗘牸灏旀棗", "閯傛墭鍏嬪墠鏃�", "閯傛墭鍏嬫棗", "鏉敠鏃�", "涔屽鏃�", "浼婇噾闇嶆礇鏃�",
+ // 鍛间鸡璐濆皵
+ "鍛间鸡璐濆皵", "娴锋媺灏�", "鎵庤祲璇哄皵", "婊℃床閲�", "鐗欏厠鐭�", "鎵庡叞灞�", "棰濆皵鍙ょ撼", "鏍规渤",
+ "闃胯崳鏃�", "鑾姏杈剧摝杈炬枴灏旀棌鑷不鏃�", "閯備鸡鏄ヨ嚜娌绘棗", "閯傛俯鍏嬫棌鑷不鏃�", "闄堝反灏旇檸鏃�", "鏂板反灏旇檸宸︽棗", "鏂板反灏旇檸鍙虫棗",
+ // 宸村溅娣栧皵
+ "宸村溅娣栧皵", "涓存渤", "浜斿師", "纾村彛", "涔屾媺鐗瑰墠鏃�", "涔屾媺鐗逛腑鏃�", "涔屾媺鐗瑰悗鏃�", "鏉敠鍚庢棗",
+ // 涔屽叞瀵熷竷
+ "涔屽叞瀵熷竷", "闆嗗畞", "涓伴晣", "鍗撹祫", "鍖栧痉", "鍟嗛兘", "鍏村拰", "鍑夊煄",
+ "瀵熷搱灏斿彸缈煎墠鏃�", "瀵熷搱灏斿彸缈间腑鏃�", "瀵熷搱灏斿彸缈煎悗鏃�", "鍥涘瓙鐜嬫棗",
+ // 鍏村畨鐩�
+ "鍏村畨鐩�", "涔屽叞娴╃壒", "闃垮皵灞�", "绉戝皵娌佸彸缈煎墠鏃�", "绉戝皵娌佸彸缈间腑鏃�", "鎵庤祲鐗规棗", "绐佹硥",
+ // 閿℃灄閮嫆鐩�
+ "閿℃灄閮嫆鐩�", "閿℃灄娴╃壒", "浜岃繛娴╃壒", "闃垮反鍢庢棗", "鑻忓凹鐗瑰乏鏃�", "鑻忓凹鐗瑰彸鏃�",
+ "涓滀箤鐝犵﹩娌佹棗", "瑗夸箤鐝犵﹩娌佹棗", "澶粏瀵烘棗", "闀堕粍鏃�", "姝i暥鐧芥棗", "姝h摑鏃�", "澶氫鸡",
+ // 闃挎媺鍠勭洘
+ "闃挎媺鍠勭洘", "闃挎媺鍠勫乏鏃�", "闃挎媺鍠勫彸鏃�", "棰濇祹绾虫棗",
+ //鑷畾涔�
+ "鑻忛噷鏍肩粡娴庡紑鍙戝尯", "鏉敠鏃椾紛鍜屼箤绱犺嫃鏈ㄨ崏鍘熺珯", "閯傛墭鍏嬪墠鏃椾笂娴峰簷闀�","鍐呰挋"
+ )),
+
+ /**
+ * 鍏朵粬鍦板尯
+ */
+ OTHER("鍏朵粬", Arrays.asList());
+
+
+ /**
+ * 褰掑睘鍦板悕绉�
+ */
+ private final String regionName;
+
+ /**
+ * 鍖归厤鍏抽敭瀛楀垪琛�
+ */
+ private final List<String> keyWords;
+
+ /**
+ * 鏋勯�犳柟娉�
+ */
+ AddressRegionEnum(String regionName, List<String> keyWords) {
+ this.regionName = regionName;
+ this.keyWords = keyWords;
+ }
+
+ // ==================== 鏍稿績鏂规硶锛氭牴鎹湴鍧�瀛楃涓插尮閰嶅綊灞炲湴 ====================
+ /**
+ * 鏍规嵁鍦板潃鏂囨湰鑷姩璇嗗埆褰掑睘鍦�
+ * @param address 璇︾粏鍦板潃瀛楃涓�
+ * @return 鍖归厤鍒扮殑褰掑睘鍦版灇涓撅紙榛樿杩斿洖OTHER锛�
+ */
+ public static AddressRegionEnum matchRegion(String address) {
+ // 鍦板潃涓虹┖/绌哄瓧绗︿覆锛岀洿鎺ヨ繑鍥炲叾浠�
+ if (address == null || address.trim().isEmpty()) {
+ return OTHER;
+ }
+
+ // 鎸変紭鍏堢骇鍖归厤锛氳嚜鎻� > 瀹佸鍚勫湴甯� > 鍐呰挋鍙� > 鍏朵粬
+ for (AddressRegionEnum region : values()) {
+ // 璺宠繃鏃犲叧閿瓧鐨凮THER
+ if (region.keyWords.isEmpty()) {
+ continue;
+ }
+ // 閬嶅巻鍏抽敭瀛楋紝鍦板潃鍖呭惈浠绘剰鍏抽敭瀛楀垯鍖归厤鎴愬姛
+ for (String keyword : region.keyWords) {
+ if (address.contains(keyword)) {
+ return region;
+ }
+ }
+ }
+
+ // 鏃犲尮閰嶅叧閿瓧锛岃繑鍥炲叾浠�
+ return OTHER;
+ }
+}
--
Gitblit v1.9.3