package com.sw.mes.webservice.service.impl;

import com.sw.mes.base.factory.init.service.DeviceService;
import com.sw.mes.base.factory.init.service.FactoryModelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sw.mes.webservice.service.SapCallBackService;

@Service
public class SapCallBackServiceImpl implements SapCallBackService {
	
	private final static String TYPE_KEY = "father_process";
	
	@Autowired
	private FactoryModelService factoryModelService;
	
	@Autowired
	private DeviceService deviceService;
	

	@Override
	public void send_Routing_TO_SAP() {
//		List<FactoryModel> factoryModels = factoryModelService.findByTypeKey(TYPE_KEY);
//		
//		List<Routing> listInfo = new ArrayList<>();
//        //遍历工序，组合成SAP需要的数据格式
////        for (PathProcessDto pathProcessDto:pathDto.getPathProcesses()) {
//        for (FactoryModel pathProcessDto : factoryModels) {
//            Routing entity = new Routing();
//            entity.setBMSCH("1000");//1000KG
//            entity.setCOUNTER("1");//固定1
//            //Device device =  deviceDAO.findByName(pathProcessDto.getDeviceNames());
//            
//            List<String> codes = deviceService.findSapCode(pathProcessDto.getTypeKey());
//            String deviceCodes = StringUtils.join(codes.toArray(), "|");
//            
//            entity.setEQTYPE(deviceCodes);//设备类型编码
//            entity.setKTEXT("六期产品工艺路径");//工艺路径总名称
//            entity.setLTXA1(pathProcessDto.getName());//工序名称
//            entity.setMATNR(pathDto.getMaterialNumber());//成品料号
//            entity.setME_OPERATION_ID(PathNameCodeMap.pathMap().get(pathProcessDto.getProcessName()));//工序编号
//            entity.setMEINS("KG");//成品单位
//            entity.setMEINS1("MIN");//标准工时单位
//            entity.setUSR00("");//保留字段1
//            entity.setUSR01("");//保留字段2
//            entity.setUSR02(pathDto.getVersion());//版本
//            entity.setVERWE("1");//1 量产
//            entity.setVGW01(pathProcessDto.getWorkHour());
//            entity.setZMESID(UUID.randomUUID().toString());
//            entity.setWERKS(SapStaticEnum.SapFactoryId.三期工厂ID.getValue());
//            listInfo.add(entity);
//        }
//		
//		
//		String bskey = UUID.randomUUID().toString();
//        String zData = JSON.toJSON(listInfo).toString();
//        SoapInDto soapInDto = new SoapInDto();
//        soapInDto.setSYSID("1031MES");
//        soapInDto.setBSKEY(bskey);
//        soapInDto.setIFYWID(interfaceName);
//        soapInDto.setZDATA(zData);
//        //logger.info(soapInDto.toString());
//        try {
//            Map map =CallWebServiceConfig.sendWebService(uri,soapInDto,timeOut);
//            String sapResult =  map.get(new QName( "ZTYPE")).toString();
//            if(!sapResult.equals("S")){
//                SapRequestErroLog entityErro = new SapRequestErroLog();
//                entityErro.setId(null);
//                entityErro.setCount(0);
//                entityErro.setCode(interfaceName);
//                entityErro.setContent(zData);
//                entityErro.setCreateTime(new Date());
//                entityErro.setType(1);
//                entityErro.setBskey(bskey);
//                entityErro.setErrorMessage(map.toString());
//                sapRequestErroLogDao.save(entityErro);
//            }else{
//                SapRequestLog entityLog = new SapRequestLog();
//                entityLog.setId(null);
//                entityLog.setBskey(bskey);
//                entityLog.setCode(interfaceName);
//                entityLog.setContent(zData);
//                entityLog.setCreateTime(new Date());
//                entityLog.setType(1);
//                sapRequestLogDao.save(entityLog);
//            }
//            return map;
//        }  catch (Exception e) {
//            SapRequestErroLog entityErro = new SapRequestErroLog();
//            entityErro.setId(null);
//            entityErro.setCount(0);
//            entityErro.setCode(interfaceName);
//            entityErro.setContent(zData);
//            entityErro.setCreateTime(new Date());
//            entityErro.setType(1);
//            entityErro.setBskey(bskey);
//            entityErro.setErrorMessage(e.getMessage());
//            sapRequestErroLogDao.save(entityErro);
//            throw new Exception(e.getMessage());
//        }
//		
//		
//		
//		
//		
//		Map map = sendWebService.mesToSap(routingListToSap, WebServiceUri.WSDL_URL, WebServiceApiName.Routing,4000);
//        String sapResult =  map.get(new QName( "ZTYPE")).toString();
//        if(!sapResult.equals("S")){
//            String sapError =  map.get(new QName( "ZMESSAGE")).toString();
//            throw new RuntimeException("向SAP发送工艺路径异常:"+sapError);
//        }
		
	}

}
