calyrex 5.19和信创建流程接口

ht
calyrex 3 weeks ago
parent 3dd7671cc0
commit d0550dd643

@ -34,13 +34,13 @@ public class DataOperateUtil {
private DataSetService dataSetService;
public List<Long> getDetailFormId(String workflowId) {
log.error("getDetailFormId start : " + workflowId );
log.info("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("getConfig sql-->" + sql);
log.info("getDetailFormId sql-->" + sql);
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
// log.info("getConfig datas-->" + datas);
if(String.valueOf(datas.get("status")).equals("OK")){
@ -52,27 +52,28 @@ public class DataOperateUtil {
}
return formIdList;
}else {
log.error("getConfig status-->"+ datas.get("status"));
log.error("getDetailFormId status-->"+ datas.get("status"));
return formIdList;
}
}catch (Exception e){
log.error("getConfig e--> ",e);
log.error("getDetailFormId e--> ",e);
return formIdList;
}
}
public String getConfig(String key,String tenantKey){
int tenantId = getTenantId(tenantKey);
String sourceType = String.valueOf(SourceType.LOGIC);
String groupId = "weaver-basic-schedule-service";
String groupId = "weaver-ebuilder-form-service";
try {
String sql = "select configvalue from ecology10.dbo.uf_config where configkey = '" + key + "' and zhkey = '"+tenantKey+"'";
String sql = "select configvalue from ecology10.dbo.uf_config where configkey = '" + key + "' and zhkey = '"+tenantId+"'";
log.info("getConfig sql-->" + sql);
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
// log.info("getConfig datas-->" + datas);
log.info("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);
return map.get("config_value").toString();
return map.get("configvalue").toString();
}else {
log.error("getConfig status-->"+ datas.get("status"));
return "";
@ -101,6 +102,7 @@ public class DataOperateUtil {
* @return
*/
public static JSONObject getFromDataByDataDetails(List<FormDataDuty> formDataDutyList) {
log.error("getFromDataByDataDetails start");
JSONObject formData = new JSONObject();
formData.put("module","workflow");
@ -172,6 +174,14 @@ public class DataOperateUtil {
return formData;
}
private int getTenantId(String tenantKey){
if (tenantKey == "temkc46eme"){
return 0;
}else {
return 0;
}
}
public static String null2String(String s){
return s == null ? "" : s;
}

@ -52,7 +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 params-->" + params);
log.info("getToken url--"+url);
log.info("getToken params-->" + params);
RequestBody body = RequestBody.create(mediaType, params);
Request request = new Request.Builder()
.url(url)
@ -63,4 +64,5 @@ public class InterInfoAchieveUtil {
return response.body().string();
}
}

@ -30,8 +30,9 @@ public class DoCreateWorkflowService {
@Autowired
private InterInfoAchieveUtil interInfoAchieveUtil;
public String doCreateWorkflowRequest(String creator,String tenantKey,String workflowId,String mainTable,String[] detailTables) throws IOException {
public String doCreateWorkflowRequest(String creator,String tenantKey,String workflowId,String mainTable,String detailArray) throws IOException {
log.info("DoCreateWorkflowService start");
try {
List<Long> detailFormId = dataOperateUtil.getDetailFormId(workflowId);
JSONObject param = new JSONObject();
param.put("userid", Long.valueOf(creator));
@ -45,7 +46,7 @@ public class DoCreateWorkflowService {
JSONObject jsonObject = JSONObject.parseObject(mainTable);
Map<String, Object> mainMap = jsonObject.toJavaObject(Map.class);
log.error("主表集合:" + mainMap);
log.info("主表集合:" + mainMap);
List<FormDataDuty> formDataDutyList = new ArrayList();
// 输出 Map 的内容
for (Map.Entry<String, Object> entry : mainMap.entrySet()) {
@ -57,35 +58,33 @@ public class DoCreateWorkflowService {
formDataDuty.setContent(String.valueOf(value));
formDataDutyList.add(formDataDuty);
}
if(detailTables==null){
}else{
// log.error("处理明细数据");
if(detailTables.length>0){
log.info("detailArray--",detailArray);
JSONArray detailTables = JSONArray.parseArray(detailArray);
if(detailTables.size()>0){
// 遍历外部 JSONArray
for (int i = 0; i < detailTables.length; i++) {
JSONArray innerArray = JSONArray.parseArray(detailTables[i]); // 获取内部的 JSONArray
log.error("innerArray:"+innerArray);
for (int i = 0; i < detailTables.size(); i++) {
log.info("detailTables--"+detailTables.get(i));
JSONObject detailInfo = JSONObject.parseObject(detailTables.get(i).toString()); // 获取内部的 JSONArray
log.info("detailInfo:"+detailInfo);
if(innerArray.size()>0){
//判断明细表id是否存在
if (detailFormId.size() < i+1) {
log.error("明细表"+(i+1)+"form_id未找到或不存在");
return "明细表"+(i+1)+"form_id未找到或不存在";
}
Long subFormId = detailFormId.get(i);
log.error("明细表"+(i+1)+"form_id"+subFormId);
log.info("index:"+detailInfo.get("index"));
log.info("detailFormId:"+detailFormId);
Long subFormId = detailFormId.get(Integer.parseInt(detailInfo.get("index").toString())-1);
log.info("明细表"+(i+1)+"form_id"+subFormId);
JSONArray innerArray = detailInfo.getJSONArray("data");
if(innerArray.size()>0){
// 遍历内部 JSONArray
for (int j = 0; j < innerArray.size(); j++) {
com.alibaba.fastjson.JSONObject jsonDetail = innerArray.getJSONObject(j);
JSONObject jsonDetail = innerArray.getJSONObject(j);
// 遍历 JSONObject 的键值对
for (String key : jsonDetail.keySet()) {
FormDataDuty formDataDuty = FormDataDuty.builder().build();
String value = jsonDetail.getString(key);
if (!"".equals(key)) {
// log.error("明细表普通字段值:"+value);
// log.info("明细表普通字段值:"+value);
if(StringUtils.isNotEmpty(value)){
formDataDuty.setDataKey(key);
formDataDuty.setDataIndex((long) (j + 1));
@ -93,7 +92,7 @@ public class DoCreateWorkflowService {
//目前写死 后续在找方法
formDataDuty.setSubFormId(subFormId);
}else{
// log.error("明细表普通字段值为空");
// log.info("明细表普通字段值为空");
}
formDataDutyList.add(formDataDuty);
}
@ -105,44 +104,50 @@ public class DoCreateWorkflowService {
}
log.error("formDataDutyList数据"+formDataDutyList.size()+"-"+formDataDutyList);
}
log.info("formDataDutyList数据"+formDataDutyList.size()+"-"+formDataDutyList);
}
if(CollectionUtils.isNotEmpty(formDataDutyList)) {
JSONObject fromDataByDataDetails = dataOperateUtil.getFromDataByDataDetails(formDataDutyList);
log.info("formDataDutyList数据"+fromDataByDataDetails);
param.put("formData", fromDataByDataDetails);
}
String code = interInfoAchieveUtil.getCode(tenantKey);
String token = interInfoAchieveUtil.getToken(code,tenantKey);
String url = dataOperateUtil.null2String(dataOperateUtil.getConfig("oa_address",tenantKey)) + "/api/workflow/core/paService/v1/doCreateRequest?access_token=" + token;
log.error("url : " + url);
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);
JSONObject otherParams =new JSONObject();
otherParams.put("isnextflow",1);
param.put("otherParams",otherParams);
log.error("表单json:"+param.toJSONString());
log.info("表单json:"+param.toJSONString());
// 远程调用创建流程。
String response = HttpUtil.post(url, param.toJSONString());
log.error("自动创建流程结果:"+response);
log.info("自动创建流程结果:"+response);
JSONObject responseObj = JSONObject.parseObject(response);
Object message = responseObj.get("message");
JSONObject messageObj = JSONObject.parseObject(message.toString());
String errcode = messageObj.get("errcode").toString();
log.error("errcode"+errcode);
log.info("errcode"+errcode);
if(StringUtils.isNotEmpty(errcode)){
if(messageObj.get("errcode").toString().equals("0")){
log.error("requestId"+messageObj.get("requestId").toString());
log.info("requestId"+messageObj.get("requestId").toString());
return Optional.ofNullable(messageObj.get("requestId")).map(Object::toString).orElse("");
}else{
log.error("errmsg"+messageObj.get("errmsg").toString());
log.info("errmsg"+messageObj.get("errmsg").toString());
return messageObj.get("errmsg").toString();
}
}else{
return "调用泛微流程创建接口失败";
}
}catch (Exception e){
log.info("接口调用失败-",e);
return "接口调用失败--"+e;
}
}
}
Loading…
Cancel
Save