@ -31,22 +31,25 @@ public class DoCreateWorkflowService {
private InterInfoAchieveUtil interInfoAchieveUtil ;
public String doCreateWorkflowRequest ( String creator , String tenantKey , String workflowId , String mainTable , String detailArray ) throws IOException {
log . info ( "DoCreateWorkflowService start" ) ;
log . error ( "DoCreateWorkflowService start" ) ;
try {
List < Long > detailFormId = dataOperateUtil . getDetailFormId ( workflowId ) ;
JSONObject param = new JSONObject ( ) ;
param . put ( "userid" , Long . valueOf ( creator ) ) ;
param . put ( "workflowId" , Long . valueOf ( workflowId ) ) ;
log . info ( "主表数据:" + mainTable ) ;
log . error ( "主表数据:" + mainTable ) ;
//主表数据 json {"sqr":"sqr1","date":"date1","hrm:zrr":"zrr1"}
//字段名前面加 hrm:表示是人力资源字段
if ( mainTable = = null | | mainTable . equals ( "" ) ) {
return "主表数据不能为空" ;
JSONObject result = new JSONObject ( true ) ;
result . put ( "status" , "-4" ) ;
result . put ( "message" , "主表数据不能为空" ) ;
return result . toJSONString ( ) ;
}
JSONObject jsonObject = JSONObject . parseObject ( mainTable ) ;
Map < String , Object > mainMap = jsonObject . toJavaObject ( Map . class ) ;
log . info ( "主表集合:" + mainMap ) ;
log . error ( "主表集合:" + mainMap ) ;
List < FormDataDuty > formDataDutyList = new ArrayList ( ) ;
// 输出 Map 的内容
for ( Map . Entry < String , Object > entry : mainMap . entrySet ( ) ) {
@ -59,19 +62,19 @@ public class DoCreateWorkflowService {
formDataDutyList . add ( formDataDuty ) ;
}
log . info( "detailArray--" , detailArray ) ;
log . error( "detailArray--" + detailArray ) ;
JSONArray detailTables = JSONArray . parseArray ( detailArray ) ;
if ( detailTables . size ( ) > 0 ) {
// 遍历外部 JSONArray
for ( int i = 0 ; i < detailTables . size ( ) ; i + + ) {
log . info ( "detailTables--" + detailTables . get ( i ) ) ;
log . error ( "detailTables--" + detailTables . get ( i ) ) ;
JSONObject detailInfo = JSONObject . parseObject ( detailTables . get ( i ) . toString ( ) ) ; // 获取内部的 JSONArray
log . info ( "detailInfo:" + detailInfo ) ;
log . error ( "detailInfo:" + detailInfo ) ;
log . info ( "index:" + detailInfo . get ( "index" ) ) ;
log . info ( "detailFormId:" + detailFormId ) ;
log . error ( "index:" + detailInfo . get ( "index" ) ) ;
log . error ( "detailFormId:" + detailFormId ) ;
Long subFormId = detailFormId . get ( Integer . parseInt ( detailInfo . get ( "index" ) . toString ( ) ) - 1 ) ;
log . info ( "明细表" + ( i + 1 ) + "form_id" + subFormId ) ;
log . error ( "明细表" + ( i + 1 ) + "form_id" + subFormId ) ;
JSONArray innerArray = detailInfo . getJSONArray ( "data" ) ;
if ( innerArray . size ( ) > 0 ) {
@ -84,7 +87,7 @@ public class DoCreateWorkflowService {
FormDataDuty formDataDuty = FormDataDuty . builder ( ) . build ( ) ;
String value = jsonDetail . getString ( key ) ;
if ( ! "" . equals ( key ) ) {
// log. info ("明细表普通字段值:"+value);
// log. error ("明细表普通字段值:"+value);
if ( StringUtils . isNotEmpty ( value ) ) {
formDataDuty . setDataKey ( key ) ;
formDataDuty . setDataIndex ( ( long ) ( j + 1 ) ) ;
@ -92,7 +95,7 @@ public class DoCreateWorkflowService {
//目前写死 后续在找方法
formDataDuty . setSubFormId ( subFormId ) ;
} else {
// log. info ("明细表普通字段值为空");
// log. error ("明细表普通字段值为空");
}
formDataDutyList . add ( formDataDuty ) ;
}
@ -104,49 +107,78 @@ public class DoCreateWorkflowService {
}
log . info ( "formDataDutyList数据: " + formDataDutyList . size ( ) + "-" + formDataDutyList ) ;
log . error ( "formDataDutyList数据: " + formDataDutyList . size ( ) + "-" + formDataDutyList ) ;
}
if ( CollectionUtils . isNotEmpty ( formDataDutyList ) ) {
JSONObject fromDataByDataDetails = dataOperateUtil . getFromDataByDataDetails ( formDataDutyList ) ;
log . info ( "formDataDutyList数据: " + fromDataByDataDetails ) ;
log . error ( "formDataDutyList数据: " + fromDataByDataDetails ) ;
param . put ( "formData" , fromDataByDataDetails ) ;
}
String code = JSONObject . parseObject ( interInfoAchieveUtil . getCode ( tenantKey ) ) . getString ( "code" ) ;
String token = JSONObject . parseObject ( interInfoAchieveUtil . getToken ( code , tenantKey ) ) . getString ( "accessToken" ) ;
String url = dataOperateUtil . null2String ( dataOperateUtil . getConfig ( "oa_address" , tenantKey ) ) + "/papi/openapi/api/workflow/core/paService/v1/doCreateRequest?access_token=" + token ;
log . info ( "url : " + url ) ;
log . error ( "url : " + url ) ;
JSONObject otherParams = new JSONObject ( ) ;
otherParams . put ( "isnextflow" , 1 ) ;
param . put ( "otherParams" , otherParams ) ;
log . info ( "表单json:" + param . toJSONString ( ) ) ;
log . error ( "表单json:" + param . toJSONString ( ) ) ;
// 远程调用创建流程。
String response = HttpUtil . post ( url , param . toJSONString ( ) ) ;
log . info ( "自动创建流程结果:" + response ) ;
log . error ( "自动创建流程结果:" + response ) ;
JSONObject responseObj = JSONObject . parseObject ( response ) ;
Object message = responseObj . get ( "message" ) ;
JSONObject messageObj = JSONObject . parseObject ( message . toString ( ) ) ;
String errcode = messageObj . get ( "errcode" ) . toString ( ) ;
log . info ( "errcode: " + errcode ) ;
log . error ( "errcode: " + errcode ) ;
if ( StringUtils . isNotEmpty ( errcode ) ) {
if ( messageObj . get ( "errcode" ) . toString ( ) . equals ( "0" ) ) {
log . info ( "requestId: " + messageObj . get ( "requestId" ) . toString ( ) ) ;
return Optional . ofNullable ( messageObj . get ( "requestId" ) ) . map ( Object : : toString ) . orElse ( "" ) ;
} else {
log . info ( "errmsg: " + messageObj . get ( "errmsg" ) . toString ( ) ) ;
return messageObj . get ( "errmsg" ) . toString ( ) ;
JSONObject result = new JSONObject ( true ) ;
switch ( errcode ) {
case "0" :
result . put ( "status" , "0" ) ;
result . put ( "message" , Optional . ofNullable ( messageObj . get ( "requestId" ) ) . map ( Object : : toString ) . orElse ( "" ) ) ;
break ;
case "1200364" :
result . put ( "status" , "-7" ) ;
result . put ( "message" , messageObj . get ( "errmsg" ) . toString ( ) ) ;
break ;
default :
result . put ( "status" , "-1" ) ;
result . put ( "message" , "调用泛微流程创建接口失败" ) ;
}
return result . toJSONString ( ) ;
// if(messageObj.get("errcode").toString().equals("0")){
// log.error("requestId: "+messageObj.get("requestId").toString());
// JSONObject result = new JSONObject();
//
// result.put("message",Optional.ofNullable(messageObj.get("requestId")).map(Object::toString).orElse(""));
// result.put("status","0");
//// return Optional.ofNullable(messageObj.get("requestId")).map(Object::toString).orElse("");
// return result.toJSONString();
// }else{
// log.error("errmsg: "+messageObj.get("errmsg").toString());
// JSONObject result = new JSONObject();
// result.put("message",messageObj.get("errmsg").toString());
// result.put("status",errcode);
// return result.toJSONString();
// }
} else {
return "调用泛微流程创建接口失败" ;
JSONObject result = new JSONObject ( true ) ;
result . put ( "status" , "-1" ) ;
result . put ( "message" , "调用泛微流程创建接口失败" ) ;
return result . toJSONString ( ) ;
}
} catch ( Exception e ) {
log . info ( "接口调用失败-" , e ) ;
return "接口调用失败--" + e ;
log . error ( "接口调用失败-" , e ) ;
JSONObject result = new JSONObject ( true ) ;
result . put ( "status" , "-1" ) ;
result . put ( "message" , "接口调用失败--" + e ) ;
return result . toJSONString ( ) ;
}
}