Blame view

HHECS.DAQHandle/EquipmentHandle/HoistAnalysis.cs 2.41 KB
1
using HHECS.BllModel;
唐召明 authored
2
using HHECS.DAQHandle.Dto;
3
4
using HHECS.DAQShared.Common.Enums;
using HHECS.DAQShared.Models;
5
6
7
8
9
10

namespace HHECS.DAQHandle.EquipmentHandle
{
    /// <summary>
    /// 双叉堆垛机数据解析
    /// </summary>
唐召明 authored
11
    internal class HoistAnalysis : AnalysisBase
12
    {
唐召明 authored
13
        public HoistAnalysis(AnalysisParameter parameter) : base(parameter) { }
14
唐召明 authored
15
16
17
        protected override BllResult<EquipmentStatus> GetEquipmentStatus(EquipmentExtend equipment, EquipmentDataRecord record)
        {
            try
18
            {
唐召明 authored
19
20
21
22
23
24
25
26
27
28
29
30
31
32
                var tagResult = JsonConvertToTagList(record.Tags);
                if (!tagResult.Success)
                {
                    return BllResultFactory.Error<EquipmentStatus>(tagResult.Msg);
                }
                var dictionaryResult = TagListConvertToDictionary(equipment.EquipmentProps, tagResult.Data);
                if (!dictionaryResult.Success)
                {
                    return BllResultFactory.Error<EquipmentStatus>(dictionaryResult.Msg);
                }
                var dictionary = dictionaryResult.Data;

                var hoistStatus = dictionary[HoistProps.HoistStatus.ToString()];
唐召明 authored
33
34
35
36
37
38
                var validationResult = ValidationIsNullOrWhiteSpace(hoistStatus);
                if (!validationResult.Success)
                {
                    return BllResultFactory.Error<EquipmentStatus>(validationResult.Msg);
                }
唐召明 authored
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
                var equipmentStatus = EquipmentStatus.None;
                //无数据
                if (string.IsNullOrWhiteSpace(hoistStatus))
                {
                    return BllResultFactory.Error<EquipmentStatus>($"获取状态失败,数据为空!");
                }

                //故障
                if (hoistStatus == "1")
                {
                    equipmentStatus = EquipmentStatus.Failure;
                    return BllResultFactory.Success(equipmentStatus);
                }
                if (hoistStatus == "6")
                {
                    equipmentStatus = EquipmentStatus.Running;
                    return BllResultFactory.Success(equipmentStatus);
                }

                equipmentStatus = EquipmentStatus.Free;
                return BllResultFactory.Success(equipmentStatus);
60
            }
唐召明 authored
61
            catch (Exception ex)
62
            {
唐召明 authored
63
                return BllResultFactory.Error<EquipmentStatus>(ex.Message);
64
65
66
67
            }
        }
    }
}