From 93845180efe4380609a2deb4dc22dd0523dbcd2a Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 19 六月 2023 20:58:30 +0800
Subject: [PATCH] 代码整合

---
 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java |   88 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 68 insertions(+), 20 deletions(-)

diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java
index d32c28c..993a297 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java
@@ -28,6 +28,7 @@
 import com.vci.ubcs.flow.engine.entity.*;
 import com.vci.ubcs.flow.engine.mapper.FlowMapper;
 import com.vci.ubcs.flow.engine.mapper.FlowTaskUserMapper;
+import com.vci.ubcs.flow.engine.mapper.ProcessTemplateMapper;
 import com.vci.ubcs.flow.engine.service.FlowEngineService;
 import com.vci.ubcs.flow.engine.service.FlowTaskUserService;
 import com.vci.ubcs.flow.engine.utils.FlowCache;
@@ -92,24 +93,62 @@
 
 	private FlowEngineService flowEngineService;
 	private FlowTaskUserMapper flowTaskUserMapper;
+	private ProcessTemplateMapper processTemplateMapper;
 
 	/**
 	 * 鏌ヨ褰撳墠鐧婚檰浜哄杩欎釜娴佺▼鐨則askUser
+	 * @param type ProcessTemplateTypeEnum
 	 * @return
 	 */
 	@Override
-	public FlowTaskUserC getUser(){
-		QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>();
-		//ORA-01722: 鏃犳晥鏁板瓧锛屾墍浠ユ墠.toString()鐨�
-		queryWrapper.eq("CREATED_BY", AuthUtil.getUserId().toString());
-		List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper);
-		FlowTaskUserC flowTaskUserCR = new FlowTaskUserC();
-		if(flowTaskUsers.size()==0){
-			return flowTaskUserCR;
+	public Object getUser(String type,String templateId){
+		Map kv = new HashMap();
+
+		//鏍规嵁type鏌ヨtop娴佺▼鏁版嵁
+		Map<String, Object> m = new HashMap<>();
+		m.put("button_type_key", type);
+		m.put("template_id", templateId);
+		List<ProcessTemplate> processTemplates = processTemplateMapper.selectByMap(m);
+ 		if(processTemplates.size()==0){
+			throw new ServiceException("涓婚搴撳畾涔�-妯℃澘绠$悊-娴佺▼妯℃澘锛屾病鏈夌粦瀹氭祦绋�!");
 		}
-		flowTaskUserCR.setName(flowTaskUsers.get(0).getName());//鏀惰棌鍚嶇О
-		flowTaskUserCR.setFlowTaskUsers(flowTaskUsers);
-		return flowTaskUserCR;
+		ProcessTemplate processTemplate = processTemplates.get(0);
+		kv.put("flow",processTemplate);
+
+
+		//top鏀惰棌閮ㄥ垎鏁版嵁
+		QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("CREATED_BY", TaskUtil.getTaskUser());
+		List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper);
+		List<FlowTaskUserC> cl = new ArrayList<>();
+
+		Map<String,List<FlowTaskUser>> nameMap = new HashMap<>();
+		for(FlowTaskUser flowTaskUser:flowTaskUsers){
+			String name = flowTaskUser.getName();//鏀惰棌鍚嶇О
+			List<FlowTaskUser> flowTaskUserListo = null;
+			if(nameMap.get(name)==null){
+				flowTaskUserListo = new ArrayList<>();
+			}else {
+				flowTaskUserListo = nameMap.get(name);
+			}
+			flowTaskUserListo.add(flowTaskUser);
+			nameMap.put(name,flowTaskUserListo);
+		}
+
+		for (String name:nameMap.keySet()){
+			FlowTaskUserC flowTaskUserCR = new FlowTaskUserC();
+			flowTaskUserCR.setName(name);//鏀惰棌鍚嶇О
+			flowTaskUserCR.setModelKey(nameMap.get(name).get(0).getModelKey());
+			flowTaskUserCR.setModelName(nameMap.get(name).get(0).getModelName());
+			flowTaskUserCR.setFlowTaskUsers(nameMap.get(name));
+			cl.add(flowTaskUserCR);
+		}
+		kv.put("collect",cl);
+
+		//鏁版嵁鑺傜偣鏁版嵁
+		List<Map<String,String>> tl = flowEngineService.getNodeByFlowableKey(processTemplate.getModelKey());
+		kv.put("user",tl);
+		return kv;
 	}
 
 	@Override
@@ -118,17 +157,20 @@
 		String name = flowTaskUserC.getName();//鏀惰棌鍚嶇О
 
 		//鏂板鎯呭喌涓嬮獙璇佹敹钘忓悕绉颁笉閲嶅
-		if(flowTaskUsers.get(0).getId()!=null) {
-			Map<String, Object> m = new HashMap<>();
-			m.put("name", name);
-			QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class)
-				.select("id,model_key modelKey,name,description,version,created,last_updated lastUpdated");
-			if(flowTaskUserMapper.selectCount(q)>0){
-				throw new ServiceException("鏀惰棌鍚嶇О宸茬粡瀛樺湪!");
-			}
+		Map<String, Object> m = new HashMap<>();
+		m.put("name", name);
+		m.put("created_by", TaskUtil.getTaskUser());
+		QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class)
+			.select("1");
+		if(flowTaskUserMapper.selectCount(q)>0){
+			throw new ServiceException("鏀惰棌鍚嶇О宸茬粡瀛樺湪!");
 		}
+
 		for (FlowTaskUser flowTaskUseri:flowTaskUsers){
 			flowTaskUseri.setName(name);
+			flowTaskUseri.setCreatedBy(TaskUtil.getTaskUser());
+			flowTaskUseri.setTemplateId(flowTaskUserC.getTemplateId());
+			flowTaskUseri.setModelKey(flowTaskUserC.getModelKey());
 		}
 		//鏂板銆佷慨鏀�
 		this.saveOrUpdateBatch(flowTaskUsers);
@@ -140,8 +182,14 @@
 	public void deleteUser(String name){
 		Map<String, Object> m = new HashMap<>();
 		m.put("name", name);
-		m.put("created_by", AuthUtil.getUserId());
+		m.put("created_by", TaskUtil.getTaskUser());
 		baseMapper.deleteByMap(m);
 	}
 
+	public List<FlowTaskUser> getTaskUserByTemplateAndModelKey(String templateId,String modelKey){
+		Map<String, Object> m = new HashMap<>();
+		m.put("template_id", templateId);
+		m.put("model_key", modelKey);
+		return baseMapper.selectByMap(m);
+	}
 }

--
Gitblit v1.9.3