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.battery.business.runtime;
 
import com.battery.device.api.StepDirectionResolver;
import com.battery.device.api.StepDirectionResolver.Direction;
import com.battery.device.bts.BtsStepDirectionResolver;
import com.battery.device.neware.NewareStepDirectionResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
/** 装配已保存工步的方向解释,不触发任何设备请求。 */
@Configuration
public class ReportStepDirectionConfig
{
    /**
     * 已保存工步的类型有两种形态:导入或协议路径给的是名称(`cc`、`charge`),
     * 直连新威取来的是设备数字枚举(`1`/`2`/`4`)。两种都解释,未确认取值保持未知。
     */
    @Bean
    public StepDirectionResolver reportStepDirectionResolver()
    {
        StepDirectionResolver deviceTypes = new NewareStepDirectionResolver();
        StepDirectionResolver names = new BtsStepDirectionResolver();
        return stepType -> {
            Direction direction = deviceTypes.resolve(stepType);
            return direction == Direction.UNKNOWN ? names.resolve(stepType) : direction;
        };
    }
}