JSD-7837开源任务材料
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

357 lines
14 KiB

package com.fr.plugin.it.api;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
import com.fr.plugin.it.config.simple.account.PluginSimpleConfig;
import com.fr.plugin.it.utils.*;
import java.util.*;
public class FlowApi {
//启动流程
public static String startFlow(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getStart();
String workflowCode = String.valueOf(object[0]);
String userCode = String.valueOf(object[1]);
String finishStart = String.valueOf(object[2]);
String jsonDataItems = String.valueOf(object[3]);
String subJsonDataItems = "";
// String.valueOf(object[4]);
String jsonDataItemsStr = getJSONDataStr(jsonDataItems);
if(Utils.isNullStr(jsonDataItemsStr)){
jsonDataItemsStr = "";
}
String subJsonDataItemsStr = getJSONDataStr(subJsonDataItems);
if(Utils.isNullStr(subJsonDataItemsStr)){
subJsonDataItemsStr = "";
}
Map<String,String> param = new HashMap<String,String>();
param.put("workflowCode",workflowCode);
param.put("userCode",userCode);
param.put("finishStart",finishStart);
param.put("jsonDataItems",jsonDataItemsStr);
param.put("subJsonDataItems",subJsonDataItemsStr);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
String re2 =XMLUtils.xmlToList(result);
Map<String,String> param2 = new HashMap<String,String>();
param2.put("workflowCode",workflowCode);
param2.put("userCode",userCode);
param2.put("finishStart",finishStart);
param2.put("jsonDataItems",jsonDataItems);
param2.put("subJsonDataItems",subJsonDataItems);
insertToDB(param2,"startWorkflow",re2);
return re2;
}
//驳回工作任务
public static String return1(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getReturn1();
String userCode = String.valueOf(object[0]);
String workItemId = String.valueOf(object[1]);
String commentText = String.valueOf(object[2]);
Map<String,String> param = new HashMap<String,String>();
param.put("userCode",userCode);
param.put("workItemId",workItemId);
param.put("commentText",commentText);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
return XMLUtils.xmlToList(result);
}
//3、驳回工作任务到开始
public static String returnToStart(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getReturnToStart();
String workItemId = String.valueOf(object[0]);
String commentText = String.valueOf(object[1]);
Map<String,String> param = new HashMap<String,String>();
param.put("workItemId",workItemId);
param.put("commentText",commentText);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
return XMLUtils.xmlToList(result);
}
//4、提交工作任务
public static String submit(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getSubmit();
String userCode = String.valueOf(object[0]);
String workItemId = String.valueOf(object[1]);
String commentText = String.valueOf(object[2]);
String approval = String.valueOf(object[3]);
Map<String,String> param = new HashMap<String,String>();
param.put("userCode",userCode);
param.put("workItemId",workItemId);
param.put("commentText",commentText);
param.put("approval",approval);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
String result2 =XMLUtils.xmlToList(result);
insertToDB(param,"submitWorkItem",result2);
return result2;
}
//5、5、批量取消流程
public static String cancel(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getCancel();
String userCode = String.valueOf(object[0]);
String sequenceNos = String.valueOf(object[1]);
Map<String,String> param = new HashMap<String,String>();
param.put("userCode",userCode);
param.put("instanceId",sequenceNos);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
return XMLUtils.xmlToList(result);
}
//6、取消流程
public static String cancelWithRemark(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getCancelWithRemark();
String userCode = String.valueOf(object[0]);
String sequenceNos = String.valueOf(object[1]);
String remark = String.valueOf(object[2]);
Map<String,String> param = new HashMap<String,String>();
param.put("userCode",userCode);
param.put("instanceId",sequenceNos);
param.put("remark",remark);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
String result2 =XMLUtils.xmlToList(result);
insertToDB(param,"cancelInstanceWithRemark",result2);
return result2;
}
//7、重新激活流程
public static String restart(Object[] object){
PluginSimpleConfig psc = PluginSimpleConfig.getInstance();
String startUrl = psc.getReStart();
String instanceId = String.valueOf(object[0]);
String activityCode = String.valueOf(object[1]);
Map<String,String> param = new HashMap<String,String>();
param.put("instanceId",instanceId);
param.put("activityCode",activityCode);
String result = HttpUtils.HttpPostWWWForm(startUrl,null,param);
String result2 =XMLUtils.xmlToList2(result);
insertToDB(param,"reStartWorkflow",result2);
return result2;
}
private static String getJSONDataStr(String jsonDataItems) {
JSONArray itemsJsons = new JSONArray();
if(Utils.isNotNullStr(jsonDataItems)){
String[] items = jsonDataItems.split(";");
for(String item : items){
String[] keyValue = item.split(",");
JSONObject jsonObject = new JSONObject();
jsonObject.put(keyValue[0],keyValue[1]);
itemsJsons.add(jsonObject);
}
return itemsJsons.toString();
}
return "";
}
private static List<String> getValues(String jsonDataItems) {
List<String> result = new ArrayList<String>();
if(Utils.isNotNullStr(jsonDataItems)){
String[] items = jsonDataItems.split(";");
for(String item : items){
String[] keyValue = item.split(",");
result.add(keyValue[1]);
}
}
return result;
}
private static void insertToDB(Map<String,String> param,String flowName,String result){
String id = Utils.uuid();
Date date = new Date();
String yearMonth = DateUtilSelf.DateToString(date,"yyyyMM");
//是否成功调用
String isSuccess = "N";
String sql = "";
if("startWorkflow".equals(flowName)){
//请求参数
String workflowCode = param.get("workflowCode");
String userCode = param.get("userCode");
String finishStart = param.get("finishStart");
String jsonDataItems = param.get("jsonDataItems");
String subJsonDataItems = param.get("subJsonDataItems");
List<String> values = getValues(jsonDataItems);
String field = getFileStr(values);
String value2 = getValueStr(values);
if(Utils.isNullStr(result)){
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3"+field+")" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+workflowCode+"','"+userCode+"','"+finishStart+"'"+value2+")";
JDBCUtil.update(sql);
return;
}
JSONObject resultJson = new JSONObject(result);
isSuccess = resultJson.getBoolean("Success") ? "Y" : "N";
//返回值
String success = resultJson.getString("Success");
String instanceID = resultJson.getString("InstanceID");
String message = resultJson.getString("Message");
String workItemID = resultJson.getString("WorkItemID");
String workItemUrl = resultJson.getString("WorkItemUrl");
String SequenceNO = resultJson.getString("SequenceNO");
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3"+field+",BACK_DATA1,BACK_DATA2,BACK_DATA3,BACK_DATA4,BACK_DATA5,BACK_DATA6)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+workflowCode+"','"+userCode+"','"+finishStart+"'"+value2+",'"+success+"','"+instanceID+"','"+message+"','"+workItemID+"','"+workItemUrl+"','"+SequenceNO+"')";
FRUtils.FRLogInfo("sql:"+sql);
JDBCUtil.update(sql);
}else if("reStartWorkflow".equals(flowName)){
//请求参数
String instanceId = param.get("instanceId");
String activityCode = param.get("activityCode");
if(Utils.isNullStr(result)){
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+instanceId+"','"+activityCode+"')";
JDBCUtil.update(sql);
return;
}
JSONObject resultJson = new JSONObject(result);
isSuccess = resultJson.getBoolean("Success") ? "Y" : "N";
//返回值
String success = resultJson.getString("Success");
String sequenceNo = resultJson.getString("SequenceNo");
String instanceId2 = resultJson.getString("InstanceId");
String message = resultJson.getString("Message");
String jsonList = resultJson.getString("JsonList");
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,BACK_DATA1,BACK_DATA2,BACK_DATA3,BACK_DATA4,BACK_DATA5)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+instanceId+"','"+activityCode+"','"+success+"','"+sequenceNo+"','"+instanceId2+"','"+message+"','"+jsonList+"')";
FRUtils.FRLogInfo("sql:"+sql);
JDBCUtil.update(sql);
}else if("cancelInstanceWithRemark".equals(flowName)){
//请求参数
String userCode = param.get("userCode");
String sequenceNos = param.get("sequenceNos");
String remark = param.get("remark");
if(Utils.isNullStr(result)){
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+userCode+"','"+sequenceNos+"','"+remark+"')";
JDBCUtil.update(sql);
return;
}
isSuccess = result.equals("true") ? "Y" : "N";
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3,BACK_DATA1)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+userCode+"','"+sequenceNos+"','"+remark+"','"+isSuccess+"')";
FRUtils.FRLogInfo("sql:"+sql);
JDBCUtil.update(sql);
}else if("submitWorkItem".equals(flowName)){
//请求参数
String userCode = param.get("userCode");
String workItemId = param.get("workItemId");
String commentText = param.get("commentText");
String approval = param.get("approval");
if(Utils.isNullStr(result)){
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3,SUBMIT_DATA4)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+userCode+"','"+workItemId+"','"+commentText+"','"+approval+"')";
JDBCUtil.update(sql);
return;
}
isSuccess = result.equals("true") ? "Y" : "N";
sql = "insert into FRSOURCEDATA10.RF_BPM_JYSGZ_TRIGGERLOG(ID,BPM_TYPE,YEARMONTH,STARTTIME,IS_SUCCESS,SUBMIT_DATA1,SUBMIT_DATA2,SUBMIT_DATA3,SUBMIT_DATA4,BACK_DATA1)" +
" values('"+id+"','"+flowName+"','"+yearMonth+"',sysdate,'"+isSuccess+"','"+userCode+"','"+workItemId+"','"+commentText+"','"+approval+"','"+result+"')";
FRUtils.FRLogInfo("sql:"+sql);
JDBCUtil.update(sql);
}
}
private static String getFileStr(List<String> values){
String field = "";
String fieldStr = "SUBMIT_DATA";
int count = 4;
for(String value : values){
field+= ","+fieldStr + count;
count ++;
}
return field;
}
private static String getValueStr(List<String> values){
String result = "";
for(String value : values){
result +=",'"+value+"'";
}
return result;
}
}