From d42f321ca241ab7f8bb3cdc71f11fe5ec4ebc48d Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期三, 15 一月 2025 14:28:18 +0800 Subject: [PATCH] 流程服务相关类添加 --- 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-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-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 | 129 ++++++++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java | 129 ++++++++++++++++ Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java | 6 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java | 16 +- 10 files changed, 378 insertions(+), 64 deletions(-) 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/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 a2e9a69..edd86fd 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 @@ -17,7 +17,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; /** @@ -94,8 +94,8 @@ * 鑾峰彇娴佺▼鏈嶅姟 * @return 鏈嶅姟鐨勫璞� */ - public WorkflowServicePrx getWorkflowService(){ - return WebServiceProvider.getWFService(); + public WFServicePrx getWFService(){ + return WebServiceProvider.getFlowService(); } /** 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..766d249 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java @@ -0,0 +1,129 @@ +package com.vci.web.controller; + +import com.vci.corba.wf.data.ProcessCategoryInfo; +import com.vci.dto.OsEnumDTO; +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<DataGrid<ProcessCategoryInfo>> getProcessCategoriesByPage(BaseQueryObject baseQueryObject){ + try { + return BaseResult.dataList(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/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/SmFunctionQueryServicePlatformImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java index 42cf760..825816c 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); 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..aa34f8e --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java @@ -0,0 +1,129 @@ +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.service.WebFlowServiceI; +import com.vci.web.util.PlatformClientUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Comparator; +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; + + /** + * 娴佺▼鍒嗙被鍏ㄦ煡璇� + * @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"; + } + + 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); + 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