From abb429867b3dd9124167b961fe792f957d6bfb84 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 27 Mar 2025 19:28:56 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=201=E3=80=81=E4=BC=98=E5=8C=96=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E9=A2=84=E8=AD=A6=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/sse/controller/SseController.java | 2 +- .../impl/BusinessAlertServiceImpl.java | 1 + .../BusinessAlertStatisticsServiceImpl.java | 61 ++++++++++++++++--- .../mapper/business/BusinessAlertMapper.xml | 4 +- 4 files changed, 57 insertions(+), 11 deletions(-) diff --git a/dk-common/common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java b/dk-common/common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java index 7f99f6f..464d5dc 100644 --- a/dk-common/common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java +++ b/dk-common/common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java @@ -21,7 +21,7 @@ import java.util.List; * @author Lion Li */ @RestController -//@ConditionalOnProperty(value = "sse.enabled", havingValue = "true") +@ConditionalOnProperty(value = "sse.enabled", havingValue = "true") @RequiredArgsConstructor public class SseController implements DisposableBean { diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index 912a0c8..37fc02f 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -347,6 +347,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { handlerMap.put("total",alertList.size()); handlerMap.put("finishCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.FINISH.getStatus())).count()); handlerMap.put("todoCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.WAITING.getStatus())).count()); + handlerMap.put("cancelCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.INVALID.getStatus())).count()); result.put("panel",handlerMap); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index dc6fbd6..eab4bd2 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -43,6 +43,7 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @DubboReference RemoteLabelPostService remoteLabelPostService; + @DubboReference RemotePostService remotePostService; @@ -131,10 +132,20 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Override public List countPanelAlert(BusinessAlertBo businessAlertBo) { + LocalDate today = LocalDate.now(); + if (ObjectUtil.isNotEmpty(businessAlertBo.getPostCode())){ - LocalDate today = LocalDate.now(); + if (ObjectUtil.isEmpty(getAiLabel(businessAlertBo.getPostCode()))){ + return Stream.of( + new StatObj("total", 0), + new StatObj("todoCount", 0), + new StatObj("finishCount", 0), + new StatObj("cancelCount", 0) + ).toList(); + } businessAlertBo.setCreateTime(today.getYear()+"-"+today.getMonthValue()+"-"+today.getDayOfMonth()); + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); } @@ -167,6 +178,21 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist Map result = new HashMap<>(); if (ObjectUtil.isNotEmpty(businessAlertBo.getPostCode())){ List labelList = getAiLabel(businessAlertBo.getPostCode()); + + if (ObjectUtil.isEmpty(labelList)){ + result.put("totalFinishCount", 0); + result.put("yearTotal", 0); + result.put("yearFinishCount", 0); + result.put("yearRate", 0); + result.put("monthTotal",0); + result.put("monthFinishCount", 0); + result.put("monthRate", 0); + result.put("dayTotal", 0); + result.put("dayFinishCount", 0); + result.put("dayTodo", 0); + return result; + } + businessAlertBo.setAiLabelEnList(labelList); } @@ -218,6 +244,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist if (ObjectUtil.isNotEmpty(businessAlertBo.getPostCode())){ List labelList = getAiLabel(businessAlertBo.getPostCode()); + + if (ObjectUtil.isEmpty(labelList)){ + result.put("dayTotal", 0); + result.put("dayFinishCount", 0); + result.put("dayTodo", 0); + return result; + } + businessAlertBo.setAiLabelEnList(labelList); } @@ -270,14 +304,20 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist return ListUtil.empty(); } + List monthList = getLastSixMonths(); + String startTime = monthList.get(monthList.size() - 1); + String endTime = monthList.get(0); + postVoList.forEach(postVo -> { List labelList = getAiLabel(postVo.getPostCode()); - businessAlertBo.setAiLabelEnList(labelList); - List monthList = getLastSixMonths(); - String startTime = monthList.get(monthList.size() - 1); - String endTime = monthList.get(0); - - Map dateMap = baseMapper.countPastYearAlert(businessAlertBo,startTime,endTime); + Map dateMap = new HashMap<>(); + if (ObjectUtil.isEmpty(labelList)) { + dateMap.put("todoCount",0); + dateMap.put("finishCount",0); + }else { + businessAlertBo.setAiLabelEnList(labelList); + dateMap = baseMapper.countPastYearAlert(businessAlertBo,startTime,endTime); + } result.add(new StatObj( postVo.getPostName(), @@ -312,12 +352,12 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist postVoList.forEach(postVo -> { List labelList = getAiLabel(postVo.getPostCode()); StatObj statObj1 = new StatObj(); + statObj1.setStatKey(postVo.getPostName()); if (ObjectUtil.isEmpty(labelList)){ statObj1.setStatVal(0); }else { businessAlertBo.setAiLabelEnList(labelList); Map rateMap = baseMapper.handlerRate(businessAlertBo,month); - statObj1.setStatKey(postVo.getPostName()); if (ObjectUtil.isNotEmpty(rateMap)) { statObj1.setStatVal(rateMap.get("avgInfo")); }else { @@ -343,6 +383,11 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist Map result = new HashMap<>(); List aiLabelList = getAiLabel(businessAlertBo.getPostCode()); + + if (ObjectUtil.isEmpty(aiLabelList)) { + return Map.of(); + } + businessAlertBo.setAiLabelEnList(aiLabelList); List monthList = getLastSixMonths(); diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index 1e80118..46bdaf7 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -493,8 +493,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from dk_business.business_alert ba left join dk_workflow.flow_instance b on ba.id = b.business_id where 1=1 - and = #{startTime} ]]> - and + and = #{startTime} ]]> + and order by ba.create_time desc