南昌市物联网技防平台-后台
Administrator
2021-04-12 36afc3a1f1437b8a3283dc0bf6475e96fded05a7
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java
@@ -18,16 +18,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
import org.springblade.jfpt.healthcode.entity.Healthcode;
import org.springblade.jfpt.healthcode.mapper.healthcodeMapper;
import org.springblade.jfpt.healthcode.service.IhealthcodeService;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 *  服务实现类
@@ -88,4 +90,127 @@
   public Integer selHealthcodeTimeCount(ConditionVo conditionVo) {
      return baseMapper.selHealthcodeTimeCount(conditionVo);
   }
   /**
    * 查询当前时间段区间时间红色健康码个数
    * @param conditionVo
    * @return
    */
   @Override
   public List<Integer> selHealthcodeTimeDis(ConditionVo conditionVo) {
      //查询当前时间段内的红色健康码数据集合
      List<Healthcode> healthcodeList = baseMapper.selRedCodeTimeData(conditionVo);
      if (healthcodeList.size()>0){
         return getHealthcodeTimeDis(healthcodeList);
      }
      return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
   }
   /**
    * 筛选数据,分类返回
    * @param collect 集合数据
    * @return
    */
   private List<Integer> getHealthcodeTimeDis(List<Healthcode> collect) {
      List<Integer> list = new ArrayList<>();
      int count02 = 0;
      int count0204 = 0;
      int count0406 = 0;
      int count0608 = 0;
      int count0810 = 0;
      int count1012 = 0;
      int count1214 = 0;
      int count1416 = 0;
      int count1618 = 0;
      int count1820 = 0;
      int count2022 = 0;
      int count2224 = 0;
      //遍历集合
      for (Healthcode healthcode:collect) {
         try {
            long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(healthcode.getDtime()).getHours();
            if (hours>0 && hours< AlarmTimeConstant.TWO){
               count02+=1;
            }
            if (hours>=AlarmTimeConstant.TWO && hours<AlarmTimeConstant.FOUR){
               count0204+=1;
            }
            if (hours>=AlarmTimeConstant.FOUR && hours<AlarmTimeConstant.SIX){
               count0406+=1;
            }
            if (hours>=AlarmTimeConstant.SIX && hours<AlarmTimeConstant.EIGHT){
               count0608+=1;
            }
            if (hours>=AlarmTimeConstant.EIGHT && hours<AlarmTimeConstant.TEN){
               count0810+=1;
            }
            if (hours>=AlarmTimeConstant.TEN && hours<AlarmTimeConstant.TWEKVE){
               count1012+=1;
            }
            if (hours>=AlarmTimeConstant.TWEKVE && hours<AlarmTimeConstant.FOURTEEN){
               count1214+=1;
            }
            if (hours>=AlarmTimeConstant.FOURTEEN && hours<AlarmTimeConstant.SIXTEEN){
               count1416+=1;
            }
            if (hours>=AlarmTimeConstant.SIXTEEN && hours<AlarmTimeConstant.EIGHTEEN){
               count1618+=1;
            }
            if (hours>=AlarmTimeConstant.EIGHTEEN && hours<AlarmTimeConstant.TWENTY){
               count1820+=1;
            }
            if (hours>=AlarmTimeConstant.TWENTY && hours<AlarmTimeConstant.TWENTY_TWO){
               count2022+=1;
            }
            if (hours>=AlarmTimeConstant.TWENTY_TWO && hours<AlarmTimeConstant.TWENTY_FOUR){
               count2224+=1;
            }
         } catch (ParseException e) {
            e.printStackTrace();
         }
      }
      //封装数据
      list.add(count02);
      list.add(count0204);
      list.add(count0406);
      list.add(count0608);
      list.add(count0810);
      list.add(count1012);
      list.add(count1214);
      list.add(count1416);
      list.add(count1618);
      list.add(count1820);
      list.add(count2022);
      list.add(count2224);
      //返回数据
      return list;
   }
   /**
    * 统计时间段内红色健康码人数数量数据
    * @param conditionVo
    * @return
    */
   @Override
   public Map<String, Object> selectHealthcodeTimeData(ConditionVo conditionVo) {
      conditionVo.setStartTime(conditionVo.getStartTime().substring(0,10));
      conditionVo.setEndTime(conditionVo.getEndTime().substring(0,10));
      //创建map对象
      Map<String, Object> map = new HashMap<>();
      //查询统计数据
      List<Integer> list = baseMapper.selectHealthcodeTimeData(conditionVo);
      //封装数据
      map.put("healthcodeData",list);
      //返回数据
      return map;
   }
   /**
    * 导出健康码数据表格
    * @param healthcodeVO 查询条件
    */
   @Override
   public List<HealthcodeExcel> exportHealthcode(HealthcodeVO healthcodeVO) {
      return baseMapper.exportHealthcode(healthcodeVO);
   }
}