WipWorkflowQueryServiceImpl.java
package com.mycim.server.wip.service;
import com.alipay.sofa.runtime.api.annotation.SofaService;
import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
import com.fa.sesa.i18n.I18nUtils;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.workflow.engine.WorkflowManagerService;
import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.server.wip.manager.WipWorkflowQueryManager;
import com.mycim.valueobject.ObjectList;
import com.mycim.workflow.valueobject.Workflow;
import com.mycim.workflow.valueobject.WorkflowPath;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author shijie.deng
* @version 6.0.0
* @date 2019/9/17
**/
@Service
@SofaService(interfaceType = WipWorkflowQueryService.class, bindings = {@SofaServiceBinding(bindingType = "bolt")})
public class WipWorkflowQueryServiceImpl implements WipWorkflowQueryService {
@Autowired
private WipWorkflowQueryManager wipWorkflowQueryManager;
@Autowired
private NamedObjectManager namedObjectManager;
@Autowired
private WorkflowManagerService workflowManagerService;
@Override
public Map getStepsInfoByVersion(long processRrn, int processVer, String stepPath, Map matchingRules) {
return wipWorkflowQueryManager.getStepsInfoByVersion(processRrn, processVer, stepPath, matchingRules);
}
@Override
public Map getStepsInfo(long processRrn, String stepPath, Map matchingRules) {
return wipWorkflowQueryManager.getStepsInfo(processRrn, stepPath, matchingRules);
}
@Override
public List<Map> qryWflCombo(String type, String cascadeSource) {
List<Map> comboList = new ArrayList<>();
Map<String, Object> conditionMap = new HashMap<String, Object>();
if (StringUtils.isNotBlank(cascadeSource)) {
String[] cascadeConditionArray = cascadeSource.split(";;");
conditionMap.put("productType", StringUtils
.trimToUpperCase(StringUtils.replace(cascadeConditionArray[0], "*", "%").toString()));
conditionMap.put("productId", StringUtils
.trimToUpperCase(StringUtils.replace(cascadeConditionArray[1], "*", "%").toString()));
conditionMap.put("processId", StringUtils
.trimToUpperCase(StringUtils.replace(cascadeConditionArray[2], "*", "%").toString()));
conditionMap.put("routeId", StringUtils
.trimToUpperCase(StringUtils.replace(cascadeConditionArray[3], "*", "%").toString()));
}
conditionMap.put("processNamedSpace",
namedObjectManager.getNamedSpace(LocalContext.getFacilityRrn(), ObjectList.WFL_KEY));
if (StringUtils.equalsIgnoreCase("productType", type)) {
comboList = wipWorkflowQueryManager
.getWflInfoForCombo("product_t.object_type", "object_type", conditionMap);
} else if (StringUtils.equalsIgnoreCase("product", type)) {
comboList = wipWorkflowQueryManager
.getWflInfoForCombo("getinstanceid(pph.product_rrn) as product_id", "product_id", conditionMap);
} else if (StringUtils.equalsIgnoreCase("process", type)) {
comboList = wipWorkflowQueryManager.getWflInfoForCombo("wfl_info.process_id", "process_id", conditionMap);
} else if (StringUtils.equalsIgnoreCase("route", type)) {
comboList = wipWorkflowQueryManager.getWflInfoForCombo("wfl_info.route_id", "route_id", conditionMap);
} else if (StringUtils.equalsIgnoreCase("operation", type)) {
comboList = wipWorkflowQueryManager
.getWflInfoForCombo("wfl_info.operation_rrn", "operation_rrn", conditionMap);
}
Map<String, Object> defaultSelect = new HashMap<>(2);
if (StringUtils.equalsIgnoreCase("CN", I18nUtils.getCurrentLanguage().name())) {
defaultSelect.put("key", "--选择--");
} else {
defaultSelect.put("key", "--Choice--");
}
defaultSelect.put("value", StringUtils.EMPTY);
comboList.add(0, defaultSelect);
return comboList;
}
@Override
public boolean isExistExecutionRrn(long executionRrn) {
return wipWorkflowQueryManager.isExistExecutionRrn(executionRrn);
}
@Override
public List getNextMultiStepInfoByDao(long executionRrn, int n) {
return wipWorkflowQueryManager.getNextMultiStepInfoByDao(executionRrn, n);
}
@Override
public String reconstructRouteMap(String returnProcessStepVersion, Map processStep) {
return wipWorkflowQueryManager.reconstructRouteMap(returnProcessStepVersion, processStep);
}
@Override
public long getOperationByExec(long executionRrn) {
return wipWorkflowQueryManager.getOperationByExec(executionRrn);
}
@Override
public String[] parseWflStepPath(String wflStepPath) {
return wipWorkflowQueryManager.parseWflStepPath(wflStepPath);
}
@Override
public Workflow getWorkflow(long wflRrn, boolean active, WorkflowPath workflowPath) {
return workflowManagerService.getWorkflow(wflRrn,active,workflowPath);
}
@Override
public List<String> getMethodIdListByExecutionRrn(long executionRrn) {
return wipWorkflowQueryManager.getMethodIdListByExecutionRrn(executionRrn);
}
}