From a13255b4129ee8a7a7b7e1ecd8e02dd2c78f7c17 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 16 一月 2025 16:19:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java | 3 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java | 8 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java | 94 ++++---- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java | 13 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java | 128 ++++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java | 4 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java | 15 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java | 17 - Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java | 34 ++- Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java | 4 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java | 53 +++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java | 142 ++++++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java | 5 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java | 7 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 12 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java | 16 20 files changed, 459 insertions(+), 105 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java index 8e42f23..50a9d85 100644 --- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java +++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java @@ -1,5 +1,6 @@ package com.vci.starter.web.interceptor; +import com.vci.corba.common.PLException; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.pagemodel.TokenVO; @@ -60,8 +61,9 @@ /** * 閫�鍑虹櫥褰� * @param userToken 鐢ㄦ埛鐨勪細璇濊鍙� + * @param userId 鐢ㄦ埛id */ - void logout(String userToken); + void logout(String userToken,String userId) throws PLException; /** * 鏍规嵁token鑾峰彇鐢ㄦ埛鍦ㄧ郴缁熶腑杩樺彲浠ュ瓨鍦ㄧ殑鏃堕棿 diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java index cec29d1..e0a6a56 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java @@ -1,6 +1,6 @@ package com.vci.web.controller; -import com.vci.corba.workflow.data.TasksAssignedInfo; +import com.vci.corba.wf.data.TasksAssignedInfo; import com.vci.pagemodel.ProcessUserVO; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.pagemodel.BaseResult; diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java index dc9353f..8e5f12d 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java @@ -1,8 +1,8 @@ package com.vci.web.dao; import com.vci.corba.omd.data.LinkObject; -import com.vci.corba.workflow.WorkflowServicePrx; -import com.vci.corba.workflow.data.TasksAssignedInfo; +import com.vci.corba.wf.WFServicePrx; +import com.vci.corba.wf.data.TasksAssignedInfo; import com.vci.dto.ProcessTemplateVO; import com.vci.model.WFProcessClassifyDO; import com.vci.model.WFProcessTemplateDO; @@ -294,11 +294,11 @@ */ String getNextTaskName(String executionid, String taskName, String outCome) throws VciBaseException; - /** +/** * 鑾峰彇骞冲彴鐨勬祦绋嬫湇鍔� * @return */ - WorkflowServicePrx getWorkService() throws VciBaseException; + WFServicePrx getWFService() throws VciBaseException; /** * 浠诲姟涓庢暟鎹叧鑱旂殑閾炬帴绫诲瀷 diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java index 92cdb96..afa9c1c 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java @@ -6,8 +6,9 @@ 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.WorkflowServicePrx; -import com.vci.corba.workflow.data.*; +import com.vci.corba.wf.WFServicePrx; +import com.vci.corba.wf.data.*; +import com.vci.corba.workflow.data.FlowApproveHistoryInfo; import com.vci.dto.ProcessTemplateVO; import com.vci.model.ProcessInstance; import com.vci.model.ProcessTask; @@ -19,7 +20,6 @@ import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; -import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.util.BeanUtilForVCI; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.VciDateUtil; @@ -80,7 +80,7 @@ /** * 骞冲彴鐨勬祦绋嬫湇鍔� */ - private WorkflowServicePrx workService = null; + private WFServicePrx wfService = null; /** * 骞冲彴璋冪敤瀹㈡埛绔� @@ -107,7 +107,7 @@ */ private void getCategory() throws VciBaseException { try { - ProcessCategoryInfo[] pcia = getWorkService().getProcessCategories("root"); + ProcessCategoryInfo[] pcia = getWFService().getProcessCategories("root"); if(pcia!=null&&pcia.length>0){ for(ProcessCategoryInfo pci : pcia){ categoryMap.put(pci.name.toLowerCase(), pci.id); @@ -144,7 +144,7 @@ throw new VciBaseException(msgCodePrefix + "typeNotExist", new String[]{type}); } try { - allFlowInType = getWorkService().getProcessDefinitions(typeOid); + allFlowInType = getWFService().getProcessDefinitions(typeOid); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -153,14 +153,14 @@ List<String> templateList = VciBaseUtil.str2List(filterTemplate); if(!CollectionUtils.isEmpty(templateList)){ templateList.forEach(name->{ - try { + /*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, ""); + ProcessDefinitionInfo[] definition = null;//getWFService()().getProcessDefinitionByProcessDefinitionName(nameUnRev, ""); if(definition!=null){ if(StringUtils.isBlank(revision)) { Collections.addAll(infoList, definition); @@ -170,9 +170,9 @@ infoList.addAll(Arrays.stream(definition).filter(s -> finalRevision.equalsIgnoreCase(String.valueOf(s.version))).collect(Collectors.toList())); } } - } catch (PLException e) { + /*} catch (PLException e) { throw WebUtil.getVciBaseException(e); - } + }*/ }); } allFlowInType = infoList.toArray(new ProcessDefinitionInfo[0]); @@ -191,7 +191,7 @@ WebUtil.alertNotNull(deployId,"娴佺▼閮ㄧ讲涓婚敭"); ProcessDefinitionInfo pdi = null; try { - pdi = getWorkService().getProcessDefinitionByDeployId(deployId.trim()); + pdi = getWFService().getProcessDefinitionByDeployId(deployId.trim()); } catch (PLException e) { throw new VciBaseException(msgCodePrefix + "deployIdNotExist", new String[]{deployId}); } @@ -255,7 +255,7 @@ public String getFirstNodeName(String deployId) throws VciBaseException { WebUtil.alertNotNull(deployId,"閮ㄧ讲涓婚敭"); try { - ProcessTaskInfo firstProcessTask = getWorkService().getFirstProcessTask(deployId); + ProcessTaskInfo firstProcessTask = getWFService().getFirstProcessTask(deployId); if(firstProcessTask!=null){ return firstProcessTask.taskName; } @@ -291,7 +291,7 @@ public String[] getAllProcessNodeNameByDeploy(String deploymentId) throws VciBaseException{ String[] allTaskNames = null; try { - allTaskNames = getWorkService().getAllTaskNames(deploymentId); + allTaskNames = getWFService().getAllTaskNames(deploymentId); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -305,7 +305,7 @@ @Override public String getJbpmDeploymentId(String processOid) throws VciBaseException{ WebUtil.alertNotNull(processOid,"娴佺▼妯℃澘涓婚敭"); - return getWorkService().getDeploymentID(processOid); + return null;//getWFService()().getDeploymentID(processOid); } /** @@ -318,7 +318,7 @@ public String getJbpmDeploymentIdByExecutionId(String executionId) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭"); try { - return getWorkService().getDeploymentIdByExecutionId(executionId); + return getWFService().getDeploymentIdByExecutionId(executionId); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -337,7 +337,7 @@ ProcessNodeVO pn = new ProcessNodeVO(); pn.setName(taskName); try { - String[] nodePresideUsers = getWorkService().getCurCandidates(deploymentId, taskName, "", ""); + String[] nodePresideUsers = getWFService().getCurCandidates(deploymentId, taskName, "", ""); if(nodePresideUsers!=null&& nodePresideUsers.length>0){ for(String preUsers : nodePresideUsers){ //骞冲彴瀛樺偍鐨勬柟寮忔槸鐢ㄦ埛;瑙掕壊;閮ㄩ棬;鑷畾涔�.... @@ -399,7 +399,7 @@ return null; } //涓嶈兘浣跨敤workitem鍘绘煡璇紝鍥犱负鍙兘浠诲姟杩樻病鍒� - String users = getWorkService().getNextTaskAssigner(executionid, taskName); + String users = getWFService().getNextTaskAssigner(executionid, taskName); List<ProcessUserVO> allProUser = new ArrayList<ProcessUserVO>(); if(StringUtils.isNotEmpty(users)){ String userIds = users.replace("user:", "");//鐜板湪鍙敮鎸佽缃敤鎴� @@ -602,16 +602,16 @@ @Override public String getVariablesInProcess(String executionId,String key) throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭",key,"鍙傛暟Key"); - UserEntityInfo ueo = new UserEntityInfo(); - SessionInfo si = WebUtil.getCurrentUserSessionInfo(); - ueo.modules = "娴佺▼"; - ueo.userName = si.getUserId(); +// UserEntityInfo ueo = new UserEntityInfo(); +// SessionInfo si = WebUtil.getCurrentUserSessionInfo(); +// ueo.modules = "娴佺▼"; +// ueo.userName = si.getUserId(); while(StringUtils.countMatches(executionId,".")>1){ //璇存槑鏄瓙浠诲姟锛岀敤鐖朵换鍔¤幏鍙栦竴涓嬪彉閲� executionId = executionId.substring(0,executionId.lastIndexOf(".")); } try { - return getWorkService().getProcessVariable(executionId, key, ueo); + return getWFService().getProcessVariable(executionId, key); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -718,11 +718,7 @@ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭"); List<ProcessHistoryVO> hisList = new ArrayList<ProcessHistoryVO>(); 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]; @@ -752,7 +748,11 @@ //濡傛灉endTime涓虹┖琛ㄧず鏄緟鍔炵殑锛屼絾鏄湇鍔$鐨勬帴鍙d腑鏈変釜闂鏄紝浼氭妸浼氱鎴栬�呭瓙娴佺▼涓凡缁忓鐞嗙殑鍜屾湭澶勭悊鐨勬贩鍚堝湪涓�璧� //鐩存帴浠庡緟鍔炰换鍔¢噷鍘绘煡璇� } - + /*try { + historyActivitys = getWFService()().getHistoryActivityByProInsIdbyPLM(executionId); + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + }*/ Map<String,String> conditionMap = new HashMap<String, String>(); conditionMap.put("businesstype", "5");//鏈」鐩病鏈夊疄闄呯殑鎰忎箟 conditionMap.put("lcstatus", "Executing"); @@ -806,7 +806,7 @@ throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼鎵ц涓婚敭",taskName,"娴佺▼浠诲姟鍚嶇О"); try { - byte[] processChart = getWorkService().getExecutionImageByExecutionId(executionId, taskName); + byte[] processChart = null;//getWFService()().getExecutionImageByExecutionId(executionId, taskName); return processChart; } catch (Throwable e) { String msg = "鏈夊彲鑳借繖涓换鍔″叧鑱旂殑娴佺▼宸茬粡缁撴潫鎴栬�呰缁堟锛屼笉鑳藉啀鏌ョ湅鍏舵祦绋嬪浘浜�"; @@ -820,7 +820,7 @@ throws VciBaseException{ WebUtil.alertNotNull(executionId,"娴佺▼瀹炰緥涓婚敭"); try { - byte[] processChart = getWorkService().getFlowImageByDeployID(executionId); + byte[] processChart = getWFService().getFlowImageByDeployID(executionId); return processChart; } catch (PLException e) { throw WebUtil.getVciBaseException(e); @@ -836,7 +836,7 @@ @Override public String[] getAllOutComes(String taskOid) throws VciBaseException{ try { - return getWorkService().getAllOutComes(taskOid); + return getWFService().getAllOutComes(taskOid); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -854,7 +854,7 @@ WebUtil.alertNotNull(executionid,"娴佺▼鎵ц涓婚敭",taskName,"浠诲姟鍚嶇О"); String deployId = getJbpmDeploymentIdByExecutionId(executionid); try { - return getWorkService().getNextTaskNameByJbpmId(deployId, taskName, outCome); + return getWFService().getNextTaskNameByJbpmId(deployId, taskName, outCome); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -865,11 +865,11 @@ * @return */ @Override - public WorkflowServicePrx getWorkService() throws VciBaseException{ - if(workService == null){ - this.workService = platformClientUtil.getWorkflowService(); + public WFServicePrx getWFService() throws VciBaseException{ + if(wfService == null){ + this.wfService = platformClientUtil.getWFService(); } - return workService; + return wfService; } @Override @@ -910,11 +910,11 @@ taskAss.endTime = VciDateUtil.getTime(endDate); taskAss.isTrue = isNowEnable?true:false; taskAss.fromUser =WebUtil.getCurrentUserSessionInfo().getUserId(); - try { - getWorkService().saveOrUpdateTasksAssigned(taskAss, WebUtil.getUserEntityInfo("娴佺▼")); + /*try { + getWFService().saveOrUpdateTasksAssigned(taskAss, WebUtil.getUserEntityInfo("娴佺▼")); } catch (PLException e) { throw WebUtil.getVciBaseException(e); - } + }*/ } @@ -925,7 +925,7 @@ //骞冲彴涓嶆敮鎸佸仠鐢ㄥ惎鐢ㄤ唬鐞嗕俊鎭�..鍙互鏌ヨ鍑烘潵鍐嶉噸鏂版坊鍔犮�� try { UserEntityInfo uei = WebUtil.getUserEntityInfo( "娴佺▼"); - getWorkService().deleteTasksAssignedByUserName(new String[]{uei.userName}, uei); + getWFService().deleteTasksAssignedByUserName(new String[]{uei.userName}); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -935,7 +935,7 @@ public TasksAssignedInfo getProxy() throws VciBaseException{ TasksAssignedInfo assign = null; try { - assign = getWorkService().getTasksAssignedByUserName("", WebUtil.getUserEntityInfo( "娴佺▼")); + assign = getWFService().getTasksAssignedByUserName(""); } catch (PLException e) { throw WebUtil.getVciBaseException(e); } @@ -956,11 +956,11 @@ UserEntityInfo userEntityInfo = WebUtil.getUserEntityInfo("娴佺▼"); String resetStatus = null; try{ - resetStatus = getWorkService().getProcessVariable(executionId, WFVariablesKeyConstant.RESET_STATUS, userEntityInfo); + resetStatus = getWFService().getProcessVariable(executionId, WFVariablesKeyConstant.RESET_STATUS); }catch (Throwable e){ logger.error("鑾峰彇娴佺▼鐨勫彉閲忓嚭閿�",e); } - getWorkService().endProcessInstanceByplatform(executionId,userEntityInfo); + //getWFService().endProcessInstanceByplatform(executionId,userEntityInfo); //骞冲彴娌℃湁鑷姩灏嗕笟鍔℃暟鎹仮澶嶅埌涔嬪墠鐨勭姸鎬� if(StringUtils.isNotBlank(resetStatus)){ resetLcStatusForBusinessData(dataGrid.getData(),resetStatus); @@ -1053,11 +1053,11 @@ @Override public byte[] getProcessXmlContent(String jbpmDeploymentId) throws VciBaseException { WebUtil.alertNotNull("娴佺▼鎵ц涓婚敭淇℃伅",jbpmDeploymentId); - try { - return getWorkService().getProcessResource(jbpmDeploymentId,".xml"); - } catch (PLException e) { + /*try {*/ + return null;//getWFService().getProcessResource(jbpmDeploymentId,".xml"); + /*} catch (PLException e) { throw WebUtil.getVciBaseException(e); - } + }*/ } /** diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java index 731f509..9b6d69b 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java @@ -1,6 +1,6 @@ package com.vci.web.service; -import com.vci.corba.workflow.data.TasksAssignedInfo; +import com.vci.corba.wf.data.TasksAssignedInfo; import com.vci.starter.web.exception.VciBaseException; import com.vci.dto.ProcessStartConfigDTO; import com.vci.pagemodel.ProcessUserVO; diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java index 7b8ea7e..1b5d344 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java @@ -1533,7 +1533,8 @@ @Transactional(rollbackFor = Exception.class) public boolean stopUsers(String[] ids, boolean flag) throws PLException { VciBaseUtil.alertNotNull(ids,"鍋滅敤/鍚敤鐨勭敤鎴穒d鍒楄〃"); - return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null); + + return platformClientUtil.getFrameworkService().stopUsers(ids, flag,new UserEntityInfo(WebUtil.getCurrentUserId(),"鐢ㄦ埛绠$悊")); } /** diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java index c1b9f54..8483407 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java @@ -8,7 +8,7 @@ import com.vci.corba.omd.data.LinkObject; import com.vci.corba.workflow.data.FlowInstanceInfo; import com.vci.corba.workflow.data.MapTransfersInfo; -import com.vci.corba.workflow.data.TasksAssignedInfo; +import com.vci.corba.wf.data.TasksAssignedInfo; import com.vci.dto.ProcessStartConfigDTO; import com.vci.dto.ProcessTemplateVO; import com.vci.dto.VciFileObjectDTO; @@ -211,7 +211,7 @@ noticeInfo.setProcessTemplateVO(template); BusAnnotationUtil.callForAnnotation(FlowNotifyWeb.class, FlowNotifyBefore.class,noticeInfo); String processInstanceId = ""; - try { + /*try { if (config.isAutoSubmitFirst()) { processInstanceId = processDao.getWorkService().startProcessAndExecuteFirstNode(template.getOid(), flowInstanceInfo, @@ -226,7 +226,7 @@ objectPropertyValues); }else{ processInstanceId = processDao.getWorkService().startPocessByPLMv1( - /** + *//** * String processDefinitionKey, 娴佺▼妯℃澘涓婚敭 * FlowInstanceInfo flowInstanceInfo, 娴佺▼瀹炰緥 * String[] objId, 鏁版嵁瀵硅薄id @@ -238,7 +238,7 @@ * MapTransfersInfo[] mapTransfersInfos, 绉讳氦Info * String[] objectProperty, 涓氬姟灞炴�� * String[][] objectPropertyValues 涓氬姟灞炴�у�� - */ + *//* template.getOid(), flowInstanceInfo, objIds, @@ -254,7 +254,7 @@ } } catch (PLException e) { throw WebUtil.getVciBaseException(e); - } + }*/ if (StringUtils.isNotBlank(config.getStartStatus())) { try { lifeCycleService.transCboStatus(allCbo, config.getStartStatus()); @@ -505,7 +505,7 @@ throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } callBefore(workitemList,outCome,note,currentTime); - try { + /*try { if (jbpmTaskIds.length == 1) { processDao.getWorkService().completeTaskByPlatformv1(jbpmTaskIds[0], outCome, nextTaskName, note, getUserEntityInfo(), nextTaskUsers, objectPropertyKeys, objectPropertyValues); } else { @@ -513,7 +513,7 @@ } } catch (PLException e) { throw WebUtil.getVciBaseException(e); - } + }*/ callAfter((String)workitemList.get(0).get("executionid"),null,workitemList,currentTime); } @@ -541,7 +541,7 @@ for (String taskOid : taskOidArray) { if (StringUtils.isNotBlank(taskOid)) { try { - processDao.getWorkService().transmitTask(taskOid, "user:" + userIds, getUserEntityInfo()); + processDao.getWFService().transmitTask(taskOid, "user:" + userIds); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java index a699cb6..849d7ed 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java @@ -1,6 +1,7 @@ package com.vci.web.util; import com.vci.client.common.providers.WebServiceProvider; +import com.vci.corba.aof.AOFServicePrx; import com.vci.corba.bofactory.BOFactoryServicePrx; import com.vci.corba.common.PLException; import com.vci.corba.framework.FrameworkServicePrx; @@ -18,7 +19,7 @@ import com.vci.corba.portal.PortalServicePrx; import com.vci.corba.query.ObjectQueryServicePrx; import com.vci.corba.volume.VolumeServicePrx; -import com.vci.corba.workflow.WorkflowServicePrx; +import com.vci.corba.wf.WFServicePrx; import org.springframework.stereotype.Component; /** @@ -95,8 +96,8 @@ * 鑾峰彇娴佺▼鏈嶅姟 * @return 鏈嶅姟鐨勫璞� */ - public WorkflowServicePrx getWorkflowService(){ - return WebServiceProvider.getWFService(); + public WFServicePrx getWFService(){ + return WebServiceProvider.getFlowService(); } /** @@ -237,4 +238,12 @@ public BOFactoryServicePrx getBOFService() { return WebServiceProvider.getBOFService(); } + + /** + * 鑾峰彇杈呭姪瀵硅薄宸ュ巶鏈嶅姟 + * @return + */ + public AOFServicePrx getAOFService(){ + return WebServiceProvider.getAOFService(); + } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java index 097a66e..112c102 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java @@ -1,6 +1,7 @@ package com.vci.web.controller; import com.vci.bo.LoginResultBO; +import com.vci.corba.common.PLException; import com.vci.dto.LoginUserDTO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.annotation.log.VciBusinessLog; @@ -12,6 +13,7 @@ import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.OsLoginServiceI; +import com.zeroc.IceInternal.Ex; import eu.bitwalker.useragentutils.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -179,8 +181,15 @@ @ResponseBody public BaseResult logout(HttpServletRequest request){ String userToken = request.getHeader(TokenKeyConstant.USER_TOKEN_KEY); - loginService.logout(userToken); - return BaseResult.success(); + try { + loginService.logout(userToken); + return BaseResult.success("閫�鍑烘垚鍔�"); + } catch (Exception e) { + e.printStackTrace(); + String errorLog = "鐧诲嚭鏃跺嚭鐜板紓甯革紝鍘熷洜锛�"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorLog); + return BaseResult.fail(errorLog); + } } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java new file mode 100644 index 0000000..86ad5e6 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java @@ -0,0 +1,128 @@ +package com.vci.web.controller; + +import com.vci.corba.wf.data.ProcessCategoryInfo; +import com.vci.starter.web.annotation.log.VciBusinessLog; +import com.vci.starter.web.pagemodel.BaseQueryObject; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.pagemodel.DataGrid; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.web.service.WebFlowServiceI; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 娴佺▼鏈嶅姟鎺у埗鍣� + * @author ludc + * @date 2025/1/14 21:37 + */ +@VciBusinessLog(modelName="娴佺▼鏈嶅姟") +@RestController +@RequestMapping("/WebFlowController") +public class WebFlowController { + + /** + * 娉ㄥ叆娴佺▼鏈嶅姟 + */ + @Autowired + private WebFlowServiceI webFlowServiceI; + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 娴佺▼鍒嗙被鍏ㄦ煡璇� + * @param parentId 鐖秈d + * @return 鍒楄〃鐨勫唴瀹� + */ + @GetMapping( "/getProcessCategories") + @VciBusinessLog(operateName = "娴佺▼鍒嗙被鍏ㄦ煡璇�") + public BaseResult<List<ProcessCategoryInfo>> getProcessCategories(String parentId){ + try { + return BaseResult.dataList(webFlowServiceI.getProcessCategories(parentId)); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "娴佺▼鍒嗙被鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 娴佺▼鍒嗙被鍒嗛〉鏌ヨ + * @param baseQueryObject + * @return 鍒楄〃鐨勫唴瀹� + */ + @GetMapping( "/getProcessCategoriesByPage") + @VciBusinessLog(operateName = "娴佺▼鍒嗙被鍒嗛〉鏌ヨ") + public BaseResult getProcessCategoriesByPage(BaseQueryObject baseQueryObject){ + try { + return BaseResult.dataGrid(webFlowServiceI.getProcessCategoriesByPage(baseQueryObject)); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "娴佺▼鍒嗙被鍒嗛〉鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 娣诲姞娴佺▼鍒嗙被 + * @param processCategoryInfo + * @return + */ + @PostMapping( "/saveProcessCategory") + @VciBusinessLog(operateName = "娣诲姞娴佺▼鍒嗙被") + public BaseResult saveProcessCategory(@RequestBody ProcessCategoryInfo processCategoryInfo) { + try { + return BaseResult.success(webFlowServiceI.saveProcessCategory(processCategoryInfo)); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "娣诲姞娴佺▼鍒嗙被鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 淇敼娴佺▼鍒嗙被 + * @param processCategoryInfo + * @return + */ + @PutMapping( "/updateProcessCategory") + @VciBusinessLog(operateName = "淇敼娴佺▼鍒嗙被") + public BaseResult updateProcessCategory(@RequestBody ProcessCategoryInfo processCategoryInfo) { + try { + return webFlowServiceI.updateProcessCategory(processCategoryInfo) ? BaseResult.success("娴佺▼鍒嗙被淇敼鎴愬姛锛�"):BaseResult.fail("娴佺▼鍒嗙被淇敼澶辫触锛�"); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "淇敼娴佺▼鍒嗙被鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒犻櫎娴佺▼鍒嗙被 + * @param id + * @return + */ + @DeleteMapping( "/deleteProcessCategory") + @VciBusinessLog(operateName = "鍒犻櫎娴佺▼鍒嗙被") + public BaseResult deleteProcessCategory(String id) { + try { + return webFlowServiceI.deleteProcessCategory(id) ? BaseResult.success("娴佺▼鍒嗙被鍒犻櫎鎴愬姛锛�"):BaseResult.fail("娴佺▼鍒嗙被鍒犻櫎澶辫触锛�"); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鍒犻櫎娴佺▼鍒嗙被鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java index 182ca2d..50fb3b4 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java @@ -1,6 +1,7 @@ package com.vci.web.service; import com.vci.bo.LoginResultBO; +import com.vci.corba.common.PLException; import com.vci.dto.LoginUserDTO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.RequestClientInfo; @@ -26,5 +27,5 @@ * @param userToken 鐢ㄦ埛鐨勮鍙爜 * @throws VciBaseException 鍒犻櫎浼氳瘽淇℃伅鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ - void logout(String userToken) throws VciBaseException; + void logout(String userToken) throws Exception; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java index bb5853d..f56b887 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java @@ -177,7 +177,7 @@ * @param pkComponent 缁勪欢鐨勪富閿� * @return 鎸夐挳鐨勪俊鎭� */ - List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, RoleRightVO> roleRightMap); + List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, List<RoleRightVO>> roleRightMap); /** * 鎸夐挳鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄 @@ -209,6 +209,6 @@ // UIContentVO UIContentDO2VO(PLPageLayoutDefination pageLayoutDefination, boolean queryDetail); - UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, RoleRightVO> roleRightMap); + UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, List<RoleRightVO>> roleRightMap); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java index 8911e1a..460cfed 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java @@ -213,7 +213,7 @@ * @return * @throws PLException */ - Map<String,RoleRightVO> getRoleRightMap(String roleId) throws PLException; + Map<String, List<RoleRightVO>> getRoleRightMap(String roleId) throws PLException; /** * UI鎺堟潈 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java new file mode 100644 index 0000000..e607896 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java @@ -0,0 +1,53 @@ +package com.vci.web.service; + +import com.vci.corba.wf.data.ProcessCategoryInfo; +import com.vci.starter.web.pagemodel.BaseQueryObject; +import com.vci.starter.web.pagemodel.DataGrid; + +import java.util.List; + +/** + * 娴佺▼鏈嶅姟 + * @author ludc + * @date 2025/1/14 17:28 + */ +public interface WebFlowServiceI { + + /** + * 娴佺▼鍒嗙被鍏ㄦ煡璇� + * @param parentId + * @return + * @throws Exception + */ + List<ProcessCategoryInfo> getProcessCategories(String parentId) throws Exception; + + /** + * 娴佺▼鍒嗙被鍒嗛〉鏌ヨ + * @param baseQueryObject + * @return + */ + DataGrid<ProcessCategoryInfo> getProcessCategoriesByPage(BaseQueryObject baseQueryObject) throws Exception; + + /** + * 淇濆瓨娴佺▼鍒嗙被 + * @param category + * @return + */ + String saveProcessCategory(ProcessCategoryInfo category) throws Exception; + + /** + * 淇敼娴佺▼鍒嗙被 + * @param category + * @return + */ + boolean updateProcessCategory(ProcessCategoryInfo category) throws Exception; + + /** + * 鍒犻櫎娴佺▼鍒嗙被 + * @param id + * @return + * @throws Exception + */ + boolean deleteProcessCategory(String id) throws Exception; + +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java index 9e88c5c..4b0f835 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java @@ -181,16 +181,6 @@ return loginResult; } - //4銆佸垽鏂瘑鐮佹槸鍚︽纭紙骞冲彴鐨刢heckLogin鏂规硶濂藉儚鏈夊瀵嗙爜杩涜姣斿鐨勬柟娉曪級 - /*if (checkPassword) { - boolean passwordIsEqual = userQueryService.checkPasswordEqual(userDTO.getPassword(), user.getOid()); - if (!passwordIsEqual) { - if (logger.isDebugEnabled()) { - logger.debug("{}瀵嗙爜涓嶆纭�", user.getId()); - } - } - }*/ - //5銆佽皟鐢ㄥ钩鍙扮櫥褰曟帴鍙o紝杩涜鐧诲綍 MachineInfo machine = getMachieInfo(clientInfo); machine.country = clientInfo.getCountry(); @@ -313,7 +303,7 @@ * @throws VciBaseException 鍒犻櫎浼氳瘽淇℃伅鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public void logout(String userToken) throws VciBaseException { + public void logout(String userToken) throws Exception { VciBaseUtil.alertNotNull(userToken,"鐢ㄦ埛鐨勪細璇濊鍙�"); Map<String, Object> logoutpluginBeanMap =ApplicationContextProvider.getApplicationContext().getBeansWithAnnotation(VciLogoutPlugin.class); if(!CollectionUtils.isEmpty(logoutpluginBeanMap)){ @@ -337,7 +327,10 @@ } //娓呴櫎瀛樺綋鍓嶇櫥褰曠殑鐢ㄦ埛锛堟�绘暟-1锛� redisService.decreOnlineUser(VConstant.CURRENT_LOGGED_USERS_KEY); - sessionForLogin.logout(userToken); + sessionForLogin.logout( + WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getToken() + ,WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId() + ); if(!CollectionUtils.isEmpty(logoutpluginBeanMap)){ logoutpluginBeanMap.forEach((k,v) -> { Method[] methods = v.getClass().getDeclaredMethods(); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java index 42cf760..87d55b9 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java @@ -609,6 +609,7 @@ menuVO.setName(funcInfo.name); menuVO.getMeta().put("keepAlive",true); menuVO.setSort((int) funcInfo.seq); + menuVO.setRemark(funcInfo.desc); if(this.checkChildObject(menuVO.getId()) == 0){ menuVO.setHasChildren(false); }else{ @@ -657,6 +658,7 @@ functionVO.setName(menu.name); functionVO.getMeta().put("keepAlive",true); functionVO.setSort((int) menu.seq); + functionVO.setRemark(menu.desc); functionVO.setChildren(findChildFunctionVO(menu.id,map)); if(functionVO.getChildren().size() > 0){ functionVO.setHasChildren(true); @@ -685,6 +687,7 @@ menuVO.setName(funcObj.name); menuVO.getMeta().put("keepAlive",true); menuVO.setSort((int) funcObj.seq); + menuVO.setRemark(funcObj.desc); findChildAuthFunctionVO(menuVO, isAll); functionVO.getChildren().add(menuVO); functionVO.setHasChildren(true); @@ -719,7 +722,7 @@ /* if(resourceControlTypeEnum == null){ resourceControlTypeEnum = ResourceControlTypeEnum.BS; }*/ - Map<String, RoleRightVO> roleRightMap = uiManagerServiceI.getRoleRightMap(null); + Map<String, List<RoleRightVO>> roleRightMap = uiManagerServiceI.getRoleRightMap(null); for (PLUILayout allPLUILayout : platformClientUtil.getUIService().getAllPLUILayouts()) { if(treeQueryObject.getConditionMap().getOrDefault("type","").equals(allPLUILayout.plRelatedType) && treeQueryObject.getConditionMap().getOrDefault("context","").equals(allPLUILayout.plCode)){ diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java index 072665b..de7c6ef 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java @@ -195,12 +195,15 @@ /** * 閫�鍑虹櫥褰� - * + * 娓呴櫎鐢ㄦ埛session * @param userToken 鐢ㄦ埛鐨勪細璇濊鍙� */ @Override - public void logout(String userToken) { + public void logout(String userToken,String userId) throws PLException { //TODO 鏍规嵁鎯呭喌锛屽崟鐙鐞� + redisService.deleteObject(CacheNameConstant.USERID_TOKEN_KEY + userId); + redisService.deleteObject(TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS + userToken); + platformClientUtil.getFrameworkService().logoff(userToken); } /** diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java index 36e4986..e989fdf 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java @@ -894,7 +894,7 @@ */ @VciUnLog @Override - public UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, RoleRightVO> roleRightMap){ + public UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, List<RoleRightVO>> roleRightMap){ UIContentVO contentVO = new UIContentVO(); if(pageLayoutDefination !=null){ contentVO.setOid(pageLayoutDefination.plOId); @@ -1014,7 +1014,7 @@ * @param pkContent UI涓婁笅鏂囩殑涓婚敭 * @return 涓婁笅鏂� */ - private List<UILayoutVO> listLayoutByContent(String pkContent,Map<String, RoleRightVO> roleRightMap){ + private List<UILayoutVO> listLayoutByContent(String pkContent,Map<String, List<RoleRightVO>> roleRightMap){ try { List<PLTabPage> tabPageList = Arrays.stream(platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList()); //杩囨护鎺夋病鏈夎闂潈闄愮殑UI @@ -1030,7 +1030,7 @@ * @param tabPageList * @param roleRightMap */ - private List<PLTabPage> filterTabPageByRoleRight(List<PLTabPage> tabPageList, Map<String, RoleRightVO> roleRightMap){ + private List<PLTabPage> filterTabPageByRoleRight(List<PLTabPage> tabPageList, Map<String, List<RoleRightVO>> roleRightMap){ if(Func.isEmpty(roleRightMap) || Func.isEmpty(tabPageList)){ return tabPageList; } @@ -1060,7 +1060,7 @@ * @param plPageDefinationList * @param roleRightMap */ - private List<PLPageDefination> filterPageDefByRoleRight(List<PLPageDefination> plPageDefinationList, Map<String, RoleRightVO> roleRightMap){ + private List<PLPageDefination> filterPageDefByRoleRight(List<PLPageDefination> plPageDefinationList, Map<String, List<RoleRightVO>> roleRightMap){ if(Func.isEmpty(roleRightMap) || Func.isEmpty(plPageDefinationList)){ return plPageDefinationList; } @@ -1136,7 +1136,7 @@ * @param pages 鍖哄煙鐨勬暟鎹璞� * @return 鏄剧ず瀵硅薄 */ - private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail, Map<String, RoleRightVO> roleRightMap){ + private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail, Map<String, List<RoleRightVO>> roleRightMap){ List<UILayoutVO> contentVOS = new ArrayList<>(); Map<String, OsAttributeVO> attributeVOMap; if(pages != null && pages.size() > 0){ @@ -1174,7 +1174,7 @@ * @return 鍖哄煙鐨勬樉绀哄璞� */ @VciUnLog - private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){ + private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){ UILayoutVO layoutVO = new UILayoutVO(); if(page !=null ){ layoutVO.setOid(page.plOId); @@ -1274,7 +1274,7 @@ * @param pages 鏁版嵁瀵硅薄 * @return 鏄剧ず瀵硅薄 */ - private List<UIComponentVO> uiComponentDO2VOs(Collection<PLPageDefination> pages, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){ + private List<UIComponentVO> uiComponentDO2VOs(Collection<PLPageDefination> pages, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){ List<UIComponentVO> componentVOS = new ArrayList<>(); pages.stream().forEach(page->{ componentVOS.add(uiComponentDO2VO(page,queryDetail,attributeVOMap,roleRightMap)); @@ -1288,7 +1288,7 @@ * @return 鏄剧ず瀵硅薄 */ @VciUnLog - private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){ + private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){ UIComponentVO componentVO = new UIComponentVO(); if(page !=null){ componentVO.setOid(page.plOId); @@ -1466,7 +1466,7 @@ * @return 鎸夐挳鐨勪俊鎭� */ @Override - public List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, RoleRightVO> roleRightMap){ + public List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, List<RoleRightVO>> roleRightMap){ try { List<UIButtonDefineVO> buttonDefineVOS = buttonDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLTabButtonsByTableOId(pkComponent)).collect(Collectors.toSet())).stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList()); if(Func.isEmpty(roleRightMap)){ @@ -1478,12 +1478,20 @@ while (buttonDefineVO.hasNext()){ UIButtonDefineVO buttonDefine = buttonDefineVO.next(); if(roleRightMap.containsKey(buttonDefine.getPkComponent())) { - Long rightValue = roleRightMap.get(buttonDefine.getPkComponent()).getRightValue(); + List<Long> rightValues = roleRightMap.get(buttonDefine.getPkComponent()).stream() + .map(e -> e.getRightValue()).collect(Collectors.toList()); int nodeValue = buttonDefine.getOrderNum(); if (nodeValue >= 0 && nodeValue <= 63) { + boolean authFlag = false; //杩涜浣嶄笌鎿嶄綔锛屽鏋滅浉绛夊垯琛ㄧず鍏锋湁褰撳墠鎿嶄綔鐨勬潈闄� - long preValue = (rightValue >> nodeValue) & 1; - if (preValue != 1) { + for (Long rightValue : rightValues) { + long preValue = (rightValue >> nodeValue) & 1; + if (preValue == 1) { + authFlag = true; + break; + } + } + if(!authFlag){ buttonDefineVO.remove(); } } @@ -1642,7 +1650,7 @@ throw WebUtil.getVciBaseException(vciError); } // 1銆佹牴鎹綋鍓嶈鑹插垽鏂槸绠$悊浜哄憳杩樻槸鏅�氱敤鎴凤紙姝e父鏉ヨ鍙湁鏅�氱敤鎴锋墠浼氱敤鍒拌鏌ヨ鎺ュ彛锛� - Map<String, RoleRightVO> roleRightMap = uiManagerServiceI.getRoleRightMap(null); + Map<String, List<RoleRightVO>> roleRightMap = uiManagerServiceI.getRoleRightMap(null); // 2銆佹寜鐓у綋鍓嶇櫥褰曠敤鎴锋煡璇㈡潈闄愶紙鍔熻兘鏉冮檺鍜孶I鎺堟潈鐨勬巿鏉冧俊鎭兘鏄斁鍦ㄥ悓涓�寮犺〃閲岀殑锛� // 3銆佹壘鍑哄綋鍓嶈鏌ヨ鐨刄I涓婁笅鏂� PLUILayout context = null; diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index 572c517..e6b6c33 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -1696,7 +1696,7 @@ String type = StringUtils.isBlank(conditionMap.get("type")) ? "" : conditionMap.get("type"); String context = StringUtils.isBlank(conditionMap.get("context")) ? "" : conditionMap.get("context"); boolean showCheckBox = Boolean.parseBoolean(conditionMap.get("showCheckBox")); - Map<String,RoleRightVO> roleRightVOMap = new HashMap<>(); + Map<String, List<RoleRightVO>> roleRightVOMap = new HashMap<>(); if(StringUtils.isNotBlank(roleId)){ roleRightVOMap = this.getRoleRightMap(roleId); } @@ -1734,7 +1734,7 @@ * @throws PLException */ @Override - public Map<String,RoleRightVO> getRoleRightMap(String roleId) throws PLException { + public Map<String, List<RoleRightVO>> getRoleRightMap(String roleId) throws PLException { RoleRightInfo[] rightInfos = null; String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); if(Func.isBlank(roleId)){ @@ -1743,7 +1743,9 @@ rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName); } List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos)); - Map<String,RoleRightVO> roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue)); + //鍒嗙粍鎿嶄綔 + Map<String, List<RoleRightVO>> roleRightVOMap = roleRightVOList.stream().collect(Collectors.groupingBy(RoleRightVO::getFuncId, + Collectors.mapping(e ->e, Collectors.toList()))); return roleRightVOMap; } @@ -2145,7 +2147,7 @@ * @param contextList * @param isShowCheckBox */ - private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap, boolean isShowCheckBox){ + private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String, List<RoleRightVO>> roleRightVOMap, boolean isShowCheckBox){ Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<>()).stream().forEach(pTree -> { Object funcObj = pTree.getData(); List<Tree> chiledTreeList = new ArrayList<>(); @@ -2224,7 +2226,7 @@ PLTabButton plTabButton = (PLTabButton) funcObj; String id = plTabButton.plTableOId; if(roleRightVOMap.containsKey(id)){ - RoleRightVO roleRightVO = roleRightVOMap.get(id); + RoleRightVO roleRightVO = roleRightVOMap.get(id).get(0); Long rightValue = roleRightVO.getRightValue(); int nodeValue = plTabButton.plSeq; if (nodeValue >= 0 && nodeValue <= 63) { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java new file mode 100644 index 0000000..6ca01fb --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java @@ -0,0 +1,142 @@ +package com.vci.web.service.impl; + +import com.vci.corba.common.PLException; +import com.vci.corba.wf.data.ProcessCategoryInfo; +import com.vci.corba.wf.data.ProcessDefinitionInfo; +import com.vci.starter.web.exception.VciBaseException; +import com.vci.starter.web.pagemodel.BaseQueryObject; +import com.vci.starter.web.pagemodel.DataGrid; +import com.vci.starter.web.util.Lcm.Func; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.web.dao.WebProcessDaoI; +import com.vci.web.service.WebFlowServiceI; +import com.vci.web.util.PlatformClientUtil; +import com.vci.web.util.WebUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 娴佺▼鏈嶅姟 + * @author ludc + * @date 2025/1/14 17:28 + */ +@Service +public class WebFlowServiceImpl implements WebFlowServiceI { + + /** + * 骞冲彴璋冪敤瀹㈡埛绔� + */ + @Autowired + private PlatformClientUtil platformClientUtil; + + @Autowired + private WebProcessDaoI webProcessDaoI; + + /** + * 娴佺▼鍒嗙被鍏ㄦ煡璇� + * @param parentId + * @return + * @throws PLException + */ + @Override + public List<ProcessCategoryInfo> getProcessCategories(String parentId) throws PLException { + VciBaseUtil.alertNotNull(parentId,"娴佺▼鍒嗙被鐖朵富閿�"); + ProcessCategoryInfo[] processCategories = platformClientUtil.getWFService().getProcessCategories(parentId); + List<ProcessCategoryInfo> processCategoryInfoList = Arrays.asList(processCategories).stream().sorted((Comparator.comparing(o -> o.id))).collect(Collectors.toList()); + return processCategoryInfoList; + } + + /** + * 娴佺▼鍒嗙被鍒嗛〉鏌ヨ + * @param baseQueryObject + * @return + */ + @Override + public DataGrid<ProcessCategoryInfo> getProcessCategoriesByPage(BaseQueryObject baseQueryObject) throws PLException { + String parentId = baseQueryObject.getConditionMap().get("parentId"); + VciBaseUtil.alertNotNull(parentId,"娴佺▼鍒嗙被鐖朵富閿�"); + int page = baseQueryObject.getPage(); + int limit = baseQueryObject.getLimit(); + ProcessCategoryInfo[] processCategories = platformClientUtil.getWFService().getProcessCategoriesByPage(parentId,limit,page); + List<ProcessCategoryInfo> processCategoryInfoList = Arrays.asList(processCategories).stream().sorted((Comparator.comparing(o -> o.id))).collect(Collectors.toList()); + DataGrid<ProcessCategoryInfo> dataGrid = new DataGrid<>(); + dataGrid.setData(processCategoryInfoList); + dataGrid.setPage(page); + dataGrid.setLimit(limit); + //dataGrid.setTotal(); + return dataGrid; + } + + /** + * 淇濆瓨娴佺▼鍒嗙被 + * @param category + * @return 杩斿洖涓婚敭 + */ + @Override + public String saveProcessCategory(ProcessCategoryInfo category) throws PLException { + VciBaseUtil.alertNotNull(category,"娴佺▼鍒嗙被瀵硅薄",category.name,"娴佺▼鍒嗙被鍚嶇О"); + this.checkNameExisted(category); + if(Func.isBlank(category.parentId)){ + category.parentId = "root"; + } + long time = new Date().getTime(); + String userId = WebUtil.getCurrentUserId(); + category.createTime = time; + category.modifyTime = time; + category.creator = userId; + category.modifer = userId; + return platformClientUtil.getWFService().saveProcessCategory(category); + } + + /** + * 淇敼娴佺▼鍒嗙被 + * @param category + * @return + */ + @Override + public boolean updateProcessCategory(ProcessCategoryInfo category) throws PLException { + VciBaseUtil.alertNotNull(category,"娴佺▼鍒嗙被瀵硅薄",category.name,"娴佺▼鍒嗙被鍚嶇О"); + if(Func.isBlank(category.parentId)){ + category.parentId = "root"; + } + this.checkNameExisted(category); + category.modifyTime = new Date().getTime(); + category.modifer = WebUtil.getCurrentUserId(); + return platformClientUtil.getWFService().updateProcessCategory(category); + } + + /** + * 鍒犻櫎娴佺▼鍒嗙被 + * @param id + * @return + * @throws Exception + */ + @Override + public boolean deleteProcessCategory(String id) throws Exception { + VciBaseUtil.alertNotNull(id,"寰呭垹闄ゆ祦绋嬪垎绫荤殑涓婚敭"); + ProcessDefinitionInfo[] processDefinitions = platformClientUtil.getWFService().getProcessDefinitions(id); + if(processDefinitions.length>0){ + new VciBaseException( "鍒嗙被涓嬫湁妯℃澘锛岃鍏堝垹闄ゆā鐗堬紒"); + } + return platformClientUtil.getWFService().deleteProcessCategory(id); + } + + /** + * 鏍规嵁涓婚敭鍜屽悕绉版煡璇㈡祦绋嬪垎绫绘槸鍚﹀瓨鍦� + * @param category + * @return + */ + private void checkNameExisted(ProcessCategoryInfo category) throws PLException{ + //鍒ゆ柇鏄惁瀛樺湪鐩稿悓鍚嶇О鐨勬ā鏉垮垎绫� + if(platformClientUtil.getWFService().existProcessCategory(category.id, category.name)){ + throw new VciBaseException("妯℃澘鍒嗙被鐨勫悕绉颁笉鑳介噸澶嶏紒"); + } + } + +} -- Gitblit v1.9.3