From 5b4703ee30e96c5b05f8e58d0b9feb99a82b785a Mon Sep 17 00:00:00 2001 From: zhangye <654600784@qq.com> Date: Fri, 20 May 2022 11:13:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9E=E6=97=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/ht/api/StatisticsController.java | 2 +- .../ccsens/ht/service/IStatisticsService.java | 3 +- .../ccsens/ht/service/StatisticsService.java | 42 ++++++++++++++++--- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/ht/src/main/java/com/ccsens/ht/api/StatisticsController.java b/ht/src/main/java/com/ccsens/ht/api/StatisticsController.java index 10e04cda..f6e5e4be 100644 --- a/ht/src/main/java/com/ccsens/ht/api/StatisticsController.java +++ b/ht/src/main/java/com/ccsens/ht/api/StatisticsController.java @@ -54,7 +54,7 @@ public class StatisticsController { @ApiImplicitParams({ }) @RequestMapping(value="/realtime", method = RequestMethod.POST) - public JsonResponse realtime(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){ + public JsonResponse realtime(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId) throws Exception { log.info("测评人数实时统计:{}", hospitalId); StatisticsVo.Realtime realtime = statisticsService.realtime(hospitalId.getId()); log.info("测评人数实时统计完成"); diff --git a/ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java b/ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java index dd817776..c108d075 100644 --- a/ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java +++ b/ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java @@ -4,6 +4,7 @@ import com.ccsens.ht.bean.dto.StatisticsDto; import com.ccsens.ht.bean.vo.PositionVo; import com.ccsens.ht.bean.vo.StatisticsVo; +import java.text.ParseException; import java.util.List; /** @@ -29,7 +30,7 @@ public interface IStatisticsService { * @param hospitalId 医院id * @return 返回实时统计数据 */ - StatisticsVo.Realtime realtime(Long hospitalId); + StatisticsVo.Realtime realtime(Long hospitalId) throws Exception; /** * 查找性别年龄分布图 diff --git a/ht/src/main/java/com/ccsens/ht/service/StatisticsService.java b/ht/src/main/java/com/ccsens/ht/service/StatisticsService.java index ece8aeb6..3324db59 100644 --- a/ht/src/main/java/com/ccsens/ht/service/StatisticsService.java +++ b/ht/src/main/java/com/ccsens/ht/service/StatisticsService.java @@ -15,6 +15,7 @@ import com.ccsens.ht.persist.dao.HtPositionDao; import com.ccsens.ht.persist.dao.HtReportDao; import com.ccsens.ht.persist.dao.StatisticsDao; import com.ccsens.ht.uitl.Constant; +import com.ccsens.util.cron.CronConstant; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,10 +23,9 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; /** @@ -62,7 +62,7 @@ public class StatisticsService implements IStatisticsService { } @Override - public StatisticsVo.Realtime realtime(Long hospitalId) { + public StatisticsVo.Realtime realtime(Long hospitalId) throws Exception { //获取当前月的开始结束时间 long beginOfMonth = DateUtil.beginOfMonth(new Date()).getTime(); long endOfMonth = DateUtil.endOfMonth(new Date()).getTime(); @@ -73,9 +73,39 @@ public class StatisticsService implements IStatisticsService { StatisticsVo.Realtime realtime = statisticsDao.getTotalNum(hospitalId,beginOfMonth,endOfMonth,beginOfDay,endOfDay); //查找折线图里的数据 List chartList = statisticsDao.getRealtimeNum(hospitalId); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + int a = 0; + int b = 1; + Calendar min = Calendar.getInstance(); + Calendar max = Calendar.getInstance(); + Calendar temp = null; + List chartListNew = new ArrayList<>(); + while (b < chartList.size()){ + max.setTime(sdf.parse(chartList.get(b).getType())); + if(ObjectUtil.isNull(temp)){ + min.setTime(sdf.parse(chartList.get(a).getType())); + chartListNew.add(chartList.get(a)); + temp = min; + } + System.out.println(sdf.format(temp.getTime())); + temp.add(Calendar.DATE, 1); + System.out.println(sdf.format(temp.getTime())); + if(temp.before(max)){ + StatisticsVo.Chart chart = new StatisticsVo.Chart(); + chart.setType(sdf.format(min.getTime())); + chart.setNum(0); + chartListNew.add(chart); + }else { + a++; + b++; + temp = null; + } + } + chartListNew.add(chartList.get(chartList.size() - 1)); + //返回 if(ObjectUtil.isNotNull(realtime)){ - realtime.setChartList(chartList); + realtime.setChartList(chartListNew); } return realtime; }