liulingling.177216
2024-08-26 349f1cfc5fa77fbc636d542df0d8050fddec48c2
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
29
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
package com.dingzhuo.compute.engine.utils;
 
import com.dingzhuo.energy.common.utils.time.TimeType;
import com.dingzhuo.energy.data.model.domain.IndexStorage;
import com.dingzhuo.energy.data.monitoring.alarm.domain.AlarmItem;
import com.dingzhuo.energy.data.monitoring.device.domain.DeviceFormula;
import java.util.ArrayList;
import java.util.List;
 
/**
 * @author fanxinfu
 */
public class ActorUtil {
 
  public static String ACTOR_SYSTEM = "CsieComputeEngine";
 
  public static String buildActorId(IndexStorage indexStorage) {
    return String
        .format("Index:%s:%s", indexStorage.getTimeType().name(), indexStorage.getIndexId());
  }
 
  public static String buildAlarmActorId(AlarmItem alarmItem) {
    return String.format("Alarm:%s:%s:%s", alarmItem.getDwid(), alarmItem.getTimeSlot(),
        alarmItem.getLimitType());
  }
 
  public static String buildActorId(String indexId, TimeType timeType) {
    return String.format("Index:%s:%s", timeType, indexId);
  }
 
  public static String buildAlarmStatusId(String indexId, String timeType, String limitType) {
    return String.format("Status:%s:%s:%s", indexId, timeType, limitType);
  }
 
  public static String getActorAddress(String actorName) {
    return String.format("akka://%s/user/%s", ACTOR_SYSTEM, actorName);
  }
 
  public static <E> List<List<E>> splitList(List<E> targetList, Integer splitSize) {
    if (targetList == null) {
      return new ArrayList<>();
    }
 
    int size = targetList.size();
    List<List<E>> resultList = new ArrayList<>();
    if (size <= splitSize) {
      resultList.add(targetList);
    } else {
      for (int i = 0; i < size; i += splitSize) {
        //用于限制最后一部分size小于splitSize的list
        int limit = i + splitSize;
        if (limit > size) {
          limit = size;
        }
        resultList.add(targetList.subList(i, limit));
      }
    }
    return resultList;
  }
 
  public static String buildActorId(DeviceFormula deviceFormula) {
    return String.format("Device:%s", deviceFormula.getId());
  }
}