From 5b031de3c8e4cd51ed83cddfbf2ff985d70bea40 Mon Sep 17 00:00:00 2001 From: dangsn <dangsn@chicecm.com> Date: 星期五, 21 六月 2024 16:19:20 +0800 Subject: [PATCH] 1、调整流程启动模板和流程节点获取功能 2、调整文件上传和下载功能 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java | 540 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 293 insertions(+), 247 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java index 747dc9e..13cf5eb 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java @@ -5,7 +5,6 @@ import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; -import com.vci.corba.workflow.WorkflowService; import com.vci.corba.workflow.WorkflowServicePrx; import com.vci.corba.workflow.data.*; import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; @@ -19,25 +18,29 @@ import com.vci.starter.web.util.BeanUtil; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.VciDateUtil; +import com.vci.web.constant.WFVariablesKeyConstant; import com.vci.web.dao.WebProcessDaoI; import com.vci.web.model.ProcessInstance; import com.vci.web.model.ProcessTask; import com.vci.web.model.WFProcessClassifyDO; import com.vci.web.model.WFProcessTemplateDO; import com.vci.web.pageModel.*; -import com.vci.web.service.WebBoServiceI; import com.vci.web.service.OsLifeCycleServiceI; +import com.vci.web.service.WebBoServiceI; import com.vci.web.service.WebLoServiceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.stream.Collectors; + import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; /** @@ -105,16 +108,16 @@ * @throws VciBaseException */ private void getCategory() throws VciBaseException { -// try { -// ProcessCategoryInfo[] pcia = getWorkService().getProcessCategories("root"); -// if(pcia!=null&&pcia.length>0){ -// for(ProcessCategoryInfo pci : pcia){ -// categoryMap.put(pci.name.toLowerCase(), pci.id); -// } -// } -// } catch (VCIError e) { -// WebUtil.getVciBaseException(e); -// }//骞冲彴娌℃湁鏍规嵁鍒嗙被鍚嶇О鑾峰彇娴佺▼鍒嗙被鐨勬帴鍙� + try { + ProcessCategoryInfo[] pcia = getWorkService().getProcessCategories("root"); + if(pcia!=null&&pcia.length>0){ + for(ProcessCategoryInfo pci : pcia){ + categoryMap.put(pci.name.toLowerCase(), pci.id); + } + } + } catch (PLException e) { + WebUtil.getVciBaseException(e); + } } /** @@ -131,6 +134,7 @@ WebUtil.alertNotNull(type,"妯℃澘鍒嗙被"); ProcessDefinitionInfo[] allFlowInType = null; if(StringUtils.isBlank(filterTemplate)) { + //鏃犳寚瀹氭ā鏉挎儏鍐典笅锛岃幏鍙栨ā鏉垮垎绫讳笅鐨勬墍鏈夋ā鏉� type = type.toLowerCase(); if (categoryMap.isEmpty() || !categoryMap.containsKey(type)) { getCategory(); @@ -141,49 +145,58 @@ } else { throw new VciBaseException(msgCodePrefix + "typeNotExist", new String[]{type}); } -// try { -// allFlowInType = getWorkService().getProcessDefinitions(typeOid); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - }else{ + try { + allFlowInType = getWorkService().getProcessDefinitions(typeOid); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } + }else{ List<ProcessDefinitionInfo> infoList = new ArrayList<>(); - VciBaseUtil.str2List(filterTemplate).stream().forEach(name->{ -// try { -// String nameUnRev = name; -// String revision = ""; -// if(name.contains("-")){ -// nameUnRev = name.substring(0,name.lastIndexOf("-")); -// revision = name.substring(name.lastIndexOf("-")+1); -// } -// ProcessDefinitionInfo[] definition = getWorkService().getProcessDefinitionByProcessDefinitionName(nameUnRev, ""); -// if(definition!=null){ -// if(StringUtils.isBlank(revision)) { -// Collections.addAll(infoList, definition); -// }else{ -// //杩囨护鐗堟湰 -// String finalRevision = revision; -// infoList.addAll(Arrays.stream(definition).filter(s -> finalRevision.equalsIgnoreCase(String.valueOf(s.version))).collect(Collectors.toList())); -// } -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - }); + List<String> templateList = VciBaseUtil.str2List(filterTemplate); + if(!CollectionUtils.isEmpty(templateList)){ + templateList.forEach(name->{ + try { + String nameUnRev = name; + String revision = ""; + if(name.contains("-")){ + nameUnRev = name.substring(0,name.lastIndexOf("-")); + revision = name.substring(name.lastIndexOf("-")+1); + } + ProcessDefinitionInfo[] definition = getWorkService().getProcessDefinitionByProcessDefinitionName(nameUnRev, ""); + if(definition!=null){ + if(StringUtils.isBlank(revision)) { + Collections.addAll(infoList, definition); + }else{ + //杩囨护鐗堟湰 + String finalRevision = revision; + infoList.addAll(Arrays.stream(definition).filter(s -> finalRevision.equalsIgnoreCase(String.valueOf(s.version))).collect(Collectors.toList())); + } + } + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } + }); + } allFlowInType = infoList.toArray(new ProcessDefinitionInfo[0]); } return swapProcessTemplate(allFlowInType, type, showAll); } - + + /** + * 鏍规嵁閮ㄧ讲涓婚敭锛岃幏鍙栨祦绋嬫ā鏉垮璞� + * @param deployId 閮ㄧ讲涓婚敭 + * @return + * @throws VciBaseException + */ @Override public ProcessTemplateVO getTemplateByDeployId(String deployId) throws VciBaseException { WebUtil.alertNotNull(deployId,"娴佺▼閮ㄧ讲涓婚敭"); ProcessDefinitionInfo pdi = null; -// try { -// pdi = getWorkService().getProcessDefinitionByDeployId(deployId.trim()); -// } catch (VCIError e) { -// throw new VciBaseException(msgCodePrefix + "deployIdNotExist", new String[]{deployId}); -// } + try { + pdi = getWorkService().getProcessDefinitionByDeployId(deployId.trim()); + } catch (PLException e) { + throw new VciBaseException(msgCodePrefix + "deployIdNotExist", new String[]{deployId}); + } List<ProcessTemplateVO> proTemplates = swapProcessTemplate(new ProcessDefinitionInfo[]{pdi},"",false); if(proTemplates == null || proTemplates.size() == 0){ throw new VciBaseException(msgCodePrefix + "deployIdNotExist", new String[]{deployId}); @@ -205,7 +218,7 @@ pt.setName(pd.name); pt.setStatus(pd.status); pt.setTaskType(type); -// pt.setVersion(pd.version); + pt.setVersion((int) pd.version); allTemplate.add(pt); } } @@ -233,19 +246,27 @@ } return allNode; } + + /** + * 鑾峰彇娴佺▼涓殑绗竴涓妭鐐圭殑鍚嶇О + * @param deployId 閮ㄧ讲涓婚敭 + * @return + * @throws VciBaseException + */ @Override public String getFirstNodeName(String deployId) throws VciBaseException { WebUtil.alertNotNull(deployId,"閮ㄧ讲涓婚敭"); -// try { -// ProcessTaskInfo firstProcessTask = getWorkService().getFirstProcessTask(deployId); -// if(firstProcessTask!=null){ -// return firstProcessTask.taskName; -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + ProcessTaskInfo firstProcessTask = getWorkService().getFirstProcessTask(deployId); + if(firstProcessTask!=null){ + return firstProcessTask.taskName; + } + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } return null; } + /** * 鑾峰彇娴佺▼鐨勬墍鏈夎妭鐐瑰悕绉� * @param processOid @@ -271,11 +292,11 @@ @Override public String[] getAllProcessNodeNameByDeploy(String deploymentId) throws VciBaseException{ String[] allTaskNames = null; -// try { -// allTaskNames = getWorkService().getAllTaskNames(deploymentId); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + allTaskNames = getWorkService().getAllTaskNames(deploymentId); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } return allTaskNames; } @@ -285,54 +306,65 @@ */ @Override public String getJbpmDeploymentId(String processOid) throws VciBaseException{ -// WebUtil.alertNotNull(processOid,"娴佺▼妯℃澘涓婚敭"); -// return getWorkService().getDeploymentID(processOid); - return null; + WebUtil.alertNotNull(processOid,"娴佺▼妯℃澘涓婚敭"); + return getWorkService().getDeploymentID(processOid); } - + + /** + * 鑾峰彇娴佺▼妯℃澘瀵瑰簲鐨勫紩鎿庨噷鐨勯儴缃蹭富閿� + * @param executionId + * @return + * @throws VciBaseException + */ @Override public String getJbpmDeploymentIdByExecutionId(String executionId) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭"); -// try { -// return getWorkService().getDeploymentIdByExecutionId(executionId); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; + try { + return getWorkService().getDeploymentIdByExecutionId(executionId); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } - + + /** + * 鑾峰彇妯℃澘涓妭鐐硅缃殑璐熻矗浜� + * @param deploymentId 寮曟搸涓殑閮ㄧ讲涓婚敭 + * @param taskName 浠诲姟鑺傜偣鍚嶇О + * @return + * @throws VciBaseException + */ @Override public ProcessNodeVO getNodePresideUsersByDeploy(String deploymentId, String taskName) throws VciBaseException{ WebUtil.alertNotNull(taskName,"娴佺▼浠诲姟鍚嶇О",deploymentId,"娴佺▼寮曟搸涓殑閮ㄧ讲涓婚敭"); ProcessNodeVO pn = new ProcessNodeVO(); -// pn.setName(taskName); -// try { -// String[] nodePresideUsers = getWorkService().getCurCandidates(deploymentId, taskName, "", ""); -// if(nodePresideUsers!=null&& nodePresideUsers.length>0){ -// for(String preUsers : nodePresideUsers){ -// //骞冲彴瀛樺偍鐨勬柟寮忔槸鐢ㄦ埛;瑙掕壊;閮ㄩ棬;鑷畾涔�.... -// if(StringUtils.isNotEmpty(preUsers)){ -// String[] preUsersSplit = preUsers.split("\\;"); -// if(preUsersSplit!=null && preUsersSplit.length>0){ -// if(StringUtils.isNotEmpty(preUsersSplit[0])){ -// pn.setUsers(preUsersSplit[0]); -// } -// if(preUsersSplit.length>1 && StringUtils.isNotEmpty(preUsersSplit[1])){ -// pn.setRoles(preUsersSplit[1]); -// } -// if(preUsersSplit.length>2 && StringUtils.isNotEmpty(preUsersSplit[2])){ -// pn.setDepts(preUsersSplit[2]); -// } -// if(preUsersSplit.length>3 && StringUtils.isNotEmpty(preUsersSplit[3])){ -// pn.setCustomClass(preUsersSplit[3]); -// } -// } -// } -// } -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + pn.setName(taskName); + try { + String[] nodePresideUsers = getWorkService().getCurCandidates(deploymentId, taskName, "", ""); + if(nodePresideUsers!=null&& nodePresideUsers.length>0){ + for(String preUsers : nodePresideUsers){ + //骞冲彴瀛樺偍鐨勬柟寮忔槸鐢ㄦ埛;瑙掕壊;閮ㄩ棬;鑷畾涔�.... + if(StringUtils.isNotEmpty(preUsers)){ + String[] preUsersSplit = preUsers.split("\\;"); + if(preUsersSplit!=null && preUsersSplit.length>0){ + if(StringUtils.isNotEmpty(preUsersSplit[0])){ + pn.setUsers(preUsersSplit[0]); + } + if(preUsersSplit.length>1 && StringUtils.isNotEmpty(preUsersSplit[1])){ + pn.setRoles(preUsersSplit[1]); + } + if(preUsersSplit.length>2 && StringUtils.isNotEmpty(preUsersSplit[2])){ + pn.setDepts(preUsersSplit[2]); + } + if(preUsersSplit.length>3 && StringUtils.isNotEmpty(preUsersSplit[3])){ + pn.setCustomClass(preUsersSplit[3]); + } + } + } + } + } + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } return pn; } @@ -353,29 +385,36 @@ } return getNodePresideUsersByDeploy(deploymentId,taskName); } - + + /** + * 鑾峰彇浠诲姟鐨勫鐞嗕汉 + * @param executionid 鎵ц涓婚敭 + * @param taskName 浠诲姟鍚嶇О + * @return + * @throws VciBaseException + */ @Override public List<ProcessUserVO> getNodePresideUsersByTask(String executionid, String taskName) throws VciBaseException{ WebUtil.alertNotNull(executionid,"娴佺▼鎵ц浠诲姟",taskName,"浠诲姟鍚嶇О"); -// if("缁撴潫".equalsIgnoreCase(taskName)){ -// return null; -// } + if("缁撴潫".equalsIgnoreCase(taskName)){ + return null; + } //涓嶈兘浣跨敤workitem鍘绘煡璇紝鍥犱负鍙兘浠诲姟杩樻病鍒� -// String users = getWorkService().getNextTaskAssigner(executionid, taskName); + String users = getWorkService().getNextTaskAssigner(executionid, taskName); List<ProcessUserVO> allProUser = new ArrayList<ProcessUserVO>(); -// if(StringUtils.isNotEmpty(users)){ -// String userIds = users.replace("user:", "");//鐜板湪鍙敮鎸佽缃敤鎴� -// List<SmUserVO> allUser = userQueryService.listUserByUserIds(WebUtil.str2List(userIds)); -// if(allUser!=null && allUser.size()>0){ -// for(SmUserVO user : allUser){ -// ProcessUserVO pu = new ProcessUserVO(); -// BeanUtils.copyProperties(user, pu); -// pu.setType("user"); -// allProUser.add(pu); -// } -// } -// } + if(StringUtils.isNotEmpty(users)){ + String userIds = users.replace("user:", "");//鐜板湪鍙敮鎸佽缃敤鎴� + List<SmUserVO> allUser = userQueryService.listUserByUserIds(WebUtil.str2List(userIds)); + if(allUser!=null && allUser.size()>0){ + for(SmUserVO user : allUser){ + ProcessUserVO pu = new ProcessUserVO(); + BeanUtils.copyProperties(user, pu); + pu.setType("user"); + allProUser.add(pu); + } + } + } return allProUser; } @@ -554,25 +593,30 @@ BeanUtil.convert(process,processInstanceVO); return processInstanceVO; } - + + /** + * 鑾峰彇娴佺▼涓殑鍙橀噺锛屽钩鍙板彧鏀寔瀛楃涓�..... + * @param executionId + * @param key + * @return + * @throws VciBaseException + */ @Override public String getVariablesInProcess(String executionId,String key) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭",key,"鍙傛暟Key"); UserEntityInfo ueo = new UserEntityInfo(); SessionInfo si = WebUtil.getCurrentUserSessionInfo(); -// ueo..ip = si.getIp(); ueo.modules = "娴佺▼"; ueo.userName = si.getUserId(); -// while(StringUtils.countMatches(executionId,".")>1){ -// //璇存槑鏄瓙浠诲姟锛岀敤鐖朵换鍔¤幏鍙栦竴涓嬪彉閲� -// executionId = executionId.substring(0,executionId.lastIndexOf(".")); -// } -// try { -// return getWorkService().getProcessVariable(executionId, key, ueo); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; + while(StringUtils.countMatches(executionId,".")>1){ + //璇存槑鏄瓙浠诲姟锛岀敤鐖朵换鍔¤幏鍙栦竴涓嬪彉閲� + executionId = executionId.substring(0,executionId.lastIndexOf(".")); + } + try { + return getWorkService().getProcessVariable(executionId, key, ueo); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } /** @@ -675,41 +719,41 @@ public List<ProcessHistoryVO> getHistory(String executionId) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭"); List<ProcessHistoryVO> hisList = new ArrayList<ProcessHistoryVO>(); -// FlowApproveHistoryInfo[] historyActivitys = null; -// try { -// historyActivitys = getWorkService().getHistoryActivityByProInsIdbyPLM(executionId); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } -// //闇�瑕佸幓闄ゆ湭澶勭悊鐨勯噸澶嶉」 -// for (int i = 0; i < historyActivitys.length; i++) { -// FlowApproveHistoryInfo historyActivity = historyActivitys[i]; -// ProcessHistoryVO his = new ProcessHistoryVO(); -// his.setTaskName(historyActivity.taskName); -// his.setOpinin(historyActivity.opinion);//杩欎釜鏄鐞嗘柟寮忥紝灏辨槸鍚屾剰杩樻槸涓嶅悓鎰� -// his.setCreateTime(historyActivity.createTime); -// his.setEndTime(historyActivity.endTime); -// his.setNode(historyActivity.note); -// his.setAssignee(historyActivity.assignee); -// his.setExecutionId(historyActivity.executionId); -// String userIdString = historyActivity.assignee; -// if(StringUtils.contains(userIdString,":")) { -// userIdString = userIdString.substring(userIdString.indexOf(":") + 1); -// } -// String userShowInfoString = ""; -// SmUserVO user = userQueryService.getUserByUserId(userIdString); -// if(user != null){ -// userShowInfoString = user.getName() + "(" + user.getId() + ")"; -// }else{ -// userShowInfoString = historyActivity.assignee; -// } -// his.setAssigneeName(userShowInfoString); -// if(StringUtils.isNotBlank(historyActivity.endTime)) { -// hisList.add(his); -// } -// //濡傛灉endTime涓虹┖琛ㄧず鏄緟鍔炵殑锛屼絾鏄湇鍔$鐨勬帴鍙d腑鏈変釜闂鏄紝浼氭妸浼氱鎴栬�呭瓙娴佺▼涓凡缁忓鐞嗙殑鍜屾湭澶勭悊鐨勬贩鍚堝湪涓�璧� -// //鐩存帴浠庡緟鍔炰换鍔¢噷鍘绘煡璇� -// } + FlowApproveHistoryInfo[] historyActivitys = null; + try { + historyActivitys = getWorkService().getHistoryActivityByProInsIdbyPLM(executionId); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } + //闇�瑕佸幓闄ゆ湭澶勭悊鐨勯噸澶嶉」 + for (int i = 0; i < historyActivitys.length; i++) { + FlowApproveHistoryInfo historyActivity = historyActivitys[i]; + ProcessHistoryVO his = new ProcessHistoryVO(); + his.setTaskName(historyActivity.taskName); + his.setOpinin(historyActivity.opinion);//杩欎釜鏄鐞嗘柟寮忥紝灏辨槸鍚屾剰杩樻槸涓嶅悓鎰� + his.setCreateTime(VciDateUtil.date2Str(VciDateUtil.long2Date(historyActivity.createTime), VciDateUtil.DateTimeFormat)); + his.setEndTime(VciDateUtil.date2Str(VciDateUtil.long2Date(historyActivity.endTime), VciDateUtil.DateTimeFormat)); + his.setNode(historyActivity.note); + his.setAssignee(historyActivity.assignee); + his.setExecutionId(historyActivity.executionId); + String userIdString = historyActivity.assignee; + if(StringUtils.contains(userIdString,":")) { + userIdString = userIdString.substring(userIdString.indexOf(":") + 1); + } + String userShowInfoString = ""; + SmUserVO user = userQueryService.getUserByUserId(userIdString); + if(user != null){ + userShowInfoString = user.getName() + "(" + user.getId() + ")"; + }else{ + userShowInfoString = historyActivity.assignee; + } + his.setAssigneeName(userShowInfoString); + if(StringUtils.isNotBlank(his.getEndTime())) { + hisList.add(his); + } + //濡傛灉endTime涓虹┖琛ㄧず鏄緟鍔炵殑锛屼絾鏄湇鍔$鐨勬帴鍙d腑鏈変釜闂鏄紝浼氭妸浼氱鎴栬�呭瓙娴佺▼涓凡缁忓鐞嗙殑鍜屾湭澶勭悊鐨勬贩鍚堝湪涓�璧� + //鐩存帴浠庡緟鍔炰换鍔¢噷鍘绘煡璇� + } Map<String,String> conditionMap = new HashMap<String, String>(); conditionMap.put("businesstype", "5");//鏈」鐩病鏈夊疄闄呯殑鎰忎箟 @@ -763,52 +807,65 @@ public byte[] getProcessPicture(String executionId, String taskName) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭",taskName,"娴佺▼浠诲姟鍚嶇О"); -// try { -// byte[] processChart = getWorkService().getExecutionImageByExecutionId(executionId, taskName); -// return processChart; -// } catch (Throwable e) { -// String msg = "鏈夊彲鑳借繖涓换鍔″叧鑱旂殑娴佺▼宸茬粡缁撴潫鎴栬�呰缁堟锛屼笉鑳藉啀鏌ョ湅鍏舵祦绋嬪浘浜�"; -// logger.error(msg,e); -// throw new VciBaseException(msg); -// } - return null; + try { + byte[] processChart = getWorkService().getExecutionImageByExecutionId(executionId, taskName); + return processChart; + } catch (Throwable e) { + String msg = "鏈夊彲鑳借繖涓换鍔″叧鑱旂殑娴佺▼宸茬粡缁撴潫鎴栬�呰缁堟锛屼笉鑳藉啀鏌ョ湅鍏舵祦绋嬪浘浜�"; + logger.error(msg,e); + throw new VciBaseException(msg); + } } @Override public byte[] getProcessTemplatePicture(String executionId) throws VciBaseException{ -// WebUtil.alertNotNull(executionId,"娴佺▼瀹炰緥涓婚敭"); -// try { -// byte[] processChart = getWorkService().getFlowImageByDeployID(executionId); -// return processChart; -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; - } - - @Override - public String[] getAllOutComes(String taskOid) throws VciBaseException{ -// try { -// return getWorkService().getAllOutComes(taskOid); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; - } - - @Override - public String getNextTaskName(String executionid, String taskName, String outCome) throws VciBaseException{ -// WebUtil.alertNotNull(executionid,"娴佺▼鎵ц涓婚敭",taskName,"浠诲姟鍚嶇О"); -// String deployId = getJbpmDeploymentIdByExecutionId(executionid); -// try { -// return getWorkService().getNextTaskNameByJbpmId(deployId, taskName, outCome); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; + WebUtil.alertNotNull(executionId,"娴佺▼瀹炰緥涓婚敭"); + try { + byte[] processChart = getWorkService().getFlowImageByDeployID(executionId); + return processChart; + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } + /** + * 鑾峰彇浠诲姟鐨勮矾鐢� + * @param taskOid jbpm涓殑浠诲姟涓婚敭 + * @return + * @throws VciBaseException + */ + @Override + public String[] getAllOutComes(String taskOid) throws VciBaseException{ + try { + return getWorkService().getAllOutComes(taskOid); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } + } + + /** + * 鑾峰彇涓嬩竴姝ョ殑浠诲姟 + * @param executionid 娴佺▼鎵ц涓婚敭 + * @param taskName 褰撳墠浠诲姟鐨勫悕绉� + * @param outCome 璺敱鍚嶇О + * @return 鍥犱负鏈夊垎鏀殑鎯呭喌锛屾墍浠ヤ笅涓�姝ヤ换鍔′細鏈夊涓� + */ + @Override + public String getNextTaskName(String executionid, String taskName, String outCome) throws VciBaseException{ + WebUtil.alertNotNull(executionid,"娴佺▼鎵ц涓婚敭",taskName,"浠诲姟鍚嶇О"); + String deployId = getJbpmDeploymentIdByExecutionId(executionid); + try { + return getWorkService().getNextTaskNameByJbpmId(deployId, taskName, outCome); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } + } + + /** + * 鑾峰彇骞冲彴鐨勬祦绋嬫湇鍔� + * @return + */ @Override public WorkflowServicePrx getWorkService() throws VciBaseException{ if(workService == null){ @@ -848,18 +905,18 @@ taskAss.userName = ""; } taskAss.TasksName = userId; -// taskAss.startTime = VciDateUtil.date2Str(startDate, VciDateUtil.DateFormat); + taskAss.startTime = VciDateUtil.getTime(startDate); if(endDate == null){ endDate = VciDateUtil.getDateAddDay(startDate, 30);//榛樿鏈�澶氫唬鐞嗕竴涓湀 } -// taskAss.endTime = VciDateUtil.date2Str(endDate, VciDateUtil.DateFormat); -// taskAss.isTrue = isNowEnable?1:0; + taskAss.endTime = VciDateUtil.getTime(endDate); + taskAss.isTrue = isNowEnable?true:false; taskAss.fromUser =WebUtil.getCurrentUserSessionInfo().getUserId(); -// try { -// getWorkService().saveOrUpdateTasksAssigned(taskAss, WebUtil.getUserEntityInfo("娴佺▼")); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + getWorkService().saveOrUpdateTasksAssigned(taskAss, WebUtil.getUserEntityInfo("娴佺▼")); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } @@ -868,32 +925,22 @@ public void endProxy() throws VciBaseException { //骞冲彴涓嶆敮鎸佸仠鐢ㄥ惎鐢ㄤ唬鐞嗕俊鎭�..鍙互鏌ヨ鍑烘潵鍐嶉噸鏂版坊鍔犮�� -// try { -// UserEntityInfo uei = WebUtil.getUserEntityInfo( "娴佺▼"); -// getWorkService().deleteTasksAssignedByUserName(new String[]{uei.userName}, uei); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + UserEntityInfo uei = WebUtil.getUserEntityInfo( "娴佺▼"); + getWorkService().deleteTasksAssignedByUserName(new String[]{uei.userName}, uei); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } @Override public TasksAssignedInfo getProxy() throws VciBaseException{ TasksAssignedInfo assign = null; -// try { -// TasksAssignedInfo taskAss = getWorkService().getTasksAssignedByUserName("", WebUtil.getUserEntityInfo( "娴佺▼")); -// if(taskAss!=null && StringUtils.isNotEmpty(taskAss.id)){ -// assign = new TasksAssigned(); -// assign.setId(taskAss.id); -// assign.setTasksName(taskAss.TasksName); -// assign.setStartTime(taskAss.startTime); -// assign.setEndTime(taskAss.endTime); -// assign.setFromUser(taskAss.fromUser); -// assign.setIsTrue(taskAss.isTrue); -// assign.setUserName(taskAss.userName); -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + assign = getWorkService().getTasksAssignedByUserName("", WebUtil.getUserEntityInfo( "娴佺▼")); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } return assign; } @@ -905,24 +952,24 @@ */ @Override public void endProcess(String executionId) throws VciBaseException { -// try { + try { DataGrid dataGrid = getDataByProcess(executionId,null); //鍏堣幏鍙栦竴涓� UserEntityInfo userEntityInfo = WebUtil.getUserEntityInfo("娴佺▼"); String resetStatus = null; -// try{ -// resetStatus = getWorkService().getProcessVariable(executionId, WFVariablesKeyConstant.RESET_STATUS, userEntityInfo); -// }catch (Throwable e){ -// logger.error("鑾峰彇娴佺▼鐨勫彉閲忓嚭閿�",e); -// } -// getWorkService().endProcessInstanceByplatform(executionId,userEntityInfo); + try{ + resetStatus = getWorkService().getProcessVariable(executionId, WFVariablesKeyConstant.RESET_STATUS, userEntityInfo); + }catch (Throwable e){ + logger.error("鑾峰彇娴佺▼鐨勫彉閲忓嚭閿�",e); + } + getWorkService().endProcessInstanceByplatform(executionId,userEntityInfo); //骞冲彴娌℃湁鑷姩灏嗕笟鍔℃暟鎹仮澶嶅埌涔嬪墠鐨勭姸鎬� if(StringUtils.isNotBlank(resetStatus)){ resetLcStatusForBusinessData(dataGrid.getData(),resetStatus); } -// } catch (VCIError vciError) { -// throw WebUtil.getVciBaseException(vciError); -// } + } catch (PLException vciError) { + throw WebUtil.getVciBaseException(vciError); + } } private void resetLcStatusForBusinessData(List<Map> bussinesDataList,String resetStatus) throws VciBaseException{ @@ -1006,12 +1053,11 @@ @Override public byte[] getProcessXmlContent(String jbpmDeploymentId) throws VciBaseException { WebUtil.alertNotNull("娴佺▼鎵ц涓婚敭淇℃伅",jbpmDeploymentId); -// try { -// return getWorkService().getProcessResource(jbpmDeploymentId,".xml"); -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } - return null; + try { + return getWorkService().getProcessResource(jbpmDeploymentId,".xml"); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } } /** -- Gitblit v1.9.3