calyrex 5.19和信创建流程接口

ht
calyrex 3 weeks ago
parent 3dd7671cc0
commit d0550dd643

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

@ -52,7 +52,8 @@ public class InterInfoAchieveUtil {
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); 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 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"; 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); RequestBody body = RequestBody.create(mediaType, params);
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
@ -63,4 +64,5 @@ public class InterInfoAchieveUtil {
return response.body().string(); return response.body().string();
} }
} }

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