Blame view

service-job/src/main/java/com/java110/job/task/smartWeter/SmartMeterReadDegreeTaskTemplate.java 2.56 KB
88e030b7   王彪总   init project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  package com.java110.job.task.smartWeter;
  
  import com.java110.dto.community.CommunityDto;
  import com.java110.dto.meter.MeterMachineDto;
  import com.java110.dto.task.TaskDto;
  import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
  import com.java110.job.quartz.TaskSystemQuartz;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Component;
  
  import java.util.ArrayList;
  import java.util.Calendar;
  import java.util.List;
  
  /**
   * 智能电表远程抄表
   * <p>
   * 执行最小单位不能小于一个小时
   */
  @Component
  public class SmartMeterReadDegreeTaskTemplate extends TaskSystemQuartz {
  
      @Autowired
      private IMeterMachineV1InnerServiceSMO meterMachineV1InnerServiceSMOImpl;
  
  
      @Override
      protected void process(TaskDto taskDto) throws Exception {
9750b443   王彪总   fix(config): 更新配置...
29
          // 获取项目
88e030b7   王彪总   init project
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
          List<CommunityDto> communityDtos = getAllCommunity();
  
          for (CommunityDto communityDto : communityDtos) {
              try {
                  doReadDegree(taskDto, communityDto);
              } catch (Exception e) {
                  logger.error("生成月报表 失败", e);
              }
          }
  
      }
  
      /**
       * 考勤任务
       *
       * @param taskDto
       */
      private void doReadDegree(TaskDto taskDto, CommunityDto communityDto) {
  
          MeterMachineDto meterMachineDto = new MeterMachineDto();
          meterMachineDto.setCommunityId(communityDto.getCommunityId());
          List<MeterMachineDto> meterMachineDtos = meterMachineV1InnerServiceSMOImpl.queryMeterMachines(meterMachineDto);
  
          if (meterMachineDtos == null || meterMachineDtos.size() < 1) {
              return;
          }
  
          List<MeterMachineDto> tmpMeterMachineDtos = new ArrayList<>();
          Calendar calendar = Calendar.getInstance();
          int day = calendar.get(Calendar.DAY_OF_MONTH);
  
          int hours = calendar.get(Calendar.HOUR);
  
          for (MeterMachineDto tmpMeterMachineDto : meterMachineDtos) {
              if (MeterMachineDto.MACHINE_MODEL_READ.equals(tmpMeterMachineDto.getMachineModel())) {
                  tmpMeterMachineDtos.add(tmpMeterMachineDto);
                  continue;
              }
  
              if (day == tmpMeterMachineDto.getReadDay() && hours == tmpMeterMachineDto.getReadHours()) {
                  tmpMeterMachineDtos.add(tmpMeterMachineDto);
              }
          }
  
          if (tmpMeterMachineDtos.size() < 1) {
              return;
          }
  
          try {
              //meterMachineV1InnerServiceSMOImpl.requestReads(tmpMeterMachineDtos);
          } catch (Exception e) {
              logger.error("抄表失败", e);
  
          }
      }
  }