Compare commits
	
		
			4 Commits
		
	
	
		
			dcc65b6ad4
			...
			c2540118d3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c2540118d3 | ||
|   | 53e187e55e | ||
|   | 566e659d33 | ||
|   | 73295c3f76 | 
| @ -1280,7 +1280,7 @@ | |||||||
|             if(mrStatus == undefined || mrStatus == 0){//生效 |             if(mrStatus == undefined || mrStatus == 0){//生效 | ||||||
|                 //先弹出二次确认框 |                 //先弹出二次确认框 | ||||||
|                 var options = { |                 var options = { | ||||||
|                     title : "当前管理办法未生效,是否更新管理办法的生效状态?", |                     title : "是否确定在流程文件中添加管理要求?(确认后,内容显示位置可以在“管理要求位置”属性中修改)", | ||||||
|                     content:"确认生效", |                     content:"确认生效", | ||||||
|                     onConfirm: function(){ |                     onConfirm: function(){ | ||||||
|                         $.ajax({ |                         $.ajax({ | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ import java.util.Map; | |||||||
| @Controller | @Controller | ||||||
| public class GPTController {   | public class GPTController {   | ||||||
|     @Mapping(value = "com.awspaas.user.apps.gpt_interface.openRepositoryHome", |     @Mapping(value = "com.awspaas.user.apps.gpt_interface.openRepositoryHome", | ||||||
|             session = false, |              session = false, | ||||||
|             noSessionEvaluate = "无安全隐患", |             noSessionEvaluate = "无安全隐患", | ||||||
|             noSessionReason = "用于打开相关文件地址") |             noSessionReason = "用于打开相关文件地址") | ||||||
|     public String openRepositoryHome(String repositoryId){ |     public String openRepositoryHome(String repositoryId){ | ||||||
|  | |||||||
| @ -0,0 +1,15 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.constant; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created with IntelliJ IDEA. | ||||||
|  |  * | ||||||
|  |  * @Author: yuandongqiang | ||||||
|  |  * @Date: 2025/9/16 | ||||||
|  |  * @Description: | ||||||
|  |  */ | ||||||
|  | public class Constant { | ||||||
|  |     public static final String APP_ID = "com.awspaas.user.apps.nqms.portal.view.process"; | ||||||
|  |     public static final String APP_ACT_COE_PAL_REPOSITORY = "APP_ACT_COE_PAL_REPOSITORY"; | ||||||
|  |     public static final String PAL_PROP = "APP_ACT_COE_PAL_PROP"; | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,131 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.constant; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.sdk.local.SDK; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-04-17 11:00 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class Constants { | ||||||
|  |     // 此初始化可废弃,已改为应用启动事件中进行初始化 | ||||||
|  |     public Constants(){ | ||||||
|  |         defaultName = SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "defaultName"); | ||||||
|  |         processCheckType = SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "processCheckType"); | ||||||
|  |         factorCheckType = SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "factorCheckType"); | ||||||
|  |         openCmd = SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "openType"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 门户相关应用id及应用参数 | ||||||
|  |      */ | ||||||
|  |     public static final String app_util = "com.awspaas.user.apps.nqms.portal.util"; | ||||||
|  | 
 | ||||||
|  |     public static final String app_util_defaultName = "defaultName"; | ||||||
|  |     public static final String app_util_processCheckType = "processCheckType"; | ||||||
|  |     public static final String app_util_factorCheckType = "factorCheckType"; | ||||||
|  |     public static final String app_util_openType = "openType"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_process = "com.awspaas.user.apps.nqms.portal.view.process"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_org = "com.awspaas.user.apps.nqms.portal.view.org"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_indexpage = "com.awspaas.user.apps.nqms.portal.indexpage"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_factorstore = "com.awspaas.user.apps.nqms.portal.factorstore"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_compliance = "com.awspaas.user.apps.nqms.portal.view.compliance"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_person = "com.awspaas.user.apps.nqms.portal.view.person"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String app_strategy = "com.awspaas.user.apps.nqms.portal.view.strategy"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 空值时的默认显示内容 | ||||||
|  |      */ | ||||||
|  |     public static String defaultName= ""; | ||||||
|  | //    public static  String defaultName=""; | ||||||
|  |     /** | ||||||
|  |      * 1:已发布 2:适用中 | ||||||
|  |      */ | ||||||
|  | //    public static  String processCheckType= SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "processCheckType"); | ||||||
|  |     public static  String processCheckType=""; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 1:已发布 2:适用中 | ||||||
|  |      */ | ||||||
|  | //    public static  String factorCheckType= SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.util", "factorCheckType"); | ||||||
|  |     public static  String factorCheckType=""; | ||||||
|  | 
 | ||||||
|  |     public static  String openCmd=""; | ||||||
|  | 
 | ||||||
|  |     public static  String APP_ID="com.awspaas.user.apps.nqms.portal.util"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 模型文件表 | ||||||
|  |      */ | ||||||
|  |     public static final String APP_ACT_COE_PAL_REPOSITORY="APP_ACT_COE_PAL_REPOSITORY"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 模型文件表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCTURED_R="APP_EU_PAL_STRUCT_R"; | ||||||
|  |     /** | ||||||
|  |      * 模型属性表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_R_P="APP_EU_PAL_STRUCT_R_PROP"; | ||||||
|  |     /** | ||||||
|  |      *模型关联属性表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_R_P_REL="APP_EU_PAL_STRUCT_R_P_REL"; | ||||||
|  |     /** | ||||||
|  |      * 形状表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_S="APP_EU_PAL_STRUCT_SHAPE"; | ||||||
|  |     /** | ||||||
|  |      * 形状属性表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_S_P="APP_EU_PAL_STRUCT_S_PROP"; | ||||||
|  |     /** | ||||||
|  |      * 形状关联属性信息表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_S_P_REL="APP_EU_PAL_STRUCT_S_P_REL"; | ||||||
|  |     /** | ||||||
|  |      * 形状联系连线表 | ||||||
|  |      */ | ||||||
|  |     public static final String STRUCT_S_LINE="APP_EU_PAL_STRUCT_S_LINE"; | ||||||
|  | 
 | ||||||
|  |     public static final String number="number"; | ||||||
|  |     public static final String desc="desc"; | ||||||
|  |     public static final String dutyDept="dept"; | ||||||
|  |     public static final String dutyPerson="person"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static final String control_icon  ="el-icon-tickets";//制度文件图标 | ||||||
|  |     public static final String process_icon  ="el-icon-share";//末阶流程文件图标 | ||||||
|  |     public static final String highProcess_icon  ="el-icon-notebook-1";//高阶流程文件图标 | ||||||
|  |     /** | ||||||
|  |      * 图形关联业务域的标识 | ||||||
|  |      */ | ||||||
|  |     public static final String SHAPE_BUSINESS = "shape_business"; | ||||||
|  |     /** | ||||||
|  |      * 被识别为末级流程图的类型,多个用逗号隔开 | ||||||
|  |      */ | ||||||
|  |     public static final String processTypeArr = "process.bpmn2,nqms.procEpc"; | ||||||
|  |     /** | ||||||
|  |      * 高阶流程图id | ||||||
|  |      */ | ||||||
|  |     public static final String highProcessType = "nqms.busiProcessLink"; | ||||||
|  | 
 | ||||||
|  |     public static final Integer businessLevel = 1; | ||||||
|  |     public static final Integer processGroupLevel = 2; | ||||||
|  | } | ||||||
| @ -0,0 +1,66 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.constant; | ||||||
|  | 
 | ||||||
|  | public enum PalAttrEnum { | ||||||
|  | //通用属性 | ||||||
|  |     NUMBER("number","编号"), | ||||||
|  |     DESC("desc","描述"), | ||||||
|  |     DUTY_PERSON("bpm_person","责任人"), | ||||||
|  |     DUTY_DEPT( "department","责任部门"), | ||||||
|  | 
 | ||||||
|  |     //流程文件的属性 | ||||||
|  | 
 | ||||||
|  |     POSITION("position","岗位"), | ||||||
|  |     FORM("form","表单"), | ||||||
|  |     KPI("kpi","绩效"), | ||||||
|  |     REGIME("institution","制度"), | ||||||
|  |     COMPLIANCEFILE("Compliance","合规文件"), | ||||||
|  |     COMPLIANCE("compliance","合规条款"), | ||||||
|  |     RISK("danger","风险"), | ||||||
|  |     CONTROL("regulate","控制"), | ||||||
|  |     SYSTEM("itsystem","应用系统"), | ||||||
|  |     TERM("term","术语"), | ||||||
|  | 
 | ||||||
|  |     //组织图(文件)属性 | ||||||
|  |     dutyPerson("nqmsDepartmentHead","负责人"), | ||||||
|  |     manager("nqmsCompetentLeader","主管领导"), | ||||||
|  |     deptType("nqmsDepartmentType","部门类型"), | ||||||
|  |     target("nqmsWorkTarget","工作目标"), | ||||||
|  |     dutyDesc("nqmsFunctionDesc","职能说明"), | ||||||
|  |     postDuty("nqms_responsibility","职责"), | ||||||
|  |     mission("nqmsMission","使命"), | ||||||
|  | 
 | ||||||
|  |     //角色清单 | ||||||
|  |     relPost("relPost","关联岗位"), | ||||||
|  | 
 | ||||||
|  |     //合规文件 | ||||||
|  |     comLevel("level","文件级别"), | ||||||
|  |     comType("nqmsComplianceType","文件类型"), | ||||||
|  |     //合规条款(形状的属性) | ||||||
|  |     applicability("nqmsApplicable","适用性"), | ||||||
|  |     termLevel("nqmsRequirementDegree","要求程度"), | ||||||
|  |     termRiskLevel("nqmsRiskLevel","风险等级"), | ||||||
|  |     termCount("nqmsClauseContent","要求内容"); | ||||||
|  | 
 | ||||||
|  |     private String key; | ||||||
|  |     private String value; | ||||||
|  |     PalAttrEnum(String key , String value){ | ||||||
|  |         this.key = key; | ||||||
|  |         this.value = value; | ||||||
|  |     } | ||||||
|  |     public String getKey() { | ||||||
|  |         return this.key; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setKey(String key) { | ||||||
|  |         this.key = key; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getValue() { | ||||||
|  |         return this.value; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setValue(String value) { | ||||||
|  |         this.value = value; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,68 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.controller; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate; | ||||||
|  | import com.actionsoft.bpms.server.UserContext; | ||||||
|  | import com.actionsoft.bpms.server.bind.annotation.Controller; | ||||||
|  | import com.actionsoft.bpms.server.bind.annotation.Mapping; | ||||||
|  | import com.actionsoft.sdk.local.SDK; | ||||||
|  | import com.alibaba.fastjson.JSON; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.Constant; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.service.PortalProcessService; | ||||||
|  | 
 | ||||||
|  | import java.util.HashMap; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created with IntelliJ IDEA. | ||||||
|  |  * | ||||||
|  |  * @Author: yuandongqiang | ||||||
|  |  * @Date: 2025/9/16 | ||||||
|  |  * @Description: | ||||||
|  |  */ | ||||||
|  | @Controller | ||||||
|  | public class PortalProcessController { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 页面入口 | ||||||
|  |      * | ||||||
|  |      * @param me | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @Mapping("com.awspaas.user.apps.nqms.portal.view.process_toPage") | ||||||
|  |     public String getListHomePage(UserContext me) { | ||||||
|  |         HashMap<String, Object> macroLibraries = new HashMap<>(1); | ||||||
|  |         String processMapId = SDK.getAppAPI().getProperty(Constant.APP_ID, "processMapId"); | ||||||
|  |         macroLibraries.put("sid", me.getSessionId()); | ||||||
|  |         macroLibraries.put("uuid", processMapId); | ||||||
|  |         macroLibraries.put("settingParam", JSON.toJSON(macroLibraries)); | ||||||
|  |         return HtmlPageTemplate.merge(Constant.APP_ID, "main.html", macroLibraries); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 页面初始化数据 获取流程树 | ||||||
|  |      * | ||||||
|  |      * @param ux        用户上下文 | ||||||
|  |      * @param parentId  父级节点 | ||||||
|  |      * @param queryName 查询条件 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @Mapping("com.awspaas.user.apps.nqms.portal.view.process_list_initData") | ||||||
|  |     public String getInitData(UserContext ux, String parentId, String queryName) { | ||||||
|  |         SDK.getLogAPI().consoleInfo("接口:[com.awspaas.user.apps.nqms.portal.view.process_list_initData] 查询人:" + ux.getUID() + ",parentId:" + parentId + ",queryName:" + queryName); | ||||||
|  |         return PortalProcessService.getInstance().getTreeData(ux, parentId, queryName); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询指定节点下的流程情况 | ||||||
|  |      * | ||||||
|  |      * @param ux | ||||||
|  |      * @param id   指定的根节点 | ||||||
|  |      * @param page | ||||||
|  |      * @param size | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @Mapping("com.awspaas.user.apps.nqms.portal.view.process_list_getFileData") | ||||||
|  |     public String queryFileData(UserContext ux, String id, int page, int size, String queryParams) { | ||||||
|  |         SDK.getLogAPI().consoleInfo("接口:[com.awspaas.user.apps.nqms.portal.view.process_list_getFileData] 查询人:" + ux.getUID() + ",查询条件为 id:" + id + ",page:" + page + ",size:" + size + ",queryParams:" + queryParams); | ||||||
|  |         return PortalProcessService.getInstance().getFileData(ux, id, page, size, true, null, queryParams); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,76 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.dao; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMapper; | ||||||
|  | import com.actionsoft.bpms.commons.mvc.dao.DaoObject; | ||||||
|  | import com.actionsoft.bpms.util.DBSql; | ||||||
|  | import com.actionsoft.exception.AWSDataAccessException; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.Constant; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.FileBasicAttrEntity; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.ViewUtil; | ||||||
|  | import org.apache.commons.lang.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.sql.ResultSet; | ||||||
|  | import java.sql.SQLException; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-22 17:21 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class FileBasicAttrDao extends DaoObject<FileBasicAttrEntity> { | ||||||
|  |     @Override | ||||||
|  |     public int insert(FileBasicAttrEntity fileBasicAttrEntity) throws AWSDataAccessException { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int update(FileBasicAttrEntity fileBasicAttrEntity) throws AWSDataAccessException { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String entityName() { | ||||||
|  |         return Constant.PAL_PROP; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public RowMapper<FileBasicAttrEntity> rowMapper() { | ||||||
|  |         return new FileBasicAttrDao.Mapper(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static class Mapper implements RowMapper<FileBasicAttrEntity> { | ||||||
|  |         @Override | ||||||
|  |         public FileBasicAttrEntity mapRow(ResultSet rset, int i) throws SQLException { | ||||||
|  |             FileBasicAttrEntity entity = new FileBasicAttrEntity(); | ||||||
|  |             entity.setID(rset.getString("ID")); | ||||||
|  |             entity.setPLID(rset.getString("PLID")); | ||||||
|  |             entity.setPROPERTYID(rset.getString("PROPERTYID")); | ||||||
|  |             entity.setPROPERTYNAME(rset.getString("PROPERTYNAME")); | ||||||
|  |             entity.setPROPERTYVALUE(rset.getString("PROPERTYVALUE")); | ||||||
|  |             entity.setORDERINDEX(rset.getString("ORDERINDEX")); | ||||||
|  |             return entity; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据pal模型id进行查询 | ||||||
|  |      * | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public List<FileBasicAttrEntity> selectBasicAttrByFileIds(List<String> fileIdList) { | ||||||
|  |         String fileIds = ViewUtil.listToSqlStr(fileIdList); | ||||||
|  |         String query = ""; | ||||||
|  |         if (StringUtils.isNotEmpty(fileIds)) { | ||||||
|  |             query += " AND PLID IN " + fileIds; | ||||||
|  |         } else { | ||||||
|  |             return new ArrayList<>(); | ||||||
|  |         } | ||||||
|  |         String sql = "SELECT * FROM " + entityName() + " WHERE 1=1 " + query; | ||||||
|  |         List<FileBasicAttrEntity> list = DBSql.query(sql, new Mapper()); | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,23 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.dao; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMap; | ||||||
|  | import com.actionsoft.bpms.util.DBSql; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.Constant; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author ydq | ||||||
|  |  * @date 2025/08/15 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class RepositoryDao { | ||||||
|  |     public String getWsId(String wsName) { | ||||||
|  |         String sql = "SELECT ID FROM APP_ACT_COE_PAL_WORKSPACE WHERE WSNAME=?"; | ||||||
|  |         String wsId = DBSql.getString(sql, new Object[]{wsName}); | ||||||
|  |         return wsId; | ||||||
|  |     } | ||||||
|  |     public RowMap selectById(String id){ | ||||||
|  |         String sql = "SELECT * FROM "+ Constant.APP_ACT_COE_PAL_REPOSITORY +" WHERE ID = ?"; | ||||||
|  |         RowMap map = DBSql.getMap(sql, id); | ||||||
|  |         return map; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,109 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.dao; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMapper; | ||||||
|  | import com.actionsoft.bpms.commons.mvc.dao.DaoObject; | ||||||
|  | import com.actionsoft.bpms.util.DBSql; | ||||||
|  | import com.actionsoft.exception.AWSDataAccessException; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatBpmnModel; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatEntity; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.StructUtil; | ||||||
|  | import org.apache.commons.lang.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.sql.ResultSet; | ||||||
|  | import java.sql.SQLException; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-22 16:02 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class RlatDao extends DaoObject<RlatEntity> { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int insert(RlatEntity rlatEntity) throws AWSDataAccessException { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int update(RlatEntity rlatEntity) throws AWSDataAccessException { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String entityName() { | ||||||
|  |         return "APP_ACT_COE_PAL_SHAPE_RLAT"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public RowMapper rowMapper() { | ||||||
|  |         return new Mapper(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据文件id批量查询形状关联属性 | ||||||
|  |      * | ||||||
|  |      * @param fileIds | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public List<RlatEntity> selectShapeRlatById(List<String> fileIds) { | ||||||
|  |         String query = ""; | ||||||
|  |         String str = StructUtil.listToSqlStr(fileIds); | ||||||
|  |         if (StringUtils.isNotEmpty(str)) { | ||||||
|  |             query += " AND FILEID IN " + str; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         String sql = "SELECT E.*, (SELECT PLNAME FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID =E.RELATIONFILEID) AS PLNAME FROM " + entityName() + " E  WHERE 1=1 " + query; | ||||||
|  |         List<RlatEntity> list = DBSql.query(sql, new Mapper()); | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static class Mapper implements RowMapper<RlatEntity> { | ||||||
|  | 
 | ||||||
|  |         @Override | ||||||
|  |         public RlatEntity mapRow(ResultSet rset, int i) throws SQLException { | ||||||
|  |             String plname = ""; | ||||||
|  |             try { | ||||||
|  |                 plname = rset.getString("PLNAME"); | ||||||
|  |             } catch (SQLException sqlException) { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             String relationshapetext = rset.getString("RELATIONSHAPETEXT"); | ||||||
|  |             String relationshapeid = rset.getString("RELATIONSHAPEID"); | ||||||
|  |             String relationfileid = rset.getString("RELATIONFILEID"); | ||||||
|  | 
 | ||||||
|  |             if (StringUtils.isEmpty(relationshapeid)) { | ||||||
|  |                 relationshapetext = plname; | ||||||
|  |             } | ||||||
|  |             RlatEntity entity = new RlatEntity(); | ||||||
|  |             entity.setID(rset.getString("ID")); | ||||||
|  |             entity.setATTRID(rset.getString("ATTRID")); | ||||||
|  |             entity.setFILEID(rset.getString("FILEID")); | ||||||
|  |             entity.setRELATIONFILEID(rset.getString("RELATIONFILEID")); | ||||||
|  |             entity.setRELATIONSHAPEID(rset.getString("RELATIONSHAPEID")); | ||||||
|  |             entity.setSHAPEID(rset.getString("SHAPEID")); | ||||||
|  |             entity.setSHAPETEXT(rset.getString("SHAPETEXT")); | ||||||
|  |             try { | ||||||
|  |                 String plmethodid = rset.getString("PLMETHODID"); | ||||||
|  |                 String plcategory = rset.getString("PLCATEGORY"); | ||||||
|  |                 entity.setPLMETHODID(plmethodid); | ||||||
|  |                 entity.setPLCATEGORY(plcategory); | ||||||
|  |             } catch (Exception e) { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             if (StringUtils.isNotEmpty(relationfileid) && relationfileid.equals("00000000-0000-0000-0000-000000000000")) { | ||||||
|  |                 RlatBpmnModel model = JSONObject.parseObject(relationshapetext, RlatBpmnModel.class); | ||||||
|  |                 entity.setRELATIONSHAPETEXT(model); | ||||||
|  |             } else { | ||||||
|  |                 entity.setRELATIONSHAPETEXT(relationshapetext); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             return entity; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,93 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.entity; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-22 17:08 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class FileBasicAttrEntity { | ||||||
|  |     /** | ||||||
|  |      * | ||||||
|  |      */ | ||||||
|  |     private String ID; | ||||||
|  |     /** | ||||||
|  |      *PAL模型ID | ||||||
|  |      */ | ||||||
|  |     private String PLID; | ||||||
|  |     /** | ||||||
|  |      *属性Key | ||||||
|  |      */ | ||||||
|  |     private String PROPERTYID; | ||||||
|  |     /** | ||||||
|  |      *属性名称 | ||||||
|  |      */ | ||||||
|  |     private String PROPERTYNAME; | ||||||
|  |     /** | ||||||
|  |      *属性值 | ||||||
|  |      */ | ||||||
|  |     private String PROPERTYVALUE; | ||||||
|  |     /** | ||||||
|  |      * | ||||||
|  |      */ | ||||||
|  |     private String ORDERINDEX; | ||||||
|  | 
 | ||||||
|  |     public String getID() { | ||||||
|  |         return ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setID(String ID) { | ||||||
|  |         this.ID = ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPLID() { | ||||||
|  |         return PLID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPLID(String PLID) { | ||||||
|  |         this.PLID = PLID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPROPERTYID() { | ||||||
|  |         return PROPERTYID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPROPERTYID(String PROPERTYID) { | ||||||
|  |         this.PROPERTYID = PROPERTYID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPROPERTYNAME() { | ||||||
|  |         return PROPERTYNAME; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPROPERTYNAME(String PROPERTYNAME) { | ||||||
|  |         this.PROPERTYNAME = PROPERTYNAME; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPROPERTYVALUE() { | ||||||
|  |         return PROPERTYVALUE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPROPERTYVALUE(String PROPERTYVALUE) { | ||||||
|  |         this.PROPERTYVALUE = PROPERTYVALUE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getORDERINDEX() { | ||||||
|  |         return ORDERINDEX; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setORDERINDEX(String ORDERINDEX) { | ||||||
|  |         this.ORDERINDEX = ORDERINDEX; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "FileBasicAttrEntity{" + | ||||||
|  |                 "ID='" + ID + '\'' + | ||||||
|  |                 ", PLID='" + PLID + '\'' + | ||||||
|  |                 ", PROPERTYID='" + PROPERTYID + '\'' + | ||||||
|  |                 ", PROPERTYNAME='" + PROPERTYNAME + '\'' + | ||||||
|  |                 ", PROPERTYVALUE='" + PROPERTYVALUE + '\'' + | ||||||
|  |                 ", ORDERINDEX='" + ORDERINDEX + '\'' + | ||||||
|  |                 '}'; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,45 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.entity; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-22 16:08 | ||||||
|  |  * @description 关联的bpmn组织模型 | ||||||
|  |  */ | ||||||
|  | public class RlatBpmnModel { | ||||||
|  |     private String ID; | ||||||
|  |     private String NAME; | ||||||
|  |     private String TYPE; | ||||||
|  | 
 | ||||||
|  |     public String getID() { | ||||||
|  |         return ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setID(String ID) { | ||||||
|  |         this.ID = ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getNAME() { | ||||||
|  |         return NAME; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setNAME(String NAME) { | ||||||
|  |         this.NAME = NAME; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTYPE() { | ||||||
|  |         return TYPE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTYPE(String TYPE) { | ||||||
|  |         this.TYPE = TYPE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "RlatBpmnModel{" + | ||||||
|  |                 "ID='" + ID + '\'' + | ||||||
|  |                 ", NAME='" + NAME + '\'' + | ||||||
|  |                 ", TYPE='" + TYPE + '\'' + | ||||||
|  |                 '}'; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,154 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.entity; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-22 15:58 | ||||||
|  |  * @description 关联属性存储表 | ||||||
|  |  */ | ||||||
|  | public class RlatEntity { | ||||||
|  |     /** | ||||||
|  |      * | ||||||
|  |      */ | ||||||
|  |     private String ID; | ||||||
|  |     /** | ||||||
|  |      *PAL模型ID | ||||||
|  |      */ | ||||||
|  |     private String FILEID; | ||||||
|  |     /** | ||||||
|  |      *PAL模型形状ID | ||||||
|  |      */ | ||||||
|  |     private String SHAPEID; | ||||||
|  |     /** | ||||||
|  |      *PAL模型形状名称 | ||||||
|  |      */ | ||||||
|  |     private String SHAPETEXT; | ||||||
|  |     /** | ||||||
|  |      *属性Key | ||||||
|  |      */ | ||||||
|  |     private String ATTRID; | ||||||
|  |     /** | ||||||
|  |      *关联的PAL模型ID | ||||||
|  |      */ | ||||||
|  |     private String RELATIONFILEID; | ||||||
|  |     /** | ||||||
|  |      *关联的PAL模型形状ID | ||||||
|  |      */ | ||||||
|  |     private String RELATIONSHAPEID; | ||||||
|  |     /** | ||||||
|  |      *关联的PAL模型形状名称 | ||||||
|  |      */ | ||||||
|  |     private Object RELATIONSHAPETEXT; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 主动关联文件的类型 | ||||||
|  |      */ | ||||||
|  |     private String PLMETHODID; | ||||||
|  |     /** | ||||||
|  |      *主动关联文件的分类 | ||||||
|  |      */ | ||||||
|  |     private String PLCATEGORY; | ||||||
|  | 
 | ||||||
|  |     public String getID() { | ||||||
|  |         return ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setID(String ID) { | ||||||
|  |         this.ID = ID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getFILEID() { | ||||||
|  |         return FILEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setFILEID(String FILEID) { | ||||||
|  |         this.FILEID = FILEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getSHAPEID() { | ||||||
|  |         return SHAPEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setSHAPEID(String SHAPEID) { | ||||||
|  |         this.SHAPEID = SHAPEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getSHAPETEXT() { | ||||||
|  |         return SHAPETEXT; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setSHAPETEXT(String SHAPETEXT) { | ||||||
|  |         this.SHAPETEXT = SHAPETEXT; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getATTRID() { | ||||||
|  |         return ATTRID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setATTRID(String ATTRID) { | ||||||
|  |         this.ATTRID = ATTRID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getRELATIONFILEID() { | ||||||
|  |         return RELATIONFILEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setRELATIONFILEID(String RELATIONFILEID) { | ||||||
|  |         this.RELATIONFILEID = RELATIONFILEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getRELATIONSHAPEID() { | ||||||
|  |         return RELATIONSHAPEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setRELATIONSHAPEID(String RELATIONSHAPEID) { | ||||||
|  |         this.RELATIONSHAPEID = RELATIONSHAPEID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Object getRELATIONSHAPETEXT() { | ||||||
|  |         return RELATIONSHAPETEXT; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setRELATIONSHAPETEXT(Object RELATIONSHAPETEXT) { | ||||||
|  | //        if (StringUtils.isNotEmpty(this.RELATIONFILEID)&&this.RELATIONFILEID.equals("00000000-0000-0000-0000-000000000000") ){ | ||||||
|  | //            RlatBpmnModel model = new RlatBpmnModel(); | ||||||
|  | //            if (StringUtils.isNotEmpty(RELATIONSHAPETEXT)){ | ||||||
|  | //                model= JSONObject.parseObject(RELATIONSHAPETEXT, RlatBpmnModel.class); | ||||||
|  | //            } | ||||||
|  | //            this.RELATIONSHAPETEXT = model; | ||||||
|  | // | ||||||
|  | //        }else { | ||||||
|  | //            this.RELATIONSHAPETEXT = RELATIONSHAPETEXT; | ||||||
|  | //        } | ||||||
|  |         this.RELATIONSHAPETEXT = RELATIONSHAPETEXT; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPLMETHODID() { | ||||||
|  |         return PLMETHODID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPLMETHODID(String PLMETHODID) { | ||||||
|  |         this.PLMETHODID = PLMETHODID; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPLCATEGORY() { | ||||||
|  |         return PLCATEGORY; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPLCATEGORY(String PLCATEGORY) { | ||||||
|  |         this.PLCATEGORY = PLCATEGORY; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "RlatEntity{" + | ||||||
|  |                 "ID='" + ID + '\'' + | ||||||
|  |                 ", FILEID='" + FILEID + '\'' + | ||||||
|  |                 ", SHAPEID='" + SHAPEID + '\'' + | ||||||
|  |                 ", SHAPETEXT='" + SHAPETEXT + '\'' + | ||||||
|  |                 ", ATTRID='" + ATTRID + '\'' + | ||||||
|  |                 ", RELATIONFILEID='" + RELATIONFILEID + '\'' + | ||||||
|  |                 ", RELATIONSHAPEID='" + RELATIONSHAPEID + '\'' + | ||||||
|  |                 ", RELATIONSHAPETEXT=" + RELATIONSHAPETEXT + | ||||||
|  |                 '}'; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,333 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.service; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMap; | ||||||
|  | import com.actionsoft.bpms.commons.mvc.view.ResponseObject; | ||||||
|  | import com.actionsoft.bpms.form.engine.FormEngine; | ||||||
|  | import com.actionsoft.bpms.server.UserContext; | ||||||
|  | import com.actionsoft.sdk.local.SDK; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.Constants; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.PalAttrEnum; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.dao.FileBasicAttrDao; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.dao.RepositoryDao; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.dao.RlatDao; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.FileBasicAttrEntity; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatBpmnModel; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatEntity; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.OrgUtil; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.TreeNode; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.TreeUtil; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.util.ViewUtil; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.vo.ProcessFileVO; | ||||||
|  | import jodd.util.StringUtil; | ||||||
|  | import org.apache.commons.collections.CollectionUtils; | ||||||
|  | import org.apache.commons.lang.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.*; | ||||||
|  | import java.util.stream.Collectors; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created with IntelliJ IDEA. | ||||||
|  |  * | ||||||
|  |  * @Author: yuandongqiang | ||||||
|  |  * @Date: 2025/9/17 | ||||||
|  |  * @Description: | ||||||
|  |  */ | ||||||
|  | public class PortalProcessService { | ||||||
|  |     private PortalProcessService() { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static class PortalProcessInstance { | ||||||
|  |         public static PortalProcessService instance = new PortalProcessService(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static PortalProcessService getInstance() { | ||||||
|  |         return PortalProcessInstance.instance; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取流程清单页面左侧树结构初始化数据 | ||||||
|  |      * | ||||||
|  |      * @param ux        用户上下文 | ||||||
|  |      * @param parentId  父级ID | ||||||
|  |      * @param queryName 查询条件 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public String getTreeData(UserContext ux, String parentId, String queryName) { | ||||||
|  |         if (StringUtils.isBlank(parentId)) { | ||||||
|  |             parentId = "process"; | ||||||
|  |         } | ||||||
|  |         UtilService service = UtilService.getInstance(); | ||||||
|  |         String wsId = service.getDefaultWsId(); | ||||||
|  |         if (StringUtils.isEmpty(wsId)) { | ||||||
|  |             return service.getWsIdWarnMsg(); | ||||||
|  |         } | ||||||
|  |         List<JSONObject> files = SDK.getPALRepositoryQueryAPI().getPalRepositoryModelsByPid(wsId, parentId); | ||||||
|  |         List<TreeNode> treeNodes = new ArrayList<>(); | ||||||
|  |         for (JSONObject row : files) { | ||||||
|  |             Boolean use = row.getBoolean("use"); | ||||||
|  |             if (!use) { | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  |             if ("process".equals(parentId)) { | ||||||
|  |                 String name = row.getString("name"); | ||||||
|  |                 int index = row.getIntValue("orderIndex"); | ||||||
|  |                 if (!name.startsWith(String.valueOf(index))) { | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (StringUtil.isNotBlank(queryName)) { | ||||||
|  |                 if (!row.getString("name").contains(queryName)) { | ||||||
|  |                     boolean hasQUery = false; | ||||||
|  |                     String id = row.getString("id"); | ||||||
|  |                     List<JSONObject> list = SDK.getPALRepositoryQueryAPI().getAllPublishedPalRepositoryModelsByPid(wsId, id); | ||||||
|  |                     for (JSONObject jsonObject : list) { | ||||||
|  |                         if (jsonObject.getString("name").contains(queryName)) { | ||||||
|  |                             hasQUery = true; | ||||||
|  |                             break; | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     if (!hasQUery) { | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             TreeNode node = new TreeNode(row.getString("id"), row.getString("name"), row.getString("newParentId")); | ||||||
|  |             treeNodes.add(node); | ||||||
|  |         } | ||||||
|  |         List<TreeNode> processTree = TreeUtil.treeMenu(treeNodes, parentId); | ||||||
|  | 
 | ||||||
|  |         ResponseObject ro = ResponseObject.newOkResponse(); | ||||||
|  |         ro.put("treeData", processTree); | ||||||
|  |         return ro.toString(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询指定节点下的流程文件数据 | ||||||
|  |      * | ||||||
|  |      * @param ux | ||||||
|  |      * @param parentId 当前点击的节点 | ||||||
|  |      * @param page | ||||||
|  |      * @param size | ||||||
|  |      * @param flag     是否添加当前点击节点的信息 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public String getFileData(UserContext ux, String parentId, int page, int size, boolean flag, List<String> myFiles, String params) { | ||||||
|  |         JSONObject paramsMap = null; | ||||||
|  |         if (StringUtils.isNotEmpty(params)) { | ||||||
|  |             paramsMap = JSONObject.parseObject(params); | ||||||
|  |         } | ||||||
|  |         UtilService service = UtilService.getInstance(); | ||||||
|  |         String rootId = "process"; | ||||||
|  |         String wsId = service.getDefaultWsId(); | ||||||
|  |         if (StringUtils.isEmpty(wsId)) { | ||||||
|  |             return service.getWsIdWarnMsg(); | ||||||
|  |         } | ||||||
|  |         JSONObject rootFile = null; | ||||||
|  |         if (StringUtils.isEmpty(parentId)) { | ||||||
|  |             parentId = rootId; | ||||||
|  |         } else { | ||||||
|  |             RepositoryDao RepositoryDao = new RepositoryDao(); | ||||||
|  |             RowMap rowMap = RepositoryDao.selectById(parentId); | ||||||
|  |             rootFile = ViewUtil.toJsonObject(rowMap); | ||||||
|  |         } | ||||||
|  |         List<JSONObject> allFiles = service.getAllDirAndProcessPalByPid(wsId, rootId); | ||||||
|  |         List<JSONObject> files = service.getAllProcessPalByPid(wsId, parentId); | ||||||
|  |         Map<String, List<JSONObject>> allCollect = allFiles.stream().collect(Collectors.groupingBy(el -> el.getString("id"))); | ||||||
|  | 
 | ||||||
|  |         if (rootFile != null && flag) { | ||||||
|  |             files.add(rootFile); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         List<JSONObject> collect = files.stream().sorted(Comparator.comparing(el -> el.getString("orderIndex"))).filter(el -> | ||||||
|  |                 CollectionUtils.isEmpty(myFiles) || myFiles.contains(el.getString("versionId")) | ||||||
|  |         ).sorted(Comparator.comparing(el -> el.getString("name"))).collect(Collectors.toList()); | ||||||
|  |         List data = new ArrayList(); | ||||||
|  |         if (null == paramsMap) { | ||||||
|  |             data = ViewUtil.pageUtil(collect, page, size); | ||||||
|  |             data = setProcessAttr(ux, data, allCollect, paramsMap); | ||||||
|  |         } else { | ||||||
|  |             collect = setProcessAttr(ux, collect, allCollect, paramsMap); | ||||||
|  |             data = ViewUtil.pageUtil(collect, page, size); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         ResponseObject ro = ResponseObject.newOkResponse(); | ||||||
|  |         ro.put("fileData", data); | ||||||
|  |         ro.put("count", collect.size()); | ||||||
|  |         ro.put("processCount", collect.size()); | ||||||
|  |         return ro.toString(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 构建文件的相关属性信息 | ||||||
|  |      * | ||||||
|  |      * @param ux | ||||||
|  |      * @param files | ||||||
|  |      * @param allFileMap | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public List setProcessAttr(UserContext ux, List<JSONObject> files, Map<String, List<JSONObject>> allFileMap, JSONObject paramsMap) { | ||||||
|  |         String queryName = ""; | ||||||
|  |         String queryDept = ""; | ||||||
|  |         if (null != paramsMap) { | ||||||
|  |             queryName = paramsMap.getString("name"); | ||||||
|  |             queryDept = paramsMap.getString("dept"); | ||||||
|  |         } | ||||||
|  |         List<ProcessFileVO> data = new ArrayList<>(); | ||||||
|  |         String sid = ux.getSessionId(); | ||||||
|  |         List<String> fileIdList = new ArrayList<>(); | ||||||
|  |         for (JSONObject file : files) { | ||||||
|  |             String id = file.getString("id"); | ||||||
|  |             fileIdList.add(id); | ||||||
|  |         } | ||||||
|  |         Map<String, List<RlatEntity>> relAttr = queryRelAttr(fileIdList); | ||||||
|  |         Map<String, List<FileBasicAttrEntity>> basicAttr = queryBasicAttr(fileIdList); | ||||||
|  | 
 | ||||||
|  |         for (JSONObject row : files) { | ||||||
|  |             String id = row.getString("id"); | ||||||
|  |             List<FileBasicAttrEntity> basic = basicAttr.get(id); | ||||||
|  |             String number = ""; | ||||||
|  |             if (CollectionUtils.isNotEmpty(basic)) { | ||||||
|  |                 for (FileBasicAttrEntity fileBasic : basic) { | ||||||
|  |                     if (fileBasic.getPROPERTYID().equals("number")) { | ||||||
|  |                         number = fileBasic.getPROPERTYVALUE(); | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             // 业务域与流程组 | ||||||
|  |             List<JSONObject> fileLink = findFileLink(allFileMap, id); | ||||||
|  |             String businessName = ""; | ||||||
|  |             String proGroupName = ""; | ||||||
|  |             if (fileLink != null && fileLink.size() > 1) { | ||||||
|  |                 JSONObject firstLevel = fileLink.get(1); | ||||||
|  |                 businessName = firstLevel == null ? "" : firstLevel.getString("name"); | ||||||
|  |             } | ||||||
|  |             if (fileLink != null && fileLink.size() > 2) { | ||||||
|  |                 JSONObject secondLevel = fileLink.get(2); | ||||||
|  |                 proGroupName = secondLevel == null ? "" : secondLevel.getString("name"); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //发布时间 | ||||||
|  |             Date date = row.getDate("publishDate"); | ||||||
|  |             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); | ||||||
|  | 
 | ||||||
|  |             String publishDate = date == null ? "" : format.format(date); | ||||||
|  |             //跳转链接 | ||||||
|  |             String url = "./w?sid=" + sid + "&cmd=" + Constants.openCmd + "&uuid=" + id + "&taskId="; | ||||||
|  | 
 | ||||||
|  |             //关联文件 | ||||||
|  |             List<String> compIds = new ArrayList<>();//关联合规文件 | ||||||
|  |             List<String> regimeIds = new ArrayList<>();//关联制度文件 | ||||||
|  |             List<String> formIds = new ArrayList<>();//关联表单文件 | ||||||
|  |             String duty_dept = ""; | ||||||
|  |             String duty_person = ""; | ||||||
|  |             List<RlatEntity> list = relAttr.get(id); | ||||||
|  |             if (list != null && !list.isEmpty()) { | ||||||
|  |                 Map<String, List<RlatEntity>> collect = list.stream().collect(Collectors.groupingBy(RlatEntity::getATTRID)); | ||||||
|  | 
 | ||||||
|  |                 //责任人 | ||||||
|  |                 List<RlatEntity> duty_p = collect.get(PalAttrEnum.DUTY_PERSON.getKey()); | ||||||
|  |                 if (duty_p != null && !duty_p.isEmpty()) { | ||||||
|  |                     try { | ||||||
|  |                         RlatBpmnModel model = (RlatBpmnModel) duty_p.get(0).getRELATIONSHAPETEXT(); | ||||||
|  |                         duty_person = model.getNAME(); | ||||||
|  |                     } catch (Exception e) { | ||||||
|  |                         e.printStackTrace(); | ||||||
|  |                         SDK.getLogAPI().consoleErr("流程的【责任人】查询异常,其属性【" + PalAttrEnum.DUTY_PERSON.getKey() + "】不是关联的aws组织结构"); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (StringUtils.isNotEmpty(queryName) && !duty_person.contains(queryName)) continue; | ||||||
|  |                 //责任部门 | ||||||
|  |                 duty_dept = OrgUtil.getRelAttr(collect, PalAttrEnum.DUTY_DEPT.getKey()); | ||||||
|  |                 if (StringUtils.isNotEmpty(queryDept) && !duty_dept.contains(queryDept)) continue; | ||||||
|  | 
 | ||||||
|  |                 //表单 | ||||||
|  |                 List<RlatEntity> formList = collect.get(PalAttrEnum.FORM.getKey()) == null ? new ArrayList<>() : collect.get(PalAttrEnum.FORM.getKey()); | ||||||
|  |                 for (RlatEntity form : formList) { | ||||||
|  |                     if (!formIds.contains(form.getRELATIONFILEID())) { | ||||||
|  |                         formIds.add(form.getRELATIONFILEID()); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 //合规文件 | ||||||
|  |                 List<RlatEntity> complianceList = collect.get(PalAttrEnum.COMPLIANCE.getKey()) == null ? new ArrayList<>() : collect.get(PalAttrEnum.COMPLIANCE.getKey()); | ||||||
|  | 
 | ||||||
|  |                 for (RlatEntity comp : complianceList) { | ||||||
|  |                     if (!compIds.contains(comp.getRELATIONSHAPEID())) { | ||||||
|  |                         compIds.add(comp.getRELATIONSHAPEID()); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 //制度 | ||||||
|  |                 List<RlatEntity> regimeList = collect.get(PalAttrEnum.REGIME.getKey()) == null ? new ArrayList<>() : collect.get(PalAttrEnum.REGIME.getKey()); | ||||||
|  |                 regimeList = regimeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> | ||||||
|  |                         new TreeSet<>(Comparator.comparing(el -> el.getFILEID() + "-" + el.getRELATIONFILEID() + | ||||||
|  |                                 "-" + el.getRELATIONSHAPEID()))), ArrayList::new)); | ||||||
|  |                 for (RlatEntity regime : regimeList) { | ||||||
|  |                     regimeIds.add(regime.getRELATIONSHAPEID()); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             if (null != paramsMap && CollectionUtils.isEmpty(list)) { | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  |             ProcessFileVO fileVO = new ProcessFileVO(url, id, businessName, proGroupName, number, row.getString("name"), "", publishDate, compIds, regimeIds, formIds, duty_dept, duty_person); | ||||||
|  |             data.add(fileVO); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //   List<ProcessFileVO> fileData = TestData.getFileData(); | ||||||
|  |         return data; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询文件的关联属性 | ||||||
|  |      * | ||||||
|  |      * @param fileIdList | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     public Map<String, List<RlatEntity>> queryRelAttr(List<String> fileIdList) { | ||||||
|  |         RlatDao dao = new RlatDao(); | ||||||
|  |         List<RlatEntity> list = dao.selectShapeRlatById(fileIdList); | ||||||
|  |         Map<String, List<RlatEntity>> collect = list.stream().collect(Collectors.groupingBy(el -> el.getFILEID())); | ||||||
|  |         return collect; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询文件的基础属性 | ||||||
|  |      * | ||||||
|  |      * @param fileIdList | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public Map<String, List<FileBasicAttrEntity>> queryBasicAttr(List<String> fileIdList) { | ||||||
|  |         FileBasicAttrDao dao = new FileBasicAttrDao(); | ||||||
|  |         List<FileBasicAttrEntity> list = dao.selectBasicAttrByFileIds(fileIdList); | ||||||
|  |         Map<String, List<FileBasicAttrEntity>> collect = list.stream().collect(Collectors.groupingBy(el -> el.getPLID())); | ||||||
|  |         return collect; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 从最底层向上查询出文件链 | ||||||
|  |      * | ||||||
|  |      * @param collect | ||||||
|  |      * @param id | ||||||
|  |      * @return list的index即为从下往上的层数 | ||||||
|  |      */ | ||||||
|  |     public List<JSONObject> findFileLink(Map<String, List<JSONObject>> collect, String id) { | ||||||
|  |         List<JSONObject> fileModels = collect.get(id); | ||||||
|  |         List<JSONObject> list = new ArrayList<>(); | ||||||
|  | //        SDK.getLogAPI().consoleInfo(id+":开始寻找流程链"); | ||||||
|  |         while (fileModels != null && !fileModels.isEmpty()) { | ||||||
|  |             JSONObject file = fileModels.get(0); | ||||||
|  |             id = file.getString("newParentId"); | ||||||
|  |             fileModels = collect.get(id); | ||||||
|  |             list.add(file); | ||||||
|  |         } | ||||||
|  | //        SDK.getLogAPI().consoleInfo(id+":结束寻找流程链"); | ||||||
|  |         Collections.reverse(list); | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,87 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.service; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.mvc.view.ResponseObject; | ||||||
|  | import com.actionsoft.sdk.local.SDK; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.constant.Constants; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.dao.RepositoryDao; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.stream.Collectors; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-24 10:49 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class UtilService { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private UtilService() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static class FactorInstance { | ||||||
|  |         private static UtilService instance = new UtilService(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static UtilService getInstance() { | ||||||
|  |         return FactorInstance.instance; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询默认访问的资产库id | ||||||
|  |      * | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public String getDefaultWsId() { | ||||||
|  |         String wsName = SDK.getAppAPI().getProperty("com.awspaas.user.apps.nqms.portal.indexpage", "wsName"); | ||||||
|  |         RepositoryDao repositoryDao = new RepositoryDao(); | ||||||
|  |         return repositoryDao.getWsId(wsName); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getWsIdWarnMsg() { | ||||||
|  |         ResponseObject ro = ResponseObject.newWarnResponse("请检查【门户首页】应用中参数[默认资产库名称]是否配置正确"); | ||||||
|  |         return ro.toString(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据根id获取下面的全部数据(流程类) | ||||||
|  |      * 包含文件夹 | ||||||
|  |      * | ||||||
|  |      * @param wsId | ||||||
|  |      * @param pid | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public List<JSONObject> getAllDirAndProcessPalByPid(String wsId, String pid) { | ||||||
|  |         //查找使用中状态下的文件,可以查出来文件夹,发布状态的无法查出来文件夹 | ||||||
|  |         List<JSONObject> list; | ||||||
|  |         if (new Constants().processCheckType.equals("1")) { | ||||||
|  |             List<JSONObject> useList = SDK.getPALRepositoryQueryAPI().getAllUsedPalRepositoryModelsByPid(wsId, pid); | ||||||
|  |             useList = useList.stream().filter(el -> "default".equals(el.getString("methodId"))).collect(Collectors.toList()); | ||||||
|  |             list = SDK.getPALRepositoryQueryAPI().getAllPublishedPalRepositoryModelsByPid(wsId, pid); | ||||||
|  |             list.addAll(useList); | ||||||
|  |         } else { | ||||||
|  |             list = SDK.getPALRepositoryQueryAPI().getAllUsedPalRepositoryModelsByPid(wsId, pid); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据根id获取下面的全部数据(流程类) | ||||||
|  |      * 不包含文件夹 | ||||||
|  |      * | ||||||
|  |      * @param wsId | ||||||
|  |      * @param pid | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public List<JSONObject> getAllProcessPalByPid(String wsId, String pid) { | ||||||
|  |         List<JSONObject> list; | ||||||
|  |         if (new Constants().processCheckType.equals("1")) { | ||||||
|  |             list = SDK.getPALRepositoryQueryAPI().getAllPublishedPalRepositoryModelsByPid(wsId, pid); | ||||||
|  |         } else { | ||||||
|  |             list = SDK.getPALRepositoryQueryAPI().getAllUsedPalRepositoryModelsByPid(wsId, pid); | ||||||
|  |             list = list.stream().filter(el -> !"default".equals(el.getString("methodId"))).collect(Collectors.toList()); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,32 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.util; | ||||||
|  | 
 | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatBpmnModel; | ||||||
|  | import com.awspaas.user.apps.nqms.portal.view.process.entity.RlatEntity; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-05-25 17:01 | ||||||
|  |  * @description 组织数据相关 | ||||||
|  |  */ | ||||||
|  | public class OrgUtil { | ||||||
|  | 
 | ||||||
|  |     public static String getRelAttr(Map<String, List<RlatEntity>> relAttr , String attrId){ | ||||||
|  |         String attrVal = ""; | ||||||
|  |         List<RlatEntity> attr = relAttr.get(attrId); | ||||||
|  |         if (attr!=null&&!attr.isEmpty()){ | ||||||
|  |             RlatEntity entity = attr.get(0); | ||||||
|  |             if ( entity.getRELATIONFILEID().equals("00000000-0000-0000-0000-000000000000")) { | ||||||
|  |                 RlatBpmnModel bpmnModel = (RlatBpmnModel) entity.getRELATIONSHAPETEXT(); | ||||||
|  |                 return bpmnModel.getNAME(); | ||||||
|  |             }else { | ||||||
|  |                 return (String) entity.getRELATIONSHAPETEXT(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         }else { | ||||||
|  |             return ""; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,361 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.util; | ||||||
|  | 
 | ||||||
|  | import org.apache.commons.lang.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-04-17 14:08 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class StructUtil { | ||||||
|  |     /** | ||||||
|  |      * @param list | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static String listToSqlStr(List<String> list) { | ||||||
|  |         if (list == null || list.isEmpty()) return ""; | ||||||
|  |         StringBuilder sqlStr = new StringBuilder("("); | ||||||
|  |         for (String el : list) { | ||||||
|  |             if (StringUtils.isEmpty(el)) continue; | ||||||
|  |             String str = "'" + el + "',"; | ||||||
|  |             sqlStr.append(str); | ||||||
|  |         } | ||||||
|  |         sqlStr.append(")"); | ||||||
|  |         int i = sqlStr.lastIndexOf(","); | ||||||
|  |         if (i>=0){ | ||||||
|  |             sqlStr.deleteCharAt(i); | ||||||
|  |         } | ||||||
|  |         String str = sqlStr.toString(); | ||||||
|  |         return str.equals("()")?"":str; | ||||||
|  |     } | ||||||
|  | /* | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 转为basemodel | ||||||
|  |      * | ||||||
|  |      * @param list | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static List<FileModel> toFileModel(List<RowMap> list) { | ||||||
|  |         Map<String, List<RowMap>> processFile = list.stream().collect(Collectors.groupingBy(el -> el.getString("ID"))); | ||||||
|  | 
 | ||||||
|  |         List<FileModel> data = new ArrayList<>(); | ||||||
|  |         for (String key : processFile.keySet()) { | ||||||
|  |             FileModel model = new FileModel(); | ||||||
|  |             model = setFileModel(model, processFile.get(key).get(0)); | ||||||
|  |             updateFileModel(processFile.get(key), model); | ||||||
|  |             data.add(model); | ||||||
|  |         } | ||||||
|  |         return data; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static List<FileModel> setFileAttr(List<RowMap> list, List<FileModel> fileModels) { | ||||||
|  |         Map<String, List<RowMap>> rel = list.stream().collect(Collectors.groupingBy(el -> el.getString("PL_ID"))); | ||||||
|  |         for (FileModel file : fileModels) { | ||||||
|  |             String plId = file.getID(); | ||||||
|  |             List<RowMap> rowMaps = rel.get(plId); | ||||||
|  |             updateFileModel(rowMaps, file); | ||||||
|  |         } | ||||||
|  |         return fileModels; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 根据结果集,更新文件模型里形状的属性 | ||||||
|  |      * @param list | ||||||
|  |      * @param fileModels | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static List<FileModel> setShapeAttr(List<RowMap> list, List<FileModel> fileModels) { | ||||||
|  |         Map<String, List<RowMap>> rel = list.stream().collect(Collectors.groupingBy(el -> el.getString("PL_ID"))); | ||||||
|  |         for (FileModel file : fileModels) { | ||||||
|  |             String plId = file.getID(); | ||||||
|  |             List<RowMap> rowMaps = rel.get(plId); | ||||||
|  |             updateShapeModelAttr(rowMaps, file); | ||||||
|  |         } | ||||||
|  |         return fileModels; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 更新文件模型的属性 | ||||||
|  |      * | ||||||
|  |      * @param rowMaps | ||||||
|  |      * @param model | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static void updateFileModel(List<RowMap> rowMaps, FileModel model) { | ||||||
|  |         AttrModel attrModel = model.getAttrModel() == null ? new AttrModel() : model.getAttrModel(); | ||||||
|  |         for (RowMap map : rowMaps) { | ||||||
|  | //            String parentId = map.getString("PL_ID"); | ||||||
|  | //            //被哪个文件使用 | ||||||
|  | //            if (StringUtils.isNotEmpty(parentId) && !parentId.equals(model.getID())) { | ||||||
|  | //                List<Map<String,String>> relationId = attrModel.getRelationList() == null ? new ArrayList<>() : attrModel.getRelationList(); | ||||||
|  | //                HashMap<String, String> rel = new HashMap<>(); | ||||||
|  | //                if (!relationId.contains(parentId)) { | ||||||
|  | //                    relationId.add(parentId); | ||||||
|  | //                    attrModel.setRelationId(relationId); | ||||||
|  | //                } | ||||||
|  | //            } | ||||||
|  |             setBasicAttr(map, attrModel); | ||||||
|  |             setAwsRelAttr(map, attrModel); | ||||||
|  |             setRelAttr(map, attrModel); | ||||||
|  |         } | ||||||
|  |         model.setAttrModel(attrModel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 更新形状模型的属性 | ||||||
|  |      * @param rowMaps | ||||||
|  |      * @param model | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static void updateShapeModelAttr(List<RowMap> rowMaps, FileModel model){ | ||||||
|  |         Map<String, List<RowMap>> attrs = rowMaps.stream().collect(Collectors.groupingBy(el -> el.getString("SHAPE_ID"))); | ||||||
|  | //        List<ShapeModel> shapes = model.getAttrModel().getShapes(); | ||||||
|  |         List<ShapeModel> shapes = model.getShapes(); | ||||||
|  |         for (ShapeModel shape:shapes) { | ||||||
|  |             ShapeAttrModel shapeAttrModel = shape.getShapeAttrModel()==null?new ShapeAttrModel(): shape.getShapeAttrModel(); | ||||||
|  |                     List<RowMap> shapeAttrs = attrs.get(shape.getID()); | ||||||
|  |             for (RowMap shapeAttr:shapeAttrs) { | ||||||
|  |                 setBasicAttr(shapeAttr,shapeAttrModel); | ||||||
|  |                 setRelAttr(shapeAttr,shapeAttrModel); | ||||||
|  |                 setAwsRelAttr(shapeAttr,shapeAttrModel); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     public static void setAttrModel(RowMap map, AttrModel attrModel) { | ||||||
|  |         setBasicAttr(map,attrModel); | ||||||
|  |         setAwsRelAttr(map,attrModel); | ||||||
|  |         setRelAttr(map,attrModel); | ||||||
|  |     } | ||||||
|  |         */ | ||||||
|  | /** | ||||||
|  |          * 设置基础属性 | ||||||
|  |          * | ||||||
|  |          * @param map | ||||||
|  |          * @param attrModel | ||||||
|  |          *//* | ||||||
|  | 
 | ||||||
|  |     public static void setBasicAttr(RowMap map, AttrModel attrModel) { | ||||||
|  |         String attr_id = map.getString("ATTR_ID"); | ||||||
|  |         String attr_name = map.getString("ATTR_NAME"); | ||||||
|  |         String attr_value = map.getString("ATTR_VALUE"); | ||||||
|  |         if (attr_value != null) { | ||||||
|  |             if (Constants.number.equals(attr_id)) { | ||||||
|  |                 attrModel.setNumber(attr_value); | ||||||
|  |             } else if (Constants.desc.equals(attr_id)) { | ||||||
|  |                 attrModel.setDesc(attr_value); | ||||||
|  |             } else { | ||||||
|  |                 List<BasicAttrModel> basicAttr = attrModel.getBasicAttr() == null ? new ArrayList<>() : attrModel.getBasicAttr(); | ||||||
|  |                 BasicAttrModel basicAttrModel = new BasicAttrModel(); | ||||||
|  |                 basicAttrModel.setID(attr_id); | ||||||
|  |                 basicAttrModel.setNAME(attr_name); | ||||||
|  |                 basicAttrModel.setVALUE(attr_value); | ||||||
|  |                 basicAttr.add(basicAttrModel); | ||||||
|  |                 attrModel.setBasicAttr(basicAttr); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 设置关联aws组织的属性 | ||||||
|  |      * | ||||||
|  |      * @param map | ||||||
|  |      * @param attrModel | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static void setAwsRelAttr(RowMap map, AttrModel attrModel) { | ||||||
|  |         String attr_id = map.getString("ATTR_ID"); | ||||||
|  |         String fileId = map.getString("RELATION_FILE_ID"); | ||||||
|  |         String textId = map.getString("RELATION_TEXT_ID"); | ||||||
|  |         String textName = map.getString("RELATION_TEXT_NAME"); | ||||||
|  |         String textType = map.getString("RELATION_TEXT_TYPE"); | ||||||
|  |         List<AwsOrgModel>  dutyDept=attrModel.getDuty_dept()==null?new ArrayList<>():attrModel.getDuty_dept(); | ||||||
|  |         List<AwsOrgModel>  dutyPerson=attrModel.getDuty_person()==null?new ArrayList<>():attrModel.getDuty_person(); | ||||||
|  |         AwsOrgModel dutyDeptMap = new AwsOrgModel(); | ||||||
|  |         AwsOrgModel dutyPersonMap = new AwsOrgModel(); | ||||||
|  |         if ("00000000-0000-0000-0000-000000000000".equals(fileId)) { | ||||||
|  |             if (Constants.dutyDept.equals(attr_id)) { | ||||||
|  |                 dutyDeptMap.setID(textId); | ||||||
|  |                 dutyDeptMap.setNAME(textName); | ||||||
|  |                 dutyDeptMap.setTYPE(textType); | ||||||
|  |                 dutyDept.add(dutyDeptMap); | ||||||
|  |             } else if (Constants.dutyPerson.equals(attr_id)) { | ||||||
|  |                 dutyPersonMap.setID(textId); | ||||||
|  |                 dutyPersonMap.setNAME(textName); | ||||||
|  |                 dutyPersonMap.setTYPE(textType); | ||||||
|  |                 dutyPerson.add(dutyPersonMap); | ||||||
|  |             } | ||||||
|  |             attrModel.setDuty_dept(dutyDept); | ||||||
|  |             attrModel.setDuty_person(dutyPerson); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 设置关联pal文件的属性 | ||||||
|  |      * | ||||||
|  |      * @param map | ||||||
|  |      * @param attrModel | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static void setRelAttr(RowMap map, AttrModel attrModel) { | ||||||
|  |         String fileId = map.getString("RELATION_FILE_ID"); | ||||||
|  |         String shapeId = map.getString("RELATION_SHAPE_ID"); | ||||||
|  |         String shapeText = map.getString("RELATION_SHAPE_TEXT"); | ||||||
|  |         if (StringUtils.isEmpty(shapeId)) { | ||||||
|  |             List<FileModel> relationFile = attrModel.getRelationFile() == null ? new ArrayList<>() : attrModel.getRelationFile(); | ||||||
|  |             FileModel relation = new FileModel(); | ||||||
|  |             relation.setID(fileId); | ||||||
|  |             relationFile.add(relation); | ||||||
|  |             attrModel.setRelationFile(relationFile); | ||||||
|  |         } else if (StringUtils.isNotEmpty(shapeId)) { | ||||||
|  |             List<ShapeModel> relationShape = attrModel.getRelationShape() == null ? new ArrayList<>() : attrModel.getRelationShape(); | ||||||
|  |             ShapeModel relation = new ShapeModel(); | ||||||
|  |             relation.setID(fileId); | ||||||
|  |             relationShape.add(relation); | ||||||
|  |             attrModel.setRelationShape(relationShape); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 将查询结果转为shape对象 | ||||||
|  |      * | ||||||
|  |      * @param rowMaps | ||||||
|  |      * @param files | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static List<FileModel> toShapeModel(List<RowMap> rowMaps, List<FileModel> files) { | ||||||
|  |         Map<String, List<RowMap>> shapeMap = rowMaps.stream().collect(Collectors.groupingBy(el -> el.getString("PL_ID"))); | ||||||
|  |         for (FileModel file : files) { | ||||||
|  |             String fileId = file.getID(); | ||||||
|  | //            AttrModel attrModel = file.getAttrModel() == null ? new AttrModel() : file.getAttrModel(); | ||||||
|  |             List<ShapeModel> shapeModels = file.getShapes() == null ? new ArrayList<>() : file.getShapes(); | ||||||
|  |             List<RowMap> shapes = shapeMap.get(fileId); | ||||||
|  |             for (RowMap row : shapes) { | ||||||
|  |                 ShapeModel shapeModel = new ShapeModel(); | ||||||
|  |                 shapeModels.add(setShapeModel(shapeModel, row)); | ||||||
|  |             } | ||||||
|  |             file.setShapes(shapeModels); | ||||||
|  | //            file.setAttrModel(attrModel); | ||||||
|  |         } | ||||||
|  |         return files; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 转为形状模型 | ||||||
|  |      * @param rowMaps | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static List<ShapeModel> toShapeModel(List<RowMap> rowMaps) { | ||||||
|  |         ArrayList<ShapeModel> list = new ArrayList<>(); | ||||||
|  |         for (RowMap map:rowMaps | ||||||
|  |         ) { | ||||||
|  |             ShapeModel shapeModel = new ShapeModel(); | ||||||
|  |             StructUtil.setShapeModel(shapeModel, map); | ||||||
|  |             list.add(shapeModel); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * @param model | ||||||
|  |      * @param map | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static FileModel setFileModel(FileModel model, RowMap map) { | ||||||
|  |         model.setID(map.getString("ID")); // 唯一标识 | ||||||
|  |         model.setWS_ID(map.getString("WS_ID")); | ||||||
|  |         model.setMODEL_NAME(map.getString("MODEL_NAME")); | ||||||
|  |         model.setMODEL_PARENT_ID(map.getString("MODEL_PARENT_ID")); | ||||||
|  |         model.setMODEL_PARENT_NAME(map.getString("MODEL_PARENT_NAME")); | ||||||
|  |         model.setREPO_LEVEL(map.getString("REPO_LEVEL")); | ||||||
|  |         model.setIS_USE(map.getString("IS_USE")); | ||||||
|  |         model.setIS_APPROVAL(map.getString("IS_APPROVAL")); | ||||||
|  |         model.setIS_PUBLISH(map.getString("IS_PUBLISH")); | ||||||
|  |         model.setIS_STOP(map.getString("IS_STOP")); | ||||||
|  |         model.setPUBLISH_USER(map.getString("PUBLISH_USER")); | ||||||
|  |         model.setPUBLISH_DATE(map.getString("PUBLISH_DATE")); | ||||||
|  |         model.setCATEGORY_ID(map.getString("CATEGORY_ID")); | ||||||
|  |         model.setCATEGORY_NAME(map.getString("CATEGORY_NAME")); | ||||||
|  |         model.setMETHOD_ID(map.getString("METHOD_ID")); | ||||||
|  |         model.setMETHOD_NAME(map.getString("METHOD_NAME")); | ||||||
|  |         model.setVERSION_NUM(map.getString("VERSION_NUM")); | ||||||
|  |         model.setVERSION_ID(map.getString("VERSION_ID")); | ||||||
|  |         model.setPROCESSINST_ID(map.getString("PROCESSINST_ID")); | ||||||
|  |         model.setIS_CORRELATE(map.getString("IS_CORRELATE")); | ||||||
|  |         model.setCORRELATE_TYPE(map.getString("CORRELATE_TYPE")); | ||||||
|  |         model.setCORRELATE_AWS_ID(map.getString("CORRELATE_AWS_ID")); | ||||||
|  |         return model; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 转换形状模型 | ||||||
|  |      * @param model | ||||||
|  |      * @param map | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static ShapeModel setShapeModel(ShapeModel model, RowMap map) { | ||||||
|  |         model.setID(map.getString("ID")); | ||||||
|  |         model.setDEFAULT_NAME(map.getString("DEFAULT_NAME")); | ||||||
|  |         model.setPL_ID(map.getString("PL_ID")); | ||||||
|  |         model.setSHAPE_CATEGORY(map.getString("SHAPE_CATEGORY")); | ||||||
|  |         model.setSHAPE_ID(map.getString("SHAPE_ID")); | ||||||
|  |         model.setSHAPE_NAME(map.getString("SHAPE_NAME")); | ||||||
|  |         model.setSHAPE_TYPE(map.getString("SHAPE_TYPE")); | ||||||
|  |         model.setWS_ID(map.getString("WS_ID")); | ||||||
|  |         return model; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 从文件模型集合中获取文件ID的集合 | ||||||
|  |      * @param files | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static  List<String> getFileIds(List<FileModel> files) { | ||||||
|  |         List<String> ids = new ArrayList<>(); | ||||||
|  |         for (FileModel model : files | ||||||
|  |         ) { | ||||||
|  |             ids.add(model.getID()); | ||||||
|  |         } | ||||||
|  | //        return listToSqlStr(ids); | ||||||
|  |         return ids; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     */ | ||||||
|  | /** | ||||||
|  |      * 从形状模型中获取形状id的集合 | ||||||
|  |      * @param shapes | ||||||
|  |      * @return | ||||||
|  |      *//* | ||||||
|  | 
 | ||||||
|  |     public static List<String> getShapeIds(List<ShapeModel> shapes){ | ||||||
|  |         List<String> ids = new ArrayList<>(); | ||||||
|  |         for (ShapeModel model : shapes | ||||||
|  |         ) { | ||||||
|  |             ids.add(model.getID()); | ||||||
|  |         } | ||||||
|  |         return ids; | ||||||
|  |     } | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,148 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.util; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author ZHULIMIN | ||||||
|  |  */ | ||||||
|  | public class TreeNode { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 节点id | ||||||
|  |      */ | ||||||
|  |     private String id; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 节点名称 | ||||||
|  |      */ | ||||||
|  |     private String label; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 父节点 默认0为根节点 | ||||||
|  |      */ | ||||||
|  |     private String parentId; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 是否显示  true false | ||||||
|  |      */ | ||||||
|  |     private Boolean disabled; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 是否有子节点 | ||||||
|  |      */ | ||||||
|  |     private boolean hasChild; | ||||||
|  |     /** | ||||||
|  |      * 是否有子节点 | ||||||
|  |      */ | ||||||
|  |     private String isPublish; | ||||||
|  |     /** | ||||||
|  |      * 子节点 | ||||||
|  |      */ | ||||||
|  |     private List<TreeNode> children; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 图标 | ||||||
|  |      */ | ||||||
|  |     private String icon; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 文件类型 | ||||||
|  |      */ | ||||||
|  |     private String methodId = ""; | ||||||
|  | 
 | ||||||
|  |     public TreeNode() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public TreeNode(String id, String label, String parentId) { | ||||||
|  |         this.id = id; | ||||||
|  |         this.label = label; | ||||||
|  |         this.parentId = parentId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public TreeNode(String id, String label, String parentId, Boolean disabled, boolean hasChild, String isPublish, List<TreeNode> children, String icon, String methodId) { | ||||||
|  |         this.id = id; | ||||||
|  |         this.label = label; | ||||||
|  |         this.parentId = parentId; | ||||||
|  |         this.disabled = disabled; | ||||||
|  |         this.hasChild = hasChild; | ||||||
|  |         this.isPublish = isPublish; | ||||||
|  |         this.children = children; | ||||||
|  |         this.icon = icon; | ||||||
|  |         this.methodId = methodId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getIcon() { | ||||||
|  |         return icon; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setIcon(String icon) { | ||||||
|  |         this.icon = icon; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getMethodId() { | ||||||
|  |         return methodId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setMethodId(String methodId) { | ||||||
|  |         this.methodId = methodId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getIsPublish() { | ||||||
|  |         return isPublish; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setIsPublish(String isPublish) { | ||||||
|  |         this.isPublish = isPublish; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public String getId() { | ||||||
|  |         return id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setId(String id) { | ||||||
|  |         this.id = id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getLabel() { | ||||||
|  |         return label; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setLabel(String label) { | ||||||
|  |         this.label = label; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getParentId() { | ||||||
|  |         return parentId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setParentId(String parentId) { | ||||||
|  |         this.parentId = parentId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Boolean getDisabled() { | ||||||
|  |         return disabled; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDisabled(Boolean disabled) { | ||||||
|  |         this.disabled = disabled; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public boolean isHasChild() { | ||||||
|  |         return hasChild; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setHasChild(boolean hasChild) { | ||||||
|  |         this.hasChild = hasChild; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<TreeNode> getChildren() { | ||||||
|  |         return children; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setChildren(List<TreeNode> children) { | ||||||
|  |         this.children = children; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,177 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.util; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMap; | ||||||
|  | 
 | ||||||
|  | import java.util.*; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 树形结构工具类 | ||||||
|  |  * | ||||||
|  |  * @author ZHULIMIN | ||||||
|  |  * @version 1.0 | ||||||
|  |  * @date 2023-02-28 14:57:00 | ||||||
|  |  */ | ||||||
|  | public final class TreeUtil { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 树形结构工具类 | ||||||
|  |      * <p> | ||||||
|  |      * 将一组list对象转成树形结构 | ||||||
|  |      * 该list需符合设定的字段类型 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     static List<TreeNode> menuCommon = null; | ||||||
|  | 
 | ||||||
|  |     private static List list; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 转为树结构 | ||||||
|  |      * | ||||||
|  |      * @param menu | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static List<TreeNode> treeMenu(final List<TreeNode> menu) { | ||||||
|  |         menuCommon = menu; | ||||||
|  |         list = new ArrayList<>(); | ||||||
|  |         for (TreeNode treeNode : menu) { | ||||||
|  |             Map mapArr = Collections.synchronizedMap(new LinkedHashMap<>()); | ||||||
|  |             if ("0".equals(treeNode.getParentId())) { | ||||||
|  |                 setTreeMap(mapArr, treeNode); | ||||||
|  |                 list.add(mapArr); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static List<TreeNode> treeMenu(final List<TreeNode> menu, List<String> parentList) { | ||||||
|  |         menuCommon = menu; | ||||||
|  |         list = new ArrayList<>(); | ||||||
|  |         for (TreeNode treeNode : menu) { | ||||||
|  |             Map mapArr = Collections.synchronizedMap(new LinkedHashMap<>()); | ||||||
|  |             if (parentList.contains(treeNode.getParentId())) { | ||||||
|  |                 setTreeMap(mapArr, treeNode); | ||||||
|  |                 list.add(mapArr); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  |     public static List<TreeNode> treeMenu(final List<TreeNode> menu, String parentId) { | ||||||
|  |         menuCommon = menu; | ||||||
|  |         list = new ArrayList<>(); | ||||||
|  |         for (TreeNode treeNode : menu) { | ||||||
|  |             Map mapArr = Collections.synchronizedMap(new LinkedHashMap<>()); | ||||||
|  |             if (parentId.equals(treeNode.getParentId())) { | ||||||
|  |                 setTreeMap(mapArr, treeNode); | ||||||
|  |                 list.add(mapArr); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static List menuChild(String id) { | ||||||
|  |         List lists = new ArrayList(); | ||||||
|  |         for (TreeNode a : menuCommon) { | ||||||
|  |             Map childArray = Collections.synchronizedMap(new LinkedHashMap()); | ||||||
|  |             if (a.getParentId().equals(id)) { | ||||||
|  |                 setTreeMap(childArray, a); | ||||||
|  |                 lists.add(childArray); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return lists; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private static void setTreeMap(Map mapArr, TreeNode treeNode) { | ||||||
|  |         mapArr.put("id", treeNode.getId()); | ||||||
|  |         mapArr.put("label", treeNode.getLabel()); | ||||||
|  |         mapArr.put("parentId", treeNode.getParentId()); | ||||||
|  |         mapArr.put("methodId", treeNode.getMethodId()); | ||||||
|  |         mapArr.put("icon", treeNode.getIcon()); | ||||||
|  |         List childrens = menuChild(treeNode.getId()); | ||||||
|  |         if (childrens.size() > 0) { | ||||||
|  |             mapArr.put("hasChild", true); | ||||||
|  |         } else { | ||||||
|  |             mapArr.put("hasChild", false); | ||||||
|  |         } | ||||||
|  |         mapArr.put("children", menuChild(treeNode.getId())); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据父节点寻找对应的node | ||||||
|  |      * | ||||||
|  |      * @param list | ||||||
|  |      * @param parentId | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static List<TreeNode> findTreeByNode(List<TreeNode> list, String parentId) { | ||||||
|  |         for (TreeNode node : list) { | ||||||
|  |             String id = node.getId(); | ||||||
|  |             List<TreeNode> data = new ArrayList<>(); | ||||||
|  |             data.add(node); | ||||||
|  |             if (id.equals(parentId)) { | ||||||
|  |                 return data; | ||||||
|  |             } else { | ||||||
|  |                 if (node.isHasChild()) { | ||||||
|  |                     List<TreeNode> treeByNode = findTreeByNode(data, parentId); | ||||||
|  |                     if (treeByNode == null) continue; | ||||||
|  |                     return treeByNode; | ||||||
|  |                 } else { | ||||||
|  |                     return null; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据父节点寻找对应的node | ||||||
|  |      * | ||||||
|  |      * @param list | ||||||
|  |      * @param parentId | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static List<Map> findTreeByParentId(List<RowMap> list, String parentId, List<Map> treeData) { | ||||||
|  |         if (null == list || list.isEmpty()) { | ||||||
|  |             return treeData; | ||||||
|  |         } | ||||||
|  |         ; | ||||||
|  | ////        Map<String, List<Map>> parentIdList = list.stream().collect(Collectors.groupingBy(el -> el.get("parentId").toString())); | ||||||
|  | //        List<RowMap> newList = new ArrayList<>(); | ||||||
|  | //        newList.addAll(list); | ||||||
|  |         for (Map map : list) { | ||||||
|  |             String id = map.get("ID").toString(); | ||||||
|  |             String pid = map.get("PLPARENTID").toString(); | ||||||
|  |             if (id.equals(parentId)) { | ||||||
|  |                 if (!treeData.contains(map)) { | ||||||
|  |                     treeData.add(map); | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (pid.equals(parentId)) { | ||||||
|  |                 if (!treeData.contains(map)) { | ||||||
|  | 
 | ||||||
|  |                     treeData.add(map); | ||||||
|  |                     treeData = findTreeByParentId(list, id, treeData); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return treeData; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static List<TreeNode> toTreeNode(List<RowMap> list) { | ||||||
|  |         ArrayList<TreeNode> nodes = new ArrayList<>(); | ||||||
|  |         for (Map map : list) { | ||||||
|  |             TreeNode node = new TreeNode(); | ||||||
|  |             node.setId( map.get("ID")==null?"":(String) map.get("ID")); | ||||||
|  |             node.setLabel( map.get("MODEL_NAME")==null?"":(String) map.get("MODEL_NAME")); | ||||||
|  |             node.setParentId( map.get("MODEL_PARENT_ID")==null?"":(String) map.get("MODEL_PARENT_ID")); | ||||||
|  |             node.setIsPublish( map.get("IS_PUBLISH")==null?"":(String) map.get("IS_PUBLISH")); | ||||||
|  |             node.setMethodId( map.get("METHOD_ID")==null?"":(String) map.get("METHOD_ID")); | ||||||
|  |            nodes.add(node); | ||||||
|  |         } | ||||||
|  |         return nodes; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,50 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.util; | ||||||
|  | 
 | ||||||
|  | import com.actionsoft.bpms.commons.database.RowMap; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import org.apache.commons.lang.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-04-24 10:52 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class ViewUtil { | ||||||
|  |     public static List pageUtil(List list, int page, int size) { | ||||||
|  |         if (page==0&&size==0){ | ||||||
|  |             return list; | ||||||
|  |         } | ||||||
|  |         List data = new ArrayList<>(); | ||||||
|  |         for (int i = 0; i < list.size(); i++) { | ||||||
|  |             if (size * (page - 1) <= i && i < (size * page)) { | ||||||
|  |                 data.add(list.get(i)); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return data; | ||||||
|  |     } | ||||||
|  |     public static String listToSqlStr(List<String> list) { | ||||||
|  |         if (list == null || list.isEmpty()) return ""; | ||||||
|  |         StringBuilder sqlStr = new StringBuilder("("); | ||||||
|  |         for (String el : list) { | ||||||
|  |             if (StringUtils.isEmpty(el)) continue; | ||||||
|  |             String str = "'" + el + "',"; | ||||||
|  |             sqlStr.append(str); | ||||||
|  |         } | ||||||
|  |         sqlStr.append(")"); | ||||||
|  |         sqlStr.deleteCharAt(sqlStr.lastIndexOf(",")); | ||||||
|  |         return sqlStr.toString(); | ||||||
|  |     } | ||||||
|  |     public static JSONObject toJsonObject(RowMap map){ | ||||||
|  |         JSONObject object = new JSONObject(); | ||||||
|  |         object.put("id",map.getString("ID")); | ||||||
|  |         object.put("publish",map.getString("ISPUBLISH").equals("1")); | ||||||
|  |         object.put("publishDate",map.getDate("PUBLISHDATE")); | ||||||
|  |         object.put("name",map.getString("PLNAME")); | ||||||
|  |         object.put("orderIndex",map.getString("PLORDERINDEX")); | ||||||
|  |         object.put("methodId",map.getString("PLMETHODID")); | ||||||
|  |         return object; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,226 @@ | |||||||
|  | package com.awspaas.user.apps.nqms.portal.view.process.vo; | ||||||
|  | 
 | ||||||
|  | import com.alipay.remoting.util.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | /** | ||||||
|  |  * @author wym | ||||||
|  |  * @date 2023-04-23 15:34 | ||||||
|  |  * @description | ||||||
|  |  */ | ||||||
|  | public class ProcessFileVO { | ||||||
|  |     /** | ||||||
|  |      * | ||||||
|  |      */ | ||||||
|  |     private String url; | ||||||
|  |     /** | ||||||
|  |      * | ||||||
|  |      */ | ||||||
|  |     private String id; | ||||||
|  |     /** | ||||||
|  |      *业务域 | ||||||
|  |      */ | ||||||
|  |     private String businessAreas; | ||||||
|  |     /** | ||||||
|  |      *流程组 | ||||||
|  |      */ | ||||||
|  |     private String processGroup; | ||||||
|  |     /** | ||||||
|  |      *流程编号 | ||||||
|  |      */ | ||||||
|  |     private String processNO; | ||||||
|  |     /** | ||||||
|  |      *业务流程 | ||||||
|  |      */ | ||||||
|  |     private String processName; | ||||||
|  |     /** | ||||||
|  |      *活动步骤 | ||||||
|  |      */ | ||||||
|  |     private String activeName; | ||||||
|  |     /** | ||||||
|  |      *发布时间 | ||||||
|  |      */ | ||||||
|  |     private String publishDate; | ||||||
|  |     /** | ||||||
|  |      *责任部门 | ||||||
|  |      */ | ||||||
|  |     private String dutyDept; | ||||||
|  |     /** | ||||||
|  |      *责任人 | ||||||
|  |      */ | ||||||
|  |     private String dutyPerson; | ||||||
|  | 
 | ||||||
|  |     private List<String> compFiles; | ||||||
|  |     private List<String> regimeFiles; | ||||||
|  |     private List<String> formFiles; | ||||||
|  | 
 | ||||||
|  |     public ProcessFileVO() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public ProcessFileVO(String id, String businessAreas, String processGroup, String processNO, String processName, String activeName, String publishDate) { | ||||||
|  |         this.id = id; | ||||||
|  |         this.businessAreas = businessAreas; | ||||||
|  |         this.processGroup = processGroup; | ||||||
|  |         this.processNO = processNO; | ||||||
|  |         this.processName = processName; | ||||||
|  |         this.activeName = activeName; | ||||||
|  |         this.publishDate = publishDate; | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public ProcessFileVO(String id, String businessAreas, String processGroup, String processNO, String processName, String activeName, String publishDate, List<String> compFiles, List<String> regimeFiles, List<String> formFiles, String dutyDept, String dutyPerson) { | ||||||
|  |         this.id = id; | ||||||
|  |         this.businessAreas = businessAreas; | ||||||
|  |         this.processGroup = processGroup; | ||||||
|  |         this.processNO = processNO; | ||||||
|  |         this.processName = processName; | ||||||
|  |         this.activeName = activeName; | ||||||
|  |         this.publishDate = publishDate; | ||||||
|  |         this.compFiles = compFiles; | ||||||
|  |         this.regimeFiles = regimeFiles; | ||||||
|  |         this.formFiles = formFiles; | ||||||
|  |         this.dutyDept = dutyDept; | ||||||
|  |         this.dutyPerson = dutyPerson; | ||||||
|  |     } | ||||||
|  |     public ProcessFileVO(String url, String id, String businessAreas, String processGroup, String processNO, String processName, String activeName, String publishDate, List<String> compFiles, List<String> regimeFiles, List<String> formFiles, String dutyDept, String dutyPerson) { | ||||||
|  | 
 | ||||||
|  |         this.url = url; | ||||||
|  |         this.id = id; | ||||||
|  |         this.businessAreas = businessAreas; | ||||||
|  |         this.processGroup = processGroup; | ||||||
|  |         this.processNO = processNO; | ||||||
|  |         this.processName = processName; | ||||||
|  |         this.activeName = activeName; | ||||||
|  |         this.publishDate = publishDate; | ||||||
|  |         this.compFiles = compFiles; | ||||||
|  |         this.regimeFiles = regimeFiles; | ||||||
|  |         this.formFiles = formFiles; | ||||||
|  |         this.dutyDept = dutyDept; | ||||||
|  |         this.dutyPerson = dutyPerson; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getUrl() { | ||||||
|  |         return url; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setUrl(String url) { | ||||||
|  |         this.url = url; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getId() { | ||||||
|  |         return id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setId(String id) { | ||||||
|  |         this.id = id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getBusinessAreas() { | ||||||
|  |         return businessAreas; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setBusinessAreas(String businessAreas) { | ||||||
|  |         this.businessAreas = businessAreas; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getProcessGroup() { | ||||||
|  |         return processGroup; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setProcessGroup(String processGroup) { | ||||||
|  |         this.processGroup = processGroup; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getProcessNO() { | ||||||
|  |         return processNO; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setProcessNO(String processNO) { | ||||||
|  | 
 | ||||||
|  |         this.processNO = processNO; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getProcessName() { | ||||||
|  |         return processName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setProcessName(String processName) { | ||||||
|  |         this.processName = processName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getActiveName() { | ||||||
|  |         return activeName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setActiveName(String activeName) { | ||||||
|  |         this.activeName = activeName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPublishDate() { | ||||||
|  |         return publishDate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPublishDate(String publishDate) { | ||||||
|  |         this.publishDate = publishDate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<String> getCompFiles() { | ||||||
|  |         return compFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setCompFiles(List<String> compFiles) { | ||||||
|  |         this.compFiles = compFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<String> getRegimeFiles() { | ||||||
|  |         return regimeFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setRegimeFiles(List<String> regimeFiles) { | ||||||
|  |         this.regimeFiles = regimeFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<String> getFormFiles() { | ||||||
|  |         return formFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setFormFiles(List<String> formFiles) { | ||||||
|  |         this.formFiles = formFiles; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getDutyDept() { | ||||||
|  |         return dutyDept; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDutyDept(String dutyDept) { | ||||||
|  | 
 | ||||||
|  |         this.dutyDept = dutyDept; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getDutyPerson() { | ||||||
|  |         return dutyPerson; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDutyPerson(String dutyPerson) { | ||||||
|  |         this.dutyPerson = dutyPerson; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "ProcessFileVO{" + | ||||||
|  |                 "url='" + url + '\'' + | ||||||
|  |                 ", id='" + id + '\'' + | ||||||
|  |                 ", businessAreas='" + businessAreas + '\'' + | ||||||
|  |                 ", processGroup='" + processGroup + '\'' + | ||||||
|  |                 ", processNO='" + processNO + '\'' + | ||||||
|  |                 ", processName='" + processName + '\'' + | ||||||
|  |                 ", activeName='" + activeName + '\'' + | ||||||
|  |                 ", publishDate='" + publishDate + '\'' + | ||||||
|  |                 ", dutyDept='" + dutyDept + '\'' + | ||||||
|  |                 ", dutyPerson='" + dutyPerson + '\'' + | ||||||
|  |                 ", compFiles=" + compFiles + | ||||||
|  |                 ", regimeFiles=" + regimeFiles + | ||||||
|  |                 ", formFiles=" + formFiles + | ||||||
|  |                 '}'; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user