Browse Source

修改客户评级代码

main
likunming 8 months ago
parent
commit
9e8281a720
  1. 2
      app.irbs/build-common.gradle
  2. 3
      app.irbs/build.gradle
  3. 2
      irbs.cust.rating/build.gradle
  4. 71
      irbs.cust.rating/src/main/java/irbs/cust/rating/initializer/CustRatingWorkFlowInitializer.java
  5. 2
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/ModelLibService.java
  6. 2
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/RatingIndexService.java
  7. 2
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/RatingStepService.java
  8. 14
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/CompanyRatingServiceImpl.java
  9. 25
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportIndexServiceImpl.java
  10. 36
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/ModelLibServiceImpl.java
  11. 29
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/RatingIndexServiceImpl.java
  12. 4
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/RatingStepServiceImpl.java
  13. 24
      irbs.cust.rating/src/main/resources/META-INF/platform/plugins/parameters.json
  14. 1
      irbs.cust.rating/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer
  15. 2
      irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages.properties
  16. 2
      irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages_tw_CN.properties
  17. 2
      irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages_zh_CN.properties
  18. 172
      irbs.cust.rating/src/main/resources/workflow/irbs/cust/rating/CustRating.bpmn

2
app.irbs/build-common.gradle

@ -6,7 +6,7 @@
* 2. gradle bootwar -Dtarget=undertow # undertow, target=undertow * 2. gradle bootwar -Dtarget=undertow # undertow, target=undertow
* 3. gradle bootwar -Dtarget=jetty # jetty, target=jetty * 3. gradle bootwar -Dtarget=jetty # jetty, target=jetty
*/ */
def target =System.getProperty("target") ?: "undertow"; def target =System.getProperty("target") ?: "tomcat";
System.setProperty('target',target); System.setProperty('target',target);
// targetRuntime build.gradle // targetRuntime build.gradle

3
app.irbs/build.gradle

@ -22,9 +22,6 @@ dependencies {
"io.sc:io.sc.engine.mv.frontend:${platform_version}", "io.sc:io.sc.engine.mv.frontend:${platform_version}",
"io.sc:io.sc.engine.mv.sample:${platform_version}", "io.sc:io.sc.engine.mv.sample:${platform_version}",
"io.sc:io.sc.engine.rule.client:${platform_version}",
"io.sc:io.sc.engine.rule.client.spring:${platform_version}",
"io.sc:io.sc.engine.rule.core:${platform_version}",
"io.sc:io.sc.engine.rule.server:${platform_version}", "io.sc:io.sc.engine.rule.server:${platform_version}",
"io.sc:io.sc.engine.rule.sample:${platform_version}", "io.sc:io.sc.engine.rule.sample:${platform_version}",

2
irbs.cust.rating/build.gradle

@ -1,7 +1,7 @@
dependencies { dependencies {
api( api(
"io.sc:io.sc.platform.mvc:${platform_version}", "io.sc:io.sc.platform.mvc:${platform_version}",
"org.wsp:org.wsp.engine.rule.client:${rule_engine_version}", "io.sc:io.sc.engine.rule.client.spring:${platform_version}",
"io.sc:io.sc.platform.flowable:${platform_version}", "io.sc:io.sc.platform.flowable:${platform_version}",
"io.sc:io.sc.platform.page.config:${rwa_version}", "io.sc:io.sc.platform.page.config:${rwa_version}",

71
irbs.cust.rating/src/main/java/irbs/cust/rating/initializer/CustRatingWorkFlowInitializer.java

@ -0,0 +1,71 @@
package irbs.cust.rating.initializer;
import io.sc.platform.core.Environment;
import io.sc.platform.core.initializer.ApplicationInitializer;
import io.sc.platform.core.initializer.ApplicationInitializerExecuteException;
import io.sc.platform.core.util.FileUtil;
import io.sc.platform.flowable.enums.ProcessStatus;
import io.sc.platform.flowable.jpa.entity.ProcessEntity;
import io.sc.platform.flowable.service.ProcessEntityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
public class CustRatingWorkFlowInitializer implements ApplicationInitializer{
private static final Logger log =LoggerFactory.getLogger(CustRatingWorkFlowInitializer.class);
private Boolean isInitialized =null;
private ApplicationContext applicationContext;
private ProcessEntityService processEntityService;
@Override
public void init(ApplicationContext applicationContext) {
this.processEntityService =applicationContext.getBean(ProcessEntityService.class);
this.applicationContext =applicationContext;
}
@Override
public int getOrder() {
return 1100;
}
@Override
public synchronized boolean isInitialized() {
if(isInitialized!=null) {
return isInitialized;
}
List<ProcessEntity> entities =processEntityService.getRepository().findByKey("COMPANY_CUSTOMER_RATING");
if(entities==null || entities.isEmpty()){
isInitialized =false;
}else {
isInitialized = true;
}
return isInitialized;
}
@Override
public void execute() throws ApplicationInitializerExecuteException {
try {
ProcessEntity entity = new ProcessEntity();
entity.setCategory("COMPANY_CUSTOMER_RATING");
entity.setKey("COMPANY_CUSTOMER_RATING");
entity.setName(applicationContext.getMessage("WORK_FLOW.COMPANY_CUSTOMER_RATING", null, Locale.getDefault()));
entity.setStatus(ProcessStatus.RELEASE);
entity.setVersion(1);
entity.setCanClaimTask(false);
entity.setXml(getRuleEngineWorkflowXmlContent());
entity = processEntityService.add(entity);
processEntityService.deploy(entity.getId());
}catch (Exception e){
log.error("",e);
throw new ApplicationInitializerExecuteException(e);
}
}
private String getRuleEngineWorkflowXmlContent() throws IOException {
return FileUtil.readString("classpath:/workflow/irbs/cust/rating/CustRating.bpmn", Environment.DEFAULT_CHARSET_NAME);
}
}

2
irbs.cust.rating/src/main/java/irbs/cust/rating/service/ModelLibService.java

@ -1,7 +1,7 @@
package irbs.cust.rating.service; package irbs.cust.rating.service;
import io.sc.engine.rule.core.po.resource.ModelResource;
import irbs.cust.rating.jpa.entity.RatingCompanyCustomer; import irbs.cust.rating.jpa.entity.RatingCompanyCustomer;
import org.wsp.engine.rule.core.po.resource.ModelResource;
public interface ModelLibService { public interface ModelLibService {

2
irbs.cust.rating/src/main/java/irbs/cust/rating/service/RatingIndexService.java

@ -1,12 +1,12 @@
package irbs.cust.rating.service; package irbs.cust.rating.service;
import io.sc.engine.rule.core.po.model.Model;
import io.sc.platform.orm.service.DaoService; import io.sc.platform.orm.service.DaoService;
import io.sc.platform.orm.service.support.QueryParameter; import io.sc.platform.orm.service.support.QueryParameter;
import irbs.cust.rating.jpa.entity.CompanyRating; import irbs.cust.rating.jpa.entity.CompanyRating;
import irbs.cust.rating.jpa.entity.RatingIndex; import irbs.cust.rating.jpa.entity.RatingIndex;
import irbs.cust.rating.jpa.entity.RatingStep; import irbs.cust.rating.jpa.entity.RatingStep;
import irbs.cust.rating.jpa.repository.RatingIndexRepository; import irbs.cust.rating.jpa.repository.RatingIndexRepository;
import org.wsp.engine.rule.core.po.model.Model;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

2
irbs.cust.rating/src/main/java/irbs/cust/rating/service/RatingStepService.java

@ -1,10 +1,10 @@
package irbs.cust.rating.service; package irbs.cust.rating.service;
import io.sc.engine.rule.core.po.resource.ModelResource;
import io.sc.platform.orm.service.DaoService; import io.sc.platform.orm.service.DaoService;
import irbs.cust.rating.jpa.entity.CompanyRating; import irbs.cust.rating.jpa.entity.CompanyRating;
import irbs.cust.rating.jpa.entity.RatingStep; import irbs.cust.rating.jpa.entity.RatingStep;
import irbs.cust.rating.jpa.repository.RatingStepRepository; import irbs.cust.rating.jpa.repository.RatingStepRepository;
import org.wsp.engine.rule.core.po.resource.ModelResource;
public interface RatingStepService extends DaoService<RatingStep, String, RatingStepRepository> { public interface RatingStepService extends DaoService<RatingStep, String, RatingStepRepository> {

14
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/CompanyRatingServiceImpl.java

@ -1,5 +1,6 @@
package irbs.cust.rating.service.impl; package irbs.cust.rating.service.impl;
import io.sc.engine.rule.core.po.resource.ModelResource;
import io.sc.platform.core.util.StringUtil; import io.sc.platform.core.util.StringUtil;
import io.sc.platform.flowable.support.ProcessTaskWrapper; import io.sc.platform.flowable.support.ProcessTaskWrapper;
import io.sc.platform.mvc.service.SystemParameterService; import io.sc.platform.mvc.service.SystemParameterService;
@ -23,7 +24,6 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.wsp.engine.rule.core.po.resource.ModelResource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -137,13 +137,11 @@ public class CompanyRatingServiceImpl extends DaoServiceImpl<CompanyRating, Stri
// 生成步骤 // 生成步骤
ratingStepService.genAndSaveRatingSteps(companyRating); ratingStepService.genAndSaveRatingSteps(companyRating);
initCompanyRating(companyRating, customer, modelCode); try {
// try { initCompanyRating(companyRating, customer, modelCode);
// } catch (Exception e) {
// } catch (Exception e) { throw e;
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }
// throw e;
// }
} }
return companyRating; return companyRating;
} }

25
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportIndexServiceImpl.java

@ -1,5 +1,6 @@
package irbs.cust.rating.service.impl; package irbs.cust.rating.service.impl;
import io.sc.engine.rule.client.spring.service.ExecutorFactoryService;
import io.sc.platform.mvc.service.SystemParameterService; import io.sc.platform.mvc.service.SystemParameterService;
import irbs.cust.rating.jpa.entity.FinanceReport; import irbs.cust.rating.jpa.entity.FinanceReport;
import irbs.cust.rating.jpa.entity.FinanceReportDetail; import irbs.cust.rating.jpa.entity.FinanceReportDetail;
@ -12,11 +13,11 @@ import irbs.cust.rating.service.FinanceReportService;
import liquibase.repackaged.org.apache.commons.collections4.CollectionUtils; import liquibase.repackaged.org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.wsp.engine.rule.client.Executor; import io.sc.engine.rule.client.Executor;
import org.wsp.engine.rule.client.ExecutorBuilder; import io.sc.engine.rule.client.ExecutorBuilder;
import org.wsp.engine.rule.client.enums.ExecutorMode; import io.sc.engine.rule.client.enums.ExecutorMode;
import org.wsp.engine.rule.core.code.impl.support.ParameterResult; import io.sc.engine.rule.core.code.impl.support.ParameterResult;
import org.wsp.engine.rule.core.code.impl.support.ResourceResult; import io.sc.engine.rule.core.code.impl.support.ResourceResult;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
@ -27,8 +28,8 @@ import java.util.Map;
@Service("financeReportIndexService") @Service("financeReportIndexService")
public class FinanceReportIndexServiceImpl implements FinanceReportIndexService { public class FinanceReportIndexServiceImpl implements FinanceReportIndexService {
// @Autowired @Autowired
// private ExecutorFactoryService executorFactoryService; private ExecutorFactoryService executorFactoryService;
@Autowired @Autowired
private FinanceReportService financeReportService; private FinanceReportService financeReportService;
@Autowired @Autowired
@ -87,8 +88,9 @@ public class FinanceReportIndexServiceImpl implements FinanceReportIndexService
} }
kiMap.put("QYCB1",lastMap); kiMap.put("QYCB1",lastMap);
// 调用模型引擎 // 调用模型引擎
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); // String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url");
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build(); // Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build();
Executor executor = executorFactoryService.getExecutor();
ResourceResult result = executor.executeByCode("QYCW_ZB",null,kiMap); ResourceResult result = executor.executeByCode("QYCW_ZB",null,kiMap);
if(result != null && CollectionUtils.isNotEmpty(result.getData())) { if(result != null && CollectionUtils.isNotEmpty(result.getData())) {
List<ParameterResult> results = result.getData(); List<ParameterResult> results = result.getData();
@ -175,8 +177,9 @@ public class FinanceReportIndexServiceImpl implements FinanceReportIndexService
kiMap.put("SYCB1",lastMap); kiMap.put("SYCB1",lastMap);
kiMap.put("SYCB2",lastMap2); kiMap.put("SYCB2",lastMap2);
// 调用模型引擎 // 调用模型引擎
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); // String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url");
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build(); // Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build();
Executor executor = executorFactoryService.getExecutor();
ResourceResult result = executor.executeByCode("SYCW_ZB",null,kiMap); ResourceResult result = executor.executeByCode("SYCW_ZB",null,kiMap);
if(result != null && CollectionUtils.isNotEmpty(result.getData())) { if(result != null && CollectionUtils.isNotEmpty(result.getData())) {
List<ParameterResult> results = result.getData(); List<ParameterResult> results = result.getData();

36
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/ModelLibServiceImpl.java

@ -1,6 +1,8 @@
package irbs.cust.rating.service.impl; package irbs.cust.rating.service.impl;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.sc.engine.rule.client.enums.LoaderMode;
import io.sc.engine.rule.client.spring.service.ExecutorFactoryService;
import io.sc.platform.core.util.StringUtil; import io.sc.platform.core.util.StringUtil;
import io.sc.platform.mvc.service.SystemParameterService; import io.sc.platform.mvc.service.SystemParameterService;
import irbs.cust.rating.jpa.entity.RatingCompanyCustomer; import irbs.cust.rating.jpa.entity.RatingCompanyCustomer;
@ -10,14 +12,14 @@ import irbs.cust.rating.util.DateUtil;
import liquibase.repackaged.org.apache.commons.collections4.CollectionUtils; import liquibase.repackaged.org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.wsp.engine.rule.client.Executor; import io.sc.engine.rule.client.Executor;
import org.wsp.engine.rule.client.ExecutorBuilder; import io.sc.engine.rule.client.ExecutorBuilder;
import org.wsp.engine.rule.client.enums.ExecutorMode; import io.sc.engine.rule.client.enums.ExecutorMode;
import org.wsp.engine.rule.core.code.impl.support.ParameterResult; import io.sc.engine.rule.core.code.impl.support.ParameterResult;
import org.wsp.engine.rule.core.code.impl.support.ResourceResult; import io.sc.engine.rule.core.code.impl.support.ResourceResult;
import org.wsp.engine.rule.core.code.impl.support.ResourceWrapper; import io.sc.engine.rule.core.code.impl.support.ResourceWrapper;
import org.wsp.engine.rule.core.code.impl.support.ResourceWrapper4Resource; import io.sc.engine.rule.core.code.impl.support.ResourceWrapper4Resource;
import org.wsp.engine.rule.core.po.resource.ModelResource; import io.sc.engine.rule.core.po.resource.ModelResource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -26,8 +28,8 @@ import java.util.Map;
@Service("modelLibService") @Service("modelLibService")
public class ModelLibServiceImpl implements ModelLibService { public class ModelLibServiceImpl implements ModelLibService {
// @Autowired @Autowired
// ExecutorFactoryService executorFactoryService; ExecutorFactoryService executorFactoryService;
@Autowired @Autowired
private FinanceReportService financeReportService; private FinanceReportService financeReportService;
@Autowired @Autowired
@ -64,8 +66,11 @@ public class ModelLibServiceImpl implements ModelLibService {
// 模型路由结果 // 模型路由结果
ResourceResult result; ResourceResult result;
try { try {
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); // Map<String, String> parameterMap = systemParameterService.getParameters(new String[]{"parameter.re.client.remoteApiUrl","parameter.re.client.loaderMode","parameter.re.client.executorMode"});
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build(); // ExecutorMode executorMode = ExecutorMode.valueOf(parameterMap.get("parameter.re.client.executorMode"));
// LoaderMode loaderMode = LoaderMode.valueOf(parameterMap.get("parameter.re.client.loaderMode"));
// String remoteApiUrl = parameterMap.get("parameter.re.client.remoteApiUrl");
Executor executor = executorFactoryService.getExecutor();
result = executor.executeByCode("M_Selector",null, params); result = executor.executeByCode("M_Selector",null, params);
} catch (Exception e) { } catch (Exception e) {
System.out.println(e); System.out.println(e);
@ -94,13 +99,14 @@ public class ModelLibServiceImpl implements ModelLibService {
@Override @Override
public ModelResource getModelResource(String modelCode) throws Exception { public ModelResource getModelResource(String modelCode) throws Exception {
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); // String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url");
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build(); // Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build();
Executor executor = executorFactoryService.getExecutor();
ResourceWrapper resourceWrapper = executor.getLoader().getResourceByCode(modelCode, null); ResourceWrapper resourceWrapper = executor.getLoader().getResourceByCode(modelCode, null);
if(resourceWrapper != null) { if(resourceWrapper != null) {
if(resourceWrapper instanceof ResourceWrapper4Resource) { if(resourceWrapper instanceof ResourceWrapper4Resource) {
ResourceWrapper4Resource resourceWrapper4Resource =(ResourceWrapper4Resource)resourceWrapper; ResourceWrapper4Resource resourceWrapper4Resource =(ResourceWrapper4Resource)resourceWrapper;
org.wsp.engine.rule.core.po.resource.Resource resource = resourceWrapper4Resource.getResource(); io.sc.engine.rule.core.po.resource.Resource resource = resourceWrapper4Resource.getResource();
if(resource instanceof ModelResource) { if(resource instanceof ModelResource) {
return (ModelResource)resource; return (ModelResource)resource;
} }

29
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/RatingIndexServiceImpl.java

@ -1,5 +1,6 @@
package irbs.cust.rating.service.impl; package irbs.cust.rating.service.impl;
import io.sc.engine.rule.client.spring.service.ExecutorFactoryService;
import io.sc.platform.core.util.StringUtil; import io.sc.platform.core.util.StringUtil;
import io.sc.platform.jdbc.sql.condition.Condition; import io.sc.platform.jdbc.sql.condition.Condition;
import io.sc.platform.mvc.service.SystemParameterService; import io.sc.platform.mvc.service.SystemParameterService;
@ -19,16 +20,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.wsp.engine.rule.client.Executor; import io.sc.engine.rule.client.Executor;
import org.wsp.engine.rule.client.ExecutorBuilder; import io.sc.engine.rule.client.ExecutorBuilder;
import org.wsp.engine.rule.client.enums.ExecutorMode; import io.sc.engine.rule.client.enums.ExecutorMode;
import org.wsp.engine.rule.core.code.impl.support.ParameterResult; import io.sc.engine.rule.core.code.impl.support.ParameterResult;
import org.wsp.engine.rule.core.code.impl.support.ResourceResult; import io.sc.engine.rule.core.code.impl.support.ResourceResult;
import org.wsp.engine.rule.core.enums.ParameterType; import io.sc.engine.rule.core.enums.ParameterType;
import org.wsp.engine.rule.core.po.model.Model; import io.sc.engine.rule.core.po.model.Model;
import org.wsp.engine.rule.core.po.model.Parameter; import io.sc.engine.rule.core.po.model.Parameter;
import org.wsp.engine.rule.core.po.model.ParameterInOptionItem; import io.sc.engine.rule.core.po.model.ParameterInOptionItem;
import org.wsp.engine.rule.core.po.model.parameter.InOptionParameter; import io.sc.engine.rule.core.po.model.parameter.InOptionParameter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
@ -39,6 +40,8 @@ public class RatingIndexServiceImpl extends DaoServiceImpl<RatingIndex, String,
private static final RowMapper<RatingIndex> RatingIndexRowMapper =RatingIndex.getRowMapper(); private static final RowMapper<RatingIndex> RatingIndexRowMapper =RatingIndex.getRowMapper();
@Autowired
ExecutorFactoryService executorFactoryService;
@Autowired @Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate; private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Autowired @Autowired
@ -248,8 +251,7 @@ public class RatingIndexServiceImpl extends DaoServiceImpl<RatingIndex, String,
} }
} }
// 调用模型引擎 // 调用模型引擎
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); Executor executor = executorFactoryService.getExecutor();
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build();
ResourceResult result = executor.executeById(rating.getModelId(), ModelParamCode.DL.getCode(), kiMap); ResourceResult result = executor.executeById(rating.getModelId(), ModelParamCode.DL.getCode(), kiMap);
if(result != null && null!=result.getData() && result.getData().size() >0 && null!=ratingIndexs && ratingIndexs.size() >0) { if(result != null && null!=result.getData() && result.getData().size() >0 && null!=ratingIndexs && ratingIndexs.size() >0) {
List<ParameterResult> results = result.getData(); List<ParameterResult> results = result.getData();
@ -342,8 +344,7 @@ public class RatingIndexServiceImpl extends DaoServiceImpl<RatingIndex, String,
} }
} }
// 调用模型引擎 // 调用模型引擎
String modelResourceUrl = systemParameterService.getParameter("parameter.irbs.engine.remote.config.re.url"); Executor executor = executorFactoryService.getExecutor();
Executor executor = new ExecutorBuilder().executor(ExecutorMode.REMOTE).url(modelResourceUrl).build();
ResourceResult result = executor.executeById(rating.getModelId(),kiMap); ResourceResult result = executor.executeById(rating.getModelId(),kiMap);
if(result != null && null!=result.getData() && result.getData().size() >0) { if(result != null && null!=result.getData() && result.getData().size() >0) {
List<ParameterResult> results = result.getData(); List<ParameterResult> results = result.getData();

4
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/RatingStepServiceImpl.java

@ -12,8 +12,8 @@ import irbs.cust.rating.service.RatingStepConfigService;
import irbs.cust.rating.service.RatingStepService; import irbs.cust.rating.service.RatingStepService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.wsp.engine.rule.core.po.model.Model; import io.sc.engine.rule.core.po.model.Model;
import org.wsp.engine.rule.core.po.resource.ModelResource; import io.sc.engine.rule.core.po.resource.ModelResource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

24
irbs.cust.rating/src/main/resources/META-INF/platform/plugins/parameters.json

@ -123,13 +123,33 @@
}, },
"order" : 551 "order" : 551
}, },
/**/
{
"id" : "parameter.irbs.params.gm.enable",
"parentId" : "parameter.irbs.params",
"code" : "parameter.irbs.params.gm.enable",
"defaultValue" : "1",
"options" : {
"1": "是",
"0": "否"
},
"order" : 600
},
/**/
{
"id" : "parameter.irbs.params.gm.code",
"parentId" : "parameter.irbs.params",
"code" : "parameter.irbs.params.gm.code",
"defaultValue" : "M_G_Selector",
"order" : 700
},
/**/ /**/
{ {
"id" : "parameter.irbs.params.default.cognizance.date", "id" : "parameter.irbs.params.default.cognizance.date",
"parentId" : "parameter.irbs.params", "parentId" : "parameter.irbs.params",
"code" : "parameter.irbs.params.default.cognizance.date", "code" : "parameter.irbs.params.default.cognizance.date",
"defaultValue" : 3, "defaultValue" : 3,
"order" : 600 "order" : 800
}, },
/**/ /**/
{ {
@ -137,6 +157,6 @@
"parentId" : "parameter.irbs.params", "parentId" : "parameter.irbs.params",
"code" : "parameter.irbs.params.default.rebirth.date", "code" : "parameter.irbs.params.default.rebirth.date",
"defaultValue" : 3, "defaultValue" : 3,
"order" : 700 "order" : 900
} }
] ]

1
irbs.cust.rating/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer

@ -0,0 +1 @@
irbs.cust.rating.initializer.CustRatingWorkFlowInitializer

2
irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages.properties

@ -35,5 +35,7 @@ parameter.irbs.params.isCheckCreditInvestigation = \u662F\u5426\u5F00\u542F\u5F8
parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570 parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570
parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5 parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5
parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650 parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650
parameter.irbs.params.gm.enable = \u662F\u5426\u542F\u7528\u7070\u5EA6\u6A21\u578B
parameter.irbs.params.gm.code = \u7070\u5EA6\u6A21\u578B\u7F16\u7801
parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C
parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C

2
irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages_tw_CN.properties

@ -35,5 +35,7 @@ parameter.irbs.params.isCheckCreditInvestigation = \u662F\u5426\u5F00\u542F\u5F8
parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570 parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570
parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5 parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5
parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650 parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650
parameter.irbs.params.gm.enable = \u662F\u5426\u542F\u7528\u7070\u5EA6\u6A21\u578B
parameter.irbs.params.gm.code = \u7070\u5EA6\u6A21\u578B\u7F16\u7801
parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C
parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C

2
irbs.cust.rating/src/main/resources/irbs/cust/rating/i18n/messages_zh_CN.properties

@ -35,5 +35,7 @@ parameter.irbs.params.isCheckCreditInvestigation = \u662F\u5426\u5F00\u542F\u5F8
parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570 parameter.irbs.params.creditInvestExpireNum = \u5F81\u4FE1\u8FC7\u671F\u6708\u6570
parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5 parameter.irbs.params.ratingReport.scoreDtl = \u8BC4\u7EA7\u62A5\u544A\u662F\u5426\u5C55\u793A\u5F97\u5206\u8BE6\u60C5
parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650 parameter.irbs.params.ratingReport.scoreDtl.auth = \u8BC4\u7EA7\u62A5\u544A\u5F97\u5206\u8BE6\u60C5\u67E5\u770B\u6743\u9650
parameter.irbs.params.gm.enable = \u662F\u5426\u542F\u7528\u7070\u5EA6\u6A21\u578B
parameter.irbs.params.gm.code = \u7070\u5EA6\u6A21\u578B\u7F16\u7801
parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.cognizance.date = \u8FDD\u7EA6\u8BA4\u5B9A\u6709\u6548\u671F\u9ED8\u8BA4\u503C
parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C parameter.irbs.params.default.rebirth.date = \u8FDD\u7EA6\u91CD\u751F\u6709\u6548\u671F\u9ED8\u8BA4\u503C

172
irbs.cust.rating/src/main/resources/workflow/irbs/cust/rating/CustRating.bpmn

@ -0,0 +1,172 @@
<?xml version='1.0' encoding='UTF-8'?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test" exporter="Flowable Open Source Modeler" exporterVersion="6.8.0">
<process id="COMPANY_CUSTOMER_RATING" name="公司客户评级流程分类" isExecutable="true">
<dataObject id="assignment-strategy" name="任务分配策略" itemSubjectRef="xsd:string">
<extensionElements>
<flowable:value>{"A2":"frAssigneeQueryService"}</flowable:value>
</extensionElements>
</dataObject>
<startEvent id="startevent1" name="Start" flowable:formFieldValidation="true"/>
<userTask id="A1" name="客户经理提交申请" flowable:assignee="${assignee}" flowable:formFieldValidation="true" flowable:skipExpression="${execution.getVariable('skipFirst')==true}">
<documentation>${desc}</documentation>
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="A2" name="一级支行评级审查岗" flowable:assignee="${assignee}" flowable:candidateGroups="y_cust_rating_examine" flowable:formFieldValidation="true">
<documentation>${desc}</documentation>
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="A3" name="一级支行评级审批岗" flowable:assignee="${assignee}" flowable:candidateGroups="y_cust_rating_approve" flowable:formFieldValidation="true">
<documentation>${desc}</documentation>
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="A4" name="总行审查岗" flowable:assignee="${assignee}" flowable:candidateGroups="z_company_rating_examine" flowable:formFieldValidation="true">
<documentation>${desc}</documentation>
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="A5" name="总行审批岗" flowable:assignee="${assignee}" flowable:candidateGroups="z_company_rating_approve" flowable:formFieldValidation="true">
<documentation>${desc}</documentation>
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<endEvent id="endevent1" name="End"/>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="A1"/>
<endEvent id="endevent2" name="结束"/>
<sequenceFlow id="flow2" name="提交" sourceRef="A1" targetRef="A2">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==6}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow12" name="退回发起人" sourceRef="A3" targetRef="A1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow8" name="退回发起人" sourceRef="A2" targetRef="A1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow9" name="退回发起人" sourceRef="A4" targetRef="A1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow10" name="否决" sourceRef="A3" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==2}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" name="通过" sourceRef="A3" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow3" name="提交" sourceRef="A2" targetRef="A3">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==6}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow6" name="提交" sourceRef="A4" targetRef="A5">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==6}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-C0A72034-8C59-4DCB-B2E0-1AC84315A8BA" name="否决" sourceRef="A5" targetRef="endevent2">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==2}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-48C11432-6FBB-4657-A7B0-5AA0F9C3D900" name="通过" sourceRef="A5" targetRef="endevent2">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow13" name="退回发起人" sourceRef="A5" targetRef="A1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-1}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="提交" sourceRef="A3" targetRef="A4">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${submit==1}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_COMPANY_CUSTOMER_RATING">
<bpmndi:BPMNPlane bpmnElement="COMPANY_CUSTOMER_RATING" id="BPMNPlane_COMPANY_CUSTOMER_RATING">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="30.0" width="30.0" x="32.02187570282153" y="169.09844066269687"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="A1" id="BPMNShape_A1">
<omgdc:Bounds height="80.0" width="105.0" x="105.0" y="144.09844066269687"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="A2" id="BPMNShape_A2">
<omgdc:Bounds height="80.0" width="105.0" x="300.0" y="144.09844066269687"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="A3" id="BPMNShape_A3">
<omgdc:Bounds height="80.0" width="105.0" x="500.0" y="144.09844066269687"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="A4" id="BPMNShape_A4">
<omgdc:Bounds height="80.0" width="105.0" x="500.0" y="315.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="A5" id="BPMNShape_A5">
<omgdc:Bounds height="80.0" width="105.0" x="720.0" y="315.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="28.0" width="28.0" x="695.0" y="170.09844066269687"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
<omgdc:Bounds height="28.0" width="28.0" x="915.0" y="341.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="772.5" y="394.95000000000005"/>
<omgdi:waypoint x="772.5" y="485.0"/>
<omgdi:waypoint x="157.5" y="485.0"/>
<omgdi:waypoint x="157.5" y="224.0484406626969"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-48C11432-6FBB-4657-A7B0-5AA0F9C3D900" id="BPMNEdge_sid-48C11432-6FBB-4657-A7B0-5AA0F9C3D900" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
<omgdi:waypoint x="824.9499999999999" y="355.0"/>
<omgdi:waypoint x="864.5" y="355.0"/>
<omgdi:waypoint x="851.5" y="355.0"/>
<omgdi:waypoint x="915.0" y="355.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1" flowable:sourceDockerX="15.0" flowable:sourceDockerY="15.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="61.97187420581508" y="184.09844066269687"/>
<omgdi:waypoint x="105.0" y="184.09844066269687"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="209.9499999999619" y="184.09844066269687"/>
<omgdi:waypoint x="300.0" y="184.09844066269687"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="404.95000000000005" y="184.09844066269687"/>
<omgdi:waypoint x="500.0" y="184.09844066269687"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
<omgdi:waypoint x="604.94999999995" y="184.09844066269687"/>
<omgdi:waypoint x="695.0" y="184.09844066269687"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="14.0">
<omgdi:waypoint x="552.5" y="224.0484406626969"/>
<omgdi:waypoint x="552.5" y="315.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="604.95" y="355.0"/>
<omgdi:waypoint x="720.0" y="355.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C0A72034-8C59-4DCB-B2E0-1AC84315A8BA" id="BPMNEdge_sid-C0A72034-8C59-4DCB-B2E0-1AC84315A8BA" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
<omgdi:waypoint x="772.5" y="315.0"/>
<omgdi:waypoint x="772.5" y="275.0"/>
<omgdi:waypoint x="929.0" y="275.0"/>
<omgdi:waypoint x="929.0" y="341.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
<omgdi:waypoint x="603.5071973955154" y="144.09844066269687"/>
<omgdi:waypoint x="642.0" y="114.0"/>
<omgdi:waypoint x="699.326689310983" y="173.97684030512815"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="352.30934506477934" y="224.0484406626969"/>
<omgdi:waypoint x="352.0" y="289.0"/>
<omgdi:waypoint x="158.0" y="289.0"/>
<omgdi:waypoint x="157.69041661655163" y="224.0484406626969"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="552.3320716888591" y="144.09844066269687"/>
<omgdi:waypoint x="552.0" y="65.0"/>
<omgdi:waypoint x="157.0" y="65.0"/>
<omgdi:waypoint x="157.33207168885912" y="144.09844066269687"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9" flowable:sourceDockerX="52.5" flowable:sourceDockerY="40.0" flowable:targetDockerX="52.5" flowable:targetDockerY="40.0">
<omgdi:waypoint x="499.99999999986835" y="355.0"/>
<omgdi:waypoint x="157.0" y="355.0"/>
<omgdi:waypoint x="157.38297356631765" y="224.0484406626969"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
Loading…
Cancel
Save