zss
10 小时以前 171c413e6a3d1e4c24fae4fa54fcb7982a1a822d
销售看板统计的汇总
已添加1个文件
已修改3个文件
175 ■■■■■ 文件已修改
src/main/java/com/ruoyi/home/controller/HomeController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/service/HomeService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
    }
}
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();
}
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;
@@ -151,6 +155,9 @@
    @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;
    }
}
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(
            // å‘¼å’Œæµ©ç‰¹
            "呼和浩特", "新城", "回民", "玉泉", "赛罕", "土默特左旗", "土默特", "托克托", "和林格尔", "清水河", "武川",
            // åŒ…头
            "包头", "东河", "昆都仑", "青山", "石拐", "白云鄂博", "九原", "土默特右旗", "固阳", "达尔罕茂明安联合旗",
            // ä¹Œæµ·
            "乌海", "海勃湾", "海南", "乌达",
            // èµ¤å³°
            "赤峰", "红山", "元宝山", "松山", "阿鲁科尔沁旗", "巴林左旗", "巴林右旗", "林西", "克什克腾旗", "翁牛特旗", "喀喇沁旗", "宁城", "敖汉旗",
            // é€šè¾½
            "通辽", "科尔沁", "霍林郭勒", "科尔沁左翼中旗", "科尔沁左翼后旗", "开鲁", "库伦旗", "奈曼旗", "扎鲁特旗",
            // é„‚尔多斯(含自定义地址)
            "鄂尔多斯", "东胜", "康巴什", "达拉特旗", "准格尔旗", "鄂托克前旗", "鄂托克旗", "杭锦旗", "乌审旗", "伊金霍洛旗",
            // å‘¼ä¼¦è´å°”
            "呼伦贝尔", "海拉尔", "扎赉诺尔", "满洲里", "牙克石", "扎兰屯", "额尔古纳", "根河",
            "阿荣旗", "莫力达瓦达斡尔族自治旗", "鄂伦春自治旗", "鄂温克族自治旗", "陈巴尔虎旗", "新巴尔虎左旗", "新巴尔虎右旗",
            // å·´å½¦æ·–å°”
            "巴彦淖尔", "临河", "五原", "磴口", "乌拉特前旗", "乌拉特中旗", "乌拉特后旗", "杭锦后旗",
            // ä¹Œå…°å¯Ÿå¸ƒ
            "乌兰察布", "集宁", "丰镇", "卓资", "化德", "商都", "兴和", "凉城",
            "察哈尔右翼前旗", "察哈尔右翼中旗", "察哈尔右翼后旗", "四子王旗",
            // å…´å®‰ç›Ÿ
            "兴安盟", "乌兰浩特", "阿尔山", "科尔沁右翼前旗", "科尔沁右翼中旗", "扎赉特旗", "突泉",
            // é”¡æž—郭勒盟
            "锡林郭勒盟", "锡林浩特", "二连浩特", "阿巴嘎旗", "苏尼特左旗", "苏尼特右旗",
            "东乌珠穆沁旗", "西乌珠穆沁旗", "太仆寺旗", "镶黄旗", "正镶白旗", "正蓝旗", "多伦",
            // é˜¿æ‹‰å–„盟
            "阿拉善盟", "阿拉善左旗", "阿拉善右旗", "额济纳旗",
            //自定义
            "苏里格经济开发区", "杭锦旗伊和乌素苏木草原站", "鄂托克前旗上海庙镇","内蒙"
    )),
    /**
     * å…¶ä»–地区
     */
    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()) {
            // è·³è¿‡æ— å…³é”®å­—çš„OTHER
            if (region.keyWords.isEmpty()) {
                continue;
            }
            // éåŽ†å…³é”®å­—ï¼Œåœ°å€åŒ…å«ä»»æ„å…³é”®å­—åˆ™åŒ¹é…æˆåŠŸ
            for (String keyword : region.keyWords) {
                if (address.contains(keyword)) {
                    return region;
                }
            }
        }
        // æ— åŒ¹é…å…³é”®å­—,返回其他
        return OTHER;
    }
}