diff --git a/com.actionsoft.apps.coe.pal/i18n/resource.xml b/com.actionsoft.apps.coe.pal/i18n/resource.xml index 33976180..cfa93983 100755 --- a/com.actionsoft.apps.coe.pal/i18n/resource.xml +++ b/com.actionsoft.apps.coe.pal/i18n/resource.xml @@ -116,7 +116,12 @@ - + + + + + + diff --git a/com.actionsoft.apps.coe.pal/manifest.xml b/com.actionsoft.apps.coe.pal/manifest.xml index b9a5c7aa..56387d96 100755 --- a/com.actionsoft.apps.coe.pal/manifest.xml +++ b/com.actionsoft.apps.coe.pal/manifest.xml @@ -85,6 +85,7 @@ AWS PAL(Process Asset Library)流程资产库是AWS CoE平台的重要产品组 [{"name":"建模操作快速引导","url":"","children":[{"name":"1.如何创建符号与连线","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=e0606a45-56d3-4cff-b51f-e0a9d64e522a"},{"name":"2.快速调整布局","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=6e58d212-fb95-4483-93b7-17499d632805"},{"name":"3.术语的新建与删除","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=e5ef6605-3bc0-44b9-8bb8-a252fe20837b"},{"name":"4.流程绩效指标的新建与修改","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=59b638b6-7e3a-4a79-bd71-cd739259c89d"},{"name":"5.新建表单模型","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=0b964b9e-6701-44a8-8159-91b4ceba9c80"},{"name":"6.新建制度模型","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=c1e30c18-db59-4bde-ab60-b9589922ab2e"},{"name":"7.流程文件的生成","url":"./w?sid=@sid&cmd=com.actionsoft.apps.cms_get_message&messageId=d799ced4-2313-45ba-911f-03cdb6db9e06"},{"name":"8.新建角色与岗位","url":"./w?sid=@sid&cmd=com.actiosoft.apps.cms_get_message&messageId=93559257-8280-444c-bd88-116748b919bf"}]}] {"control.risk":{"risk":{"desc":"描述企业内部流程涉及的各级风险点"},"control":{"desc":"描述企业内部流程涉及的各级风险的控制措施"}},"itsystem.normal":{"cloudServer":{"desc":"描述企业接入的云服务设施"},"database":{"desc":"描述企业提供的数据库服务类型,如某Oracle数据库"},"appSystem":{"desc":"描述企业提供的应用系统,如某供应链管理系统、业务流程管理平台"},"device":{"desc":"描述企业提供的各种IT设备"}},"control.kpi":{"kpi":{"desc":"从流程的目标(业务的目标、管理的要求等)出发设计流程绩效指标,用于衡量和评估末级流程的执行效果和对流程业务的支撑作用。"}},"process.evc":{"valueChain6":{"desc":"一个基本增值活动或辅助增值活动"},"valueChain5":{"desc":"一个基本增值活动或辅助增值活动"},"valueChain4":{"desc":"一个基本增值活动或辅助增值活动"},"valueChain3":{"desc":"一个基本增值活动或辅助增值活动"},"valueChain2":{"desc":"一个基本增值活动或辅助增值活动"},"valueChain1":{"desc":"一个基本增值活动或辅助增值活动"}},"control.policy":{"item":{"desc":"描述企业内部各级管理制度的具体条款"},"regulation":{"desc":"描述企业内部流程涉及的各级管理制度"}},"data.form":{"form":{"desc":"输入或输出的数据是一个完整的数据结构(或单据)"},"forms":{"desc":"输入或输出的数据由多个数据结构(或单据)组成"}},"process.flowchart":{"internalStorage":{"desc":"存储在存储器中的数据"},"predefinedProcess":{"desc":"在另外地方已得到详细说明的一个操作或一组操作"},"data":{"desc":"表示数据"},"document":{"desc":"表示属于该过程的书面信息"},"paperTape":{"desc":"旧式电脑使用的穿孔纸带输入"},"storedData":{"desc":"表示一般的数据存储"},"preparation":{"desc":"表示修改一条指令或一组指令以影响随后的活动"},"horizontalPool":{"desc":"包含多个泳道,对元素进行区分"},"verticalLane":{"desc":"对泳池里的流程元素的进行组织和分类"},"parallelMode":{"desc":"表示同步进行两个或两个以上并行方式的操作"},"terminator":{"desc":"表示过程的开始或结束"},"offPageReference":{"desc":"表示一组流程,可以用跨页引用进行标识"},"horizontalLane":{"desc":"对泳池里的流程元素的进行组织和分类"},"annotation":{"desc":"标识注解的内容"},"manualInput":{"desc":"人工输入的数据"},"onPageReference":{"desc":"表示流程图的待续,圈内有一子字母或数字"},"process":{"desc":"表示过程中的一个单独步骤"},"manualOperation":{"desc":"由人工完成的操作"},"loopLimit":{"desc":"去上角的上限值和去下角的下限值分别表示循环的开始和结束"},"decision":{"desc":"表示过程中的一项判定或一个分岔点"},"display":{"desc":"在机器上显示"},"verticalPool":{"desc":"包含多个泳道,对元素进行区分"},"sequentialData":{"desc":"老式磁带存储的数据"},"directData":{"desc":"表示流程图中存储在硬盘上的数据源"},"card":{"desc":"旧式电脑使用的打孔卡"}},"process.epc":{"or":{"desc":"表示一件事情可能产生的几个结果中,至少有一个会发生"},"method_service_node":{"desc":"描述流程中的手工活动"},"verticalPool":{"desc":"包含多个泳道,对元素进行区分"},"procedure":{"desc":"本流程的某个环节后引用的其它流程"},"method_approval_node":{"desc":"流程中审核、审批性质的活动"},"horizontalPool":{"desc":"包含多个泳道,对元素进行区分"},"verticalLane":{"desc":"对泳池里的流程元素的进行组织和分类"},"method_approval_node3":{"desc":"流程中需要执行某种操作的活动"},"and":{"desc":"表示一件事情可能产生的几个结果或后续活动,全部发生;或表示一件事情的发生需要几个条件同时满足"},"method_service_node4":{"desc":"描述流程中的手工活动"},"xor":{"desc":"表示一件事情可能产生的几个结果中,有且只有一个会发生"},"event":{"desc":"描述流程运行的状态"},"horizontalLane":{"desc":"对泳池里的流程元素的进行组织和分类"}},"org.role":{"role":{"desc":"一般用于表示执行某一流程步骤的流程角色"}},"process.bpmn2":{"signalIntermediateThrowingEvent":{"desc":"向外广播信号后,流程继续向后执行"},"callActivityCallingProcess":{"desc":"调用定义的全局过程"},"textAnnotation":{"desc":"给元素附加信息,便于理解"},"timerStartEvent":{"desc":"到达设置的日期/时间后,触发流程执行"},"horizontalPool":{"desc":"包含多个泳道,对元素进行区分"},"signalEndEvent":{"desc":"向外广播信号,结束所在分支的执行"},"verticalLane":{"desc":"对泳池里的流程元素的进行组织和分类"},"errorBoundaryInterrputingEvent":{"desc":"捕获活动内部抛出的错误信息,中断正常流程,触发错误处理流程"},"endEvent":{"desc":"结束所在分支的执行"},"serviceTask":{"desc":"使用Web服务或自动化应用的任务"},"exclusiveGateway":{"desc":""},"startEvent":{"desc":"触发流程的执行"},"receiveTask":{"desc":"等待并接受外部参与者发送的消息,消息接受完毕则任务执行完毕"},"signalStartEvent":{"desc":"接收信息,并触发流程的执行"},"messageIntermediateCatchEvent":{"desc":"捕获到特定消息后,该事件被触发,流程继续向后执行"},"messageIntermediateThrowingEvent":{"desc":"向其他参与方发送消息后,流程继续向后执行"},"signalIntermediateCatchEvent":{"desc":"捕获到其他参与方广播的信号后,该事件被触发,流程继续向后执行"},"errorEndEvent":{"desc":"错误结束事件"},"horizontalLane":{"desc":"对泳池里的流程元素的进行组织和分类"},"group":{"desc":"对元素进行分类,不影响流程的执行"},"scriptTask":{"desc":"定义一段执行脚本,由流程引擎执行,脚本执行完毕则任务执行完毕"},"businessRuleTask":{"desc":"调用业务规则引擎进行数据的计算并获得计算结果"},"manualTask":{"desc":"没有任何流程引擎和应用程序协助的纯手工任务"},"signalBoundaryInterrputingEvent":{"desc":"捕获特定信号,中断正常流程,触发异常处理流程"},"verticalPool":{"desc":"包含多个泳道,对元素进行区分"},"compensationBoundaryInterrputingEvent":{"desc":"捕获活动内部抛出的补偿信息,中断正常流程,触发执行补偿活动"},"userTask":{"desc":"在应用程序的协助下,由人工完成的任务"},"terminateEndEvent":{"desc":"结束所有分支的执行"},"messageStartEvent":{"desc":"接收消息,并触发流程的执行"},"messageEndEvent":{"desc":"向其他参与方发送消息,结束所在分支的执行"},"sendTask":{"desc":"向外部参与者发送消息,消息发送完毕则任务执行完毕"},"messageBoundaryInterrputingEvent":{"desc":"捕获特定消息,中断正常流程,触发异常处理流程"},"transaction":{"desc":"遵循特定事务规约的一系列活动"},"timerIntermediateCatchEvent":{"desc":"到达某个特定时间/日期后,触发该事件,流程继续向后执行"}},"org.normal":{"role":{"desc":"一般用于表示执行某一流程步骤的流程角色"},"organization":{"desc":"描述企业内部固定的组织单位"},"position":{"desc":"描述企业内部各部门的实际岗位"},"employee":{"desc":"表示企业的具体员工"}}} false + 09e17771-5bc6-41c3-8b29-4bb345810967 diff --git a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/CoEPALController.java b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/CoEPALController.java index 2431d66a..e4aa0381 100755 --- a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/CoEPALController.java +++ b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/CoEPALController.java @@ -3050,9 +3050,9 @@ public class CoEPALController { * @return */ @Mapping("com.actionsoft.apps.coe.pal_processlevel_create_method_list") - public String getPalProcessLevelCreateMethodList(UserContext me, String category, String methodId) { + public String getPalProcessLevelCreateMethodList(UserContext me, String category, String methodId , String fileId) { CoeProcessLevelWeb web = new CoeProcessLevelWeb(me); - return web.getPalProcessLevelCreateMethodList(category, methodId); + return web.getPalProcessLevelCreateMethodList(category, methodId,fileId); } /** diff --git a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/repository/web/CoeProcessLevelWeb.java b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/repository/web/CoeProcessLevelWeb.java index 8306f25c..fe7123c2 100755 --- a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/repository/web/CoeProcessLevelWeb.java +++ b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/repository/web/CoeProcessLevelWeb.java @@ -2609,6 +2609,9 @@ public class CoeProcessLevelWeb extends ActionWeb { plLevel = plModel.getLevel(); plOrderIndex = plModel.getOrderIndex(); methodId = plModel.getMethodId(); + if ("freedom.allmethod".equals(methodId)){ + macroLibraries.put("classification", I18nRes.findValue(CoEConstant.APP_ID, methodId)); + } for (int i = 0, methodSize = methodModels.size(); i < methodSize; i++) { PALMethodModel palMethodModel = methodModels.get(i); String appId = palMethodModel.getId(); @@ -8342,7 +8345,7 @@ public class CoeProcessLevelWeb extends ActionWeb { * @param methodId * @return */ - public String getPalProcessLevelCreateMethodList(String category, String methodId) { + public String getPalProcessLevelCreateMethodList(String category, String methodId, String fileId) { ResponseObject ro = ResponseObject.newOkResponse(); JSONArray fileArr = new JSONArray();// 文件类模型,可以画图 JSONArray folderArr = new JSONArray();// 文件夹类模型,作为文件夹 @@ -8378,16 +8381,29 @@ public class CoeProcessLevelWeb extends ActionWeb { methodObj.put("categoryName", I18nRes.findValue(CoEConstant.APP_ID, c)); methodObj.put("method", model.getId()); methodObj.put("methodName", I18nRes.findValue(CoEConstant.APP_ID, model.getId())); - if (model.getSchema().contains("架构KPI图")) { - methodObj.put("methodName", "架构KPI图"); - } - if (model.getSchema().contains("角色图")) { - methodObj.put("methodName", "角色图"); + if (!"freedom.allmethod".equals(model.getId())){ + if (model.getSchema().contains("架构KPI图")){ + methodObj.put("methodName", "架构KPI图"); + } + if (model.getSchema().contains("角色图")){ + methodObj.put("methodName", "角色图"); + } } // System.out.println(c+"对应的"+ PALMethodManager.getInstance().havingCreateMethodPerm(category, methodId, "process", model.getId())); //流程入口允许新建表单图和制度图 by金鹏 - if (category.equals("process") && model.getSchema().contains("表单图")) { + if (model.getId().equals("freedom.allmethod")) { + if (StringUtils.isBlank(fileId)){ + methodObj.put("havingCreatePerm", false); + }else { + String property = SDK.getAppAPI().getProperty(CoEConstant.APP_ID, "freedom.file"); + if (StringUtils.isNotBlank(property)&&property.contains(fileId)){ + methodObj.put("havingCreatePerm", true); + }else { + methodObj.put("havingCreatePerm", false); + } + } + }else if (category.equals("process") && model.getSchema().contains("表单图")) { methodObj.put("havingCreatePerm", true); } else if (category.equals("process") && model.getSchema().contains("制度")) { methodObj.put("havingCreatePerm", true); diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/action.xml b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/action.xml index 53ba3cc2..e69a082c 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/action.xml +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/action.xml @@ -1564,6 +1564,7 @@ + diff --git a/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/listener/StartListener.java b/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/listener/StartListener.java new file mode 100644 index 00000000..faa39636 --- /dev/null +++ b/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/listener/StartListener.java @@ -0,0 +1,27 @@ +package com.awspaas.user.apps.coe.method.process.freedom.listener; + +import com.actionsoft.apps.coe.pal.pal.method.extend.MethodAppManager; +import com.actionsoft.apps.listener.AppListener; +import com.actionsoft.apps.resource.AppContext; + +/** + * Created with IntelliJ IDEA. + * + * @Author: yuandongqiang + * @Date: 2025/6/4 + * @Description: + */ +public class StartListener implements AppListener { + @Override + public boolean before(AppContext appContext) { + return true; + } + + @Override + public void after(AppContext appContext) { + this.initMethod(appContext); + } + private void initMethod(AppContext appContext){ + MethodAppManager.register("freedom.allmethod", appContext, "freedom.allmethod", "自由流程建模方法"); + } +} diff --git a/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/plugin/Plugins.java b/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/plugin/Plugins.java new file mode 100644 index 00000000..059e889d --- /dev/null +++ b/com.awspaas.user.apps.coe.method.process.freedom/src/com/awspaas/user/apps/coe/method/process/freedom/plugin/Plugins.java @@ -0,0 +1,34 @@ +package com.awspaas.user.apps.coe.method.process.freedom.plugin; + +import com.actionsoft.apps.listener.PluginListener; +import com.actionsoft.apps.resource.AppContext; +import com.actionsoft.apps.resource.plugin.profile.AWSPluginProfile; +import com.actionsoft.apps.resource.plugin.profile.AppExtensionProfile; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created with IntelliJ IDEA. + * + * @Author: yuandongqiang + * @Date: 2025/6/4 + * @Description: 插件 + */ +public class Plugins implements PluginListener { + @Override + public List register(AppContext appContext) { + List list = new ArrayList(); + // PAL应用扩展点 + Map params1 = new HashMap(); + params1.put("title", "自由模型建模方法"); + params1.put("icon", ""); + params1.put("desc", "自由模型建模方法"); + params1.put("methodId", "freedom.allmethod"); + params1.put("deletedClass", ""); + list.add(new AppExtensionProfile("PAL流程资产库->自由模型建模方法", "aslp://com.actionsoft.apps.coe.pal/registerMethodApp", params1)); + return list; + } +}