From 5bd552eec6cc822278691e3495a1f6a97038dbb7 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期一, 26 六月 2023 18:17:12 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
---
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue | 3
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskDTO.java | 2
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java | 32 ++++++++++
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue | 3
Source/UBCS-WEB/src/components/template/SetPersonnel.vue | 8 +-
Source/UBCS-WEB/src/views/work/process/leave/handle.vue | 8 ++
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java | 7 +-
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java | 76 +++++++++++++++++++++----
8 files changed, 112 insertions(+), 27 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
index 690e721..c27c046 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -272,8 +272,7 @@
var query={}
if (this.query) {
for (var key in this.query) {
- query['conditionMap["' + key + '"]'] = '*'+this.query[key]+'*';
- query[key]='*'+this.query[key]+'*';
+ query['conditionMap["' + key + '"]'] = this.query[key];
}
}
getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url).then(res => {
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
index 366f9f2..31782b5 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -330,8 +330,7 @@
var query={}
if (this.query) {
for (var key in this.query) {
- query['conditionMap["' + key + '"]'] = '*'+this.query[key]+'*';
- query[key]='*'+this.query[key]+'*';
+ query['conditionMap["' + key + '"]'] = this.query[key];
}
}
getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url).then(res => {
diff --git a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
index 17edef3..f96be3f 100644
--- a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
+++ b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -100,7 +100,7 @@
tags: [],
typeName: [],
collectParam: {},
- saveParam: this.saveParam(),
+ saveParam: this.setSaveParam(),
users: [],
rules: {
processName: [
@@ -116,7 +116,7 @@
// this.apiDict()
},
methods: {
- saveParam() {
+ setSaveParam() {
return {
processName: this.parameter[this.parameterKeys.flowTemplate],
topName: this.title,
@@ -200,8 +200,8 @@
message: "璇烽�夋嫨鑺傜偣锛�"
});
} else {
- const {modelKey,modelName,processDesc,processName,templateId,topName,vars} = this.saveParam
- const vals= {modelKey,modelName,processDesc,processName,templateId,topName,...vars}
+ const {modelKey,modelName,processDesc,processName,templateId,topName,vars,ids} = this.saveParam
+ const vals= {modelKey,modelName,processDesc,processName,templateId,topName,ids,...vars}
const response = await personnelSave({ variables:vals, flowTaskUsers: this.collectParam.flowTaskUsers, })
if (response.status === 200) {
console.log(response)
diff --git a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
index 056cfed..665405d 100644
--- a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
+++ b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -94,7 +94,7 @@
indexLabelClassName: '搴忓彿',
column: [
{ label: '浠诲姟鍚嶇О', prop: 'historyActivityName', minWidth: 120 },
- { label: '鎵ц鎿嶄綔', prop: 'sex', minWidth: 80 },
+ { label: '鎵ц鎿嶄綔', prop: 'pass', minWidth: 80 ,formatter:this.formatterPass},
{ label: '浠诲姟寮�濮嬫椂闂�', prop: 'createTime', minWidth: 140 },
{ label: '瀹℃壒鎰忚', prop: 'comment', minWidth: 220, overHidden: true },
{ label: '鎵ц浜�', prop: 'assigneeName', minWidth: 80 },
@@ -130,6 +130,10 @@
}
})
this.apiGetBtnTask(this.processInstanceId)
+ },
+ formatterPass(row, value, column) {
+ console.log('value',value)
+ return value?'鍚屾剰':'椹冲洖'
},
async apiGetBtnTask(id) {
const response = await getBtnTask({ processInstanceId: id })
@@ -185,7 +189,7 @@
display: -ms-flexbox;
display: flex;
justify-content: space-between;
- height: 70vh;
+ height: 85vh;
&_tab {
width: 79%;
diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
index 46130f0..4e70d5f 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
@@ -27,12 +27,17 @@
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.HistoryService;
+import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.history.HistoricProcessInstanceQuery;
+import org.flowable.engine.runtime.Execution;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
@@ -55,6 +60,7 @@
private final TaskService taskService;
private final HistoryService historyService;
+ private final RuntimeService runtimeService;
@Override
public IPage<BladeFlow> selectClaimPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
@@ -264,8 +270,22 @@
variables = Kv.create();
}
variables.put(ProcessConstant.PASS_KEY, flow.isPass());
+
// 瀹屾垚浠诲姟
taskService.complete(taskId, variables);
+
+// //璁剧疆涓嬩竴姝ュ鏍镐汉
+// Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();//涓嬩竴姝ヨ妭鐐�
+// String taskKey = task.getTaskDefinitionKey();//灏辨槸娴佺▼閰嶇疆鐨勮妭鐐筰d
+// Object to = getVar(processInstanceId,taskKey);
+// if(to==null){
+// throw new ServiceException(taskKey+"娌℃湁璁剧疆瀹℃牳浜�");
+// }
+// String assignee = to.toString();
+//
+// if(StringUtils.isNotEmpty(assignee)) {
+// task.setAssignee(assignee);
+// }
return true;
}
@@ -332,4 +352,16 @@
return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
}
+ public Object getVar(String processInstanceId,String key){
+ Object t = null;
+ List<Execution> list = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list();
+ for (Execution execution : list) {
+ Object va = runtimeService.getVariable(execution.getId(),key);
+ if(va!=null){
+ t=va;
+ }
+ }
+ return t;
+ }
+
}
diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskDTO.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskDTO.java
index 62ee9c6..4a065b9 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskDTO.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskDTO.java
@@ -58,7 +58,7 @@
//娴佺▼涓弬鏁�
private List<FlowTaskDTO> toTasks;//娴佺▼涓嬩竴姝ユ寜閽�
- private Map<String, Object> vars;//娴佺▼鍙傛暟
+ private Map<String, Object> variables;//娴佺▼鍙傛暟
diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
index 1221fa3..f1deaf9 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
@@ -25,12 +25,14 @@
import com.vci.ubcs.flow.engine.service.VICFlowService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.flowable.bpmn.model.*;
import org.flowable.engine.*;
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
@@ -55,13 +57,14 @@
private final FlowEngineService flowEngineService;
private final HistoryService historyService;
+ private static String MODELKEY = "modelKey";//鍓嶇浼犺繃鏉ョ殑妯″瀷key
@Override
public R<BladeFlow> startProcess(FlowTaskDTO flowTaskUserC){
- String modelKey = flowTaskUserC.getModelKey();
- String templateId = flowTaskUserC.getTemplateId();
+ Map<String, Object> kvv = flowTaskUserC.getVariables();
- Kv kv = Kv.create()
- .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName());
+ String modelKey = kvv.get(MODELKEY).toString();
+
+ Kv kv = Kv.create().set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName());
// 璁剧疆娴佺▼鍚姩鐢ㄦ埛
identityService.setAuthenticatedUserId(TaskUtil.getTaskUser());
@@ -72,11 +75,11 @@
String processDefinitionId = latesDefinition.getId();
//鏌ヨ姣忎竴姝ュ鏍镐汉
- List<FlowTaskUser> taskUsers = flowTaskUserService.getTaskUserByTemplateAndModelKey(templateId,modelKey);
- Set<String> taskIdSet = new HashSet<>();
+ List<FlowTaskUser> taskUsers = flowTaskUserC.getFlowTaskUsers();
+// Set<String> taskIdSet = new HashSet<>();
for (FlowTaskUser taskUser:taskUsers){
kv.put(taskUser.getTaskId(),TaskUtil.getTaskUser(taskUser.getUserId()));
- taskIdSet.add(taskUser.getTaskId());
+// taskIdSet.add(taskUser.getTaskId());
}
//瀵规瘮閰嶇疆鐨勫鏍镐汉鍛樺拰娴佺▼涓妭鐐规槸鍚︿竴鑷达紝鍙兘瀛樺湪娴佺▼鑺傜偣鍙樻洿浜嗭紝澶氫簡鎴栬�呭皯浜嗚妭鐐癸紝浣嗘槸閰嶇疆瀹℃牳浜哄憳鐨勮妭鐐规病鏈夊彉
@@ -92,13 +95,28 @@
// }
//娴佺▼涓枃浠躲�佸彉閲忕瓑
- //do..
+ if(kvv!=null&&!kvv.isEmpty()){
+ kv.putAll(kvv);
+ }
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, modelKey, kv);
// 缁勮娴佺▼閫氱敤绫�
BladeFlow flow = new BladeFlow();
flow.setProcessInstanceId(processInstance.getId());
+// //璁剧疆涓嬩竴姝ュ鏍镐汉
+// Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).active().singleResult();
+// String taskId = task.getTaskDefinitionKey();
+// String assignee = null;
+// for (FlowTaskUser taskUser:taskUsers) {
+// if(taskId.equals(taskUser.getTaskId())){
+// assignee = taskUser.getUserId();
+// }
+// }
+// if(StringUtils.isEmpty(assignee)){
+// throw new ServiceException(taskId+"娌℃湁閰嶇疆瀹℃牳浜�!");
+// }
+// taskService.setAssignee(task.getId(),assignee);
return R.data(flow);
}
@@ -126,7 +144,7 @@
//杩欎釜瀹炰緥鐨勬墍鏈夎妭鐐�
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
Map<String, Object> processVariables = processInstance.getProcessVariables();//鎵�鏈夊弬鏁�
- flowTaskDTO.setVars(processVariables);
+ flowTaskDTO.setVariables(processVariables);
String modelKey = processInstance.getProcessDefinitionKey();
List<FlowTaskDTO> mis = flowEngineService.getNodeByFlowableKey(modelKey);
@@ -142,7 +160,24 @@
// 涓嬩竴涓鎵硅妭鐐�
FlowElement targetFlow = sequenceFlow.getTargetFlowElement();
if (targetFlow instanceof UserTask) {
- System.out.println("涓嬩竴鑺傜偣: id=" + targetFlow.getId() + ",name=" + targetFlow.getName());
+ FlowTaskDTO flowTaskUserCi = new FlowTaskDTO();
+ //flowTaskUserCi.setConditionKey(null);
+ //flowTaskUserCi.setConditionValue(null);
+ flowTaskUserCi.setToName("鍚屾剰");
+ flowTaskUserCi.setToTaskId(targetFlow.getId());
+ flowTaskUserCi.setToTaskName(targetFlow.getName());
+ taskList.add(flowTaskUserCi);
+ }
+
+ //缁撴潫
+ if (targetFlow instanceof EndEvent) {
+ FlowTaskDTO flowTaskUserCi = new FlowTaskDTO();
+ //flowTaskUserCi.setConditionKey(null);
+ //flowTaskUserCi.setConditionValue(null);
+ flowTaskUserCi.setToName("鍚屾剰");
+ flowTaskUserCi.setToTaskId(targetFlow.getId());
+ flowTaskUserCi.setToTaskName(targetFlow.getName());
+ taskList.add(flowTaskUserCi);
}
// 濡傛灉涓嬩釜瀹℃壒鑺傜偣涓烘帓浠栫綉鍏�
if (targetFlow instanceof ExclusiveGateway) {
@@ -157,9 +192,20 @@
for (FlowTaskDTO flowTaskUserCi:mis){
if(taskId.equals(flowTaskUserCi.getTaskId())){
flowTaskUserCi.setCondition(conditionExpression);
- if(conditionExpression.split("=").length>1) {
- flowTaskUserCi.setConditionKey(conditionExpression.split("=")[0]);
- flowTaskUserCi.setConditionValue(conditionExpression.split("=")[1]);
+ if(conditionExpression.contains("=")||conditionExpression.contains("<")||conditionExpression.contains(">")) {
+ conditionExpression = conditionExpression.replace("${","").replace("}","").replaceAll("\"","");
+ String[] conditionExpressionStr = conditionExpression.split("==");
+ if(conditionExpression.contains("<")){
+ conditionExpressionStr = conditionExpression.split("<");
+ }else if(conditionExpression.contains("<=")){
+ conditionExpressionStr = conditionExpression.split("<=");
+ }else if(conditionExpression.contains(">")){
+ conditionExpressionStr = conditionExpression.split(">");
+ }else if(conditionExpression.contains(">=")){
+ conditionExpressionStr = conditionExpression.split(">=");
+ }
+ flowTaskUserCi.setConditionKey(conditionExpressionStr.length>0?conditionExpressionStr[0]:null);
+ flowTaskUserCi.setConditionValue(conditionExpressionStr.length>1?conditionExpressionStr[1]:null);
}
flowTaskUserCi.setToName(name);
flowTaskUserCi.setToTaskId(taskId);
@@ -171,6 +217,10 @@
}
}
}
+ Map<String,Object> variables = runtimeService.getVariables(processInstanceId);
+ if(!variables.isEmpty()){
+ flowTaskDTO.setVariables(variables);
+ }
return flowTaskDTO;
}
}
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
index 97373b4..3ed8b36 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
@@ -78,12 +78,13 @@
String domainValue = conditionMap.get(DOMAIN);
VciBaseUtil.alertNotNull(domainValue,"棰嗗煙鍊�");
conditionMap.remove(DOMAIN);
- BtmType queryObj = new BtmType();
- BeanMap.create(queryObj).putAll(conditionMap);
+// BtmType queryObj = new BtmType();
+// BeanMap.create(queryObj).putAll(conditionMap);
+ Map<String, Object> condition = new HashMap<>(conditionMap);
Query query = new Query();
query.setSize(pageHelper.getLimit());
query.setCurrent(pageHelper.getPage());
- IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(BtmType::getDomain, domainValue).orderByAsc(BtmType::getId));
+ IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition,BtmType.class).lambda().eq(BtmType::getDomain, domainValue).orderByAsc(BtmType::getId));
if (CollectionUtils.isEmpty(page.getRecords())){
return R.data(null);
}
--
Gitblit v1.9.3