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.manager.entity.AgvModel; import com.zy.acs.manager.manager.service.AgvModelService; import java.util.EnumMap; import java.util.Map; public enum AgvModelType { CTU_BOX_TRANSPORT_AGV, UNDERDRIVE_AGV, HEAVY_LOAD_STACKING_ROBOT, FORKLIFT_AGV, TOW_TRACTOR_AGV, ; AgvModelType() { } private static final Map cache = new EnumMap<>(AgvModelType.class); public long val() { return cache.computeIfAbsent(this, key -> { AgvModelService service = SpringUtils.getBean(AgvModelService.class); AgvModel agvModel = service.selectByType(this.toString()); if (agvModel == null) { throw new BusinessException("AgvModelType Error!"); } return agvModel.getId(); }); } }