From 68c7f886579a33a2913b860e9fdd3a2a1e6a4c70 Mon Sep 17 00:00:00 2001 From: wangqian <1406304305@qq.com> Date: Sun, 11 Jan 2026 22:43:42 +0800 Subject: [PATCH] app首页统计修改 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/homepage/vo/WorkOrderTrendRespVo.java | 2 +- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java | 2 +- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/MaintainSummaryServiceImpl.java | 39 ++++++++++++++++++++++++--------------- urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml | 35 +++++++++++++++++------------------ 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/homepage/vo/WorkOrderTrendRespVo.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/homepage/vo/WorkOrderTrendRespVo.java index 1111295..3a93cf6 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/homepage/vo/WorkOrderTrendRespVo.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/homepage/vo/WorkOrderTrendRespVo.java @@ -19,7 +19,7 @@ public class WorkOrderTrendRespVo { private String companyName; - private String totalCount; + private Integer totalCount; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java index 9c6fd7f..4417edc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java @@ -99,7 +99,7 @@ public interface HomepageSummaryMapper extends BaseMapperX { * @Description 工单趋势 * @Date 2025/12/30 23:40 */ - List countWorkOrderTrend(@Param("companyId") Long companyId, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("queryState") String queryState); + List countWorkOrderTrend(@Param("companyId") Long companyId, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("queryState") String queryState, @Param("currentDate") String currentDate); /** * @Author wangqian diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/MaintainSummaryServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/MaintainSummaryServiceImpl.java index 8cae044..102c44c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/MaintainSummaryServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/MaintainSummaryServiceImpl.java @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.garden.service.homepage; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO; +import com.zteits.urbanops.framework.common.util.date.DateUtils; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.*; @@ -20,6 +21,9 @@ import org.springframework.stereotype.Service; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -38,9 +42,12 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { @Resource private DictDataApi dictDataApi; + private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd") + .withZone(ZoneId.of("Asia/Shanghai")); + @Override public Map getSummary() { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -65,13 +72,13 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { @Override public Map getWorkTaskTrend(HomePageSummaryReqVO req) { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } Map chartData = new HashMap<>(); //1、数据结构初始化 - List days = getDays(req.beginTime, req.endTime); + List days = getDays(req.getBeginTime(), req.getEndTime()); List dictDataList = dictDataApi.getDictDataList(DictTypeConstants.BUSINESS_LINE); List allBusiLines = dictDataList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList()); Map> defaultData = addTaskDefaultData(req, days, dictDataList); @@ -188,7 +195,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { */ @Override public Map getWorkOrderRatio(HomePageSummaryReqVO req) { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -279,7 +286,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { */ @Override public Map getWorkOrderDistribution(HomePageSummaryReqVO req) { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -345,7 +352,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { @Override public Map getWorkOrderDistributionBySource(HomePageSummaryReqVO req) { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -419,7 +426,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { */ @Override public List> getWorkOrderHeatmap() { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -433,7 +440,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { */ @Override public Map getWorkOrderTrend(HomePageSummaryReqVO req) { - Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); if(null == companyId || companyId == 0L || companyId == 100L){ companyId = null; } @@ -445,7 +452,10 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { // 1. 初始化响应Map Map> respMap = addDefaultData(req); // 2、汇总工单数量 - List countList = homepageSummaryMapper.countWorkOrderTrend(companyId, req.getBeginTime(), req.getEndTime(), req.getQueryState()); + LocalDate currentLocalDate = LocalDate.now(ZoneId.of("Asia/Shanghai")); + // 2. 格式化为yyyy-MM-dd字符串 + String currentDate = currentLocalDate.format(DATE_FORMATTER); + List countList = homepageSummaryMapper.countWorkOrderTrend(companyId, req.getBeginTime(), req.getEndTime(), req.getQueryState(), currentDate); Map> busiLineGroup; if (CollectionUtils.isNotEmpty(countList)) { busiLineGroup = countList.stream() @@ -475,7 +485,7 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { // 3.2 构建「联合标识-真实totalCount」的Map,提高匹配效率 // 联合标识:companyId_dateValue(因为busiLine已匹配,内部无需重复拼接) - Map realCountMap = realVoList.stream() + Map realCountMap = realVoList.stream() .filter(realVo -> realVo.getCompanyId() != null && realVo.getDateValue() != null) // 过滤空值,避免异常 .collect(Collectors.toMap( // 键:companyId + "_" + dateValue(唯一标识) @@ -513,18 +523,17 @@ public class MaintainSummaryServiceImpl implements MaintainSummaryService { companyList.forEach(resp ->{ WorkOrderTrendRespVo type = new WorkOrderTrendRespVo(); type.setDateValue(dayy); - type.setTotalCount("0"); // 默认总数为0 + type.setTotalCount(0); // 默认总数为0 type.setCompanyId(String.valueOf(resp.getId())); type.setCompanyName(resp.getName()); newList.add(type); }); }); - List dictDataList = dictDataApi.getDictDataList(DictTypeConstants.BUSINESS_LINE); - List busiLines = dictDataList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList()); - + String busiLines = SecurityFrameworkUtils.getBusiLine(); + String[] busiLineArray = busiLines.split(","); // 6. 为每个业务线生成专属列表并赋值busiLine - for (String type : busiLines) { + for (String type : busiLineArray) { // 核心:通过map拷贝对象并设置busiLine,避免引用共享 List busiLineList = newList.stream() // 拷贝原对象,创建新对象并设置当前业务线 diff --git a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml index 78285dd..5759fc9 100644 --- a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml @@ -254,35 +254,34 @@ -- libgit2 0.21.4