CZT
2023-11-27 c206acfaedc69c390fb67daa81bc686f58a212ef
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package com.ld.igds.n2.manager;
 
import com.ld.igds.constant.Constant;
import com.ld.igds.io.N2RemoteManager;
import com.ld.igds.io.RemoteN2MacService;
import com.ld.igds.io.constant.OrderRespEnum;
import com.ld.igds.io.request.N2MacRequest;
import com.ld.igds.io.response.BaseResponse;
import com.ld.igds.log.service.LogOperationService;
import com.ld.igds.models.N2MacConf;
import com.ld.igds.n2.service.HMacConfService;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * 制氮机设备操作管理
 *
 * @author: andy.jia
 * @description:
 * @version:
 * @data:2020年4月26日
 */
@Component
public class N2MacManager {
 
    @Resource
    private N2RemoteManager n2RemoteManager;
    @Resource
    private LogOperationService logService;
    @Resource
    private HMacConfService macConfService;
 
    public BaseResponse runMac(N2MacRequest request) {
 
        N2MacConf conf = macConfService.getDataBySn(request.getSn());
 
        if (null == conf) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "没有获取到制氮机信息,无法执行");
        }
        if (Constant.YN_N.equals(conf.getConStatus())) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机通讯模块不在线,无法执行远程操作,请联系管理员");
        }
 
        request.setCompanyId(conf.getCompanyId());
        request.setDeptId(conf.getDeptId());
        request.setIp(conf.getIp());
        request.setPort(conf.getPort());
        request.setSn(conf.getSn());
        request.setProtocol(conf.getProtocol());
        request.setRunStatus(Constant.YN_Y);
 
 
        RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol());
 
        if (null == remoteN2Service) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机所属通讯分机协议系统未实现,请联系管理员");
        }
 
        request.setRunStatus(Constant.YN_Y);
 
        logService.addLogByN2Mac(request.getCompanyId(), "开启制氮机-" + request.getName());
 
        return remoteN2Service.remoteRun(request);
    }
 
    public BaseResponse stopMac(N2MacRequest request) {
 
 
        N2MacConf conf = macConfService.getDataBySn(request.getSn());
 
        if (null == conf) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "没有获取到制氮机信息,无法执行");
        }
 
        if (Constant.YN_N.equals(conf.getConStatus())) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机通讯模块不在线,无法执行远程操作,请联系管理员");
        }
        request.setCompanyId(conf.getCompanyId());
        request.setDeptId(conf.getDeptId());
        request.setIp(conf.getIp());
        request.setPort(conf.getPort());
        request.setSn(conf.getSn());
        request.setProtocol(conf.getProtocol());
        request.setRunStatus(Constant.YN_N);
 
        RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol());
 
        if (null == remoteN2Service) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机所属通讯分机协议系统未实现,请联系管理员");
        }
 
 
        logService.addLogByN2Mac(request.getCompanyId(), "关闭制氮机-" + request.getName());
 
        return remoteN2Service.remoteStop(request);
    }
 
    public BaseResponse queryStatusMac(N2MacRequest request) {
 
 
        N2MacConf conf = macConfService.getDataBySn(request.getSn());
 
        if (null == conf) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "没有获取到制氮机信息,无法执行");
        }
 
        if (Constant.YN_N.equals(conf.getConStatus())) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机通讯模块不在线,无法执行远程操作,请联系管理员");
        }
 
        request.setCompanyId(conf.getCompanyId());
        request.setDeptId(conf.getDeptId());
        request.setIp(conf.getIp());
        request.setPort(conf.getPort());
        request.setSn(conf.getSn());
        request.setProtocol(conf.getProtocol());
 
        RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol());
 
        if (null == remoteN2Service) {
            return new BaseResponse(
                    OrderRespEnum.ORDER_ERROR.getCode(),
                    "制氮机所属通讯分机协议系统未实现,请联系管理员");
        }
 
        logService.addLogByN2Mac(request.getCompanyId(), "状态查询-" + request.getName());
 
        return remoteN2Service.remoteStatus(request);
    }
 
 
    public List<N2MacConf> listN2Mac(String companyId, String deptId) {
        return macConfService.getConfData(companyId, deptId);
    }
 
    public N2MacConf getDataBySn(String sn) {
        return macConfService.getDataBySn(sn);
    }
}