From 53e187e55ef27f911b6a0b2f6b0adddcd7a85b04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E4=B8=9C=E5=BC=BA?= <1559301693@qq.com> Date: Mon, 22 Sep 2025 09:12:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/process/constant/Constant.java | 15 + .../view/process/constant/Constants.java | 131 +++++++ .../view/process/constant/PalAttrEnum.java | 66 ++++ .../controller/PortalProcessController.java | 68 ++++ .../view/process/dao/FileBasicAttrDao.java | 76 ++++ .../view/process/dao/RepositoryDao.java | 23 ++ .../nqms/portal/view/process/dao/RlatDao.java | 109 ++++++ .../process/entity/FileBasicAttrEntity.java | 93 +++++ .../view/process/entity/RlatBpmnModel.java | 45 +++ .../view/process/entity/RlatEntity.java | 154 ++++++++ .../process/service/PortalProcessService.java | 333 ++++++++++++++++ .../view/process/service/UtilService.java | 87 +++++ .../portal/view/process/util/OrgUtil.java | 32 ++ .../portal/view/process/util/StructUtil.java | 361 ++++++++++++++++++ .../portal/view/process/util/TreeNode.java | 148 +++++++ .../portal/view/process/util/TreeUtil.java | 177 +++++++++ .../portal/view/process/util/ViewUtil.java | 50 +++ .../portal/view/process/vo/ProcessFileVO.java | 226 +++++++++++ 18 files changed, 2194 insertions(+) create mode 100644 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constant.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constants.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/PalAttrEnum.java create mode 100644 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/controller/PortalProcessController.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/FileBasicAttrDao.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RepositoryDao.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RlatDao.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/FileBasicAttrEntity.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatBpmnModel.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatEntity.java create mode 100644 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/PortalProcessService.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/UtilService.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/OrgUtil.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/StructUtil.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeNode.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeUtil.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/ViewUtil.java create mode 100755 com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/vo/ProcessFileVO.java diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constant.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constant.java new file mode 100644 index 00000000..36fc2d1f --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constant.java @@ -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"; + +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constants.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constants.java new file mode 100755 index 00000000..fb10dd69 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/Constants.java @@ -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; +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/PalAttrEnum.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/PalAttrEnum.java new file mode 100755 index 00000000..c8770b76 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/constant/PalAttrEnum.java @@ -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; + } + +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/controller/PortalProcessController.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/controller/PortalProcessController.java new file mode 100644 index 00000000..df650932 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/controller/PortalProcessController.java @@ -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 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); + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/FileBasicAttrDao.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/FileBasicAttrDao.java new file mode 100755 index 00000000..f7b32e28 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/FileBasicAttrDao.java @@ -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 { + @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 rowMapper() { + return new FileBasicAttrDao.Mapper(); + } + + private static class Mapper implements RowMapper { + @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 selectBasicAttrByFileIds(List 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 list = DBSql.query(sql, new Mapper()); + return list; + } + + +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RepositoryDao.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RepositoryDao.java new file mode 100755 index 00000000..eea18923 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RepositoryDao.java @@ -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; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RlatDao.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RlatDao.java new file mode 100755 index 00000000..340ba2c1 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/dao/RlatDao.java @@ -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 { + + + @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 selectShapeRlatById(List 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 list = DBSql.query(sql, new Mapper()); + return list; + } + + private static class Mapper implements RowMapper { + + @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; + } + } + +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/FileBasicAttrEntity.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/FileBasicAttrEntity.java new file mode 100755 index 00000000..03580421 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/FileBasicAttrEntity.java @@ -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 + '\'' + + '}'; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatBpmnModel.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatBpmnModel.java new file mode 100755 index 00000000..82dc5c29 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatBpmnModel.java @@ -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 + '\'' + + '}'; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatEntity.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatEntity.java new file mode 100755 index 00000000..6ff395e0 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/entity/RlatEntity.java @@ -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 + + '}'; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/PortalProcessService.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/PortalProcessService.java new file mode 100644 index 00000000..5e4357a4 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/PortalProcessService.java @@ -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 files = SDK.getPALRepositoryQueryAPI().getPalRepositoryModelsByPid(wsId, parentId); + List 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 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 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 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 allFiles = service.getAllDirAndProcessPalByPid(wsId, rootId); + List files = service.getAllProcessPalByPid(wsId, parentId); + Map> allCollect = allFiles.stream().collect(Collectors.groupingBy(el -> el.getString("id"))); + + if (rootFile != null && flag) { + files.add(rootFile); + } + + List 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 files, Map> allFileMap, JSONObject paramsMap) { + String queryName = ""; + String queryDept = ""; + if (null != paramsMap) { + queryName = paramsMap.getString("name"); + queryDept = paramsMap.getString("dept"); + } + List data = new ArrayList<>(); + String sid = ux.getSessionId(); + List fileIdList = new ArrayList<>(); + for (JSONObject file : files) { + String id = file.getString("id"); + fileIdList.add(id); + } + Map> relAttr = queryRelAttr(fileIdList); + Map> basicAttr = queryBasicAttr(fileIdList); + + for (JSONObject row : files) { + String id = row.getString("id"); + List basic = basicAttr.get(id); + String number = ""; + if (CollectionUtils.isNotEmpty(basic)) { + for (FileBasicAttrEntity fileBasic : basic) { + if (fileBasic.getPROPERTYID().equals("number")) { + number = fileBasic.getPROPERTYVALUE(); + break; + } + } + } + // 业务域与流程组 + List 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 compIds = new ArrayList<>();//关联合规文件 + List regimeIds = new ArrayList<>();//关联制度文件 + List formIds = new ArrayList<>();//关联表单文件 + String duty_dept = ""; + String duty_person = ""; + List list = relAttr.get(id); + if (list != null && !list.isEmpty()) { + Map> collect = list.stream().collect(Collectors.groupingBy(RlatEntity::getATTRID)); + + //责任人 + List 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 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 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 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 fileData = TestData.getFileData(); + return data; + } + + /** + * 查询文件的关联属性 + * + * @param fileIdList + * @return + */ + + public Map> queryRelAttr(List fileIdList) { + RlatDao dao = new RlatDao(); + List list = dao.selectShapeRlatById(fileIdList); + Map> collect = list.stream().collect(Collectors.groupingBy(el -> el.getFILEID())); + return collect; + } + + /** + * 查询文件的基础属性 + * + * @param fileIdList + * @return + */ + public Map> queryBasicAttr(List fileIdList) { + FileBasicAttrDao dao = new FileBasicAttrDao(); + List list = dao.selectBasicAttrByFileIds(fileIdList); + Map> collect = list.stream().collect(Collectors.groupingBy(el -> el.getPLID())); + return collect; + } + + /** + * 从最底层向上查询出文件链 + * + * @param collect + * @param id + * @return list的index即为从下往上的层数 + */ + public List findFileLink(Map> collect, String id) { + List fileModels = collect.get(id); + List 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; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/UtilService.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/UtilService.java new file mode 100755 index 00000000..72d4d929 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/service/UtilService.java @@ -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 getAllDirAndProcessPalByPid(String wsId, String pid) { + //查找使用中状态下的文件,可以查出来文件夹,发布状态的无法查出来文件夹 + List list; + if (new Constants().processCheckType.equals("1")) { + List 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 getAllProcessPalByPid(String wsId, String pid) { + List 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; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/OrgUtil.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/OrgUtil.java new file mode 100755 index 00000000..e0e095ab --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/OrgUtil.java @@ -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> relAttr , String attrId){ + String attrVal = ""; + List 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 ""; + } + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/StructUtil.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/StructUtil.java new file mode 100755 index 00000000..7a4413b7 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/StructUtil.java @@ -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 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 toFileModel(List list) { + Map> processFile = list.stream().collect(Collectors.groupingBy(el -> el.getString("ID"))); + + List 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 setFileAttr(List list, List fileModels) { + Map> rel = list.stream().collect(Collectors.groupingBy(el -> el.getString("PL_ID"))); + for (FileModel file : fileModels) { + String plId = file.getID(); + List rowMaps = rel.get(plId); + updateFileModel(rowMaps, file); + } + return fileModels; + } + + + + */ +/** + * 根据结果集,更新文件模型里形状的属性 + * @param list + * @param fileModels + * @return + *//* + + public static List setShapeAttr(List list, List fileModels) { + Map> rel = list.stream().collect(Collectors.groupingBy(el -> el.getString("PL_ID"))); + for (FileModel file : fileModels) { + String plId = file.getID(); + List rowMaps = rel.get(plId); + updateShapeModelAttr(rowMaps, file); + } + return fileModels; + } + + */ +/** + * 更新文件模型的属性 + * + * @param rowMaps + * @param model + *//* + + public static void updateFileModel(List 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> relationId = attrModel.getRelationList() == null ? new ArrayList<>() : attrModel.getRelationList(); +// HashMap 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 rowMaps, FileModel model){ + Map> attrs = rowMaps.stream().collect(Collectors.groupingBy(el -> el.getString("SHAPE_ID"))); +// List shapes = model.getAttrModel().getShapes(); + List shapes = model.getShapes(); + for (ShapeModel shape:shapes) { + ShapeAttrModel shapeAttrModel = shape.getShapeAttrModel()==null?new ShapeAttrModel(): shape.getShapeAttrModel(); + List 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 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 dutyDept=attrModel.getDuty_dept()==null?new ArrayList<>():attrModel.getDuty_dept(); + List 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 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 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 toShapeModel(List rowMaps, List files) { + Map> 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 shapeModels = file.getShapes() == null ? new ArrayList<>() : file.getShapes(); + List 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 toShapeModel(List rowMaps) { + ArrayList 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 getFileIds(List files) { + List ids = new ArrayList<>(); + for (FileModel model : files + ) { + ids.add(model.getID()); + } +// return listToSqlStr(ids); + return ids; + } + + */ +/** + * 从形状模型中获取形状id的集合 + * @param shapes + * @return + *//* + + public static List getShapeIds(List shapes){ + List ids = new ArrayList<>(); + for (ShapeModel model : shapes + ) { + ids.add(model.getID()); + } + return ids; + } +*/ + +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeNode.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeNode.java new file mode 100755 index 00000000..a88b09a8 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeNode.java @@ -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 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 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 getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeUtil.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeUtil.java new file mode 100755 index 00000000..d9798d7c --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/TreeUtil.java @@ -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 { + + + /** + * 树形结构工具类 + *

+ * 将一组list对象转成树形结构 + * 该list需符合设定的字段类型 + */ + + static List menuCommon = null; + + private static List list; + + /** + * 转为树结构 + * + * @param menu + * @return + */ + public static List treeMenu(final List 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 treeMenu(final List menu, List 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 treeMenu(final List 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 findTreeByNode(List list, String parentId) { + for (TreeNode node : list) { + String id = node.getId(); + List data = new ArrayList<>(); + data.add(node); + if (id.equals(parentId)) { + return data; + } else { + if (node.isHasChild()) { + List treeByNode = findTreeByNode(data, parentId); + if (treeByNode == null) continue; + return treeByNode; + } else { + return null; + } + } + } + return null; + } + + /** + * 根据父节点寻找对应的node + * + * @param list + * @param parentId + * @return + */ + public static List findTreeByParentId(List list, String parentId, List treeData) { + if (null == list || list.isEmpty()) { + return treeData; + } + ; +//// Map> parentIdList = list.stream().collect(Collectors.groupingBy(el -> el.get("parentId").toString())); +// List 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 toTreeNode(List list) { + ArrayList 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; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/ViewUtil.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/ViewUtil.java new file mode 100755 index 00000000..c7c8743e --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/util/ViewUtil.java @@ -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 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; + } +} diff --git a/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/vo/ProcessFileVO.java b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/vo/ProcessFileVO.java new file mode 100755 index 00000000..6be69e73 --- /dev/null +++ b/com.awspaas.user.apps.nqms.portal.view.process/src/com/awspaas/user/apps/nqms/portal/view/process/vo/ProcessFileVO.java @@ -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 compFiles; + private List regimeFiles; + private List 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 compFiles, List regimeFiles, List 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 compFiles, List regimeFiles, List 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 getCompFiles() { + return compFiles; + } + + public void setCompFiles(List compFiles) { + this.compFiles = compFiles; + } + + public List getRegimeFiles() { + return regimeFiles; + } + + public void setRegimeFiles(List regimeFiles) { + this.regimeFiles = regimeFiles; + } + + public List getFormFiles() { + return formFiles; + } + + public void setFormFiles(List 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 + + '}'; + } +}