lyh
2026-01-19 6141f0a2140439337dccf8bfe93c4ca83605446d
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
package com.lxzn.mes.service.impl;
 
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.lxzn.base.service.IDncLogService;
import com.lxzn.base.service.IMultilevelDictionaryService;
import com.lxzn.framework.domain.base.DncLog;
import com.lxzn.framework.domain.base.MultilevelDictionary;
import com.lxzn.framework.domain.base.ext.MultilevelDictionaryExt;
import com.lxzn.framework.domain.mes.ext.MesDispatchTaskReceive;
import com.lxzn.framework.domain.mes.ext.MesProcedureFinishReceive;
import com.lxzn.framework.domain.mes.ext.MesSyncEquipmentReceive;
import com.lxzn.framework.domain.mes.ext.MesSyncWorkmanshipReceive;
import com.lxzn.framework.domain.plm.QueryNcProgramLog;
import com.lxzn.framework.utils.JsonMapper;
import com.lxzn.framework.utils.LogCodeUtil;
import com.lxzn.mes.ext.MesResultList;
import com.lxzn.mes.ext.MesResultModel;
import com.lxzn.mes.service.*;
import com.lxzn.plm.service.IPdmProgramSourceService;
import com.lxzn.plm.service.IQueryNcProgramLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import javax.jws.WebParam;
import javax.jws.WebService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @author clown
 * * @date 2022/10/28
 */
@Component
@WebService(name = "MesWebServiceApi", targetNamespace = "http://mes.lxzn.com",
        endpointInterface = "com.lxzn.mes.service.MesWebServiceApi")
@Slf4j
public class MesWebServiceImpl implements MesWebServiceApi {
 
    @Autowired
    private IMesDispatchTaskService mesDispatchTaskService;
    @Autowired
    private IMesProcedureFinishService mesProcedureFinishService;
    @Autowired
    private IMesSyncEquipmentService mesSyncEquipmentService;
    @Autowired
    private IMesSyncWorkmanshipService mesSyncWorkmanshipService;
    @Autowired
    private IDncLogService dncLogService;
    @Autowired
    private IPdmProgramSourceService pdmProgramSourceService;
    @Autowired
    private IQueryNcProgramLogService queryNcProgramLogService;
    @Autowired
    private IMultilevelDictionaryService multilevelDictionaryService;
 
 
    @Override
    public String issuedDispatchTask(@WebParam String data) {
        if(null == data || "".equals(data.trim())){
            return MesResultModel.error("接收到的数据为空");
        }
        DncLog dncLog = new DncLog();
        dncLog.setNcType(LogCodeUtil.mes_code);
        JsonMapper mapper = new JsonMapper();
        try {
            MesDispatchTaskReceive setMes = mapper.fromJson(data, new TypeReference<MesDispatchTaskReceive>() {});
            dncLog.setIsSuccess(LogCodeUtil.success_is_false);
            if (StringUtils.isEmpty(setMes.getMdsWorkcenterId())) {
                dncLog.setContentName("工厂不存在,数据处理失败");
                dncLogService.save(dncLog);
                return MesResultModel.error("工厂不存在,数据处理失败");
            }
            dncLog.setWorkshopNo(setMes.getMdsWorkcenterId());
            if (StringUtils.isEmpty(setMes.getMdsEquipmentId())) {
                dncLog.setContentName("设备编号为空,数据处理失败");
                dncLogService.save(dncLog);
                return MesResultModel.error("设备编号为空,数据处理失败");
            }
            dncLog.setEquipmentId(setMes.getMdsEquipmentId());
 
            //去除部分数据
            List<MultilevelDictionaryExt> dictionaryList = multilevelDictionaryService.findListByTypeCode("workcenter");
            if (dictionaryList != null && !dictionaryList.isEmpty()) {
                Map<String,String> map = new HashMap<>();
                for (MultilevelDictionaryExt ext : dictionaryList) {
                    map.put(ext.getDicName(),ext.getDicName());
                }
                if (!map.containsKey(setMes.getMdsWorkcenterId())) {
                    return MesResultModel.error(setMes.getMdsWorkcenterId() + " 车间不在此实施范围内!!!");
                }
            }
 
            if (StringUtils.isEmpty(setMes.getMdsItemCode())) {
                dncLog.setContentName("零件号不存在,数据处理失败");
                dncLogService.save(dncLog);
                return MesResultModel.error("零件号不存在,数据处理失败");
            }
            if (StringUtils.isEmpty(setMes.getBatchNo())) {
                dncLog.setContentName("工艺信息不存在,数据处理失败");
                dncLogService.save(dncLog);
                return MesResultModel.error("工艺信息不存在,数据处理失败");
            }
            if (StringUtils.isEmpty(setMes.getRouteId())) {
                dncLog.setContentName("工艺规程版本不存在,数据处理失败");
                dncLogService.save(dncLog);
                return MesResultModel.error("工艺规程版本不存在,数据处理失败");
            }
            MesResultModel list = mesDispatchTaskService.saveOrUpdateDis(setMes);
            if(list == null) {
                log.error("[list]:数据保存失败");
                return MesResultModel.error("数据保存失败");
            }
            return MesResultModel.success(list.getSuccFlag());
        } catch (Exception e) {
            log.error(data);
            e.printStackTrace();
            return MesResultModel.error("数据异常,格式不对,无法解析" + "_"+  e.getMessage());
 
        }
    }
 
    @Override
    public String issuedProcedureFinish(String data) {
        if(null == data || "".equals(data.trim())){
            return MesResultList.error("接收到的数据为空");
        }
        JsonMapper mapper = new JsonMapper();
        try {
            MesProcedureFinishReceive setMes = mapper.fromJson(data, new TypeReference<MesProcedureFinishReceive>(){});
 
            MesResultModel list = mesProcedureFinishService.saveOrUpdateDis(setMes);
            if(list == null) {
                log.error("[list]:数据保存失败");
                return MesResultModel.error("数据保存失败");
            }
            return MesResultModel.success(list.getSuccFlag());
        } catch (Exception e) {
            log.error("接收到数据:" + data);
            e.printStackTrace();
            return MesResultModel.error("数据异常,格式不对,无法解析" + "_"+  e.getMessage());
 
        }
    }
 
 
    @Override
    public String syncEquipmentListInfo(String data) {
        if(null == data || "".equals(data.trim())){
            return MesResultList.error("接收到的数据为空");
        }
        JsonMapper mapper = new JsonMapper();
        try {
            MesSyncEquipmentReceive setMes = mapper.fromJson(data, new TypeReference<MesSyncEquipmentReceive>() {});
 
            MesResultModel list = mesSyncEquipmentService.saveOrUpdateDis(setMes);
            if(list == null) {
                log.error("[list]:数据保存失败");
                return MesResultModel.error("数据保存失败");
            }
            return MesResultModel.success(list.getSuccFlag());
        } catch (Exception e) {
            log.error("接收到数据:" + data);
            e.printStackTrace();
            return MesResultModel.error("数据异常,格式不对,无法解析" + "_"+  e.getMessage());
 
        }
    }
 
    @Override
    public String syncWorkmanship(String data) {
        if(null == data || "".equals(data.trim())){
            return MesResultList.error("接收到的数据为空");
        }
        JsonMapper mapper = new JsonMapper();
        try {
            MesSyncWorkmanshipReceive setMes = mapper.fromJson(data, new TypeReference<MesSyncWorkmanshipReceive>() {});
            log.error("接收到数据:" + data);
            MesResultModel list = mesSyncWorkmanshipService.saveOrUpdateMes(setMes);
            if(list == null) {
                log.error("[list]:数据保存失败");
                return MesResultModel.error("数据保存失败");
            }
            return MesResultModel.success(list.getSuccFlag());
        } catch (Exception e) {
            e.printStackTrace();
            return  MesResultModel.error("数据异常,格式不对,无法解析" + "_"+  e.getMessage());
 
        }
    }
 
    @Override
    public String syncPlmNcLogProgram(String data) {
        if(null == data || "".equals(data.trim())){
            return MesResultModel.error("接收到的数据为空");
        }
        JsonMapper mapper = new JsonMapper();
        try {
            QueryNcProgramLog setMes = mapper.fromJson(data, new TypeReference<QueryNcProgramLog>(){});
 
            queryNcProgramLogService.save(setMes);
            /*try {
                pdmProgramSourceService.pdmProgramSyncSave(setMes);
            }catch (Exception e) {
                e.getMessage();
                return MesResultModel.success("2");
            }*/
            /*if(!bf) {
                log.error("[list]:数据保存失败");
                return MesResultModel.error("数据保存失败");
            }*/
            return MesResultModel.success("1");
        } catch (Exception e) {
            log.error("接收到数据:" + data);
            e.printStackTrace();
        }
        return MesResultModel.error("接收到的数据为空");
    }
 
}