/** * BOSSWebServiceSoapImplServiceSkeleton.java * * This file was auto-generated from WSDL * by the Apache Axis2 version: 1.6.3 Built on : Jun 27, 2015 (11:17:49 BST) */ package com.sysway.outwardtps.service.cfocn; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ycsoft.beans.system.SOptr; import com.ycsoft.beans.task.TaskFillDevice; import com.ycsoft.business.commons.pojo.BusiParameter; import com.ycsoft.business.service.impl.SnTaskService; import com.ycsoft.commons.constants.BusiCodeConstants; import com.ycsoft.commons.helper.JsonHelper; import com.ycsoft.commons.helper.LoggerHelper; import com.ycsoft.commons.helper.StringHelper; /** * BOSSWebServiceSoapImplServiceSkeleton java skeleton for the axisService */ public class BOSSWebServiceSoapImplServiceSkeleton implements BOSSWebServiceSoapImplServiceSkeletonInterface { private static Logger LOG = LoggerFactory.getLogger(BOSSWebServiceSoapImplServiceSkeleton.class); private SnTaskService snTaskService; /** * @param replyManuallyInfluencedWorkOrder0 * @return replyManuallyInfluencedWorkOrderResponse1 */ public com.sysway.outwardtps.service.cfocn.ReplyManuallyInfluencedWorkOrderResponseE replyManuallyInfluencedWorkOrder( com.sysway.outwardtps.service.cfocn.ReplyManuallyInfluencedWorkOrderE replyManuallyInfluencedWorkOrder0) { throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#replyManuallyInfluencedWorkOrder"); } /** * 工单完成后,会调用该接口通知boss * * RespType 回执类号 String QC工单完成 QD工单未完成 * WorkerOrderNo 工单号 String * ISPCode 运营商编号 String * UserNo 用户编号 String * RespMsg 回执描述 String * AttachData 附加数据 String 便于以后扩展,数据格式未定 * * HeadCode 返回代码 String SUCCESS接收通知成功。FAIL接收通知失败。原因在HeadMsg说明 * HeadMsg 代码描述 String * * @param returnWorkOrder2 * @return returnWorkOrderResponse3 */ public com.sysway.outwardtps.service.cfocn.ReturnWorkOrderResponseE returnWorkOrder( com.sysway.outwardtps.service.cfocn.ReturnWorkOrderE returnWorkOrder2) { WorkOrderResp resp = returnWorkOrder2.getReturnWorkOrder().getArg0(); // 工单编号 String taskId = resp.getOrderNo(); // 完工类型 String resultType = resp.getRespType(); // 回执消息, 如果失败的情况 String msg = resp.getRespMsg(); if(StringHelper.isNotEmpty(resp.getAttachData())){ msg=msg+";"+resp.getAttachData(); } try { if(LOG.isDebugEnabled()){ LOG.debug(JsonHelper.fromObject(resp)); } } catch (Exception e1) {e1.printStackTrace();} try{ // 调用boss接口完成工单 snTaskService.setParam(getServiceParam()); snTaskService.finishTask(taskId, resultType, "", "",msg,false); // 返回成功的结果 return createReturnWorkOrderResponse(createResultHeadForSuccess()); }catch(Exception e){ try { LOG.info(JsonHelper.fromObject(resp)); } catch (Exception e1) {e1.printStackTrace();} LOG.error("cfocn完工失败,工单编号:"+taskId,e); try { snTaskService.setParam(getServiceParam()); snTaskService.saveErrorLog(taskId,BusiCodeConstants.TASK_FINISH, e.getMessage()); } catch (Exception e1) { LOG.error("记录cfocn调用BOSS接口错误日志异常",e); } // 返回失败的结果 return createReturnWorkOrderResponse(createResultHeadForFail(e)); } } private BusiParameter getServiceParam(){ SOptr optr=new SOptr(); optr.setOptr_id("249"); optr.setLogin_name("jgsg001"); optr.setDept_id("3"); optr.setCounty_id("4501"); optr.setArea_id("4500"); BusiParameter busiParameter=new BusiParameter(); busiParameter.setOptr(optr); return busiParameter; } private ReturnWorkOrderResponseE createReturnWorkOrderResponse(ResultHead head){ ReturnWorkOrderResponseE response = new ReturnWorkOrderResponseE(); ReturnWorkOrderResponse body = new ReturnWorkOrderResponse(); body.set_return(head); response.setReturnWorkOrderResponse(body); return response; } /** * * 设备回填 * * workOrderNo: 单号 * type = Normal 正常设备回填 (需要回填全部设备) * type = Replace 正常回填后,需要再次更换设备(比如调试过程发现设备坏了,只需要回填更换的设备) * * productInfos ProductInfo[] : 见收单的参数说明 * ProductName 产品名称 String 产品名称 不为空 * ProductCode 产品编码 String 不为空 * * DeviceInfos DeviceInfo[] 可为空 * DeviceName 备名称 String 设备名称 不为空 * DeviceSN 设备标识号 String 设备标识号 不为空 * OriginalDeviceType 原设备名称 String 原设备名称 可空(更换设备时不为空) * OriginalDeviceSN 原设备标识号 String 原设备标识号 可空(更换设备时不为空) * * @param deviceFeedBack4 * @return deviceFeedBackResponse5 */ public com.sysway.outwardtps.service.cfocn.DeviceFeedBackResponseE deviceFeedBack( com.sysway.outwardtps.service.cfocn.DeviceFeedBackE deviceFeedBack4) { DeviceFeedBack dfb = deviceFeedBack4.getDeviceFeedBack(); // 工单编号 String taskId = dfb.getArg0(); String type = dfb.getArg1();//无效参数;原意是标明本次是新装还是变更设备,实际上并没有这么使用 try { if(LOG.isDebugEnabled()){ LOG.debug(JsonHelper.fromObject(dfb)); } } catch (Exception e1) {e1.printStackTrace();} // 设备信息 ProductInfo[] prodArray = dfb.getArg2(); List<TaskFillDevice> devices = new ArrayList<>(); for(ProductInfo prodInfo:prodArray){ for (DeviceInfo deviceInfo : prodInfo.getDeviceInfos()) { TaskFillDevice device = new TaskFillDevice(); device.setDeviceCode(deviceInfo.getDeviceSN()); device.setFcPort(deviceInfo.getIsFCPort()); device.setOldDeviceCode(deviceInfo.getOriginalDeviceSN()); if (device.isFcPort()){ device.setOccNo(deviceInfo.getOCCSerialCode());//交接箱编号 device.setPosNo(deviceInfo.getPOSSerialCode());//分光器编号 } devices.add(device); } } try { snTaskService.setParam(getServiceParam()); snTaskService.fillTask(taskId, devices); return createDeviceFeedBackResponse(createResultHeadForSuccess()); } catch (Exception e) { try { LOG.info(JsonHelper.fromObject(dfb)); } catch (Exception e1) {e1.printStackTrace();} LOG.error("cfocn回填失败,工单编号:"+taskId,e); try { snTaskService.setParam(getServiceParam()); snTaskService.saveErrorLog(taskId, BusiCodeConstants.TASK_FILL,e.getMessage()); } catch (Exception e1) { LOG.error("记录cfocn调用BOSS接口错误日志异常",e); } return createDeviceFeedBackResponse(createResultHeadForFail(e)); } } private DeviceFeedBackResponseE createDeviceFeedBackResponse(ResultHead head){ DeviceFeedBackResponseE dfbre = new DeviceFeedBackResponseE(); DeviceFeedBackResponse dfbr = new DeviceFeedBackResponse(); dfbr.set_return(head); dfbre.setDeviceFeedBackResponse(dfbr); return dfbre; } /** * 创建一个返回头信息 */ private ResultHead createResultHead(boolean result, String msg){ ResultHead rh = new ResultHead(); rh.setHeadCode(result ? "SUCCESS" : "FAIL"); rh.setHeadMsg(msg); return rh; } private ResultHead createResultHeadForSuccess(){ return createResultHead(true, null); } private ResultHead createResultHeadForFail(Exception e){ return createResultHead(false, e.getMessage()); } public void setSnTaskService(SnTaskService snTaskService) { this.snTaskService = snTaskService; } }