本帖最后由 summer 于 2012-9-28 15:18 编辑
public String startFlow(String jsonParameters ,String domainUserId) {
String result = "noStart";
try {
//转换成json格式
jsonObj = new JSONObject(jsonParameters);
if(checkArgument(jsonObj) && checkArgument(domainUserId)){
this._parameters = convertJson2Hash(jsonObj);
//this._parameters.put("createUserId", domainUserId);
this._userId = domainUserId;
//获取接口
docLocator = new DocumentServiceServiceLocator();
docLocator.setDocumentServiceEndpointAddress(docEndpointAddress);
URL url = new URL(docEndpointAddress+"?wsdl");
docService = docLocator.getDocumentService();
//检验该单子是否存在
HashMap checkMap = new HashMap();
checkMap.put("examNumber", jsonObj.get("examNumber"));
Object[] objs = docService.searchDocumentsByFilter(this._formName, checkMap,this._appId , this._userId);
if(objs != null && objs.length > 0){
System.out.println(objs.length);
int countRecorder = 0;
for(int i = 0;i< objs.length; i++){
SimpleDocument tmp = (SimpleDocument) objs;
String dbExamNumber = (String) tmp.getItems().get("examNumber");
if(jsonObj.getString("examNumber").equals(dbExamNumber)){
String label = tmp.getStateLabel();
result = "订单已存在,流程状态是("+label+")";
if(label.equals("结束")){
Double itemDiscount = (Double) tmp.getItems().get("discount");
Double nonItemDiscount = (Double) tmp.getItems().get("notItemDiscount");
result += "。体检项目折扣率是:"+itemDiscount+"%;非体检项目折扣率是:"+nonItemDiscount+"%";
}
break;
}
else {
countRecorder++;
if(countRecorder == objs.length){
_parameters.put("_flowid", this._flowId);
//新建一条订单,返回docId
String str = docService.createDocumentByDomainUser(this._formName, this._parameters,this._userId,this._appId );
//获取该订单的流程状态
result = "新建表单,流程状态是("+getFlowLabel((String)jsonObj.get("examNumber"), this._userId)+")";
}
}
}
}
else{
_parameters.put("_flowid", this._flowId);
//新建一条订单,返回docId
String str = docService.createDocumentByDomainUser(this._formName, this._parameters,this._userId,this._appId );
//获取该订单的流程状态
result = "新建表单,流程状态是("+getFlowLabel((String)jsonObj.get("examNumber"),this._userId)+")";
}
}
else{
result = "parameters are not correct,please check";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
result = e.toString();
}
System.out.println(result);
return result;
}
后台打印的objs.length是1,我就调用了你们的searchDocumentsByFilter,却返回了脏数据,请问到底是谁的函数错误? |