zs
2024-11-06 f169d35fce5215e0c37c66844234145cafba5ab3
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using DataCapture_MA.log4Net;
using DataCapture_MA.Mes;
using DataCapture_MA.Mes.Dto;
using DataCapture_MA.Model;
using Microsoft.EntityFrameworkCore.Query;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DataCapture_MA
{
    public class MesApiHelper
    {
        /// <summary>
        /// 推送报警
        /// </summary>
        /// <param name="messageAnalysis"></param>
        /// <returns></returns>
        public static MesResult PushEquipmentWarning(MessageAnalysis messageAnalysis)
        {
            var mesParam = new List<MesWarnInput>();
            try
            {
                if(messageAnalysis.Warnings.Count<=0 && messageAnalysis.WarnningNum>0)
                {
                    mesParam.Add(new MesWarnInput
                    {
                        EquipSerial = messageAnalysis.RobotSerialNo,
                        AlarmCode = "E-999",
                        AlarmDesc = "未提供报警内容"
                    });
                }
                else
                {
                    foreach(var warning in messageAnalysis.Warnings)
                    {
                        mesParam.Add(new MesWarnInput
                        {
                            EquipSerial = messageAnalysis.RobotSerialNo,
                            AlarmCode = warning.WarningCode,
                            AlarmDesc = warning.WarningContent
                        });
                    }
                }
                Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备报警信息:" + JsonConvert.SerializeObject(mesParam));
                var result = MesApiRequest.PushEquipmentWarning(mesParam);
                return result;
            }
            catch(Exception ex)
            {
                return new MesResult
                {
                    statusCode = 500,
                    message = ex.Message,
                };
            }
        }
 
        /// <summary>
        /// 推送设备状态
        /// </summary>
        /// <param name="messageAnalysis"></param>
        /// <returns></returns>
        public static MesResult PushEquipmentStatus(MessageAnalysis messageAnalysis)
        {
            var equipmentStatus = new List<MesEquipmentStatus>();
            try
            {
                var equipment = new MesEquipmentStatus()
                {
                    CurrentStatus = messageAnalysis.RobotMode,
                    EquipSerial = messageAnalysis.RobotSerialNo
                };
                equipmentStatus.Add(equipment);
 
                Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备状态信息:" + JsonConvert.SerializeObject(equipmentStatus));
                var result = MesApiRequest.PushEquipmentStatus(equipmentStatus);
                return result;
            }
            catch (Exception ex)
            {
                return new MesResult
                {
                    statusCode = 500,
                    message = ex.Message,
                };
            }
        }
 
        /// <summary>
        /// 推送其他信息
        /// </summary>
        /// <param name="messageAnalysis"></param>
        /// <returns></returns>
        public static MesResult PushEquipmentInfo(MessageAnalysis messageAnalysis)
        {
            var equipmentInfo = new List<EquipmentOtherInfoForMes>();
            try
            {
                var newEquipmentInfo = AutoMapper.Mapper.Map<MessageAnalysis, EquipmentOtherInfoForMes>(messageAnalysis);
                var info = new MesEquipmentInfo()
                {
                    EquipSerial = messageAnalysis.RobotSerialNo,
                    ParameterValue = JsonConvert.SerializeObject(newEquipmentInfo)
                };
                Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备信息:" + JsonConvert.SerializeObject(info));
                var result = MesApiRequest.PushEquipmentInfo(info);
                return result;
            }
            catch (Exception ex)
            {
                return new MesResult
                {
                    statusCode = 500,
                    message = ex.Message,
                };
            }
        }
    }
}