package com.inspur.pmv5.service.impl.sysintegration.wsclient.provider;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import com.huawei.sdm.FmQueryCRInputInterface;
import com.huawei.sdm.FmQueryCRInputInterfaceImpactObjects;
import com.huawei.sdm.FmQueryCROutputResult;
import com.huawei.sdm.FmQueryCROutputResultCRListCR;
import com.inspur.pmv5.common.finals.SysIntegration.SysIntegrationFinals;
import com.inspur.pmv5.pojo.sysintegration.CRObject;
import com.inspur.pmv5.pojo.sysintegration.CRQueryObject;
import com.inspur.pmv5.pojo.sysintegration.SystemParameter;
import com.inspur.pmv5.pojo.sysintegration.Result;
import com.inspur.pmv5.service.api.exception.WebServiceException;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.connection.CRWSProxyBean;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.DateUtils;
import com.inspur.pmv5.service.impl.sysintegration.wsclient.util.PropertiesUtil;
/**
* FM CR查询服务
* @author Terry
*
*/
public class FMCRQueryService implements ServiceProvider {
private Properties prop = null;
/**
* 构造函数
* @throws IOException io 异常
*
*/
public FMCRQueryService() throws IOException{
super();
init();
}
/**
* 加载TT状态字典数据
* @throws IOException io异常
*/
private void init() throws IOException {
// TODO Auto-generated method stub
prop = PropertiesUtil
.getProperties(SysIntegrationFinals.TTDiact);
}
@Override
public Result execService(Object[] args) throws WebServiceException {
// TODO Auto-generated method stub
FmQueryCRInputInterface querycr = new FmQueryCRInputInterface();
CRQueryObject queryobj = (CRQueryObject)args[0];
try {
querycr.setStartTime(DateUtils.Time2UTC(queryobj.getStartTime(), SystemParameter.TIMEZONE));
querycr.setEndTime(DateUtils.Time2UTC(queryobj.getEndTime(), SystemParameter.TIMEZONE));
} catch (Exception e) {
// TODO Auto-generated catch block
throw new WebServiceException(e.getMessage());
}
FmQueryCRInputInterfaceImpactObjects impactObjects = new FmQueryCRInputInterfaceImpactObjects();
impactObjects.getImpactObject().add("");
// for(String mo :queryobj.getMoEntityNameList()){
// impactObjects.getImpactObject().add(mo);
// }
querycr.setImpactObjects(impactObjects);
FmQueryCROutputResult fmcrrs =CRWSProxyBean.getNBIServiceImpl().queryCR(querycr);
CRObject cr = null;
Result result = new Result();
List<Object> list = new ArrayList<Object>();
for(FmQueryCROutputResultCRListCR obj : fmcrrs.getCRList().getCR()){
cr = new CRObject();
cr.setChangeRequestID(obj.getChangeRequestID());
cr.setChangeRequestState(obj.getChangeRequestState());
cr.setClosePerson(obj.getClosePerson());
cr.setCreatePerson(obj.getCreatePerson());
cr.setCreateTime(obj.getCreateTime()!=null&&!"".equalsIgnoreCase(obj.getCreateTime().trim())?DateUtils.UTC2Time(Long.valueOf(obj.getCreateTime()),SystemParameter.TIMEZONE):"");
cr.setMoEntityName(obj.getImpactObject());
cr.setOperator(obj.getOperator());
cr.setPlanAction(obj.getPlanAction());
cr.setPlanEndTime(obj.getPlanEndTime()!=null&&!"".equalsIgnoreCase(obj.getPlanEndTime().trim())?DateUtils.UTC2Time(Long.valueOf(obj.getPlanEndTime()),SystemParameter.TIMEZONE):"");
cr.setPlanStartTime(obj.getPlanStartTime()!=null&&!"".equalsIgnoreCase(obj.getPlanStartTime().trim())?DateUtils.UTC2Time(Long.valueOf(obj.getPlanStartTime()),SystemParameter.TIMEZONE):"");
cr.setPreferredPriority(obj.getPreferredPriority());
cr.setRequestDescription(obj.getRequestDescription());
cr.setRequestCloseTime(obj.getRequestCloseTime()!=null&&!"".equalsIgnoreCase(obj.getRequestCloseTime().trim())?DateUtils.UTC2Time(Long.valueOf(obj.getRequestCloseTime()),SystemParameter.TIMEZONE):"");
cr.setTitle(obj.getTitle());
list.add(cr);
}
result.setResult(list);
// result.setStartIndex(Integer.parseInt(fmcrrs.getStart()));
// result.setTotalNumber(Integer.parseInt(fmcrrs.getTotal()));
return result;
}
}