From aacec8fce8e11f056fe9b3f56e0cd8a0693e8905 Mon Sep 17 00:00:00 2001 From: qijirenjian Date: Thu, 26 Jun 2025 09:56:57 +0800 Subject: [PATCH] hx create flow --- .../seconddev/util/DataOperateUtil.java | 16 ++-- .../seconddev/util/InterInfoAchieveUtil.java | 6 +- .../webservice/DoCreateWorkflowService.java | 86 +++++++++++++------ 3 files changed, 70 insertions(+), 38 deletions(-) diff --git a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/DataOperateUtil.java b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/DataOperateUtil.java index 92910f1..5b6dfd3 100644 --- a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/DataOperateUtil.java +++ b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/DataOperateUtil.java @@ -34,15 +34,15 @@ public class DataOperateUtil { private DataSetService dataSetService; public List getDetailFormId(String workflowId) { - log.info("getDetailFormId start : " + workflowId ); + log.error("getDetailFormId start : " + workflowId ); List 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 datas = executeForQuery(sourceType, groupId, sql); -// log.info("getConfig datas-->" + datas); +// log.error("getConfig datas-->" + datas); if(String.valueOf(datas.get("status")).equals("OK")){ List> records = (List>)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 datas = executeForQuery(sourceType, groupId, sql); - log.info("getConfig datas-->" + datas); +// log.error("getConfig datas-->" + datas); if(String.valueOf(datas.get("status")).equals("OK")){ List> records = (List>)datas.get("records"); Map map = records.get(0); @@ -84,15 +84,15 @@ public class DataOperateUtil { } } public Map 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 datas = dataSetService.executeSql(executeSqlEntity); - log.info("executeForQuery datas-->" + datas); + log.error("executeForQuery datas-->" + datas); TenantRpcContext.removeTargetTenantKey(); return datas; } diff --git a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/InterInfoAchieveUtil.java b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/InterInfoAchieveUtil.java index 7d40794..ff8f0af 100644 --- a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/InterInfoAchieveUtil.java +++ b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/util/InterInfoAchieveUtil.java @@ -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) diff --git a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/webservice/DoCreateWorkflowService.java b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/webservice/DoCreateWorkflowService.java index 65176f4..c894ab9 100644 --- a/secondev-hx-webservice/src/main/java/com/weaver/seconddev/webservice/DoCreateWorkflowService.java +++ b/secondev-hx-webservice/src/main/java/com/weaver/seconddev/webservice/DoCreateWorkflowService.java @@ -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 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 mainMap = jsonObject.toJavaObject(Map.class); - log.info("主表集合:" + mainMap); + log.error("主表集合:" + mainMap); List formDataDutyList = new ArrayList(); // 输出 Map 的内容 for (Map.Entry 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(); } }