package com.inspur.pmv5.service.impl.sysintegration.wsclient.provider;
import java.beans.IntrospectionException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.ossj.xml.troubleticket.v1_2.CreateTroubleTicketByValueRequest;
import org.ossj.xml.troubleticket.v1_2.CreateTroubleTicketByValueResponse;
import org.ossj.xml.troubleticket_x790.v1_0.X790TroubleTicketValue;
import com.inspur.pmv5.common.finals.SysIntegration.SysIntegrationFinals;
import com.inspur.pmv5.pojo.sysintegration.Result;
import com.inspur.pmv5.pojo.sysintegration.TT;
import com.inspur.pmv5.service.api.exception.WebServiceException;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.connection.SDMWSProxyBean;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.BeanFactory;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.X790BeanFactory;
/**
* 参数核查派单接口
* @author qiudong
*
*/
public class SDMCreateParamTTService implements ServiceProvider{
private X790BeanFactory factory = new X790BeanFactory();
@Override
public Result execService(Object[] args) throws WebServiceException {
CreateTroubleTicketByValueRequest parameters = null;
CreateTroubleTicketByValueResponse response = null;
TT tt = null;
tt = (TT)args[0];
Map<String, Object> map;
Result rs = new Result ();
List<String> alist = new ArrayList<String>();
try {
map = BeanFactory.Bean2Map(tt);
parameters = new CreateTroubleTicketByValueRequest();
X790TroubleTicketValue x790tt = getTroubleTicket4Param(map);
parameters.setTroubleTicketValue(x790tt);
response = SDMWSProxyBean.getNBIServiceImpl().createTroubleTicketByValue(parameters);
}catch (IntrospectionException e) {
e.printStackTrace();
alist.add("0");
rs.setResult(alist);
return rs;
}catch (Exception e) {
e.printStackTrace();
alist.add("0");
rs.setResult(alist);
return rs;
}
alist.add(response.getTroubleTicketKey().getPrimaryKey().getAny().get(0).getFirstChild().getNodeValue());
rs.setResult(alist);
return rs;
}
private X790TroubleTicketValue getTroubleTicket4Param(Map<String, Object> datasource) throws WebServiceException{
X790TroubleTicketValue x790tt= null;
try {
factory.setObjectConfigFile(SysIntegrationFinals.SDM_OBJCONFIG_TT4PARAM);
x790tt =(X790TroubleTicketValue)factory.createTroubleTicket(datasource);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new WebServiceException(e.getMessage());
}
return x790tt;
}
public static void main(String[] args){
// Alarm alarm = new Alarm();
// alarm.setAdditionalText("additionalText");
// alarm.setAlarmId("alarmId");
// alarm.setAlarmRaisedTime("20130724124708");
// alarm.setArmTime("20130724124708");
// alarm.setComments("commentswwwww");
// subject:问题单标题
// category:问题类型
// vendor : 涉及产品厂商
// preferredPriority :问题级别
// troubleDescription :问题描述
// attachment :附件,Base64字符串
TT tt = new TT();
tt.setOriginator("PM");
tt.setAttachment("Attachment");
tt.setVendor("Huawei");
tt.setCategory("GSM Parameter");
tt.setPreferredPriority("1");
tt.setSubject("Bsc Trouble");
tt.setTroubleDescription("Product:BSC,error details.....");
SDMCreateParamTTService sdmctt = new SDMCreateParamTTService();
Object[] obj = new Object[]{tt};
try {
sdmctt.execService(obj);
} catch (WebServiceException e) {
e.printStackTrace();
}
}
}
package com.inspur.pmv5.service.impl.sysintegration.wsclient.provider;
import java.beans.IntrospectionException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.ossj.xml.common.v1_5.Modifier;
import org.ossj.xml.common_sharedalarm.v1_5.ArrayOfBaseAlarmValue;
import org.ossj.xml.common_sharedalarm.v1_5.BaseAlarmValue;
import org.ossj.xml.troubleticket.v1_2.CreateTroubleTicketByValueRequest;
import org.ossj.xml.troubleticket.v1_2.CreateTroubleTicketByValueResponse;
import org.ossj.xml.troubleticket_x790.v1_0.AlarmValueMultiValueList;
import org.ossj.xml.troubleticket_x790.v1_0.X790TroubleTicketValue;
import com.inspur.pmv5.common.finals.SysIntegration.SysIntegrationFinals;
import com.inspur.pmv5.pojo.sysintegration.Alarm;
import com.inspur.pmv5.pojo.sysintegration.TT;
import com.inspur.pmv5.pojo.sysintegration.Result;
import com.inspur.pmv5.service.api.exception.WebServiceException;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.connection.SDMWSProxyBean;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.BeanFactory;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.X790BeanFactory;
/**
* 性能告警派单接口
* @author Terry
*
*/
public class SDMCreateTTService implements ServiceProvider{
private X790BeanFactory factory = new X790BeanFactory();
@Override
public Result execService(Object[] args) throws WebServiceException {
CreateTroubleTicketByValueRequest parameters = null;
CreateTroubleTicketByValueResponse response = null;
Alarm alarm = null;
TT tt = null;
if(args.length>=2){
alarm = (Alarm)args[0];
tt = (TT)args[1];
}
Map<String, Object> map;
Result rs = new Result ();
List<String> alist = new ArrayList<String>();
try {
map = BeanFactory.Bean2Map(alarm);
map.putAll(BeanFactory.Bean2Map(tt));
parameters = new CreateTroubleTicketByValueRequest();
X790TroubleTicketValue x790tt = getTroubleTicke(map);
BaseAlarmValue x790alarm = getBaseAlarmValue(map);
AlarmValueMultiValueList alarmlist = new AlarmValueMultiValueList();
ArrayOfBaseAlarmValue alarmarray=new ArrayOfBaseAlarmValue();
alarmarray.getItem().add(x790alarm);
alarmlist.setModifier(Modifier.ADD);
alarmlist.setRelatedAlarms(alarmarray);
x790tt.setRelatedAlarmList(alarmlist);
parameters.setTroubleTicketValue(x790tt);
response = SDMWSProxyBean.getNBIServiceImpl().createTroubleTicketByValue(parameters);
} catch (IntrospectionException e) {
e.printStackTrace();
alist.add("0");
rs.setResult(alist);
return rs;
}catch (Exception e) {
e.printStackTrace();
alist.add("0");
rs.setResult(alist);
return rs;
}
alist.add(response.getTroubleTicketKey().getPrimaryKey().getAny().get(0).getFirstChild().getNodeValue());
System.out.println("NodeValue: "+response.getTroubleTicketKey().getPrimaryKey().getAny().get(0).getFirstChild().getNodeValue());
rs.setResult(alist);
return rs;
}
/**1.3
* 性能告警到x790告警映射 将一个 JavaBean 对象转化为一个 Map
* @param datasource 性能告警、TT单对象键值对
* @return BaseAlarmValue x790告警对象
* @throws WebServiceException
*
* 如果实例化 JavaBean 失败
* InvocationTargetException
* 如果调用属性的 setter 方法失败
* DocumentException dom文件异常
* ParseException 解析异常
* ClassNotFoundException 类文件异常
* InstantiationException 实例化异常
*/
private BaseAlarmValue getBaseAlarmValue(Map<String, Object> datasource) throws WebServiceException {
BaseAlarmValue x790alarm =null;
try {
factory.setObjectConfigFile(SysIntegrationFinals.SDM_OBJCONFIG_ALARM);
x790alarm =factory.createBaseAlarm(datasource);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new WebServiceException(e.getMessage());
}
return x790alarm;
}
/**
* 将一个 JavaBean 对象转化为一个 Map
*
* @param datasource 性能告警、TT单对象键值对
* 要转化的JavaBean 对象
* @return 转化出来的 Map 对象
* @throws WebServiceException
* 分析类属性失败
* IllegalAccessException
* 如果实例化 JavaBean 失败
* InvocationTargetException
* 如果调用属性的 setter 方法失败
* DocumentException dom文件异常
* ParseException 解析异常
* ClassNotFoundException 类文件异常
*/
private X790TroubleTicketValue getTroubleTicke(Map<String, Object> datasource) throws WebServiceException{
X790TroubleTicketValue x790tt= null;
try {
X790BeanFactory factory = new X790BeanFactory();
factory.setObjectConfigFile(SysIntegrationFinals.SDM_OBJCONFIG_ALARM);
x790tt =(X790TroubleTicketValue)factory.createTroubleTicket(datasource);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new WebServiceException(e.getMessage());
}
return x790tt;
}
}
package com.inspur.pmv5.service.impl.sysintegration.wsclient.util;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.Map;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.parsers.ParserConfigurationException;
import org.dom4j.DocumentException;
import org.ossj.xml.common_sharedalarm.v1_5.BaseAlarmValue;
import org.ossj.xml.troubleticket_cbetrouble.v1_2.TroubleTicketValue;
import org.ossj.xml.troubleticket_x790.v1_0.X790TroubleTicketValue;
import com.inspur.pmv5.common.finals.SysIntegration.SysIntegrationFinals;
import com.inspur.pmv5.pojo.sysintegration.Alarm;
import com.inspur.pmv5.pojo.sysintegration.TT;
public class X790BeanFactory implements OSSJBeanFactory{
private final String _XML_X790BaseAlarmNode="baseAlarmValue";
private final String _XML_X790TroubleTicketNode="X790TroubleTicketValue";
private Map<Node,Object> map = null;
public X790BeanFactory(){
super();
}
public void setObjectConfigFile(String xmlFile) throws DocumentException{
if(this.map==null){
this.map = XMLUtil.Dom2Map(xmlFile);
}
}
@Override
public TroubleTicketValue createTroubleTicket(Map datasource) throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException, ClassNotFoundException, DatatypeConfigurationException, ParseException, ParserConfigurationException {
// TODO Auto-generated method stub
Map<Node,Object> map = null;
for(Map.Entry<Node, Object> entry:this.map.entrySet()){
if(entry.getKey().name.equalsIgnoreCase(_XML_X790TroubleTicketNode)){
map =(Map<Node, Object>) entry.getValue();
break;
}
}
X790TroubleTicketValue tt = (X790TroubleTicketValue) BeanFactory.Map2Bean(X790TroubleTicketValue.class, map,datasource);
return tt;
}
@Override
public BaseAlarmValue createBaseAlarm(Map datasource) throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException, ClassNotFoundException, DatatypeConfigurationException, ParseException, ParserConfigurationException {
// TODO Auto-generated method stub
Map<Node,Object> map = null;
for(Map.Entry<Node, Object> entry:this.map.entrySet()){
if(entry.getKey().name.equalsIgnoreCase(_XML_X790BaseAlarmNode)){
map =(Map<Node, Object>) entry.getValue();
break;
}
}
BaseAlarmValue alarm = (BaseAlarmValue) BeanFactory.Map2Bean(BaseAlarmValue.class, map,datasource);
return alarm;
}
public static void main(String args[]) throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException, ClassNotFoundException, DatatypeConfigurationException, ParseException, DocumentException, ParserConfigurationException{
Alarm alarm=new Alarm();
alarm.setAlarmId("3324");
alarm.setAlarmName("alarmName");
alarm.setAlarmTime("20131003132223");
TT tt=new TT();
//tt.originator tt.subject tt.category tt.vendor tt.perceivedTroubleSeverity tt.preferredPriority tt.troubledObject
//tt.troubleTicketState tt.troubleDescription tt.troubleCause tt.createPerson tt.troubleTicketCreationTime tt.attachment;
tt.setOriginator("PM");
tt.setSubject("Subject");
tt.setCategory("Category");
tt.setVendor("Vendor");
tt.setPerceivedTroubleSeverity("PerceivedTroubleSeverity");
tt.setPreferredPriority("PreferredPriority");
tt.setTroubledObject("setTroubledObject");
tt.setTroubleTicketState("setTroubleTicketState");
tt.setTroubleDescription("setTroubleDescription");
tt.setTroubleCause("setTroubleCause");
tt.setCreatePerson("CreatePerson");
tt.setTroubleTicketCreationTime("20131003132223");
tt.setAttachment("Attachment");
Map<String, Object> map;
map = BeanFactory.Bean2Map(alarm);
map.putAll(BeanFactory.Bean2Map(tt));
X790BeanFactory factory = new X790BeanFactory();
factory.setObjectConfigFile(SysIntegrationFinals.SDM_OBJCONFIG_ALARM);
BaseAlarmValue x790alarm =factory.createBaseAlarm(map);
// X790TroubleTicketValue x790tt =(X790TroubleTicketValue) factory.createTroubleTicket(map);
// System.out.println(x790tt.getOriginator());
//
System.out.println(x790alarm.getOriginatingManagedEntityKey().getValue().getPrimaryKey().getAny().get(0).getFirstChild().getNodeValue());
}
}