| package com.zy.acs.manager.manager.enums; | 
|   | 
| import com.zy.acs.framework.common.SpringUtils; | 
| import com.zy.acs.manager.common.exception.BusinessException; | 
| import com.zy.acs.manager.common.utils.DataFieldSortFunc; | 
| import com.zy.acs.manager.manager.entity.TaskSts; | 
| import com.zy.acs.manager.manager.service.TaskStsService; | 
|   | 
| import java.util.Arrays; | 
| import java.util.EnumMap; | 
| import java.util.List; | 
| import java.util.Map; | 
| import java.util.stream.Collectors; | 
|   | 
| public enum TaskStsType implements DataFieldSortFunc { | 
|   | 
|     INIT(1), | 
|     WAITING(2), | 
|     ASSIGN(3), | 
|     PROGRESS(4), | 
|     COMPLETE(5), | 
|     CANCEL(6), | 
|     ; | 
|   | 
|     public int dataSort; | 
|   | 
|     TaskStsType(int dataSort) { | 
|         this.dataSort = dataSort; | 
|     } | 
|   | 
|     private static final Map<TaskStsType, Long> cache = new EnumMap<>(TaskStsType.class); | 
|   | 
|     public long val() { | 
|         return cache.computeIfAbsent(this, key -> { | 
|             TaskStsService service = SpringUtils.getBean(TaskStsService.class); | 
|             TaskSts taskSts = service.selectByUuid(key.toString()); | 
|             if (taskSts == null) { | 
|                 throw new BusinessException("TaskStsType Error for " + key); | 
|             } | 
|             return taskSts.getId(); | 
|         }); | 
|     } | 
|   | 
|     @Override | 
|     public List<String> getDataFieldSort() { | 
|         return Arrays.stream(TaskStsType.values()) | 
|                 .sorted((e1, e2) -> Integer.compare(e1.dataSort, e2.dataSort)) | 
|                 .map(Enum::name) | 
|                 .collect(Collectors.toList()); | 
|     } | 
|   | 
| } |