hx create flow

ht
qijirenjian 1 month ago
parent b492390d67
commit aacec8fce8

@ -34,15 +34,15 @@ public class DataOperateUtil {
private DataSetService dataSetService;
public List<Long> getDetailFormId(String workflowId) {
log.info("getDetailFormId start : " + workflowId );
log.error("getDetailFormId start : " + workflowId );
List<Long> formIdList = new ArrayList();
String sourceType = String.valueOf(SourceType.LOGIC);
String groupId = "weaver-basic-schedule-service";
try {
String sql = "select form_id from ecology10.dbo.form_table where form_id in (select id from ecology10.dbo.sub_form where form_id in (select relatekey from ecology10.dbo.wfp_relateform where workflowid = '"+workflowId+"'))";
log.info("getDetailFormId sql-->" + sql);
log.error("getDetailFormId sql-->" + sql);
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
// log.info("getConfig datas-->" + datas);
// log.error("getConfig datas-->" + datas);
if(String.valueOf(datas.get("status")).equals("OK")){
List<Map<String,Object>> records = (List<Map<String,Object>>)datas.get("records");
for (int i = 0; i < records.size(); i++) {
@ -67,9 +67,9 @@ public class DataOperateUtil {
String groupId = "weaver-ebuilder-form-service";
try {
String sql = "select configvalue from ecology10.dbo.uf_config where configkey = '" + key + "' and zhkey = '"+tenantId+"'";
log.info("getConfig sql-->" + sql);
// log.error("getConfig sql-->" + sql);
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
log.info("getConfig datas-->" + datas);
// log.error("getConfig datas-->" + datas);
if(String.valueOf(datas.get("status")).equals("OK")){
List<Map<String,Object>> records = (List<Map<String,Object>>)datas.get("records");
Map<String, Object> map = records.get(0);
@ -84,15 +84,15 @@ public class DataOperateUtil {
}
}
public Map<String, Object> executeForQuery(String sourceType, String groupId, String sql) {
// log.info("executeForQuery sourceType-->" + sourceType + ",groupId-->" + groupId + ",sql-->" + sql);
// log.error("executeForQuery sourceType-->" + sourceType + ",groupId-->" + groupId + ",sql-->" + sql);
TenantRpcContext.setTargetTenantKey("temkc46eme");
ExecuteSqlEntity executeSqlEntity = new ExecuteSqlEntity();
executeSqlEntity.setSql(cn.hutool.core.codec.Base64.encode(sql));
executeSqlEntity.setGroupId(groupId); //groupid,可以访问 E10地址/api/datasource/ds/group?sourceType=LOGIC 获取
executeSqlEntity.setSourceType(SourceType.valueOf(sourceType));
// log.info("executeForQuery executeSqlEntity-->"+executeSqlEntity.getSql()+"-->"+executeSqlEntity.getGroupId()+"-->"+executeSqlEntity.getSourceType());
// log.error("executeForQuery executeSqlEntity-->"+executeSqlEntity.getSql()+"-->"+executeSqlEntity.getGroupId()+"-->"+executeSqlEntity.getSourceType());
Map<String, Object> datas = dataSetService.executeSql(executeSqlEntity);
log.info("executeForQuery datas-->" + datas);
log.error("executeForQuery datas-->" + datas);
TenantRpcContext.removeTargetTenantKey();
return datas;
}

@ -30,7 +30,7 @@ public class InterInfoAchieveUtil {
String url = dataOperateUtil.null2String(dataOperateUtil.getConfig("oa_address",tenantKey)) + "/papi/openapi/oauth2/authorize?corpid=" +
corpid + "&response_type=" + response_type + "&state=" + state;
String body = HttpRequest.get(url).execute().body();
// log.info("getCode body-->" + body);
// log.error("getCode body-->" + body);
return body;
}catch (Exception e){
log.error("getCode error--> " + e);
@ -52,8 +52,8 @@ public class InterInfoAchieveUtil {
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
String params = "app_key="+app_key+"&app_secret="+app_secret+"&grant_type="+grant_type+"&code="+code;
String url = dataOperateUtil.null2String(dataOperateUtil.getConfig("oa_address",tenantKey)) + "/papi/openapi/oauth2/access_token";
log.info("getToken url--"+url);
log.info("getToken params-->" + params);
log.error("getToken url--"+url);
log.error("getToken params-->" + params);
RequestBody body = RequestBody.create(mediaType, params);
Request request = new Request.Builder()
.url(url)

@ -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();
}
}

Loading…
Cancel
Save