From 3cfe77db7df4961266321e5b78858e3dab382433 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 04 八月 2023 18:48:51 +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 |   15 +++++--
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java            |   10 +++++
 6 files changed, 58 insertions(+), 21 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..a8581d4 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;
@@ -340,10 +341,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 +359,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-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