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() {}); 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 dictionaryList = multilevelDictionaryService.findListByTypeCode("workcenter"); if (dictionaryList != null && !dictionaryList.isEmpty()) { Map 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(){}); 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() {}); 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() {}); 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(){}); 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("接收到的数据为空"); } }