初始化
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration;
|
||||||
|
|
||||||
|
import com.seeyon.apps.common.plugin.api.APluginInfoApi;
|
||||||
|
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
|
||||||
|
|
||||||
|
public class FlowIntegrationPluginApi extends APluginInfoApi {
|
||||||
|
public FlowIntegrationPluginApi() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPluginId() {
|
||||||
|
return FlowIntegrationConstants.getPluginId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreateUser() {
|
||||||
|
return "橙阳科技";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "第三方流程集成集成管理";
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean syncOrg() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigVo getDefaultConfig() {
|
||||||
|
ConfigVo configVo = new ConfigVo();
|
||||||
|
FlowIntegrationConstants[] var2 = FlowIntegrationConstants.values();
|
||||||
|
int var3 = var2.length;
|
||||||
|
|
||||||
|
for(int var4 = 0; var4 < var3; ++var4) {
|
||||||
|
FlowIntegrationConstants value = var2[var4];
|
||||||
|
if (value != FlowIntegrationConstants.plugin) {
|
||||||
|
configVo.getDevParams().put(value.name(), value.getDefaultValue());
|
||||||
|
configVo.getProdParams().put(value.name(), value.getDefaultValue());
|
||||||
|
configVo.getParamMap().put(value.name(), value.getDescription());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return configVo;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.config;
|
||||||
|
|
||||||
|
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||||
|
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
import com.seeyon.ctp.common.AppContext;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants.getPluginId;
|
||||||
|
|
||||||
|
|
||||||
|
@Component("src_flowIntegration.flowIntegrationConfigProvider")
|
||||||
|
public class FlowIntegrationConfigProvider {
|
||||||
|
|
||||||
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||||
|
|
||||||
|
public String getBizConfigByKey(FlowIntegrationConstants key) {
|
||||||
|
ConfigVo config = cstConfigApi.getConfig(getPluginId());
|
||||||
|
return config.getParamVal(key.name());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.constants;
|
||||||
|
|
||||||
|
public enum FlowIntegrationConstants {
|
||||||
|
|
||||||
|
plugin("src_flowIntegration", "插件ID"),
|
||||||
|
OA_HOST("","oa地址"),
|
||||||
|
restName("",""),
|
||||||
|
restPwd("",""),
|
||||||
|
;
|
||||||
|
|
||||||
|
private String defaultValue;
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private FlowIntegrationConstants(String defaultValue, String description) {
|
||||||
|
this.defaultValue = defaultValue;
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultValue() {
|
||||||
|
return this.defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return this.description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPluginId() {
|
||||||
|
return plugin.defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
public class FlowIntegrationService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ThirdSysBizMapService thirdSysBizMapService;
|
||||||
|
@Autowired
|
||||||
|
private OaFlowCreateService oaFlowCreateService;
|
||||||
|
|
||||||
|
public String thirdFlowCreate(JSONObject jsonObject) throws Exception {
|
||||||
|
String tirdFlowId = jsonObject.getString("thirdFlowId");
|
||||||
|
String flowStatusCallbackUrl = jsonObject.getString("flowStatusCallbackUrl");
|
||||||
|
String flowAuditStatusCallbackUrl = jsonObject.getString("flowAuditStatusCallbackUrl");
|
||||||
|
String flowBizCode = jsonObject.getString("flowBizCode");
|
||||||
|
String flowCreator = jsonObject.getString("flowCreator");
|
||||||
|
Map<String,Object> data = (Map<String, Object>) jsonObject.get("data");
|
||||||
|
Map<String, String> map = thirdSysBizMapService.getOaFlowTemplateInfoByBizCode(flowBizCode);
|
||||||
|
String appName = map.get("appName");
|
||||||
|
String templateCode = map.get("templateCode");
|
||||||
|
String flowName = map.get("flowName");
|
||||||
|
Map<String,Object> mainFormData = (Map<String, Object>) data.get("mainTableData");
|
||||||
|
mainFormData.put("流程创建者",flowCreator);
|
||||||
|
mainFormData.put("流程状态回调地址",flowStatusCallbackUrl);
|
||||||
|
mainFormData.put("流程审批状态回调地址",flowAuditStatusCallbackUrl);
|
||||||
|
mainFormData.put("第三方系统流程ID",tirdFlowId);
|
||||||
|
Map<String, List<Object>> subFormDatas = (Map<String, List<Object>>) data.get("subTableDatas");
|
||||||
|
Map<String,Object> result = (Map<String,Object>) oaFlowCreateService.flowStart(flowName, mainFormData, subFormDatas, appName, templateCode);
|
||||||
|
return (String)result.get("processId");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.service;
|
||||||
|
|
||||||
|
import com.seeyon.apps.src_flowIntegration.config.FlowIntegrationConfigProvider;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.constants.FlowIntegrationConstants;
|
||||||
|
import com.seeyon.utils.http.OaResp;
|
||||||
|
import com.seeyon.utils.http.OaRestClient;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OaFlowCreateService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private FlowIntegrationConfigProvider configProvider;
|
||||||
|
|
||||||
|
public Object flowStart(String flowName, Map<String,Object> mainFormData, Map<String, List<Object>> subFormDatas, String appName, String templateCode) throws Exception {
|
||||||
|
OaRestClient client = new OaRestClient(configProvider.getBizConfigByKey(FlowIntegrationConstants.OA_HOST),
|
||||||
|
configProvider.getBizConfigByKey(FlowIntegrationConstants.restName),
|
||||||
|
configProvider.getBizConfigByKey(FlowIntegrationConstants.restPwd));
|
||||||
|
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(flowName, url, params);
|
||||||
|
if(oaResp.getCode() != 0) {
|
||||||
|
throw new Exception(flowName + "流程发起失败:" + oaResp.getMessage());
|
||||||
|
}
|
||||||
|
return oaResp.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.seeyon.apps.src_flowIntegration.service;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ThirdSysBizMapService {
|
||||||
|
|
||||||
|
public Map<String,String> getOaFlowTemplateInfoByBizCode(String thirdBizCode){
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
if(thirdBizCode.equals("kindee_bill")) {
|
||||||
|
map.put("templateCode","kindee_bill");
|
||||||
|
map.put("appName","测试2");
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
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,40 @@
|
|||||||
|
package com.seeyon.ctp.rest.resources.flowIntegration;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.seeyon.apps.src_flowIntegration.service.FlowIntegrationService;
|
||||||
|
import com.seeyon.ctp.common.AppContext;
|
||||||
|
import com.seeyon.ctp.common.log.CtpLogFactory;
|
||||||
|
import com.seeyon.ctp.rest.resources.BaseResource;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.POST;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
@Path("/third")
|
||||||
|
@Produces({"application/json", "application/xml"})
|
||||||
|
public class ThirdFlowIntegrationController extends BaseResource {
|
||||||
|
private static final Log log = CtpLogFactory.getLog(ThirdFlowIntegrationController.class);
|
||||||
|
private FlowIntegrationService flowIntegrationService = (FlowIntegrationService) AppContext.getBean("flowIntegrationService");
|
||||||
|
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/flowcreate")
|
||||||
|
@Produces({"application/json"})
|
||||||
|
@Consumes({"application/json"})
|
||||||
|
public Response flowCreate(JSONObject params) {
|
||||||
|
try {
|
||||||
|
String flowId = flowIntegrationService.thirdFlowCreate(params);
|
||||||
|
Map<String,String> res = new HashMap<>();
|
||||||
|
res.put("oaFlowId",flowId);
|
||||||
|
return success(res);
|
||||||
|
}catch (Exception e) {
|
||||||
|
return fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<plugin>
|
||||||
|
<id>src_flowIntegration</id>
|
||||||
|
<name>第三方流程集成</name>
|
||||||
|
<category>20250111</category>
|
||||||
|
</plugin>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?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="flowIntegrationPluginApi" class="com.seeyon.apps.src_flowIntegration.FlowIntegrationPluginApi"/>
|
||||||
|
<bean id="thirdSysBizMapService" class="com.seeyon.apps.src_flowIntegration.service.ThirdSysBizMapService"/>
|
||||||
|
<bean id="flowIntegrationService" class="com.seeyon.apps.src_flowIntegration.service.FlowIntegrationService"/>
|
||||||
|
<bean id="oaFlowCreateService" class="com.seeyon.apps.src_flowIntegration.service.OaFlowCreateService"/>
|
||||||
|
</beans>
|
||||||
@@ -8,5 +8,5 @@
|
|||||||
http://www.springframework.org/schema/context
|
http://www.springframework.org/schema/context
|
||||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||||
<!-- 扫描包以发现bean-->
|
<!-- 扫描包以发现bean-->
|
||||||
<context:component-scan base-package="com.seeyon.apps.src_saomaoyi.*"/>
|
<context:component-scan base-package="com.seeyon.apps.src_saomaoyi"/>
|
||||||
</beans>
|
</beans>
|
||||||
@@ -2,6 +2,6 @@ import com.seeyon.apps.jync_fz.node.SheBaoFenZhangNode;
|
|||||||
|
|
||||||
public class SheBaoFenZhangTest {
|
public class SheBaoFenZhangTest {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SheBaoFenZhangNode sheBaoFenZhangNode = new SheBaoFenZhangNode();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user