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;
+ }
+}