2026-01-28通用流程集成,表单链接跳转功能
This commit is contained in:
@@ -5,7 +5,8 @@ public enum FlowIntegrationConstants {
|
|||||||
plugin("src_flowIntegration", "插件ID"),
|
plugin("src_flowIntegration", "插件ID"),
|
||||||
OA_HOST("","oa地址"),
|
OA_HOST("","oa地址"),
|
||||||
restName("","rest用户名"),
|
restName("","rest用户名"),
|
||||||
restPwd("","rest密码")
|
restPwd("","rest密码"),
|
||||||
|
extAttrLabel("","人员账号自定义数据名称")
|
||||||
;
|
;
|
||||||
|
|
||||||
private String defaultValue;
|
private String defaultValue;
|
||||||
|
|||||||
@@ -0,0 +1,274 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.controller;
|
||||||
|
|
||||||
|
import cn.hutool.log.Log;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.seeyon.apps.addressbook.manager.AddressBookCustomerFieldInfoManager;
|
||||||
|
import com.seeyon.apps.addressbook.po.AddressBook;
|
||||||
|
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||||
|
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.config.FlowIntegrationConfigProvider;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.dao.SrcFlowDao;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.util.AesUtil;
|
||||||
|
import com.seeyon.ctp.common.AppContext;
|
||||||
|
import com.seeyon.ctp.common.controller.BaseController;
|
||||||
|
import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager;
|
||||||
|
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||||
|
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||||
|
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||||
|
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import www.seeyon.com.utils.StringUtil;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
public class FormRedirectController extends BaseController {
|
||||||
|
|
||||||
|
private static Log log = Log.get(FormRedirectController.class);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private AddressBookCustomerFieldInfoManager addressBookCustomerFieldInfoManager;
|
||||||
|
@Inject
|
||||||
|
private SrcFlowDao srcFlowDao;
|
||||||
|
@Autowired
|
||||||
|
private FlowIntegrationConfigProvider configProvider;
|
||||||
|
@Inject
|
||||||
|
private EnumManager enumManagerNew;
|
||||||
|
|
||||||
|
|
||||||
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||||
|
|
||||||
|
public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||||
|
request.setCharacterEncoding("UTF-8");
|
||||||
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
ConfigVo config = cstConfigApi.getConfig(FlowIntegrationConstants.getPluginId());
|
||||||
|
// 表单连接跳转处理方法。
|
||||||
|
// long memberId = AppContext.currentUserId();
|
||||||
|
// V3xOrgMember v3xOrgMember = orgManager.getMemberById(memberId);
|
||||||
|
// 查询当前状态登录名
|
||||||
|
// String loginName = v3xOrgMember.getLoginName();
|
||||||
|
// 获取系统内置参数第三方系统主数据字段信息
|
||||||
|
String extAttrLabel = configProvider.getBizConfigByKey(FlowIntegrationConstants.extAttrLabel);
|
||||||
|
// 获取当前登录账号的人员自定义主数据信息,通过主数据信息查询到BIP系统登录信息
|
||||||
|
AddressBook addressBook = addressBookCustomerFieldInfoManager.getByMemberId(AppContext.currentUserId());
|
||||||
|
if(null == addressBook) {
|
||||||
|
log.info("人员自定义数据未维护,无法单点登录!");
|
||||||
|
ModelAndView mav = exceptionRedirect("人员自定义数据未维护,无法单点登录!");
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
JSONObject addressBookjson = appleAddressBook(addressBook);
|
||||||
|
// 通过字段名称查询人员账号主数据数据库字段
|
||||||
|
String extAttrName = srcFlowDao.getMetadataNameByLabel(extAttrLabel);
|
||||||
|
String extAttrValue = addressBookjson.getString(extAttrName);
|
||||||
|
if(StringUtil.isEmpty(extAttrValue)){
|
||||||
|
log.info(extAttrLabel+"未维护,无法单点登录!");
|
||||||
|
ModelAndView mav = exceptionRedirect(extAttrLabel+"未维护,无法单点登录!");
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取第三方系统标识,通过第三方系统标识查询第三方系统的ip,端口,表单跳转地址,加密规则信息等
|
||||||
|
String thirdpartyCode = request.getParameter("thirdpartyCode");
|
||||||
|
// 根据第三方系统标识获取加密key和vi
|
||||||
|
String paramValue = srcFlowDao.getThirdpartyParamByThirdpartyCode(thirdpartyCode);
|
||||||
|
JSONObject paramjson = JSONObject.parseObject(paramValue);
|
||||||
|
String secretKey = paramjson.getString("secretKey");
|
||||||
|
String vi = paramjson.getString("vi");
|
||||||
|
String encrypted = AesUtil.encrypt("loginName="+extAttrValue,secretKey,vi);
|
||||||
|
String tourl = request.getParameter("tourl");
|
||||||
|
String thirdpartyParam = srcFlowDao.getThirdpartyParamByThirdpartyCode(thirdpartyCode);
|
||||||
|
if(StringUtil.isEmpty(thirdpartyParam)){
|
||||||
|
log.info("当前第三方系统标识在系统中没有找到,请检查系统设置。");
|
||||||
|
ModelAndView mav = exceptionRedirect("当前第三方系统标识在系统中没有找到,请检查系统设置。");
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
JSONObject thirdpartyParamjson = JSONObject.parseObject(thirdpartyParam);
|
||||||
|
String redirectUrl = thirdpartyParamjson.getString("redirectUrl");
|
||||||
|
if(StringUtil.isEmpty(redirectUrl)){
|
||||||
|
log.info("当前第三方系统跳转链接为空,请检查系统设置。");
|
||||||
|
ModelAndView mav = exceptionRedirect("当前第三方系统跳转链接为空,请检查系统设置。");
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
String ip = thirdpartyParamjson.getString("IP");
|
||||||
|
String port = thirdpartyParamjson.getString("PORT");
|
||||||
|
|
||||||
|
StringBuilder urlsb = new StringBuilder("http://").append(ip).append(':').append(port).
|
||||||
|
append('/').append(redirectUrl).append("?tourl=").append(tourl).append("&ticket=").append(encrypted);
|
||||||
|
response.sendRedirect(urlsb.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ModelAndView exceptionRedirect(String popupContent){
|
||||||
|
ModelAndView mav = new ModelAndView("popup");
|
||||||
|
// 2. 向前端传递弹窗参数(可自定义字段)
|
||||||
|
mav.addObject("showPopup", true); // 是否显示弹窗
|
||||||
|
mav.addObject("popupTitle", "操作提示"); // 弹窗标题
|
||||||
|
mav.addObject("popupContent", popupContent); // 弹窗内容
|
||||||
|
mav.addObject("popupType", "success"); // 弹窗类型(成功/失败)
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private JSONObject appleAddressBook(AddressBook addressBook) throws BusinessException {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
if(StringUtil.isNotEmpty(addressBook.getExtAttr1())){
|
||||||
|
jsonObject.put("extAttr1",addressBook.getExtAttr1());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr2())){
|
||||||
|
jsonObject.put("extAttr2",addressBook.getExtAttr2());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr3())){
|
||||||
|
jsonObject.put("extAttr3",addressBook.getExtAttr3());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr4())){
|
||||||
|
jsonObject.put("extAttr4",addressBook.getExtAttr4());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr5())){
|
||||||
|
jsonObject.put("extAttr5",addressBook.getExtAttr5());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr6())){
|
||||||
|
jsonObject.put("extAttr6",addressBook.getExtAttr6());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr7())){
|
||||||
|
jsonObject.put("extAttr7",addressBook.getExtAttr7());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr8())){
|
||||||
|
jsonObject.put("extAttr8",addressBook.getExtAttr8());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr9())){
|
||||||
|
jsonObject.put("extAttr9",addressBook.getExtAttr9());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr10())){
|
||||||
|
jsonObject.put("extAttr10",addressBook.getExtAttr10());
|
||||||
|
}if( addressBook.getExtAttr11()!=null){
|
||||||
|
jsonObject.put("extAttr11",addressBook.getExtAttr11());
|
||||||
|
}if( addressBook.getExtAttr12()!=null){
|
||||||
|
jsonObject.put("extAttr12",addressBook.getExtAttr12());
|
||||||
|
}if(addressBook.getExtAttr13()!=null){
|
||||||
|
jsonObject.put("extAttr13",addressBook.getExtAttr13());
|
||||||
|
}if(addressBook.getExtAttr14()!=null){
|
||||||
|
jsonObject.put("extAttr14",addressBook.getExtAttr14());
|
||||||
|
}if(addressBook.getExtAttr15()!=null){
|
||||||
|
jsonObject.put("extAttr15",addressBook.getExtAttr15());
|
||||||
|
}if(addressBook.getExtAttr16()!=null){
|
||||||
|
jsonObject.put("extAttr16",addressBook.getExtAttr16());
|
||||||
|
}if(addressBook.getExtAttr17()!=null){
|
||||||
|
jsonObject.put("extAttr17",addressBook.getExtAttr17());
|
||||||
|
}if(addressBook.getExtAttr18()!=null){
|
||||||
|
jsonObject.put("extAttr18",addressBook.getExtAttr18());
|
||||||
|
}if(addressBook.getExtAttr19()!=null){
|
||||||
|
jsonObject.put("extAttr19",addressBook.getExtAttr19());
|
||||||
|
}if(addressBook.getExtAttr20()!=null){
|
||||||
|
jsonObject.put("extAttr20",addressBook.getExtAttr20());
|
||||||
|
}if(addressBook.getExtAttr21()!=null){
|
||||||
|
jsonObject.put("extAttr21",sdf.format(addressBook.getExtAttr21()));
|
||||||
|
}if(addressBook.getExtAttr22()!=null){
|
||||||
|
jsonObject.put("extAttr22",sdf.format(addressBook.getExtAttr22()));
|
||||||
|
}if(addressBook.getExtAttr23()!=null){
|
||||||
|
jsonObject.put("extAttr23",sdf.format(addressBook.getExtAttr23()));
|
||||||
|
}if(addressBook.getExtAttr24()!=null){
|
||||||
|
jsonObject.put("extAttr24",sdf.format(addressBook.getExtAttr24()));
|
||||||
|
}if(addressBook.getExtAttr25()!=null){
|
||||||
|
jsonObject.put("extAttr25",sdf.format(addressBook.getExtAttr25()));
|
||||||
|
}if(addressBook.getExtAttr26()!=null){
|
||||||
|
jsonObject.put("extAttr26",sdf.format(addressBook.getExtAttr26()));
|
||||||
|
}if(addressBook.getExtAttr27()!=null){
|
||||||
|
jsonObject.put("extAttr27",sdf.format(addressBook.getExtAttr27()));
|
||||||
|
}if(addressBook.getExtAttr28()!=null){
|
||||||
|
jsonObject.put("extAttr28",sdf.format(addressBook.getExtAttr28()));
|
||||||
|
}if(addressBook.getExtAttr29()!=null){
|
||||||
|
jsonObject.put("extAttr29",sdf.format(addressBook.getExtAttr29()));
|
||||||
|
}if(addressBook.getExtAttr30()!=null){
|
||||||
|
jsonObject.put("extAttr30",sdf.format(addressBook.getExtAttr30()));
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr31())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr31()));
|
||||||
|
jsonObject.put("extAttr31",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr32())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr32()));
|
||||||
|
jsonObject.put("extAttr32",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr33())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr33()));
|
||||||
|
jsonObject.put("extAttr33",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr34())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr34()));
|
||||||
|
jsonObject.put("extAttr34",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr35())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr35()));
|
||||||
|
jsonObject.put("extAttr35",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr36())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr36()));
|
||||||
|
jsonObject.put("extAttr36",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr37())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr37()));
|
||||||
|
jsonObject.put("extAttr37",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr38())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr38()));
|
||||||
|
jsonObject.put("extAttr38",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr39())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr39()));
|
||||||
|
jsonObject.put("extAttr39",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr40())){
|
||||||
|
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(Long.parseLong(addressBook.getExtAttr40()));
|
||||||
|
jsonObject.put("extAttr40",ctpEnumItem.getShowvalue());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr41())){
|
||||||
|
jsonObject.put("extAttr41",addressBook.getExtAttr41());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr42())){
|
||||||
|
jsonObject.put("extAttr42",addressBook.getExtAttr42());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr43())){
|
||||||
|
jsonObject.put("extAttr43",addressBook.getExtAttr43());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr44())){
|
||||||
|
jsonObject.put("extAttr44",addressBook.getExtAttr44());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr45())){
|
||||||
|
jsonObject.put("extAttr45",addressBook.getExtAttr45());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr46())){
|
||||||
|
jsonObject.put("extAttr46",addressBook.getExtAttr46());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr47())){
|
||||||
|
jsonObject.put("extAttr47",addressBook.getExtAttr47());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr48())){
|
||||||
|
jsonObject.put("extAttr48",addressBook.getExtAttr48());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr49())){
|
||||||
|
jsonObject.put("extAttr49",addressBook.getExtAttr49());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr50())){
|
||||||
|
jsonObject.put("extAttr50",addressBook.getExtAttr50());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr51())){
|
||||||
|
jsonObject.put("extAttr51",addressBook.getExtAttr51());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr52())){
|
||||||
|
jsonObject.put("extAttr52",addressBook.getExtAttr52());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr53())){
|
||||||
|
jsonObject.put("extAttr53",addressBook.getExtAttr53());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr54())){
|
||||||
|
jsonObject.put("extAttr54",addressBook.getExtAttr54());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr55())){
|
||||||
|
jsonObject.put("extAttr55",addressBook.getExtAttr55());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr56())){
|
||||||
|
jsonObject.put("extAttr56",addressBook.getExtAttr56());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr57())){
|
||||||
|
jsonObject.put("extAttr57",addressBook.getExtAttr57());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr58())){
|
||||||
|
jsonObject.put("extAttr58",addressBook.getExtAttr58());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr59())){
|
||||||
|
jsonObject.put("extAttr59",addressBook.getExtAttr59());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr60())){
|
||||||
|
jsonObject.put("extAttr60",addressBook.getExtAttr60());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr61())){
|
||||||
|
jsonObject.put("extAttr61",addressBook.getExtAttr61());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr62())){
|
||||||
|
jsonObject.put("extAttr62",addressBook.getExtAttr62());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr63())){
|
||||||
|
jsonObject.put("extAttr63",addressBook.getExtAttr63());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr64())){
|
||||||
|
jsonObject.put("extAttr64",addressBook.getExtAttr64());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr65())){
|
||||||
|
jsonObject.put("extAttr65",addressBook.getExtAttr65());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr66())){
|
||||||
|
jsonObject.put("extAttr66",addressBook.getExtAttr66());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr67())){
|
||||||
|
jsonObject.put("extAttr67",addressBook.getExtAttr67());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr68())){
|
||||||
|
jsonObject.put("extAttr68",addressBook.getExtAttr68());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr69())){
|
||||||
|
jsonObject.put("extAttr69",addressBook.getExtAttr69());
|
||||||
|
}if(StringUtil.isNotEmpty(addressBook.getExtAttr70())){
|
||||||
|
jsonObject.put("extAttr70",addressBook.getExtAttr70());
|
||||||
|
}
|
||||||
|
return jsonObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -15,6 +15,9 @@ public class SrcFlowDao{
|
|||||||
private String getAuthIdByFormId = "select resource_id from cap_form_auth_info where form_id = ? and type = 'add' and deleted = 0 and default_auth = 1 ";
|
private String getAuthIdByFormId = "select resource_id from cap_form_auth_info where form_id = ? and type = 'add' and deleted = 0 and default_auth = 1 ";
|
||||||
private String getFieldInfoByFormId = "select field_info from cap_form_definition where id = ?";
|
private String getFieldInfoByFormId = "select field_info from cap_form_definition where id = ?";
|
||||||
private String uniqueDataValidation = "select #{fieldName} from #{tableName} where #{fieldName} = ?";
|
private String uniqueDataValidation = "select #{fieldName} from #{tableName} where #{fieldName} = ?";
|
||||||
|
private String getThirdpartyParamByThirdpartyCode = "select param_value from thirdparty_register where app_code = ?";
|
||||||
|
|
||||||
|
private String getMetadataNameByLabel = "select name from ctp_metadata_column where label = ? and is_enable = 1";
|
||||||
|
|
||||||
|
|
||||||
public String getFormIdByTemplateCode(String templateCode){
|
public String getFormIdByTemplateCode(String templateCode){
|
||||||
@@ -149,6 +152,57 @@ public class SrcFlowDao{
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getThirdpartyParamByThirdpartyCode(String thirdpartyCode){
|
||||||
|
String res = "";
|
||||||
|
JDBCAgent agent = new JDBCAgent();
|
||||||
|
try {
|
||||||
|
StringBuilder sql = new StringBuilder(getThirdpartyParamByThirdpartyCode);
|
||||||
|
List<Object> p = new ArrayList<Object>();
|
||||||
|
p.add(thirdpartyCode);
|
||||||
|
agent.execute(sql.toString(), p);
|
||||||
|
List<Map> list = agent.resultSetToList();
|
||||||
|
if (list != null && list.size() > 0) {
|
||||||
|
Map<String,Object> map = list.get(0);
|
||||||
|
Object obj = map.get("param_value");
|
||||||
|
res = obj!=null?obj.toString():"";
|
||||||
|
}
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (agent != null) {
|
||||||
|
agent.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMetadataNameByLabel(String labelName){
|
||||||
|
String res = "";
|
||||||
|
JDBCAgent agent = new JDBCAgent();
|
||||||
|
try {
|
||||||
|
StringBuilder sql = new StringBuilder(getMetadataNameByLabel);
|
||||||
|
List<Object> p = new ArrayList<Object>();
|
||||||
|
p.add(labelName);
|
||||||
|
agent.execute(sql.toString(), p);
|
||||||
|
List<Map> list = agent.resultSetToList();
|
||||||
|
if (list != null && list.size() > 0) {
|
||||||
|
Map<String,Object> map = list.get(0);
|
||||||
|
Object obj = map.get("name");
|
||||||
|
res = obj!=null?obj.toString():"";
|
||||||
|
}
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (agent != null) {
|
||||||
|
agent.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,108 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.event;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||||
|
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||||
|
import com.seeyon.apps.common.workflow.constants.WorkFlowType;
|
||||||
|
import com.seeyon.apps.common.workflow.event.ACommonWorkflowEvent;
|
||||||
|
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||||
|
import com.seeyon.apps.ext.workflow.vo.WorkflowEventContext;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.dao.SrcFlowDao;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.util.AesUtil;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.util.SignUtil;
|
||||||
|
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||||
|
import com.seeyon.ctp.common.AppContext;
|
||||||
|
import com.seeyon.utils.http.HttpClient;
|
||||||
|
import www.seeyon.com.utils.UUIDUtil;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class FlowStatusCallbackEvent extends ACommonWorkflowEvent {
|
||||||
|
|
||||||
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private SrcFlowDao srcFlowDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginId() {
|
||||||
|
return FlowIntegrationConstants.getPluginId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getFormParse() {
|
||||||
|
return "json";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorkFlowType[] getTypes() {
|
||||||
|
return new WorkFlowType[] { WorkFlowType.onBeforeStop };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return "FlowStatusCallbackEvent";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLabel() {
|
||||||
|
return "通用流程状态返回终止前监听";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected WorkflowEventContext proceed(String request, FormDataVo formDataVo, WorkFlowType workFlowType, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||||
|
WorkflowEventContext context = new WorkflowEventContext();
|
||||||
|
ConfigVo configVo = cstConfigApi.getConfig(getPluginId());
|
||||||
|
context.setNeedSave(true);
|
||||||
|
JSONObject req = JSONObject.parseObject(request);
|
||||||
|
String url = req.getString("flowStatusCallbackUrl");
|
||||||
|
context.setUrl(url);
|
||||||
|
JSONObject datajson = new JSONObject();
|
||||||
|
datajson.put("thirdFlowId",req.getString("thirdFlowId"));
|
||||||
|
datajson.put("flowStatus","1");
|
||||||
|
datajson.put("remark","流程结束");
|
||||||
|
context.setRequest(datajson.toString());
|
||||||
|
// 进行请求参数加密
|
||||||
|
String thirdpartyCode = req.getString("thirdpartyCode");
|
||||||
|
// 通过第三方系统编号查询第三方系统参数信息
|
||||||
|
String paramValue = srcFlowDao.getThirdpartyParamByThirdpartyCode(thirdpartyCode);
|
||||||
|
JSONObject paramjson = JSONObject.parseObject(paramValue);
|
||||||
|
String secretKey = paramjson.getString("secretKey");
|
||||||
|
String vi = paramjson.getString("vi");
|
||||||
|
String datastr = datajson.toString();
|
||||||
|
// 当前先试用简单关键字
|
||||||
|
String encrypted = AesUtil.encrypt(datastr,secretKey,vi);
|
||||||
|
long timestamp = new Date().getTime();
|
||||||
|
// 生成随机数
|
||||||
|
String nonce = UUIDUtil.getUUIDLong()+"";
|
||||||
|
String signContent = encrypted + timestamp + nonce + secretKey;
|
||||||
|
String sign = SignUtil.sha256(signContent);
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("data",encrypted);
|
||||||
|
param.put("timestamp",timestamp+"");
|
||||||
|
param.put("nonce",nonce);
|
||||||
|
param.put("sign",sign);
|
||||||
|
// 调通接口推送数据到第三方系统
|
||||||
|
String res = HttpClient.httpPostRaw(url,param.toString(),new HashMap<String,String>(), null);
|
||||||
|
context.setResponse(res);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||||
|
String code = jsonObject.getString("code");
|
||||||
|
if("0".equals(code)){
|
||||||
|
context.setSuccess(true);
|
||||||
|
context.setErrMsg("终止成功,第三方流程已回退");
|
||||||
|
}else{
|
||||||
|
context.setSuccess(false);
|
||||||
|
context.setErrMsg("流程终止失败。");
|
||||||
|
}
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -12,12 +12,15 @@ import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
|
|||||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||||
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.dao.SrcFlowDao;
|
||||||
import com.seeyon.apps.src_flowIntegration.util.AesUtil;
|
import com.seeyon.apps.src_flowIntegration.util.AesUtil;
|
||||||
import com.seeyon.apps.src_flowIntegration.util.SignUtil;
|
import com.seeyon.apps.src_flowIntegration.util.SignUtil;
|
||||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||||
import com.seeyon.ctp.common.AppContext;
|
import com.seeyon.ctp.common.AppContext;
|
||||||
import com.seeyon.utils.http.HttpClient;
|
import com.seeyon.utils.http.HttpClient;
|
||||||
|
import www.seeyon.com.utils.UUIDUtil;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
@@ -27,6 +30,9 @@ public class FlowStatusCallbackNode extends ACommonSuperNode {
|
|||||||
|
|
||||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private SrcFlowDao srcFlowDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getNodeId() {
|
public String getNodeId() {
|
||||||
return "FlowStatusCallbackNode";
|
return "FlowStatusCallbackNode";
|
||||||
@@ -34,7 +40,7 @@ public class FlowStatusCallbackNode extends ACommonSuperNode {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getNodeName() {
|
public String getNodeName() {
|
||||||
return "通用流程状态返回接口";
|
return "通用流程状态返回超级节点";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -60,19 +66,28 @@ public class FlowStatusCallbackNode extends ACommonSuperNode {
|
|||||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||||
ConfigVo configVo = getFlowIntegrationConfig();
|
ConfigVo configVo = getFlowIntegrationConfig();
|
||||||
SuperNodeContext context = new SuperNodeContext();
|
SuperNodeContext context = new SuperNodeContext();
|
||||||
|
context.setNeedSave(true);
|
||||||
JSONObject req = JSONObject.parseObject(request);
|
JSONObject req = JSONObject.parseObject(request);
|
||||||
String url = req.getString("flowStatusCallbackUrl");
|
String url = req.getString("flowStatusCallbackUrl");
|
||||||
|
context.setUrl(url);
|
||||||
JSONObject datajson = new JSONObject();
|
JSONObject datajson = new JSONObject();
|
||||||
datajson.put("thirdFlowId",req.getString("thirdFlowId"));
|
datajson.put("thirdFlowId",req.getString("thirdFlowId"));
|
||||||
datajson.put("flowStatus","1");
|
datajson.put("flowStatus","1");
|
||||||
datajson.put("remark","流程结束");
|
datajson.put("remark","流程结束");
|
||||||
|
context.setRequest(datajson.toString());
|
||||||
// 进行请求参数加密
|
// 进行请求参数加密
|
||||||
|
String thirdpartyCode = req.getString("thirdpartyCode");
|
||||||
|
// 通过第三方系统编号查询第三方系统参数信息
|
||||||
|
String paramValue = srcFlowDao.getThirdpartyParamByThirdpartyCode(thirdpartyCode);
|
||||||
|
JSONObject paramjson = JSONObject.parseObject(paramValue);
|
||||||
|
String secretKey = paramjson.getString("secretKey");
|
||||||
|
String vi = paramjson.getString("vi");
|
||||||
String datastr = datajson.toString();
|
String datastr = datajson.toString();
|
||||||
// 当前先试用简单关键字
|
// 加密请求参数
|
||||||
String encrypted = AesUtil.encrypt(datastr,"1234567890abcdef","abcdef1234567890");
|
String encrypted = AesUtil.encrypt(datastr,secretKey,vi);
|
||||||
long timestamp = new Date().getTime();
|
long timestamp = new Date().getTime();
|
||||||
String nonce = "asdhsalda";
|
// 生成随机数
|
||||||
String secretKey = "123123123";
|
String nonce = UUIDUtil.getUUIDLong()+"";
|
||||||
String signContent = encrypted + timestamp + nonce + secretKey;
|
String signContent = encrypted + timestamp + nonce + secretKey;
|
||||||
String sign = SignUtil.sha256(signContent);
|
String sign = SignUtil.sha256(signContent);
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
@@ -82,7 +97,14 @@ public class FlowStatusCallbackNode extends ACommonSuperNode {
|
|||||||
param.put("sign",sign);
|
param.put("sign",sign);
|
||||||
// 调通接口推送数据到第三方系统
|
// 调通接口推送数据到第三方系统
|
||||||
String res = HttpClient.httpPostRaw(url,param.toString(),new HashMap<String,String>(), null);
|
String res = HttpClient.httpPostRaw(url,param.toString(),new HashMap<String,String>(), null);
|
||||||
|
context.setResponse(res);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||||
|
String code = jsonObject.getString("code");
|
||||||
|
if("0".equals(code)){
|
||||||
|
context.success("流程状态回调成功!");
|
||||||
|
}else{
|
||||||
|
context.back("回调失败,请联系管理员处理");
|
||||||
|
}
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class FlowIntegrationService {
|
|||||||
public JSONObject thirdFlowCreate(JSONObject jsonObject,String token) throws Exception {
|
public JSONObject thirdFlowCreate(JSONObject jsonObject,String token) throws Exception {
|
||||||
JSONObject res = new JSONObject();
|
JSONObject res = new JSONObject();
|
||||||
String tirdFlowId = jsonObject.getString("thirdFlowId");
|
String tirdFlowId = jsonObject.getString("thirdFlowId");
|
||||||
|
String thirdpartyCode = jsonObject.getString("thirdpartyCode");
|
||||||
String flowStatusCallbackUrl = jsonObject.getString("flowStatusCallbackUrl");
|
String flowStatusCallbackUrl = jsonObject.getString("flowStatusCallbackUrl");
|
||||||
String flowAuditStatusCallbackUrl = jsonObject.getString("flowAuditStatusCallbackUrl");
|
String flowAuditStatusCallbackUrl = jsonObject.getString("flowAuditStatusCallbackUrl");
|
||||||
JSONObject data = jsonObject.getJSONObject("data");
|
JSONObject data = jsonObject.getJSONObject("data");
|
||||||
@@ -46,7 +47,7 @@ public class FlowIntegrationService {
|
|||||||
data.put("doTrigger",true);
|
data.put("doTrigger",true);
|
||||||
// 设置第三方信息字段内容
|
// 设置第三方信息字段内容
|
||||||
JSONObject datajson = data.getJSONObject("data");
|
JSONObject datajson = data.getJSONObject("data");
|
||||||
thirdSysBizMapService.setTableData(datajson,templateCode,tirdFlowId,flowStatusCallbackUrl,flowAuditStatusCallbackUrl);
|
thirdSysBizMapService.setTableData(datajson,templateCode,tirdFlowId,thirdpartyCode,flowStatusCallbackUrl,flowAuditStatusCallbackUrl);
|
||||||
flowParam.put("data",data);
|
flowParam.put("data",data);
|
||||||
|
|
||||||
Map<String,Object> result = (Map<String,Object>) oaFlowCreateService.flowStart(tirdFlowId,flowParam,token);
|
Map<String,Object> result = (Map<String,Object>) oaFlowCreateService.flowStart(tirdFlowId,flowParam,token);
|
||||||
|
|||||||
@@ -21,24 +21,11 @@ public class OaFlowCreateService {
|
|||||||
configProvider.getBizConfigByKey(FlowIntegrationConstants.restName),
|
configProvider.getBizConfigByKey(FlowIntegrationConstants.restName),
|
||||||
configProvider.getBizConfigByKey(FlowIntegrationConstants.restPwd),false);
|
configProvider.getBizConfigByKey(FlowIntegrationConstants.restPwd),false);
|
||||||
String url = "/bpm/process/start";
|
String url = "/bpm/process/start";
|
||||||
// Map<String,Object> params = new HashMap<>();
|
|
||||||
// Map<String,Object> datas = new HashMap<>();
|
|
||||||
// Map<String,Object> formDatas = new HashMap<>();
|
|
||||||
// params.put("appName",appName);
|
|
||||||
// params.put("data",datas);
|
|
||||||
// datas.put("templateCode",templateCode);
|
|
||||||
// datas.put("draft","0");
|
|
||||||
// datas.put("data",formDatas);
|
|
||||||
// for (String key : mainFormData.keySet()) {
|
|
||||||
// formDatas.put(key,mainFormData.get(key));
|
|
||||||
// }
|
|
||||||
// for (String key : subFormDatas.keySet()) {
|
|
||||||
// formDatas.put(key,subFormDatas.get(key));
|
|
||||||
// }
|
|
||||||
OaResp oaResp = client.sendPost(tirdFlowId, url, flowParam,token);
|
OaResp oaResp = client.sendPost(tirdFlowId, url, flowParam,token);
|
||||||
if(oaResp.getCode() != 0) {
|
if(oaResp.getCode() != 0) {
|
||||||
throw new Exception(tirdFlowId + "流程发起失败:" + oaResp.getMessage());
|
throw new Exception(tirdFlowId + "流程发起失败:" + oaResp.getMessage());
|
||||||
}
|
}
|
||||||
return oaResp.getData();
|
return oaResp.getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class ThirdSysBizMapService {
|
|||||||
* @param flowStatusCallbackUrl
|
* @param flowStatusCallbackUrl
|
||||||
* @param flowAuditStatusCallbackUrl
|
* @param flowAuditStatusCallbackUrl
|
||||||
*/
|
*/
|
||||||
public void setTableData(JSONObject data,String templateCode,String tirdFlowId,String flowStatusCallbackUrl,String flowAuditStatusCallbackUrl ){
|
public void setTableData(JSONObject data,String templateCode,String tirdFlowId,String thirdpartyCode,String flowStatusCallbackUrl,String flowAuditStatusCallbackUrl ){
|
||||||
// 首先根据templateCode获取表单formId;
|
// 首先根据templateCode获取表单formId;
|
||||||
String formId = getFormIdByTemplateCode(templateCode);
|
String formId = getFormIdByTemplateCode(templateCode);
|
||||||
// 通过formId信息查询表单中的字段,并且找到字段信息为第三方信息的字段
|
// 通过formId信息查询表单中的字段,并且找到字段信息为第三方信息的字段
|
||||||
@@ -62,6 +62,13 @@ public class ThirdSysBizMapService {
|
|||||||
tirdFlowIdjson.put("value",tirdFlowId);
|
tirdFlowIdjson.put("value",tirdFlowId);
|
||||||
fields.add(tirdFlowIdjson);
|
fields.add(tirdFlowIdjson);
|
||||||
}
|
}
|
||||||
|
String thirdpartyCodeName = FieldUtil.isDisplayExists(frontFormmain,"第三方系统标识");
|
||||||
|
if(StringUtil.isNotEmpty(thirdpartyCodeName)){
|
||||||
|
JSONObject thirdpartyCodejson = new JSONObject();
|
||||||
|
thirdpartyCodejson.put("name",tirdFlowIdName);
|
||||||
|
thirdpartyCodejson.put("value",tirdFlowId);
|
||||||
|
fields.add(thirdpartyCodejson);
|
||||||
|
}
|
||||||
// 插入流程状态回调地址字段
|
// 插入流程状态回调地址字段
|
||||||
String flowStatusCallbackUrlName = FieldUtil.isDisplayExists(frontFormmain,"流程状态回调地址");
|
String flowStatusCallbackUrlName = FieldUtil.isDisplayExists(frontFormmain,"流程状态回调地址");
|
||||||
if(StringUtil.isNotEmpty(flowStatusCallbackUrlName)){
|
if(StringUtil.isNotEmpty(flowStatusCallbackUrlName)){
|
||||||
@@ -96,6 +103,7 @@ public class ThirdSysBizMapService {
|
|||||||
// 通过表单名称,唯一值字段,当前数据,查询当前数据是否在当前表单中是否存在
|
// 通过表单名称,唯一值字段,当前数据,查询当前数据是否在当前表单中是否存在
|
||||||
String uniqueData = srcFlowDao.uniqueDataValidation(tableName,tirdFlowIdName,tirdFlowId);
|
String uniqueData = srcFlowDao.uniqueDataValidation(tableName,tirdFlowIdName,tirdFlowId);
|
||||||
return uniqueData;
|
return uniqueData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.util;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.seeyon.apps.addressbook.po.AddressBook;
|
||||||
|
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||||
|
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||||
|
import www.seeyon.com.utils.StringUtil;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
public class AddressBookUtil {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
package com.seeyon.apps.src_flowIntegration.vo;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class FlowCreateVo {
|
|
||||||
|
|
||||||
private String thirdFlowId;
|
|
||||||
private String flowStatusCallbackUrl;
|
|
||||||
private String flowAuditStatusCallbackUrl;
|
|
||||||
private String flowBizCode;
|
|
||||||
private String flowCreator;
|
|
||||||
private Map<String,Object> data;
|
|
||||||
|
|
||||||
public String getThirdFlowId() {
|
|
||||||
return thirdFlowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setThirdFlowId(String thirdFlowId) {
|
|
||||||
this.thirdFlowId = thirdFlowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlowStatusCallbackUrl() {
|
|
||||||
return flowStatusCallbackUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowStatusCallbackUrl(String flowStatusCallbackUrl) {
|
|
||||||
this.flowStatusCallbackUrl = flowStatusCallbackUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlowAuditStatusCallbackUrl() {
|
|
||||||
return flowAuditStatusCallbackUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowAuditStatusCallbackUrl(String flowAuditStatusCallbackUrl) {
|
|
||||||
this.flowAuditStatusCallbackUrl = flowAuditStatusCallbackUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlowBizCode() {
|
|
||||||
return flowBizCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowBizCode(String flowBizCode) {
|
|
||||||
this.flowBizCode = flowBizCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlowCreator() {
|
|
||||||
return flowCreator;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowCreator(String flowCreator) {
|
|
||||||
this.flowCreator = flowCreator;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> getData() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setData(Map<String, Object> data) {
|
|
||||||
this.data = data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
|
<beans default-autowire="byName">
|
||||||
|
<bean name="/formRedirectController.do" class="com.seeyon.apps.src_flowIntegration.controller.FormRedirectController" />
|
||||||
|
|
||||||
|
|
||||||
|
</beans>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
|
<beans default-autowire="byName">
|
||||||
|
<bean id="flowStatusCallbackEvent" class="com.seeyon.apps.src_flowIntegration.event.FlowStatusCallbackEvent"/>
|
||||||
|
|
||||||
|
</beans>
|
||||||
Reference in New Issue
Block a user