From 222c109727ed1da438f3371a2b0934d6cef85ee5 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期六, 05 八月 2023 21:26:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java | 7 +++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 40 ++++++++++++--------
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue | 2
Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/entity/BladeFlow.java | 5 ++
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java | 30 ++++++++++-----
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java | 10 +++++
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java | 19 +++++++++
7 files changed, 86 insertions(+), 27 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index d7adab9..6d4c5a1 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -876,7 +876,7 @@
//鏁版嵁鏇存敼鍥炶皟
updataSumbit(val){
this.DataVisible = false;
- val.copyfromversion = this.rowOid;
+ val.copyFromVersion = this.rowOid;
val.oid=''
console.log(val)
upSaveCode(val).then(res=>{
diff --git a/Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/entity/BladeFlow.java b/Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/entity/BladeFlow.java
index a0ca9b6..dceab7c 100644
--- a/Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/entity/BladeFlow.java
+++ b/Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/entity/BladeFlow.java
@@ -185,6 +185,11 @@
private String historyActivityIdea;
/**
+ * 娴佺▼寮�濮嬩簨浠�
+ */
+ private String processDefinitionStartTime;
+
+ /**
* 鑾峰彇鏄惁閫氳繃
*/
public boolean isPass() {
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 502f332..e39c37e 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
@@ -24,6 +24,7 @@
import com.vci.ubcs.flow.engine.constant.FlowEngineConstant;
import com.vci.ubcs.flow.engine.entity.FlowProcess;
import com.vci.ubcs.flow.engine.utils.FlowCache;
+import com.vci.ubcs.starter.web.util.VciDateUtil;
import com.vci.ubcs.system.user.cache.UserCache;
import com.vci.ubcs.system.user.entity.User;
import lombok.AllArgsConstructor;
@@ -81,9 +82,9 @@
.includeProcessVariables().active().orderByTaskCreateTime().desc();
// 鏋勫缓鍒楄〃鏁版嵁
- buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM);
- buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
- buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
+ buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM, page);
+ buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM, page);
+ buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM, page);
// 璁$畻鎬绘暟
long count = claimUserQuery.count() + claimRoleWithTenantIdQuery.count() + claimRoleWithoutTenantIdQuery.count();
@@ -106,7 +107,7 @@
.includeProcessVariables().orderByTaskCreateTime().desc();
// 鏋勫缓鍒楄〃鏁版嵁
- buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
+ buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO,page);
// 璁$畻鎬绘暟
long count = todoQuery.count();
@@ -298,8 +299,9 @@
* @param flowList 娴佺▼鍒楄〃
* @param taskQuery 浠诲姟鏌ヨ绫�
* @param status 鐘舵��
+ * @param page
*/
- private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
+ private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status, IPage<BladeFlow> page) {
// if (bladeFlow.getCategory() != null) {
if (StringUtils.isNotEmpty(bladeFlow.getCategory())) {
taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
@@ -313,7 +315,9 @@
if (bladeFlow.getEndDate() != null) {
taskQuery.taskCreatedBefore(bladeFlow.getEndDate());
}
- taskQuery.list().forEach(task -> {
+ int firstResult = (int) ((page.getCurrent()-1)* page.getSize());
+ int maxResult = (int) page.getSize();
+ taskQuery.listPage(firstResult,maxResult).forEach(task -> {
BladeFlow flow = new BladeFlow();
flow.setTaskId(task.getId());
flow.setTaskDefinitionKey(task.getTaskDefinitionKey());
@@ -340,10 +344,11 @@
flow.setHistoryActivityIdea(commentList.get(0).getFullMessage());
}
}
+ List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery()
+ .processInstanceId(task.getProcessInstanceId()).orderByProcessInstanceStartTime().asc().list();
+ flow.setProcessDefinitionStartTime(VciDateUtil.date2Str(processInstanceList.get(0).getStartTime(),VciDateUtil.DateTimeFormat));
// 鑾峰彇娴佺▼鍙戣捣浜哄悕绉�
if (FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType())) {
- List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery()
- .processInstanceId(task.getProcessInstanceId()).orderByProcessInstanceStartTime().asc().list();
if (processInstanceList.size() > 0) {
if (StringUtil.isNotBlank(processInstanceList.get(0).getStartUserId())) {
String taskUser = processInstanceList.get(0).getStartUserId();
@@ -357,9 +362,14 @@
}
if (Func.isNotEmpty(historicProcessInstance)) {
- String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
+ String[] businessKey = new String[2];
+ if(historicProcessInstance.getBusinessKey().contains(StringPool.COLON)){
+ businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
+ }else{
+ businessKey[0] = historicProcessInstance.getBusinessKey();
+ }
flow.setBusinessTable(businessKey[0]);
- flow.setBusinessId(businessKey.length>1?businessKey[1]:"1");
+ flow.setBusinessId(businessKey.length>1 && StringUtils.isNotEmpty(businessKey[1])?businessKey[1]:"1");
}
FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId());
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 4a1ea85..731fb62 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
@@ -19,14 +19,17 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.vci.ubcs.flow.core.constant.ProcessConstant;
import com.vci.ubcs.flow.core.dto.FlowTaskDTO;
+import com.vci.ubcs.flow.core.dto.ProcessStageAttrDTO;
import com.vci.ubcs.flow.core.entity.BladeFlow;
import com.vci.ubcs.flow.core.entity.FlowTaskUser;
+import com.vci.ubcs.flow.core.entity.ProcessStageAttr;
import com.vci.ubcs.flow.core.utils.TaskUtil;
import com.vci.ubcs.flow.engine.entity.*;
import com.vci.ubcs.flow.engine.service.FlowEngineService;
import com.vci.ubcs.flow.engine.service.FlowTaskUserService;
import com.vci.ubcs.flow.engine.service.ProcessStageAttrService;
import com.vci.ubcs.flow.engine.service.VICFlowService;
+import com.vci.ubcs.starter.web.util.BeanUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -232,6 +235,22 @@
flowTaskDTO.setVariables(variables);
}
+ //娴佺▼闃舵
+ Map<String, Object> m = new HashMap<>();
+ String templateId = variables.get("templateId").toString();
+ m.put("template_id", templateId);
+ m.put("task_id", crruentActivityId);
+ m.put("model_key", modelKey);
+ QueryWrapper q = Condition.getQueryWrapper(m, ProcessStageAttr.class)
+ .select("attr_id attrId,attr_name attrName,attr_group attrGroup");
+ List<ProcessStageAttr> stageAttrs = processStageAttrService.list(q);
+ List<ProcessStageAttrDTO> stageAttrsDto = new ArrayList<>();
+ stageAttrs.stream().forEach(e->{
+ ProcessStageAttrDTO dto = new ProcessStageAttrDTO();
+ BeanUtil.convert(e,dto);
+ stageAttrsDto.add(dto);
+ });
+ flowTaskDTO.setStageAttrs(stageAttrsDto);
//鏀惧叆娴佺▼闃舵銆佹祦绋媘odelkey
variables.put(TASKID,crruentActivityId);
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
index 4563b5f..9ebdb8f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -13,6 +13,7 @@
import com.vci.ubcs.code.service.MdmEngineService;
import com.vci.ubcs.code.service.MdmIOService;
import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
import com.vci.ubcs.starter.annotation.VciBusinessLog;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
@@ -739,4 +740,13 @@
return engineService.referTree(referConfigVO,queryObject);
}
+ /**
+ * 娴佺▼涓彉鏇寸姸鎬佺殑绠�鏄撴帴鍙�
+ * @param flowDTO 娴佺▼涓惡甯︾殑body
+ * @return
+ */
+ @PostMapping("/processChangeStatus")
+ public R processChangeStatus(@RequestBody FlowStatusDTO flowDTO){
+ return engineService.processChangeStatus(flowDTO);
+ }
}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index 97cdb3b..674e2fd 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -10,6 +10,7 @@
import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
@@ -439,4 +440,10 @@
||"checkouttime".equalsIgnoreCase(attrName));
}
+ /**
+ * 娴佺▼涓彉鏇寸姸鎬佸��
+ * @param flowDTO
+ * @return
+ */
+ R processChangeStatus(FlowStatusDTO flowDTO);
}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index dd05221..3441b94 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -20,6 +20,7 @@
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
import com.vci.ubcs.flow.core.feign.IMDMIFlowAttrClient;
import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
@@ -2606,17 +2607,10 @@
orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭");
//闇�瑕佸崌鐗�
-// ClientBusinessObjectOperation cboOperation = new ClientBusinessObjectOperation();
BaseModel cbo = null;
-// try {
-// //cbo = cboOperation.createBusinessObjectVersion(oldCbo,VciBaseUtil.getCurrentUserId());
cbo = reviseBusinessObject(oldCbo);
-// } catch (VCIError e) {
-// throw new VciBaseException("鍒濆鍖栫浉鍏崇殑鍐呭鍑虹幇浜嗛敊璇�", new String[0], e);
-// }
//1. 鍒ゆ柇蹇呰緭椤�
- //CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
- checkRequiredAttrOnOrder(templateVO, orderDTO);
+ checkRequiredAttrOnOrder(templateVO, orderDTO);
//2.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
//3.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
@@ -2634,20 +2628,17 @@
//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-// try {
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
-// cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-// } catch (VCIError e) {
-// e.printStackTrace();
-// }
//鏁版嵁鐨勬椂鍊欙紝缂栫爜鏄笉鍙樼殑
cbo.setCreateTime(cbo.getCreateTime());
cbo.setLastModifyTime(cbo.getLastModifyTime());
-// List<ClientBusinessObject> cboList = new ArrayList<>();
-// cboList.add(cbo);
+ cbo.setTenantId(AuthUtil.getTenantId());
+ oldCbo.setLastV("0");
+ oldCbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+ oldCbo.setLastModifyTime(new Date());
try {
-// cboOperation.saveRevisionBuinessObject(cbo);
+ updateBatchByBaseModel(oldCbo.getBtmname(), Collections.singletonList(oldCbo));
insertBatchByType(cbo.getBtmname(), Collections.singletonList(cbo));
} catch (Exception vciError) {
throw new VciBaseException("鏁版嵁鏇存敼淇濆瓨鍑洪敊浜�", new String[0], vciError);
@@ -3831,4 +3822,21 @@
return toBo;
}
+
+ /**
+ * 娴佺▼涓彉鏇寸姸鎬佸��
+ * @param flowDTO
+ * @return
+ */
+ @Override
+ public R processChangeStatus(FlowStatusDTO flowDTO) {
+ flowDTO.getOids().forEach(s -> {
+ BaseModelDTO baseModel = new BaseModelDTO();
+ baseModel.setOid(s);
+ baseModel.setBtmname(flowDTO.getBtmType());
+ baseModel.setLcStatus(String.valueOf(flowDTO.getVariableMap().getOrDefault("statusValue","Auditing")));
+ changeStatus(baseModel);
+ });
+ return R.success("鎴愬姛");
+ }
}
--
Gitblit v1.9.3