数据看板代码提交
This commit is contained in:
parent
9d7f2e0475
commit
9a2f1ce7e3
@ -0,0 +1,588 @@
|
||||
package com.awspaas.user.apps.yili.reportform.aslp;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.apps.resource.interop.aslp.ASLP;
|
||||
import com.actionsoft.apps.resource.interop.aslp.Meta;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.bpms.util.UtilString;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.awspaas.user.apps.yili.reportform.util.CheckUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.GetNodesUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.RepositoryAttribute;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-08-03 17:16
|
||||
* @Description: 增量同步文件信息aslp
|
||||
*/
|
||||
public class AttrSynAslp implements ASLP {
|
||||
|
||||
public AttrSynAslp() {
|
||||
}
|
||||
|
||||
@Meta(
|
||||
parameter = {"name:'wsId',required:true,desc:'资产内容库id'","name:'fileId',required:true,desc:'文件id;json数组[id1,id2,id3]'"}
|
||||
)
|
||||
public ResponseObject call(Map<String, Object> params) {
|
||||
ResponseObject ro = ResponseObject.newOkResponse();
|
||||
|
||||
String wsId = String.valueOf(params.get("wsId"));
|
||||
String fileIds = String.valueOf(params.get("fileId"));
|
||||
JSONArray fileIdArray = JSONArray.parseArray(fileIds);
|
||||
SDK.getLogAPI().consoleInfo("增量同步文件信息开始执行");
|
||||
SDK.getLogAPI().consoleInfo("同步个数"+fileIdArray.size());
|
||||
long startTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("开始时间"+startTime);
|
||||
|
||||
//筛选出角色类文件list
|
||||
/* String org = "org";
|
||||
List<PALRepositoryModel> palOrgList = new ArrayList<>();
|
||||
Set<String> palOrgIds = new HashSet<>();
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, org, palOrgList, palOrgIds);
|
||||
SDK.getLogAPI().consoleInfo("org下文件数量:" + palOrgList.size());
|
||||
List<PALRepositoryModel> palRoleFileList = palOrgList.stream().filter(x -> x.getMethodId().equals("org.role")).collect(Collectors.toList());
|
||||
SDK.getLogAPI().consoleInfo("角色文件数量:" + palRoleFileList.size());*/
|
||||
|
||||
//初始化架构、文件、节点 old/new list
|
||||
ArrayList<Map<String, ?>> oldFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
Object[] sqlParams = new Object[]{};
|
||||
//获取底表数据
|
||||
List<String> frameIdList = DBSql.getList("SELECT FRAMEID FROM BO_EU_PAL_FRAME", String.class);
|
||||
SDK.getLogAPI().consoleInfo("架构底表长度:" + frameIdList.size());
|
||||
List<String> fileIdList = DBSql.getList("SELECT FILEID FROM BO_EU_PAL_FILE1", String.class);
|
||||
SDK.getLogAPI().consoleInfo("文件底表长度:" + fileIdList.size());
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE5", String.class);
|
||||
SDK.getLogAPI().consoleInfo("节点底表长度:" + nodeIdList.size());
|
||||
//系统字段
|
||||
String uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
Date nowDateJ = new Date(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
if (null!=fileIdArray && !fileIdArray.isEmpty()) {
|
||||
for (Object fileIdO : fileIdArray) {
|
||||
String fileIdString = String.valueOf(fileIdO);
|
||||
PALRepositoryModel fileModel = PALRepositoryCache.getCache().get(fileIdString);
|
||||
if (fileModel.getMethodId().equals("process.framework")) {
|
||||
//更新/新增架构
|
||||
String FRAMENAME = fileModel.getName();
|
||||
Integer FRAMELEVEL = fileModel.getLevel();
|
||||
String FRAMETYPE = null;
|
||||
String FRAMEPARENTID = fileModel.getParentId();
|
||||
Integer FRAMEORDERINDEX = fileModel.getOrderIndex();
|
||||
Map<String, JSONObject> frameAttrs = new RepositoryAttribute().queryRepositoryAttributeById(fileIdString);
|
||||
if (null!=frameAttrs && !frameAttrs.isEmpty()) {
|
||||
JSONObject Frame_type = frameAttrs.get("Frame_type");
|
||||
FRAMETYPE = Frame_type.getString("text");
|
||||
}
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
if (fileIdList.contains(fileIdString)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FRAMEID", fileIdString);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("FRAMENAME", FRAMENAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldFrameDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FRAMEID", fileIdString);
|
||||
dataMap.put("FRAMENAME", FRAMENAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newFrameDataMaps.add(dataMap);
|
||||
}
|
||||
} else {
|
||||
String plRid = fileModel.getPlRid();
|
||||
String sql1 = "SELECT ID FROM (SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID = '"+plRid+"' AND ISPUBLISH ='1' ORDER BY PLVER DESC ) WHERE ROWNUM<2";
|
||||
String palId = DBSql.getString(sql1);
|
||||
System.err.println("本次发布替换已发布文件:"+palId);
|
||||
String sql2 = "SELECT * FROM BO_EU_PAL_FILE1 WHERE FILEID ='"+palId+"'";
|
||||
RowMap map = DBSql.getMap(sql2);
|
||||
if(map!=null) {
|
||||
String dsql = "DELETE FROM BO_EU_PAL_FILE1 WHERE FILEID = '"+palId+"'";
|
||||
DBSql.update(dsql);
|
||||
}
|
||||
//更新/新增文件
|
||||
String PLNAME = fileModel.getName();
|
||||
Integer PLLEVEL = fileModel.getLevel();
|
||||
String PLPARENTID = fileModel.getParentId();
|
||||
Integer PLORDERINDEX = fileModel.getOrderIndex();
|
||||
String PLCATEGORY = fileModel.getMethodCategory();
|
||||
String PLMETHODID = fileModel.getMethodId();
|
||||
double FILEVERSION = fileModel.getVersion();
|
||||
String CREATEPER = fileModel.getCreateUser();
|
||||
String MODIFYPER = fileModel.getModifyUser();
|
||||
Timestamp CREATEDATETIME = fileModel.getCreateDate();
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
String PUBDEPT = "";
|
||||
String PUBDATETIME = "";
|
||||
String FILESTATE = "";
|
||||
String FILEUSESTATE =
|
||||
"";
|
||||
Long VIEWCOUNT = fileModel.getViewCount();
|
||||
String L1ID = "";
|
||||
String L2ID = "";
|
||||
String L3ID = "";
|
||||
String LEADPROCESS = "";
|
||||
String REARPROCESS = "";
|
||||
String PROCESSKPI = "";
|
||||
String RELEVANTFILE = "";
|
||||
String SUPPORTFILE = "";
|
||||
String POLICYTYPE = "";
|
||||
List<Map<String, Object>> nodeElements = new ArrayList<>();
|
||||
List<RowMap> parentMaps = new ArrayList<>();
|
||||
if (null!=PLPARENTID && !PLPARENTID.equals("")) {
|
||||
parentMaps = GetNodesUtil.getParentFrame(PLPARENTID, parentMaps);
|
||||
}
|
||||
if (null != parentMaps && !parentMaps.isEmpty()) {
|
||||
for (RowMap parentMap : parentMaps) {
|
||||
Integer parentLevel = parentMap.getInt("FRAMELEVEL");
|
||||
String parentID = parentMap.getString("FRAMEID");
|
||||
if (parentLevel.equals(3)) {
|
||||
L3ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(2)) {
|
||||
L2ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(1)) {
|
||||
L1ID = parentID;
|
||||
}
|
||||
}
|
||||
}
|
||||
//文件状态
|
||||
FILESTATE = "0";
|
||||
if (fileModel.isPublish()==true) {
|
||||
FILESTATE = "1";
|
||||
}
|
||||
if (fileModel.isApproval()==true) {
|
||||
FILESTATE = "2";
|
||||
}
|
||||
if (fileModel.isStop()==true) {
|
||||
FILESTATE = "3";
|
||||
}
|
||||
//文件生效状态
|
||||
if (fileModel.isUse()==true) {
|
||||
FILEUSESTATE = "1";
|
||||
} else {
|
||||
FILEUSESTATE = "0";
|
||||
}
|
||||
Map<String, JSONObject> fileAttrJsonMap = new HashMap<>();
|
||||
try {
|
||||
fileAttrJsonMap = new RepositoryAttribute().queryRepositoryAttributeById(fileIdString);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("文件ID"+fileIdString+"数据异常");
|
||||
}
|
||||
if (null!=fileAttrJsonMap && !fileAttrJsonMap.isEmpty()) {
|
||||
//发布部门
|
||||
JSONObject Issuing_department = fileAttrJsonMap.get("Issuing_department");
|
||||
if (null!=Issuing_department && !Issuing_department.equals("")) {
|
||||
JSONArray PUBDEPTJA = Issuing_department.getJSONArray("value");
|
||||
if (null!=PUBDEPTJA && !PUBDEPTJA.isEmpty()) {
|
||||
for (Object PUBDEPTO : PUBDEPTJA) {
|
||||
JSONObject PUBDEPTJO = JSONObject.parseObject(String.valueOf(PUBDEPTO));
|
||||
PUBDEPT = PUBDEPT + " " + PUBDEPTJO.getString("id");
|
||||
}
|
||||
PUBDEPT = PUBDEPT.substring(1);
|
||||
}
|
||||
}
|
||||
//发布时间
|
||||
PUBDATETIME = "";
|
||||
JSONObject effective_date = fileAttrJsonMap.get("Drafted_and_revised_date");
|
||||
if (null!=effective_date && !effective_date.equals("")) {
|
||||
String pubDateString = effective_date.getString("text");
|
||||
if (null!=pubDateString && !pubDateString.equals("")) {
|
||||
if (CheckUtil.isDate(pubDateString)) {
|
||||
Date parse = null;
|
||||
try {
|
||||
parse = sdf1.parse(pubDateString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
PUBDATETIME = sdf1.format(parse);
|
||||
}
|
||||
}
|
||||
}
|
||||
//前置流程
|
||||
JSONObject lead_process = fileAttrJsonMap.get("lead_process");
|
||||
if (null != lead_process && !lead_process.equals("")) {
|
||||
JSONArray lpValue = lead_process.getJSONArray("value");
|
||||
if (null != lpValue && !lpValue.isEmpty()) {
|
||||
LEADPROCESS = "1";
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
//后置流程
|
||||
JSONObject rear_process = fileAttrJsonMap.get("rear_process");
|
||||
if (null != rear_process && !rear_process.equals("")) {
|
||||
JSONArray rpValue = rear_process.getJSONArray("value");
|
||||
if (null != rpValue && !rpValue.isEmpty()) {
|
||||
REARPROCESS = "1";
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
//流程绩效
|
||||
JSONObject performance = fileAttrJsonMap.get("Process_performance_metrics");
|
||||
if (null!=performance && !performance.equals("")) {
|
||||
JSONArray performanceJA = performance.getJSONArray("value");
|
||||
if (null!=performanceJA && !performanceJA.isEmpty()) {
|
||||
for (Object performanceO : performanceJA) {
|
||||
JSONObject performanceJO = JSONObject.parseObject(String.valueOf(performanceO));
|
||||
PROCESSKPI = PROCESSKPI + " " + performanceJO.getString("fileId");
|
||||
}
|
||||
PROCESSKPI = PROCESSKPI.substring(1);
|
||||
}
|
||||
}
|
||||
//相关文件
|
||||
JSONObject R_relevant_flies = fileAttrJsonMap.get("R_relevant_flies");
|
||||
if (null!=R_relevant_flies && !R_relevant_flies.equals("")) {
|
||||
JSONArray RELEVANTFILEJA = R_relevant_flies.getJSONArray("value");
|
||||
if (null!=RELEVANTFILEJA && !RELEVANTFILEJA.isEmpty()) {
|
||||
for (Object RELEVANTFILEO : RELEVANTFILEJA) {
|
||||
JSONObject RELEVANTFILEJO = JSONObject.parseObject(String.valueOf(RELEVANTFILEO));
|
||||
RELEVANTFILE = RELEVANTFILE + " " + RELEVANTFILEJO.getString("fileId");
|
||||
}
|
||||
RELEVANTFILE = RELEVANTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
//支持文件
|
||||
JSONObject support_files = fileAttrJsonMap.get("support_files");
|
||||
if (null!=support_files && !support_files.equals("")) {
|
||||
JSONArray SUPPORTFILEJA = support_files.getJSONArray("value");
|
||||
if (null!=SUPPORTFILEJA && !SUPPORTFILEJA.isEmpty()) {
|
||||
for (Object SUPPORTFILEO : SUPPORTFILEJA) {
|
||||
JSONObject SUPPORTFILEJO = JSONObject.parseObject(String.valueOf(SUPPORTFILEO));
|
||||
SUPPORTFILE = SUPPORTFILE + " " + SUPPORTFILEJO.getString("fileId");
|
||||
}
|
||||
SUPPORTFILE = SUPPORTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
//制度类型
|
||||
nodeElements = new ArrayList<>();
|
||||
if(PLMETHODID.equals("control.policy")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(fileIdString);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取制度类型过程中,"+"文件ID:"+fileIdString+"获取节点形状属性异常");
|
||||
}
|
||||
}
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("regulation")) {
|
||||
POLICYTYPE = "regulation";
|
||||
} else if (NODETYPE.equals("I/O_L4")) {
|
||||
POLICYTYPE = "I/O_L4";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fileIdList.contains(fileIdString)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FILEID", fileIdString);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("FILEVERSION", FILEVERSION);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
oldFileDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FILEID", fileIdString);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("FILEVERSION", FILEVERSION);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
newFileDataMaps.add(dataMap);
|
||||
}
|
||||
//更新/新增节点
|
||||
nodeElements = new ArrayList<>();
|
||||
if(PLMETHODID.equals("process.epc")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(fileIdString);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取节点属性过程中,"+"文件ID:"+fileIdString+"获取节点形状属性异常");
|
||||
}
|
||||
}
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("method_approval_node") || NODETYPE.equals("method_service_node") || NODETYPE.equals("method_approval_node3") || NODETYPE.equals("method_service_node4") || NODETYPE.equals("role")) {
|
||||
//节点信息
|
||||
String NODEID = String.valueOf(nodeElement.get("id"));
|
||||
String NODENAME = String.valueOf(nodeElement.get("name"));
|
||||
//形状属性数组
|
||||
JSONArray attributesArray = JSON.parseArray(String.valueOf(nodeElement.get("attributes")));
|
||||
//形状属性:信息系统、活动序号、活动描述、角色、岗位
|
||||
String ITSYSVAL = "";
|
||||
String ACTIVITYNUMBER = "";
|
||||
String ACTIVITYDESC = "";
|
||||
String ROLE = "";
|
||||
String ROLENAME = "";
|
||||
String POST = "";
|
||||
String POSTNAME = "";
|
||||
if (null != attributesArray && !attributesArray.isEmpty()) {
|
||||
for (Object attribute : attributesArray) {
|
||||
JSONObject attributeJO = JSON.parseObject(String.valueOf(attribute));
|
||||
String SHAPEATTRKEY = attributeJO.getString("key");
|
||||
if (SHAPEATTRKEY.equals("information_systems")) {
|
||||
ITSYSVAL = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_number")) {
|
||||
ACTIVITYNUMBER = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_description")) {
|
||||
ACTIVITYDESC = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("role")) {
|
||||
String nodeRoleText = attributeJO.getString("value");
|
||||
ROLE = nodeRoleText;
|
||||
SDK.getLogAPI().consoleInfo("ROLE" + ROLE);
|
||||
if (null != ROLE && !ROLE.equals("")) {
|
||||
sqlParams = new Object[]{fileIdString};
|
||||
List<RowMap> roleFileRowMaps = new ArrayList<>();
|
||||
try {
|
||||
roleFileRowMaps = DBSql.getMaps("SELECT RELATIONFILEID FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND ATTRID='role'", sqlParams);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取流程节点角色属性关联文件时" + "文件ID:" + fileIdString + "节点ID:" + NODEID + "异常");
|
||||
}
|
||||
if (null != roleFileRowMaps && !roleFileRowMaps.isEmpty()) {
|
||||
for (RowMap roleFileRowMap : roleFileRowMaps) {
|
||||
String RELATIONFILEID = roleFileRowMap.getString("RELATIONFILEID");
|
||||
//角色文件属性
|
||||
List<Map<String, Object>> roleShapes = new ArrayList<>();
|
||||
try {
|
||||
roleShapes = CoeDesignerUtil.getShapeMessageJson4(RELATIONFILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取关联角色文件属性" + "文件ID:" + RELATIONFILEID + "异常");
|
||||
}
|
||||
if (null != roleShapes && !roleShapes.isEmpty()) {
|
||||
for (Map<String, Object> roleShape : roleShapes) {
|
||||
String roleFileNodeName = String.valueOf(roleShape.get("name"));
|
||||
if (nodeRoleText.contains(roleFileNodeName)) {
|
||||
//角色节点形状属性
|
||||
JSONArray roleShapeJA = null;
|
||||
try {
|
||||
roleShapeJA = JSONArray.parseArray(String.valueOf(roleShape.get("attributes")));
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取角色节点形状属性jsonArray" + "文件ID:" + RELATIONFILEID + "异常");
|
||||
}
|
||||
if (null != roleShapeJA && !roleShapeJA.isEmpty()) {
|
||||
for (Object roleShapeO : roleShapeJA) {
|
||||
JSONObject roleShapeJO = JSON.parseObject(String.valueOf(roleShapeO));
|
||||
String roleShapeKey = roleShapeJO.getString("key");
|
||||
if (roleShapeKey.equals("post")) {
|
||||
//SDK.getLogAPI().consoleInfo("角色岗位"+roleShapeJO.getString("value"));
|
||||
POST = roleShapeJO.getString("value");
|
||||
}
|
||||
if (roleShapeKey.equals("post_text")) {
|
||||
//SDK.getLogAPI().consoleInfo("角色岗位文本"+roleShapeJO);
|
||||
ROLENAME = roleShapeJO.getString("value");
|
||||
POSTNAME = roleShapeJO.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (Object attribute1 : attributesArray) {
|
||||
JSONObject attributeJO1 = JSON.parseObject(String.valueOf(attribute1));
|
||||
String SHAPEATTRKEY1 = attributeJO1.getString("key");
|
||||
if (SHAPEATTRKEY1.equals("post")) {
|
||||
POST = attributeJO1.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY1.equals("post_text")) {
|
||||
POSTNAME = attributeJO1.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nodeIdList.contains(NODEID)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("PLID", fileIdString);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldNodeDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLID", fileIdString);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增架构"+newFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改架构"+oldFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("新增文件"+newFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改文件"+oldFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("新增节点"+newNodeDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改节点"+oldNodeDataMaps.size());
|
||||
if (null != oldFrameDataMaps && !oldFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FRAME SET"
|
||||
+ " FRAMENAME=:FRAMENAME, FRAMELEVEL=:FRAMELEVEL, FRAMETYPE=:FRAMETYPE, FRAMEPARENTID=:FRAMEPARENTID, FRAMEORDERINDEX=:FRAMEORDERINDEX, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE WHERE FRAMEID=:FRAMEID", oldFrameDataMaps);
|
||||
}
|
||||
if (null != newFrameDataMaps && !newFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FRAME(ID,FRAMEID,FRAMENAME,FRAMELEVEL,FRAMETYPE,FRAMEPARENTID,FRAMEORDERINDEX,MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :FRAMEID, :FRAMENAME, :FRAMELEVEL, :FRAMETYPE, :FRAMEPARENTID, :FRAMEORDERINDEX, :MODIFYDATETIME)", newFrameDataMaps);
|
||||
}
|
||||
if (null != oldFileDataMaps && !oldFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILE1 SET"
|
||||
+ " PLNAME=:PLNAME, PLLEVEL=:PLLEVEL, PLPARENTID=:PLPARENTID, PLORDERINDEX=:PLORDERINDEX, PLCATEGORY=:PLCATEGORY, "
|
||||
+ " PLMETHODID=:PLMETHODID, FILEVERSION=:FILEVERSION, CREATEPER=:CREATEPER, MODIFYPER=:MODIFYPER, "
|
||||
+ " PUBDEPT=:PUBDEPT, PUBDATETIME=:PUBDATETIME, FILESTATE=:FILESTATE, VIEWCOUNT=:VIEWCOUNT, L1ID=:L1ID, "
|
||||
+ " L2ID=:L2ID, L3ID=:L3ID, LEADPROCESS=:LEADPROCESS, REARPROCESS=:REARPROCESS, PROCESSKPI=:PROCESSKPI, "
|
||||
+ " RELEVANTFILE=:RELEVANTFILE, SUPPORTFILE=:SUPPORTFILE, POLICYTYPE=:POLICYTYPE, "
|
||||
+ " CREATEDATETIME=:CREATEDATETIME, MODIFYDATETIME=:MODIFYDATETIME, FILEUSESTATE=:FILEUSESTATE, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE FILEID=:FILEID", oldFrameDataMaps);
|
||||
}
|
||||
if (null != newFileDataMaps && !newFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILE1"
|
||||
+ " (ID, FILEID, PLNAME, PLLEVEL, PLPARENTID, PLORDERINDEX, PLCATEGORY, PLMETHODID, FILEVERSION, CREATEPER, MODIFYPER, PUBDEPT, PUBDATETIME, "
|
||||
+ " FILESTATE, VIEWCOUNT, L1ID, L2ID, L3ID, LEADPROCESS, REARPROCESS, PROCESSKPI, RELEVANTFILE, SUPPORTFILE, POLICYTYPE, FILEUSESTATE, CREATEDATETIME, MODIFYDATETIME ) "
|
||||
+ " VALUES(:uuId, :FILEID, :PLNAME, :PLLEVEL, :PLPARENTID, :PLORDERINDEX, :PLCATEGORY, :PLMETHODID, "
|
||||
+ " :FILEVERSION, :CREATEPER, :MODIFYPER, :PUBDEPT, :PUBDATETIME, :FILESTATE, :VIEWCOUNT, :L1ID, :L2ID, "
|
||||
+ " :L3ID, :LEADPROCESS, :REARPROCESS, :PROCESSKPI, :RELEVANTFILE, :SUPPORTFILE, :POLICYTYPE, :FILEUSESTATE, :CREATEDATETIME, :MODIFYDATETIME)", newFileDataMaps);
|
||||
}
|
||||
if (null != oldNodeDataMaps && !oldNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILENODE5 SET"
|
||||
+ " NODENAME=:NODENAME, NODETYPE=:NODETYPE, PLNAME=:PLNAME, NODECATEGORY=:NODECATEGORY, ITSYSVAL=:ITSYSVAL, "
|
||||
+ " ACTIVITYNUMBER=:ACTIVITYNUMBER, ACTIVITYDESC=:ACTIVITYDESC, ROLE=:ROLE, POST=:POST, ROLENAME=:ROLENAME, POSTNAME=:POSTNAME, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE PLID=:PLID AND NODEID=:NODEID", oldNodeDataMaps);
|
||||
}
|
||||
if (null != newNodeDataMaps && !newNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILENODE5"
|
||||
+ " (ID, NODEID, NODENAME, NODETYPE, PLID, PLNAME, NODECATEGORY, ITSYSVAL, ACTIVITYNUMBER, ACTIVITYDESC, ROLE, POST, ROLENAME, POSTNAME, MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :NODEID, :NODENAME, :NODETYPE, :PLID, :PLNAME, :NODECATEGORY, :ITSYSVAL, :ACTIVITYNUMBER, :ACTIVITYDESC, :ROLE, :POST, :ROLENAME, :POSTNAME, :MODIFYDATETIME)", newNodeDataMaps);
|
||||
}
|
||||
}
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("结束时间"+endTime);
|
||||
SDK.getLogAPI().consoleInfo("运行时间"+(endTime-startTime));
|
||||
|
||||
ro.ok("增量同步执行成功");
|
||||
return ro;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.awspaas.user.apps.yili.reportform.controller;
|
||||
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.server.bind.annotation.Controller;
|
||||
import com.actionsoft.bpms.server.bind.annotation.Mapping;
|
||||
import com.awspaas.user.apps.yili.reportform.service.AttrSynService;
|
||||
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-05 11:46
|
||||
* @Description: 测试形状属性
|
||||
*/
|
||||
@Controller
|
||||
public class AttrSynController {
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.AttrSynService_incrementSyn")
|
||||
public String incrementSyn(UserContext uc, RequestParams params) {
|
||||
return new AttrSynService().incrementSyn(uc,params);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.awspaas.user.apps.yili.reportform.controller;
|
||||
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
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.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.awspaas.user.apps.yili.reportform.service.DataViewService;
|
||||
import com.awspaas.user.apps.yili.reportform.service.ToPageService;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-11 15:42
|
||||
* @Description: 个人/部门视图
|
||||
*/
|
||||
@Controller
|
||||
public class DataViewController {
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.DataViewService_queryTermsPerson",
|
||||
desc = "个人信息")
|
||||
public String queryTermsPerson(UserContext uc, RequestParams params) {
|
||||
String queryTermsPersonVal = null;
|
||||
try {
|
||||
queryTermsPersonVal = new DataViewService(uc).queryTermsPerson(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTermsPerson异常");
|
||||
}
|
||||
return queryTermsPersonVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.DataViewService_queryTermsPosition",
|
||||
desc = "筛选条件:岗位")
|
||||
public String queryTermsPosition(UserContext uc, RequestParams params) {
|
||||
String queryTermsPositionVal = null;
|
||||
try {
|
||||
queryTermsPositionVal = new DataViewService(uc).queryTermsPosition(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTermsPosition异常");
|
||||
}
|
||||
return queryTermsPositionVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.DataViewService_personalView",
|
||||
desc = "个人视图")
|
||||
public String personalView(UserContext uc, RequestParams params) {
|
||||
String personalViewVal = null;
|
||||
try {
|
||||
personalViewVal = new DataViewService(uc).personalView(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("personalView异常");
|
||||
}
|
||||
return personalViewVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.DataViewService_queryTermsDept",
|
||||
desc = "筛选条件:当前用户部门、部门")
|
||||
public String queryTermsDept(UserContext uc, RequestParams params) {
|
||||
String queryTermsDeptVal = null;
|
||||
try {
|
||||
queryTermsDeptVal = new DataViewService(uc).queryTermsDept(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTermsDept异常");
|
||||
}
|
||||
return queryTermsDeptVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.DataViewService_deptView",
|
||||
desc = "部门视图")
|
||||
public String deptView(UserContext uc, RequestParams params) {
|
||||
String deptViewVal = deptViewVal = new DataViewService(uc).deptView(uc, params);
|
||||
try {
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptView异常");
|
||||
}
|
||||
return deptViewVal;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
package com.awspaas.user.apps.yili.reportform.controller;
|
||||
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
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.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.awspaas.user.apps.yili.reportform.service.FileManagementService;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-06-27 15:34
|
||||
* @Description: 文件管理看板
|
||||
*/
|
||||
@Controller
|
||||
public class FileManagementController {
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_fileTotal",
|
||||
desc = "流程制度类文件总数")
|
||||
public String fileTotal(UserContext uc, RequestParams params) {
|
||||
String fileTotalVal = null;
|
||||
try {
|
||||
fileTotalVal = new FileManagementService(uc).fileTotal(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("fileTotal异常");
|
||||
}
|
||||
return fileTotalVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_queryTerms5",
|
||||
desc = "制度管理看板筛选条件 文件类型、发布单位、所属领域")
|
||||
public String queryTerms5(UserContext uc, RequestParams params) {
|
||||
String queryTerms5Val = null;
|
||||
try {
|
||||
queryTerms5Val = new FileManagementService(uc).queryTerms5(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms5异常");
|
||||
}
|
||||
return queryTerms5Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_fileStatistics",
|
||||
desc = "制度管理看板")
|
||||
public String fileStatistics(UserContext uc, RequestParams params) {
|
||||
return new FileManagementService(uc).fileStatistics(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_deptFileCount",
|
||||
desc = "部门文件数量")
|
||||
public String deptFileCount(UserContext uc, RequestParams params) {
|
||||
String deptFileCountVal = null;
|
||||
try {
|
||||
deptFileCountVal = new FileManagementService(uc).deptFileCount(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptFileCount异常:"+e.toString());
|
||||
}
|
||||
return deptFileCountVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_deptFileYearRenewRate",
|
||||
desc = "部门文件年度更新率")
|
||||
public String deptFileYearRenewRate(UserContext uc, RequestParams params) {
|
||||
return new FileManagementService(uc).deptFileYearRenewRate(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_deptFileYearRenewSituation",
|
||||
desc = "部门文件年度更新情况")
|
||||
public String deptFileYearRenewSituation(UserContext uc, RequestParams params) {
|
||||
String deptFileYearRenewSituationVal = null;
|
||||
try {
|
||||
deptFileYearRenewSituationVal = new FileManagementService(uc).deptFileYearRenewSituation(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptFileYearRenewSituation异常:"+e.toString());
|
||||
}
|
||||
return deptFileYearRenewSituationVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_queryTerms6",
|
||||
desc = "文件发布时间分布筛选条件:发布单位、所属领域")
|
||||
public String queryTerms6(UserContext uc, RequestParams params) {
|
||||
String queryTerms6Val = null;
|
||||
try {
|
||||
queryTerms6Val = new FileManagementService(uc).queryTerms6(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms6异常");
|
||||
}
|
||||
return queryTerms6Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_filePubTimeDistribution",
|
||||
desc = "文件发布时间分布")
|
||||
public String filePubTimeDistribution(UserContext uc, RequestParams params) {
|
||||
String filePubTimeDistributionVal = null;
|
||||
try {
|
||||
filePubTimeDistributionVal = new FileManagementService(uc).filePubTimeDistribution(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("filePubTimeDistribution异常");
|
||||
}
|
||||
return filePubTimeDistributionVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_queryTerms7",
|
||||
desc = "引用情况分析筛选条件:发布单位、所属领域、文件类型")
|
||||
public String queryTerms7(UserContext uc, RequestParams params) {
|
||||
String queryTerms7Val = null;
|
||||
try {
|
||||
queryTerms7Val = new FileManagementService(uc).queryTerms7(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms7异常");
|
||||
}
|
||||
return queryTerms7Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.FileManagementService_citationAnalysis",
|
||||
desc = "引用情况分析")
|
||||
public String citationAnalysis(UserContext uc, RequestParams params) {
|
||||
String citationAnalysisVal = null;
|
||||
try {
|
||||
citationAnalysisVal = new FileManagementService(uc).citationAnalysis(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("citationAnalysis异常");
|
||||
}
|
||||
return citationAnalysisVal;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,220 @@
|
||||
package com.awspaas.user.apps.yili.reportform.controller;
|
||||
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
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.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.awspaas.user.apps.yili.reportform.service.ProcessPubService;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-06-14 10:33
|
||||
* @Description: 流程发布平台
|
||||
*/
|
||||
@Controller
|
||||
public class ProcessPubController {
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processTotalCount",
|
||||
desc = "返回总 流程、制度、覆盖率")
|
||||
public String processTotalCount(UserContext uc, RequestParams params) {
|
||||
String processTotalCountVal = null;
|
||||
try {
|
||||
processTotalCountVal = new ProcessPubService(uc).processTotalCount(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processTotalCount异常");
|
||||
}
|
||||
return processTotalCountVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_queryTerms1",
|
||||
desc = "返回表格部分下拉框数据")
|
||||
public String queryTerms1(UserContext uc, RequestParams params) {
|
||||
String queryTerms1Val = null;
|
||||
try {
|
||||
queryTerms1Val = new ProcessPubService(uc).queryTerms1(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms1异常");
|
||||
}
|
||||
return queryTerms1Val;
|
||||
}
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processList",
|
||||
desc = "返回表格部分数据")
|
||||
public String processList(UserContext uc, RequestParams params) {
|
||||
String processListVal = null;
|
||||
try {
|
||||
processListVal = new ProcessPubService(uc).processList(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processList异常");
|
||||
}
|
||||
return processListVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_queryTerms2",
|
||||
desc = "流程连接度分析筛选条件:所属单位、所属领域")
|
||||
public String queryTerms2(UserContext uc, RequestParams params) {
|
||||
String queryTerms2Val = null;
|
||||
try {
|
||||
queryTerms2Val = new ProcessPubService(uc).queryTerms2(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms2异常");
|
||||
}
|
||||
return queryTerms2Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processCONND",
|
||||
desc = "流程连接度分析")
|
||||
public String processCONND(UserContext uc, RequestParams params) {
|
||||
String processCONNDVal = null;
|
||||
try {
|
||||
processCONNDVal = new ProcessPubService(uc).processCONND(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processCONND异常");
|
||||
}
|
||||
return processCONNDVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processCONNDDetail",
|
||||
desc = "事业部、职能部门流程连接度有前后置和无前后置占比")
|
||||
public String processCONNDDetail(UserContext uc, RequestParams params) {
|
||||
String processCONNDDetailVal = null;
|
||||
try {
|
||||
processCONNDDetailVal = new ProcessPubService(uc).processCONNDDetail(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processCONNDDetail异常");
|
||||
}
|
||||
return processCONNDDetailVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processComment",
|
||||
desc = "流程评论")
|
||||
public String processComment(UserContext uc, RequestParams params, Connection open) {
|
||||
String processCommentVal = null;
|
||||
try {
|
||||
processCommentVal = new ProcessPubService(uc).processComment(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processComment异常");
|
||||
}
|
||||
return processCommentVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_queryTerms3",
|
||||
desc = "流程成熟度筛选条件 所属领域、评估周期")
|
||||
public String queryTerms3(UserContext uc, RequestParams params) {
|
||||
String queryTerms3Val = null;
|
||||
try {
|
||||
queryTerms3Val = new ProcessPubService(uc).queryTerms3(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms3异常");
|
||||
}
|
||||
return queryTerms3Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_processMaturity",
|
||||
desc = "流程成熟度雷达图和评分明细")
|
||||
public String processMaturity(UserContext uc, RequestParams params) {
|
||||
String processMaturityVal = null;
|
||||
try {
|
||||
processMaturityVal = new ProcessPubService(uc).processMaturity(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("processMaturity异常");
|
||||
}
|
||||
return processMaturityVal;
|
||||
}
|
||||
/* @Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_maturityReachRate",
|
||||
desc = "成熟度目标达成率")
|
||||
public String maturityReachRate(UserContext uc, RequestParams params, Connection open) {
|
||||
String maturityReachRateVal = null;
|
||||
try {
|
||||
maturityReachRateVal = new ProcessPubService(uc).maturityReachRate(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("maturityReachRate异常");
|
||||
}
|
||||
return maturityReachRateVal;
|
||||
}*/
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_queryTerms4",
|
||||
desc = "领域成熟度情况查询条件:评估维度")
|
||||
public String queryTerms4(UserContext uc, RequestParams params) {
|
||||
String queryTerms4Val = null;
|
||||
try {
|
||||
queryTerms4Val = new ProcessPubService(uc).queryTerms4(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("queryTerms4异常");
|
||||
}
|
||||
return queryTerms4Val;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_maturityField",
|
||||
desc = "领域成熟度情况")
|
||||
public String maturityField(UserContext uc, RequestParams params) {
|
||||
String maturityFieldVal = null;
|
||||
try {
|
||||
maturityFieldVal = new ProcessPubService(uc).maturityField(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("maturityField异常");
|
||||
}
|
||||
return maturityFieldVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_sysDistribution",
|
||||
desc = "流程系统分布图")
|
||||
public String sysDistribution(UserContext uc, RequestParams params) {
|
||||
String sysDistributionVal = null;
|
||||
try {
|
||||
sysDistributionVal = new ProcessPubService(uc).sysDistribution(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("sysDistribution异常");
|
||||
}
|
||||
return sysDistributionVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_nodeAnalysisTerms",
|
||||
desc = "流程节点分析筛选条件:所属领域、发布单位")
|
||||
public String nodeAnalysisTerms(UserContext uc, RequestParams params) {
|
||||
String sysDistributionVal = null;
|
||||
try {
|
||||
sysDistributionVal = new ProcessPubService(uc).nodeAnalysisTerms(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("nodeAnalysisTerms异常");
|
||||
}
|
||||
return sysDistributionVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_nodeAnalysis",
|
||||
desc = "流程节点分析")
|
||||
public String nodeAnalysis(UserContext uc, RequestParams params) {
|
||||
String sysDistributionVal = null;
|
||||
try {
|
||||
sysDistributionVal = new ProcessPubService(uc).nodeAnalysis(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("nodeAnalysis异常");
|
||||
}
|
||||
return sysDistributionVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_deptNodeAttrTerms",
|
||||
desc = "事业部/职能部门节点信息筛选条件:所属领域")
|
||||
public String deptNodeAttrTerms(UserContext uc, RequestParams params) {
|
||||
String deptNodeAttrTermsVal = null;
|
||||
try {
|
||||
deptNodeAttrTermsVal = new ProcessPubService(uc).deptNodeAttrTerms(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptNodeAttrTerms异常");
|
||||
}
|
||||
return deptNodeAttrTermsVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_deptNodeAttrApproval",
|
||||
desc = "事业部/职能部门审批节点信息")
|
||||
public String deptNodeAttrApproval(UserContext uc, RequestParams params) {
|
||||
String deptNodeAttrApprovalVal = null;
|
||||
try {
|
||||
deptNodeAttrApprovalVal = new ProcessPubService(uc).deptNodeAttrApproval(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptNodeAttrApproval异常");
|
||||
}
|
||||
return deptNodeAttrApprovalVal;
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ProcessPubService_deptNodeAttrOperation",
|
||||
desc = "事业部/职能部门操作节点信息")
|
||||
public String deptNodeAttrOperation(UserContext uc, RequestParams params) {
|
||||
String deptNodeAttrOperationVal = null;
|
||||
try {
|
||||
deptNodeAttrOperationVal = new ProcessPubService(uc).deptNodeAttrOperation(uc,params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("deptNodeAttrOperation异常");
|
||||
}
|
||||
return deptNodeAttrOperationVal;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package com.awspaas.user.apps.yili.reportform.controller;
|
||||
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
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.awspaas.user.apps.yili.reportform.service.ToPageService;
|
||||
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-08 14:23
|
||||
* @Description: 跳转页面
|
||||
*/
|
||||
@Controller
|
||||
public class ToPageController {
|
||||
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ToPageService_toIndex",
|
||||
desc = "跳转首页(流程管理看板)")
|
||||
public String toIndex(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toIndex(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ToPageService_toFileboard",
|
||||
desc = "跳转文件管理看板")
|
||||
public String toFileboard(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toFileboard(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ToPageService_toTerritory",
|
||||
desc = "领域流程绩效看板")
|
||||
public String toTerritory(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toTerritory(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.reportform.service.ToPageService_toDomainprocess",
|
||||
desc = "流程运行看板")
|
||||
public String toDomainprocess(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toDomainprocess(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.integration.service.ToPageService_toPersonView",
|
||||
desc = "跳转个人视图")
|
||||
public String toPersonView(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toPersonView(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.integration.service.ToPageService_toDeptView",
|
||||
desc = "跳转部门视图")
|
||||
public String toDeptView(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toDeptView(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.integration.service.ToPageService_toFrameView",
|
||||
desc = "跳转架构视图")
|
||||
public String toFrameView(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).toFrameView(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.integration.service.ToPageService_queryTermsFileType",
|
||||
desc = "架构视图筛选条件:文件类型")
|
||||
public String queryTermsFileType(UserContext uc, RequestParams params) {
|
||||
return new ToPageService(uc).queryTermsFileType(uc, params);
|
||||
}
|
||||
@Mapping(value = "com.awspaas.user.apps.yili.integration.service.ToPageService_frameView",
|
||||
desc = "架构视图")
|
||||
public String frameView(UserContext uc, RequestParams params) {
|
||||
String frameViewVal = null;
|
||||
try {
|
||||
frameViewVal = new ToPageService(uc).frameView(uc, params);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleErr("frameView异常");
|
||||
}
|
||||
return frameViewVal;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.manage.CoeDesignerAPIManager;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.model.BaseModel;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* @author:lihongyu
|
||||
* @create: 2022-11-03 11:32
|
||||
* @Description: 同步制度文件的类型到 app_act_coe_pal_repository EXT3
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class SyncControlPolicyTypeToPalRepository implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
|
||||
DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT3 = '' WHERE PLMETHODID='control.policy'");
|
||||
int regulationNum =0;
|
||||
int L4Num =0;
|
||||
SDK.getLogAPI().consoleInfo("同步制度文件的类型");
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
Date nowDateJ = new Date(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String format = sdf2.format(nowDateJ);
|
||||
SDK.getLogAPI().consoleInfo("开始时间" + format);
|
||||
String sql = "SELECT ID,PLMETHODID,EXT3 FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLMETHODID='control.policy'";
|
||||
List<RowMap> fileListMap = DBSql.getMaps(sql);
|
||||
for (RowMap fileRowMap : fileListMap) {
|
||||
try {
|
||||
String plId = fileRowMap.getString("ID");
|
||||
BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(plId, 0);
|
||||
if (defineModel != null) {
|
||||
String define = defineModel.getDefinition();
|
||||
JSONObject definition = JSONObject.parseObject(define);
|
||||
JSONObject elements = definition.getJSONObject("elements");
|
||||
for (String key : elements.keySet()) {
|
||||
JSONObject shape1 = elements.getJSONObject(key);
|
||||
String name = shape1.getString("name");
|
||||
if ("regulation".equals(name)&&!"regulation".equals(fileRowMap.getString("EXT3"))) {
|
||||
regulationNum+=DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT3 = 'regulation' WHERE ID = '" + plId
|
||||
+ "'");
|
||||
} else if ("I/O_L4".equals(name)&&!"I/O_L4".equals(fileRowMap.getString("EXT3"))) {
|
||||
L4Num+=DBSql.update(
|
||||
"UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT3 = 'I/O_L4' WHERE ID = '" + plId + "'");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
} finally {
|
||||
}
|
||||
|
||||
}
|
||||
long endTime = System.currentTimeMillis();
|
||||
long time = endTime - startTime;
|
||||
System.err.println("同步制度文件类型完成,同步制度文件:"+regulationNum+"个,同步操作指导:"+L4Num+"个"+"用时" + time /1000/60/60+"秒");
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,676 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.bpms.api.Utils;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.bpms.util.UtilString;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.awspaas.user.apps.yili.reportform.util.CheckUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.GetNodesUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.RepositoryAttribute;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-05 15:58
|
||||
* @Description: 定时同步数据
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class SyncData implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
|
||||
SDK.getLogAPI().consoleInfo("全量定时同步文件信息开始执行");
|
||||
long startTime = System.currentTimeMillis();
|
||||
Date nowDateJ = new Date(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String format = sdf2.format(nowDateJ);
|
||||
SDK.getLogAPI().consoleInfo("开始时间" + format);
|
||||
|
||||
String wsId = SDK.getJobAPI().getJobParameter(jobExecutionContext);
|
||||
|
||||
//总文件集合
|
||||
String process = "process";
|
||||
String org = "org";
|
||||
String data = "data";
|
||||
String itsystem = "itsystem";
|
||||
String control = "control";
|
||||
List<PALRepositoryModel> palProcessList = new ArrayList<>();
|
||||
Set<String> palProcessIds = new HashSet<>();
|
||||
List<PALRepositoryModel> palOrgList = new ArrayList<>();
|
||||
Set<String> palOrgIds = new HashSet<>();
|
||||
List<PALRepositoryModel> palDataList = new ArrayList<>();
|
||||
Set<String> palDataIds = new HashSet<>();
|
||||
List<PALRepositoryModel> palItsystemList = new ArrayList<>();
|
||||
Set<String> palItsystemIds = new HashSet<>();
|
||||
List<PALRepositoryModel> palControlList = new ArrayList<>();
|
||||
Set<String> palControlIds = new HashSet<>();
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, process, palProcessList, palProcessIds);
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, org, palOrgList, palOrgIds);
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, data, palDataList, palDataIds);
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, itsystem, palItsystemList, palItsystemIds);
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, control, palControlList, palControlIds);
|
||||
//合并为文件总量list
|
||||
List<PALRepositoryModel> palTotalList = new ArrayList<>();
|
||||
palTotalList.addAll(palProcessList);
|
||||
palTotalList.addAll(palOrgList);
|
||||
palTotalList.addAll(palDataList);
|
||||
palTotalList.addAll(palItsystemList);
|
||||
palTotalList.addAll(palControlList);
|
||||
SDK.getLogAPI().consoleInfo("process下文件数量:" + palProcessList.size());
|
||||
SDK.getLogAPI().consoleInfo("org下文件数量:" + palOrgList.size());
|
||||
SDK.getLogAPI().consoleInfo("data下文件数量:" + palDataList.size());
|
||||
SDK.getLogAPI().consoleInfo("itsystem下文件数量:" + palItsystemList.size());
|
||||
SDK.getLogAPI().consoleInfo("control下文件数量:" + palControlList.size());
|
||||
SDK.getLogAPI().consoleInfo("文件总数量:" + palTotalList.size());
|
||||
//过滤出角色文件
|
||||
/* List<PALRepositoryModel> palRoleFileList = palOrgList.stream().filter(x -> x.getMethodId().equals("org.role")).collect(Collectors.toList());
|
||||
SDK.getLogAPI().consoleInfo("角色文件数量:" + palRoleFileList.size());*/
|
||||
|
||||
//初始化架构、文件、节点 old/new/del/fromDataID/dis list
|
||||
ArrayList<Map<String, ?>> oldFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<String> fromFrameDataIDMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delFileDataMaps = new ArrayList<>();
|
||||
ArrayList<String> fromFileDataIDMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<String> fromNodeDataIDMaps = new ArrayList<>();
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
Object[] sqlParams = new Object[]{};
|
||||
//获取底表数据
|
||||
List<String> frameIdList = DBSql.getList("SELECT FRAMEID FROM BO_EU_PAL_FRAME", String.class);
|
||||
SDK.getLogAPI().consoleInfo("架构底表长度:" + frameIdList.size());
|
||||
List<String> fileIdList = DBSql.getList("SELECT FILEID FROM BO_EU_PAL_FILE1", String.class);
|
||||
SDK.getLogAPI().consoleInfo("文件底表长度:" + fileIdList.size());
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE5", String.class);
|
||||
SDK.getLogAPI().consoleInfo("节点底表长度:" + nodeIdList.size());
|
||||
//系统字段
|
||||
String uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
|
||||
//遍历总文件集合
|
||||
for (PALRepositoryModel fileModel : palTotalList) {
|
||||
List<Map<String, Object>> nodeElements = new ArrayList<>();
|
||||
String PLMETHODID = fileModel.getMethodId();
|
||||
String FILEID = fileModel.getId();
|
||||
String PLNAME = fileModel.getName();
|
||||
String plRid = fileModel.getPlRid();
|
||||
String sql = "SELECT ID FROM (SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID = '"+plRid+"' AND ISPUBLISH ='1' ORDER BY PLVER DESC ) WHERE ROWNUM<2";
|
||||
String palId = DBSql.getString(sql);
|
||||
if(UtilString.isNotEmpty(palId)) {
|
||||
if(!FILEID.equals(palId)) {
|
||||
SDK.getLogAPI().consoleInfo("同步数据发现旧版本文件名称:"+PLNAME+"——文件id:"+FILEID);
|
||||
String dsql = "DELETE FROM BO_EU_PAL_FILE1 WHERE FILEID = '"+FILEID+"'";
|
||||
DBSql.update(dsql);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
if (PLMETHODID.equals("process.framework")) {
|
||||
//更新/新增架构
|
||||
Integer FRAMELEVEL = fileModel.getLevel();
|
||||
String FRAMETYPE = null;
|
||||
String FRAMEPARENTID = fileModel.getParentId();
|
||||
Integer FRAMEORDERINDEX = fileModel.getOrderIndex();
|
||||
Map<String, JSONObject> frameAttrs = new HashMap<>();
|
||||
try {
|
||||
frameAttrs = new RepositoryAttribute().queryRepositoryAttributeById(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("更新架构时文件ID" + FILEID + "数据异常");
|
||||
}
|
||||
if (null != frameAttrs && !frameAttrs.isEmpty()) {
|
||||
JSONObject Frame_type = frameAttrs.get("Frame_type");
|
||||
FRAMETYPE = Frame_type.getString("text");
|
||||
}
|
||||
|
||||
fromFrameDataIDMaps.add(FILEID);
|
||||
|
||||
if (frameIdList.contains(FILEID)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FRAMEID", FILEID);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("FRAMENAME", PLNAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldFrameDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FRAMEID", FILEID);
|
||||
dataMap.put("FRAMENAME", PLNAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newFrameDataMaps.add(dataMap);
|
||||
}
|
||||
} else {
|
||||
//更新/新增文件
|
||||
Integer PLLEVEL = fileModel.getLevel();
|
||||
String PLPARENTID = fileModel.getParentId();
|
||||
Integer PLORDERINDEX = fileModel.getOrderIndex();
|
||||
String PLCATEGORY = fileModel.getMethodCategory();
|
||||
String CREATEPER = fileModel.getCreateUser();
|
||||
String MODIFYPER = fileModel.getModifyUser();
|
||||
Timestamp CREATEDATETIME = fileModel.getCreateDate();
|
||||
double FILEVERSION = fileModel.getVersion();
|
||||
String PUBDEPT = "";
|
||||
String PUBDATETIME = "";
|
||||
String FILESTATE = "";
|
||||
String FILEUSESTATE = "";
|
||||
Long VIEWCOUNT = fileModel.getViewCount();
|
||||
String L1ID = "";
|
||||
String L2ID = "";
|
||||
String L3ID = "";
|
||||
String LEADPROCESS = "";
|
||||
String REARPROCESS = "";
|
||||
String PROCESSKPI = "";
|
||||
String RELEVANTFILE = "";
|
||||
String SUPPORTFILE = "";
|
||||
String POLICYTYPE = "";
|
||||
List<RowMap> parentMaps = new ArrayList<>();
|
||||
if (null != PLPARENTID && !PLPARENTID.equals("")) {
|
||||
parentMaps = GetNodesUtil.getParentFrame(PLPARENTID, parentMaps);
|
||||
}
|
||||
if (null != parentMaps && !parentMaps.isEmpty()) {
|
||||
for (RowMap parentMap : parentMaps) {
|
||||
Integer parentLevel = parentMap.getInt("FRAMELEVEL");
|
||||
String parentID = parentMap.getString("FRAMEID");
|
||||
if (parentLevel.equals(3)) {
|
||||
L3ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(2)) {
|
||||
L2ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(1)) {
|
||||
L1ID = parentID;
|
||||
}
|
||||
}
|
||||
}
|
||||
//文件状态
|
||||
FILESTATE = "0";
|
||||
if (fileModel.isPublish() == true) {
|
||||
FILESTATE = "1";
|
||||
}
|
||||
if (fileModel.isApproval() == true) {
|
||||
FILESTATE = "2";
|
||||
}
|
||||
if (fileModel.isStop() == true) {
|
||||
FILESTATE = "3";
|
||||
}
|
||||
|
||||
//文件生效状态
|
||||
if (fileModel.isUse() == true) {
|
||||
FILEUSESTATE = "1";
|
||||
} else {
|
||||
FILEUSESTATE = "0";
|
||||
}
|
||||
|
||||
|
||||
Map<String, JSONObject> fileAttrJsonMap = new HashMap<>();
|
||||
try {
|
||||
fileAttrJsonMap = new RepositoryAttribute().queryRepositoryAttributeById(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("更新文件时文件ID" + FILEID + "数据异常");
|
||||
}
|
||||
if (null != fileAttrJsonMap && !fileAttrJsonMap.isEmpty()) {
|
||||
//发布部门
|
||||
JSONObject Issuing_department = fileAttrJsonMap.get("Issuing_department");
|
||||
if (null != Issuing_department && !Issuing_department.equals("")) {
|
||||
JSONArray PUBDEPTJA = Issuing_department.getJSONArray("value");
|
||||
if (null != PUBDEPTJA && !PUBDEPTJA.isEmpty()) {
|
||||
for (Object PUBDEPTO : PUBDEPTJA) {
|
||||
JSONObject PUBDEPTJO = JSONObject.parseObject(String.valueOf(PUBDEPTO));
|
||||
PUBDEPT = PUBDEPT + " " + PUBDEPTJO.getString("id");
|
||||
}
|
||||
PUBDEPT = PUBDEPT.substring(1);
|
||||
}
|
||||
}
|
||||
//发布时间
|
||||
PUBDATETIME = "";
|
||||
JSONObject effective_date = fileAttrJsonMap.get("Drafted_and_revised_date");
|
||||
if (null != effective_date && !effective_date.equals("")) {
|
||||
String pubDateString = effective_date.getString("text");
|
||||
if (null != pubDateString && !pubDateString.equals("")) {
|
||||
if (CheckUtil.isDate(pubDateString)) {
|
||||
Date parse = null;
|
||||
try {
|
||||
parse = sdf1.parse(pubDateString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
PUBDATETIME = sdf1.format(parse);
|
||||
}
|
||||
}
|
||||
}
|
||||
//前置流程
|
||||
if (PLMETHODID.equals("process.epc")) {
|
||||
JSONObject lead_process = fileAttrJsonMap.get("lead_process");
|
||||
if (null != lead_process && !lead_process.equals("")) {
|
||||
JSONArray lpValue = lead_process.getJSONArray("value");
|
||||
if (null != lpValue && !lpValue.isEmpty()) {
|
||||
LEADPROCESS = "1";
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
//后置流程
|
||||
JSONObject rear_process = fileAttrJsonMap.get("rear_process");
|
||||
if (null != rear_process && !rear_process.equals("")) {
|
||||
JSONArray rpValue = rear_process.getJSONArray("value");
|
||||
if (null != rpValue && !rpValue.isEmpty()) {
|
||||
REARPROCESS = "1";
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
}
|
||||
//流程绩效
|
||||
JSONObject performance = fileAttrJsonMap.get("Process_performance_metrics");
|
||||
if (null != performance && !performance.equals("")) {
|
||||
JSONArray performanceJA = performance.getJSONArray("value");
|
||||
if (null != performanceJA && !performanceJA.isEmpty()) {
|
||||
for (Object performanceO : performanceJA) {
|
||||
JSONObject performanceJO = JSONObject.parseObject(String.valueOf(performanceO));
|
||||
PROCESSKPI = PROCESSKPI + " " + performanceJO.getString("fileId");
|
||||
}
|
||||
PROCESSKPI = PROCESSKPI.substring(1);
|
||||
}
|
||||
}
|
||||
//相关文件
|
||||
JSONObject R_relevant_flies = fileAttrJsonMap.get("R_relevant_flies");
|
||||
if (null != R_relevant_flies && !R_relevant_flies.equals("")) {
|
||||
JSONArray RELEVANTFILEJA = R_relevant_flies.getJSONArray("value");
|
||||
if (null != RELEVANTFILEJA && !RELEVANTFILEJA.isEmpty()) {
|
||||
for (Object RELEVANTFILEO : RELEVANTFILEJA) {
|
||||
JSONObject RELEVANTFILEJO = JSONObject.parseObject(String.valueOf(RELEVANTFILEO));
|
||||
RELEVANTFILE = RELEVANTFILE + " " + RELEVANTFILEJO.getString("fileId");
|
||||
}
|
||||
RELEVANTFILE = RELEVANTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
//支持文件
|
||||
JSONObject support_files = fileAttrJsonMap.get("support_files");
|
||||
if (null != support_files && !support_files.equals("")) {
|
||||
JSONArray SUPPORTFILEJA = support_files.getJSONArray("value");
|
||||
if (null != SUPPORTFILEJA && !SUPPORTFILEJA.isEmpty()) {
|
||||
for (Object SUPPORTFILEO : SUPPORTFILEJA) {
|
||||
JSONObject SUPPORTFILEJO = JSONObject.parseObject(String.valueOf(SUPPORTFILEO));
|
||||
SUPPORTFILE = SUPPORTFILE + " " + SUPPORTFILEJO.getString("fileId");
|
||||
}
|
||||
SUPPORTFILE = SUPPORTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
//制度类型
|
||||
nodeElements = new ArrayList<>();
|
||||
if (PLMETHODID.equals("control.policy")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取制度类型过程中," + "文件ID:" + FILEID + "获取节点形状属性异常");
|
||||
}
|
||||
}
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("regulation")) {
|
||||
POLICYTYPE = "regulation";
|
||||
} else if (NODETYPE.equals("I/O_L4")) {
|
||||
POLICYTYPE = "I/O_L4";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fromFileDataIDMaps.add(FILEID);
|
||||
|
||||
if (fileIdList.contains(FILEID)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FILEID", FILEID);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("FILEVERSION", FILEVERSION);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
oldFileDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FILEID", FILEID);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("FILEVERSION", FILEVERSION);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
newFileDataMaps.add(dataMap);
|
||||
}
|
||||
|
||||
//更新/新增节点
|
||||
nodeElements = new ArrayList<>();
|
||||
if(PLMETHODID.equals("process.epc")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取节点属性过程中,"+"文件ID:"+FILEID+"获取节点形状属性异常");
|
||||
}
|
||||
}
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("method_approval_node") || NODETYPE.equals("method_service_node") || NODETYPE.equals("method_approval_node3") || NODETYPE.equals("method_service_node4")) {
|
||||
//节点信息
|
||||
String NODEID = String.valueOf(nodeElement.get("id"));
|
||||
String NODENAME = String.valueOf(nodeElement.get("name"));
|
||||
//形状属性数组
|
||||
JSONArray attributesArray = JSON.parseArray(String.valueOf(nodeElement.get("attributes")));
|
||||
//形状属性:信息系统、活动序号、活动描述、角色、岗位
|
||||
String ITSYSVAL = "";
|
||||
String ACTIVITYNUMBER = "";
|
||||
String ACTIVITYDESC = "";
|
||||
String ROLE = "";
|
||||
String ROLENAME = "";
|
||||
String POST = "";
|
||||
String POSTNAME = "";
|
||||
if (null != attributesArray && !attributesArray.isEmpty()) {
|
||||
for (Object attribute : attributesArray) {
|
||||
JSONObject attributeJO = JSON.parseObject(String.valueOf(attribute));
|
||||
String SHAPEATTRKEY = attributeJO.getString("key");
|
||||
if (SHAPEATTRKEY.equals("information_systems")) {
|
||||
ITSYSVAL = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_number")) {
|
||||
ACTIVITYNUMBER = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_description")) {
|
||||
ACTIVITYDESC = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("role")) {
|
||||
String nodeRoleText = attributeJO.getString("value");
|
||||
ROLE = nodeRoleText;
|
||||
if (null!=ROLE && !ROLE.equals("")) {
|
||||
sqlParams = new Object[]{FILEID};
|
||||
List<RowMap> roleFileRowMaps = new ArrayList<>();
|
||||
try {
|
||||
roleFileRowMaps = DBSql.getMaps("SELECT RELATIONFILEID FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND ATTRID='role'", sqlParams);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取流程节点角色属性关联文件时"+"文件ID:"+FILEID+"节点ID:"+NODEID+"异常");
|
||||
}
|
||||
if (null!=roleFileRowMaps && !roleFileRowMaps.isEmpty()) {
|
||||
for (RowMap roleFileRowMap : roleFileRowMaps) {
|
||||
String RELATIONFILEID = roleFileRowMap.getString("RELATIONFILEID");
|
||||
//角色文件属性
|
||||
List<Map<String, Object>> roleShapes = new ArrayList<>();
|
||||
try {
|
||||
roleShapes = CoeDesignerUtil.getShapeMessageJson4(RELATIONFILEID);
|
||||
} catch (Exception e) {
|
||||
|
||||
//SDK.getLogAPI().consoleInfo("获取关联角色文件属性"+"文件ID:"+RELATIONFILEID+"异常");
|
||||
}
|
||||
if (null != roleShapes && !roleShapes.isEmpty()) {
|
||||
for (Map<String, Object> roleShape : roleShapes) {
|
||||
String roleFileNodeName = String.valueOf(roleShape.get("name"));
|
||||
if (nodeRoleText.contains(roleFileNodeName)) {
|
||||
//角色节点形状属性
|
||||
JSONArray roleShapeJA = null;
|
||||
try {
|
||||
roleShapeJA = JSONArray.parseArray(String.valueOf(roleShape.get("attributes")));
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取角色节点形状属性jsonArray"+"文件ID:"+RELATIONFILEID+"异常");
|
||||
}
|
||||
if (null != roleShapeJA && !roleShapeJA.isEmpty()) {
|
||||
for (Object roleShapeO : roleShapeJA) {
|
||||
JSONObject roleShapeJO = JSON.parseObject(String.valueOf(roleShapeO));
|
||||
String roleShapeKey = roleShapeJO.getString("key");
|
||||
if (roleShapeKey.equals("post")) {
|
||||
//SDK.getLogAPI().consoleInfo("角色岗位"+roleShapeJO.getString("value"));
|
||||
POST = roleShapeJO.getString("value");
|
||||
}
|
||||
if (roleShapeKey.equals("post_text")) {
|
||||
//SDK.getLogAPI().consoleInfo("角色岗位文本"+roleShapeJO);
|
||||
ROLENAME = roleShapeJO.getString("value");
|
||||
POSTNAME = roleShapeJO.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (Object attribute1 : attributesArray) {
|
||||
JSONObject attributeJO1 = JSON.parseObject(String.valueOf(attribute1));
|
||||
String SHAPEATTRKEY1 = attributeJO1.getString("key");
|
||||
if (SHAPEATTRKEY1.equals("post")) {
|
||||
POST = attributeJO1.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY1.equals("post_text")) {
|
||||
POSTNAME = attributeJO1.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fromNodeDataIDMaps.add(NODEID);
|
||||
|
||||
if (nodeIdList.contains(NODEID)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("PLID", FILEID);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldNodeDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLID", FILEID);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//执行批量新增、修改、删除
|
||||
if (null != frameIdList && !frameIdList.isEmpty()) {
|
||||
for (String frameIdOfList : frameIdList) {
|
||||
if (!fromFrameDataIDMaps.contains(frameIdOfList)) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("FRAMEID", frameIdOfList);
|
||||
delFrameDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null != oldFrameDataMaps && !oldFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FRAME SET"
|
||||
+ " FRAMENAME=:FRAMENAME, FRAMELEVEL=:FRAMELEVEL, FRAMETYPE=:FRAMETYPE, FRAMEPARENTID=:FRAMEPARENTID, FRAMEORDERINDEX=:FRAMEORDERINDEX, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE WHERE FRAMEID=:FRAMEID", oldFrameDataMaps);
|
||||
}
|
||||
if (null != newFrameDataMaps && !newFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FRAME(ID,FRAMEID,FRAMENAME,FRAMELEVEL,FRAMETYPE,FRAMEPARENTID,FRAMEORDERINDEX,MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :FRAMEID, :FRAMENAME, :FRAMELEVEL, :FRAMETYPE, :FRAMEPARENTID, :FRAMEORDERINDEX, :MODIFYDATETIME)", newFrameDataMaps);
|
||||
}
|
||||
if (null != delFrameDataMaps && !delFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("DELETE FROM BO_EU_PAL_FRAME WHERE FRAMEID=:FRAMEID", delFrameDataMaps);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增架构" + newFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改架构" + oldFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("删除架构" + delFrameDataMaps.size());
|
||||
|
||||
if (null != fileIdList && !fileIdList.isEmpty()) {
|
||||
for (String fileIdOfList : fileIdList) {
|
||||
if (!fromFileDataIDMaps.contains(fileIdOfList)) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("FILEID", fileIdOfList);
|
||||
delFileDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null != oldFileDataMaps && !oldFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILE1 SET"
|
||||
+ " PLNAME=:PLNAME, PLLEVEL=:PLLEVEL, PLPARENTID=:PLPARENTID, PLORDERINDEX=:PLORDERINDEX, PLCATEGORY=:PLCATEGORY, "
|
||||
+ " PLMETHODID=:PLMETHODID, FILEVERSION=:FILEVERSION, CREATEPER=:CREATEPER, MODIFYPER=:MODIFYPER, "
|
||||
+ " PUBDEPT=:PUBDEPT, PUBDATETIME=:PUBDATETIME, FILESTATE=:FILESTATE, VIEWCOUNT=:VIEWCOUNT, L1ID=:L1ID, "
|
||||
+ " L2ID=:L2ID, L3ID=:L3ID, LEADPROCESS=:LEADPROCESS, REARPROCESS=:REARPROCESS, PROCESSKPI=:PROCESSKPI, "
|
||||
+ " RELEVANTFILE=:RELEVANTFILE, SUPPORTFILE=:SUPPORTFILE, POLICYTYPE=:POLICYTYPE, "
|
||||
+ " CREATEDATETIME=:CREATEDATETIME, MODIFYDATETIME=:MODIFYDATETIME, FILEUSESTATE=:FILEUSESTATE, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE FILEID=:FILEID", oldFileDataMaps);
|
||||
}
|
||||
if (null != newFileDataMaps && !newFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILE1"
|
||||
+ " (ID, FILEID, PLNAME, PLLEVEL, PLPARENTID, PLORDERINDEX, PLCATEGORY, PLMETHODID, FILEVERSION, CREATEPER, MODIFYPER, PUBDEPT, PUBDATETIME, "
|
||||
+ " FILESTATE, VIEWCOUNT, L1ID, L2ID, L3ID, LEADPROCESS, REARPROCESS, PROCESSKPI, RELEVANTFILE, SUPPORTFILE, POLICYTYPE, FILEUSESTATE, CREATEDATETIME, MODIFYDATETIME ) "
|
||||
+ " VALUES(:uuId, :FILEID, :PLNAME, :PLLEVEL, :PLPARENTID, :PLORDERINDEX, :PLCATEGORY, :PLMETHODID, "
|
||||
+ " :FILEVERSION, :CREATEPER, :MODIFYPER, :PUBDEPT, :PUBDATETIME, :FILESTATE, :VIEWCOUNT, :L1ID, :L2ID, "
|
||||
+ " :L3ID, :LEADPROCESS, :REARPROCESS, :PROCESSKPI, :RELEVANTFILE, :SUPPORTFILE, :POLICYTYPE, :FILEUSESTATE, :CREATEDATETIME, :MODIFYDATETIME)", newFileDataMaps);
|
||||
}
|
||||
if (null != delFileDataMaps && !delFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("DELETE FROM BO_EU_PAL_FILE1 WHERE FILEID=:FILEID", delFileDataMaps);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增文件" + newFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改文件" + oldFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("删除文件" + delFileDataMaps.size());
|
||||
|
||||
if (null != nodeIdList && !nodeIdList.isEmpty()) {
|
||||
for (String nodeIdOfList : nodeIdList) {
|
||||
if (!fromNodeDataIDMaps.contains(nodeIdOfList)) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("NODEID", nodeIdOfList);
|
||||
delNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null != oldNodeDataMaps && !oldNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILENODE5 SET"
|
||||
+ " NODENAME=:NODENAME, NODETYPE=:NODETYPE, PLNAME=:PLNAME, NODECATEGORY=:NODECATEGORY, ITSYSVAL=:ITSYSVAL, "
|
||||
+ " ACTIVITYNUMBER=:ACTIVITYNUMBER, ACTIVITYDESC=:ACTIVITYDESC, ROLE=:ROLE, POST=:POST, ROLENAME=:ROLENAME, POSTNAME=:POSTNAME, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE PLID=:PLID AND NODEID=:NODEID", oldNodeDataMaps);
|
||||
}
|
||||
if (null != newNodeDataMaps && !newNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILENODE5"
|
||||
+ " (ID, NODEID, NODENAME, NODETYPE, PLID, PLNAME, NODECATEGORY, ITSYSVAL, ACTIVITYNUMBER, ACTIVITYDESC, ROLE, POST, ROLENAME, POSTNAME, MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :NODEID, :NODENAME, :NODETYPE, :PLID, :PLNAME, :NODECATEGORY, :ITSYSVAL, :ACTIVITYNUMBER, :ACTIVITYDESC, :ROLE, :POST, :ROLENAME, :POSTNAME, :MODIFYDATETIME)", newNodeDataMaps);
|
||||
}
|
||||
if (null != delNodeDataMaps && !delNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("DELETE FROM BO_EU_PAL_FILENODE5 WHERE NODEID=:NODEID", delNodeDataMaps);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增节点" + newNodeDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改节点" + oldNodeDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("删除节点" + delNodeDataMaps.size());
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("结束时间" + endTime);
|
||||
SDK.getLogAPI().consoleInfo("运行时间" + (endTime - startTime));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,392 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.awspaas.user.apps.yili.reportform.util.GetNodesUtil;
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-08-04 16:40
|
||||
* @Description: 同步文件数量
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class SyncGroupCount implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
SDK.getLogAPI().consoleInfo("定时同步文件数量(报表用)开始执行");
|
||||
long startTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("开始时间"+startTime);
|
||||
|
||||
//初始化 old/new list
|
||||
ArrayList<Map<String, ?>> oldDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newDataMaps = new ArrayList<>();
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
Object[] sqlParams = new Object[]{};
|
||||
//系统字段
|
||||
String uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
Date nowDateJ = new Date(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
//获取底表数据
|
||||
List<RowMap> frameMaps = DBSql.getMaps("SELECT FRAMEID,FRAMENAME,FRAMELEVEL,FRAMEPARENTID,FRAMETYPE,FRAMEORDERINDEX FROM BO_EU_PAL_FRAME");
|
||||
List<RowMap> fileMaps = DBSql.getMaps("SELECT FILEID,PLPARENTID,PLORDERINDEX,PLMETHODID,PUBDEPT,PUBDATETIME,FILEUSESTATE,PROCESSKPI,RELEVANTFILE,SUPPORTFILE,POLICYTYPE,MODIFYDATETIME FROM BO_EU_PAL_FILE1 WHERE FILESTATE='1'");
|
||||
List<RowMap> nodeMaps = DBSql.getMaps("SELECT NODEID,NODETYPE,PLID,ITSYSVAL FROM BO_EU_PAL_FILENODE5");
|
||||
|
||||
//更新/新增文件数量
|
||||
ArrayList<Map> totalDataMaps = new ArrayList<>();
|
||||
oldDataMaps = new ArrayList<>();
|
||||
newDataMaps = new ArrayList<>();
|
||||
dataMap = new HashMap<>();
|
||||
NumberFormat numberformat = NumberFormat.getInstance();
|
||||
numberformat.setMaximumFractionDigits(2);
|
||||
//流程总数、制度总数、覆盖率
|
||||
Integer bpmn2TotalNum = DBSql.getInt("SELECT COUNT(*) AS bpmn2TotalNum FROM BO_EU_PAL_FILE1 WHERE (PLMETHODID='process.epc' OR PLMETHODID='process.flowchart') AND FILESTATE='1'", "bpmn2TotalNum");
|
||||
Integer policyTotalNum = DBSql.getInt("SELECT COUNT(*) AS policyTotalNum FROM BO_EU_PAL_FILE1 WHERE PLMETHODID='control.policy' AND (POLICYTYPE='regulation' OR POLICYTYPE IS NULL) AND FILESTATE='1'", "policyTotalNum");
|
||||
Integer coverTotalNum = 0;
|
||||
Integer frameTotalNum = 0;
|
||||
if (null!=frameMaps && !frameMaps.isEmpty()) {
|
||||
for (RowMap frameMap : frameMaps) {
|
||||
String frameID = frameMap.getString("FRAMEID");
|
||||
int frameLevel = frameMap.getInt("FRAMELEVEL");
|
||||
if (frameLevel > 1) {
|
||||
frameTotalNum += 1;
|
||||
sqlParams = new Object[]{frameID};
|
||||
Integer pocNum = DBSql.getInt("SELECT COUNT(*) AS POCNum FROM BO_EU_PAL_FILE1 WHERE PLPARENTID=? AND (PLMETHODID='process.epc' OR PLMETHODID='process.flowchart' OR (PLMETHODID='control.policy' AND (POLICYTYPE='regulation' OR POLICYTYPE IS NULL))) AND FILESTATE='1'", sqlParams);
|
||||
if (pocNum > 0) {
|
||||
coverTotalNum += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
String coveragePoCTotal = "0";
|
||||
if (frameTotalNum!=0) {
|
||||
coveragePoCTotal = numberformat.format((float) coverTotalNum / (float) frameTotalNum * 100);
|
||||
}
|
||||
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "bpmn2TotalNum");
|
||||
dataMap.put("COUNTOFGROUP", bpmn2TotalNum);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "policyTotalNum");
|
||||
dataMap.put("COUNTOFGROUP", policyTotalNum);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "coveragePoCTotal");
|
||||
dataMap.put("COUNTOFGROUP", coveragePoCTotal);
|
||||
totalDataMaps.add(dataMap);
|
||||
|
||||
ArrayList<Map> frameList = new ArrayList<>();
|
||||
String hasRoot = "";
|
||||
List<RowMap> L1Maps = DBSql.getMaps("SELECT FRAMEID,FRAMENAME,FRAMETYPE,FRAMEORDERINDEX FROM BO_EU_PAL_FRAME WHERE FRAMELEVEL=1 AND FRAMETYPE IS NOT NULL ");
|
||||
//ORDER BY TO_NUMBER(FRAMEORDERINDEX) ASC
|
||||
//领域:流程数、制度数、覆盖率(绩效/系统)
|
||||
if (null != L1Maps && !L1Maps.isEmpty()) {
|
||||
for (RowMap l1Map : L1Maps) {
|
||||
Integer l2ol3frameNum = 0;
|
||||
Integer l2ol3PoCcoverNum = 0;
|
||||
Integer l2ol3BPMN2NUMSUM = 0;
|
||||
Integer l2ol3POLICYNUMSUM = 0;
|
||||
Integer ACVcoverNum = 0;
|
||||
Integer ACVNUM = 0;
|
||||
Integer SYScoverNum = 0;
|
||||
Integer SYSNUM = 0;
|
||||
String L1ID = l1Map.getString("FRAMEID");
|
||||
String groupID = l1Map.getString("FRAMETYPE");
|
||||
frameList = new ArrayList<>();
|
||||
frameList = GetNodesUtil.getChildFrame(L1ID, hasRoot, frameList);
|
||||
if (null != frameList && !frameList.isEmpty()) {
|
||||
for (Map frameMap : frameList) {
|
||||
String frameID = String.valueOf(frameMap.get("FRAMEID"));
|
||||
l2ol3frameNum += 1;
|
||||
ArrayList<RowMap> PoCFileMaps = new ArrayList<>();
|
||||
ArrayList<RowMap> KPIFileMaps = new ArrayList<>();
|
||||
ArrayList<RowMap> ITsysFileMaps = new ArrayList<>();
|
||||
if (null != fileMaps && !fileMaps.isEmpty()) {
|
||||
for (RowMap fileMap : fileMaps) {
|
||||
String FILEID = fileMap.getString("FILEID");
|
||||
String PLMETHODID = fileMap.getString("PLMETHODID");
|
||||
String POLICYTYPE = fileMap.getString("POLICYTYPE");
|
||||
String PLPARENTID = fileMap.getString("PLPARENTID");
|
||||
if (PLPARENTID.equals(frameID)) {
|
||||
if (PLMETHODID.equals("process.epc") || PLMETHODID.equals("process.flowchart")) {
|
||||
l2ol3BPMN2NUMSUM += 1;
|
||||
PoCFileMaps.add(fileMap);
|
||||
String PROCESSKPI = fileMap.getString("PROCESSKPI");
|
||||
if (null!=PROCESSKPI && !PROCESSKPI.equals("")) {
|
||||
String[] PROCESSKPIIDs = PROCESSKPI.split(" ");
|
||||
ACVNUM += PROCESSKPIIDs.length;
|
||||
KPIFileMaps.add(fileMap);
|
||||
}
|
||||
if (null != nodeMaps && !nodeMaps.isEmpty()) {
|
||||
for (RowMap nodeMap : nodeMaps) {
|
||||
if (FILEID.equals(nodeMap.getString("PLID"))) {
|
||||
String ITSYSVAL = nodeMap.getString("ITSYSVAL");
|
||||
if (null!=ITSYSVAL && !ITSYSVAL.equals("")) {
|
||||
SYSNUM += 1;
|
||||
ITsysFileMaps.add(fileMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (PLMETHODID.equals("control.policy") && (POLICYTYPE.equals("regulation") || null==POLICYTYPE || POLICYTYPE.equals(""))) {
|
||||
l2ol3POLICYNUMSUM += 1;
|
||||
PoCFileMaps.add(fileMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null!=PoCFileMaps && !PoCFileMaps.isEmpty()) {
|
||||
l2ol3PoCcoverNum += 1;
|
||||
}
|
||||
if (null!=KPIFileMaps && !KPIFileMaps.isEmpty()) {
|
||||
ACVcoverNum += 1;
|
||||
}
|
||||
if (null!=ITsysFileMaps && !ITsysFileMaps.isEmpty()) {
|
||||
SYScoverNum += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
String coveragePoC = "0";
|
||||
String coverageAVC = "0";
|
||||
String coverageSYS = "0";
|
||||
if (l2ol3frameNum!=0) {
|
||||
coveragePoC = numberformat.format((float) l2ol3PoCcoverNum / (float) l2ol3frameNum * 100);
|
||||
coverageAVC = numberformat.format((float) ACVcoverNum / (float) l2ol3frameNum * 100);
|
||||
coverageSYS = numberformat.format((float) SYScoverNum / (float) l2ol3frameNum * 100);
|
||||
}
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "l2ol3BPMN2NUMSUM");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", l2ol3BPMN2NUMSUM);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "l2ol3POLICYNUMSUM");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", l2ol3POLICYNUMSUM);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "coveragePoC");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", coveragePoC);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "ACVNUM");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", ACVNUM);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "coverageAVC");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", coverageAVC);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "SYSNUM");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", SYSNUM);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "coverageSYS");
|
||||
dataMap.put("GROUPIDEXT1", L1ID);
|
||||
dataMap.put("GROUPIDEXT2", groupID);
|
||||
dataMap.put("COUNTOFGROUP", coverageSYS);
|
||||
totalDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
|
||||
//流程评论
|
||||
Integer replyCount = 0;
|
||||
List<RowMap> replyRowMaps = DBSql.getMaps("SELECT DR.DATAID,BF.PLPARENTID,DR.REPLYER,DR.ORGID FROM APP_ACT_PAL_DATA_REPLY DR LEFT JOIN BO_EU_PAL_FILE1 BF ON DR.DATAID=BF.FILEID");
|
||||
List<RowMap> frameHeadRowMaps = DBSql.getMaps("SELECT FRAMEID FROM BO_EU_PAL_FRAME WHERE FRAMELEVEL=1 AND FRAMETYPE IS NOT NULL");
|
||||
List<RowMap> deptHeadRowMaps = DBSql.getMaps("SELECT DEPTID FROM BO_EU_DEPT_ABBREVIATION");
|
||||
ArrayList<String> deptIDList = new ArrayList<>();
|
||||
ArrayList<Map> fieldList = new ArrayList<>();
|
||||
if (null!=frameHeadRowMaps && !frameHeadRowMaps.isEmpty()) {
|
||||
for (RowMap frameHeadRowMap : frameHeadRowMaps) {
|
||||
replyCount = 0;
|
||||
String FRAMEID = frameHeadRowMap.getString("FRAMEID");
|
||||
fieldList = new ArrayList<Map>();
|
||||
fieldList = GetNodesUtil.getChildFrame(FRAMEID,"", fieldList);
|
||||
for (Map fieldMap : fieldList) {
|
||||
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
|
||||
if (null!=replyRowMaps && !replyRowMaps.isEmpty()) {
|
||||
for (RowMap replyRowMap : replyRowMaps) {
|
||||
String PLPARENTID = replyRowMap.getString("PLPARENTID");
|
||||
if (PLPARENTID.equals(fieldID)) {
|
||||
replyCount += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "reply");
|
||||
dataMap.put("GROUPIDEXT1", "frame");
|
||||
dataMap.put("GROUPIDEXT2", FRAMEID);
|
||||
dataMap.put("COUNTOFGROUP", replyCount);
|
||||
totalDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
if (null!=deptHeadRowMaps && !deptHeadRowMaps.isEmpty()) {
|
||||
for (RowMap deptHeadRowMap : deptHeadRowMaps) {
|
||||
replyCount = 0;
|
||||
String DEPTID = deptHeadRowMap.getString("DEPTID");
|
||||
deptIDList = new ArrayList<String>();
|
||||
deptIDList = GetNodesUtil.getChildDept(DEPTID, deptIDList);
|
||||
for (String deptID : deptIDList) {
|
||||
if (null!=replyRowMaps && !replyRowMaps.isEmpty()) {
|
||||
for (RowMap replyRowMap : replyRowMaps) {
|
||||
String ORGID = replyRowMap.getString("ORGID");
|
||||
if (ORGID.equals(deptID)) {
|
||||
replyCount += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "reply");
|
||||
dataMap.put("GROUPIDEXT1", "dept");
|
||||
dataMap.put("GROUPIDEXT2", DEPTID);
|
||||
dataMap.put("COUNTOFGROUP", replyCount);
|
||||
totalDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
|
||||
//流程引用情况
|
||||
Integer appearNum = 0;
|
||||
Integer lastNum = 0;
|
||||
Integer nowNum = 0;
|
||||
//本月、上月
|
||||
LocalDate nowDate = LocalDate.now();
|
||||
int nowMonth = nowDate.getMonthValue();
|
||||
int lastMonth = nowDate.minusMonths(1).getMonthValue();
|
||||
if (null!=fileMaps && fileMaps.isEmpty()==false) {
|
||||
for (RowMap fileMap : fileMaps) {
|
||||
String FILEID = fileMap.getString("FILEID");
|
||||
for (RowMap fileMap1 : fileMaps) {
|
||||
String RELEVANTFILE = fileMap1.getString("RELEVANTFILE");
|
||||
String SUPPORTFILE = fileMap1.getString("SUPPORTFILE");
|
||||
if (null != RELEVANTFILE && !RELEVANTFILE.equals("")) {
|
||||
if (RELEVANTFILE.contains(FILEID)) {
|
||||
appearNum += 1;
|
||||
}
|
||||
}
|
||||
if (null != SUPPORTFILE && !SUPPORTFILE.equals("")) {
|
||||
if (SUPPORTFILE.contains(FILEID)) {
|
||||
appearNum += 1;
|
||||
}
|
||||
}
|
||||
Timestamp MODIFYDATETIME = fileMap1.getTimestamp("MODIFYDATETIME");
|
||||
String modifyTimeString = sdf.format(MODIFYDATETIME);
|
||||
LocalDateTime modifyDatetime = LocalDateTime.parse(modifyTimeString, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
if (modifyDatetime.getMonthValue() <= nowMonth) {
|
||||
if (null != RELEVANTFILE && !RELEVANTFILE.equals("")) {
|
||||
if (RELEVANTFILE.contains(FILEID)) {
|
||||
nowNum += 1;
|
||||
}
|
||||
}
|
||||
if (null != SUPPORTFILE && !SUPPORTFILE.equals("")) {
|
||||
if (SUPPORTFILE.contains(FILEID)) {
|
||||
nowNum += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (modifyDatetime.getMonthValue() <= lastMonth) {
|
||||
if (null != RELEVANTFILE && !RELEVANTFILE.equals("")) {
|
||||
if (RELEVANTFILE.contains(FILEID)) {
|
||||
lastNum += 1;
|
||||
}
|
||||
}
|
||||
if (null != SUPPORTFILE && !SUPPORTFILE.equals("")) {
|
||||
if (SUPPORTFILE.contains(FILEID)) {
|
||||
lastNum += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "appearNum");
|
||||
dataMap.put("GROUPIDEXT1", "total");
|
||||
dataMap.put("COUNTOFGROUP", appearNum);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "lastNum");
|
||||
dataMap.put("GROUPIDEXT1", "total");
|
||||
dataMap.put("COUNTOFGROUP", lastNum);
|
||||
totalDataMaps.add(dataMap);
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("GROUPIDMAIN", "nowNum");
|
||||
dataMap.put("GROUPIDEXT1", "total");
|
||||
dataMap.put("COUNTOFGROUP", nowNum);
|
||||
totalDataMaps.add(dataMap);
|
||||
|
||||
if(null!=totalDataMaps && !totalDataMaps.isEmpty()) {
|
||||
for (Map totalDataMap : totalDataMaps) {
|
||||
//系统字段
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
String GROUPIDMAIN = String.valueOf(totalDataMap.get("GROUPIDMAIN"));
|
||||
String GROUPIDEXT1 = String.valueOf(totalDataMap.get("GROUPIDEXT1"));
|
||||
String GROUPIDEXT2 = String.valueOf(totalDataMap.get("GROUPIDEXT2"));
|
||||
String COUNTOFGROUP = String.valueOf(totalDataMap.get("COUNTOFGROUP"));
|
||||
sqlParams = new Object[]{GROUPIDMAIN,GROUPIDEXT1,GROUPIDEXT2};
|
||||
RowMap countDataMap = DBSql.getMap("SELECT COUNTOFGROUP FROM BO_EU_PAL_FILE_GROUPCOUNT WHERE GROUPIDMAIN=? AND GROUPIDEXT1=? AND GROUPIDEXT2=?", sqlParams);
|
||||
if (null!=countDataMap && !countDataMap.isEmpty()) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("GROUPIDMAIN", GROUPIDMAIN);
|
||||
dataMap.put("GROUPIDEXT1", GROUPIDEXT1);
|
||||
dataMap.put("GROUPIDEXT2", GROUPIDEXT2);
|
||||
dataMap.put("COUNTOFGROUP", COUNTOFGROUP);
|
||||
oldDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("GROUPIDMAIN", GROUPIDMAIN);
|
||||
dataMap.put("GROUPIDEXT1", GROUPIDEXT1);
|
||||
dataMap.put("GROUPIDEXT2", GROUPIDEXT2);
|
||||
dataMap.put("COUNTOFGROUP", COUNTOFGROUP);
|
||||
newDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null!=oldDataMaps && !oldDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILE_GROUPCOUNT SET"
|
||||
+ " COUNTOFGROUP=:COUNTOFGROUP, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE GROUPIDMAIN=:GROUPIDMAIN AND GROUPIDEXT1=:GROUPIDEXT1 AND GROUPIDEXT2=:GROUPIDEXT2", oldDataMaps);
|
||||
}
|
||||
if (null!=newDataMaps && !newDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILE_GROUPCOUNT"
|
||||
+ " (ID, GROUPIDMAIN, GROUPIDEXT1, GROUPIDEXT2, COUNTOFGROUP) "
|
||||
+ " VALUES(:uuId, :GROUPIDMAIN, :GROUPIDEXT1, :GROUPIDEXT2, :COUNTOFGROUP)", newDataMaps);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增文件数量"+newDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改文件数量"+oldDataMaps.size());
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("结束时间" + endTime);
|
||||
SDK.getLogAPI().consoleInfo("运行时间" + (endTime - startTime));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
|
||||
/**
|
||||
* @author:lihongyu
|
||||
* @create: 2022-11-03 11:32
|
||||
* @Description: 同步制度文件的类型到 app_act_coe_pal_repository EXT3
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class UpdateKMSFileName implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
int count =0;
|
||||
long startTime = System.currentTimeMillis();
|
||||
String sql = "SELECT * FROM APP_ACT_KMS_CARD WHERE CARDNAME like '%V11%'";
|
||||
List<RowMap> fileListMap = DBSql.getMaps(sql);
|
||||
for (RowMap fileRowMap : fileListMap) {
|
||||
String name = fileRowMap.getString("CARDNAME");
|
||||
String id = fileRowMap.getString("ID");
|
||||
String substring = name.substring(name.length()-1);
|
||||
String substring2 = name.substring(0,name.length()-1);
|
||||
String newName = substring2 +"."+substring;
|
||||
String sqlS = "UPDATE APP_ACT_KMS_CARD SET CARDNAME = '"+newName+"' where ID = '"+id+"'";
|
||||
count+=DBSql.update(sqlS);
|
||||
}
|
||||
long endTime = System.currentTimeMillis();
|
||||
long time = endTime - startTime;
|
||||
System.err.println("修改知识库文件名称:"+count+"个,用时" + time /1000/60/60+"秒");
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.awspaas.user.apps.yili.reportform.plugin;
|
||||
|
||||
import com.actionsoft.apps.listener.PluginListener;
|
||||
import com.actionsoft.apps.resource.AppContext;
|
||||
import com.actionsoft.apps.resource.plugin.profile.*;
|
||||
import com.awspaas.user.apps.yili.reportform.aslp.AttrSynAslp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-08-03 17:17
|
||||
* @Description: 注册类
|
||||
*/
|
||||
public class Plugins implements PluginListener {
|
||||
public Plugins() {
|
||||
}
|
||||
|
||||
public List<AWSPluginProfile> register(AppContext context) {
|
||||
List<AWSPluginProfile> list = new ArrayList();
|
||||
// 注册ASLP
|
||||
list.add(new ASLPPluginProfile("AttrSynAslp", AttrSynAslp.class.getName(), "增量同步数据", (HttpASLP)null));
|
||||
return list;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,529 @@
|
||||
package com.awspaas.user.apps.yili.reportform.service;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.bpms.commons.database.BatchPreparedStatementSetter;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.awspaas.user.apps.yili.reportform.util.CheckUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.GetNodesUtil;
|
||||
import com.awspaas.user.apps.yili.reportform.util.RepositoryAttribute;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.docx4j.wml.R;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.codehaus.groovy.runtime.DefaultGroovyMethods.collect;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-08-03 11:29
|
||||
* @Description:
|
||||
*/
|
||||
public class AttrSynService extends ActionWeb {
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:增量同步数据
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/3 10:02
|
||||
*/
|
||||
public String incrementSyn(UserContext uc, RequestParams params) {
|
||||
ResponseObject ro = ResponseObject.newOkResponse();
|
||||
String wsId = params.get("wsId");
|
||||
String fileIds = params.get("fileId");
|
||||
JSONArray fileIdArray = JSONArray.parseArray(fileIds);
|
||||
SDK.getLogAPI().consoleInfo("增量同步文件信息开始执行");
|
||||
SDK.getLogAPI().consoleInfo("同步个数"+fileIdArray.size());
|
||||
long startTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("开始时间"+startTime);
|
||||
|
||||
//筛选出角色类文件list
|
||||
String org = "org";
|
||||
List<PALRepositoryModel> palOrgList = new ArrayList<>();
|
||||
Set<String> palOrgIds = new HashSet<>();
|
||||
PALRepositoryCache.getAllChildrenModelsByPid(wsId, org, palOrgList, palOrgIds);
|
||||
palOrgList = palOrgList.stream().filter(x -> x.getMethodId().equals("org.role")).collect(Collectors.toList());
|
||||
|
||||
//初始化架构、文件、节点 old/new list
|
||||
ArrayList<Map<String, ?>> oldFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFrameDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newFileDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
Object[] sqlParams = new Object[]{};
|
||||
//获取底表数据
|
||||
List<String> frameIdList = DBSql.getList("SELECT FRAMEID FROM BO_EU_PAL_FRAME", String.class);
|
||||
Set<String> frameSet = frameIdList.stream().collect(Collectors.toSet());
|
||||
List<String> fileIdList = DBSql.getList("SELECT FILEID FROM BO_EU_PAL_FILE1", String.class);
|
||||
Set<String> fileSet = fileIdList.stream().collect(Collectors.toSet());
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE5", String.class);
|
||||
Set<String> nodeSet = nodeIdList.stream().collect(Collectors.toSet());
|
||||
//系统字段
|
||||
String uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
Date nowDateJ = new Date(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
if (null!=fileIdArray && !fileIdArray.isEmpty()) {
|
||||
for (Object fileIdO : fileIdArray) {
|
||||
String fileIdString = String.valueOf(fileIdO);
|
||||
PALRepositoryModel fileModel = PALRepositoryCache.getCache().get(fileIdString);
|
||||
if (fileModel.getMethodId().equals("process.framework")) {
|
||||
//更新/新增架构
|
||||
String FRAMENAME = fileModel.getName();
|
||||
Integer FRAMELEVEL = fileModel.getLevel();
|
||||
String FRAMETYPE = null;
|
||||
String FRAMEPARENTID = fileModel.getParentId();
|
||||
Integer FRAMEORDERINDEX = fileModel.getOrderIndex();
|
||||
Map<String, JSONObject> frameAttrs = new RepositoryAttribute().queryRepositoryAttributeById(fileIdString);
|
||||
if (null!=frameAttrs && !frameAttrs.isEmpty()) {
|
||||
JSONObject Frame_type = frameAttrs.get("Frame_type");
|
||||
FRAMETYPE = Frame_type.getString("text");
|
||||
}
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
|
||||
if (frameSet.contains(fileIdString)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FRAMEID", fileIdString);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("FRAMENAME", FRAMENAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldFrameDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FRAMEID", fileIdString);
|
||||
dataMap.put("FRAMENAME", FRAMENAME);
|
||||
dataMap.put("FRAMELEVEL", FRAMELEVEL);
|
||||
dataMap.put("FRAMETYPE", FRAMETYPE);
|
||||
dataMap.put("FRAMEPARENTID", FRAMEPARENTID);
|
||||
dataMap.put("FRAMEORDERINDEX", FRAMEORDERINDEX);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newFrameDataMaps.add(dataMap);
|
||||
}
|
||||
} else {
|
||||
//更新/新增文件
|
||||
String PLNAME = fileModel.getName();
|
||||
Integer PLLEVEL = fileModel.getLevel();
|
||||
String PLPARENTID = fileModel.getParentId();
|
||||
Integer PLORDERINDEX = fileModel.getOrderIndex();
|
||||
String PLCATEGORY = fileModel.getMethodCategory();
|
||||
String PLMETHODID = fileModel.getMethodId();
|
||||
String CREATEPER = fileModel.getCreateUser();
|
||||
String MODIFYPER = fileModel.getModifyUser();
|
||||
Timestamp CREATEDATETIME = fileModel.getCreateDate();
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
String PUBDEPT = "";
|
||||
String PUBDATETIME = "";
|
||||
String FILESTATE = "";
|
||||
String FILEUSESTATE = "";
|
||||
Long VIEWCOUNT = fileModel.getViewCount();
|
||||
String L1ID = "";
|
||||
String L2ID = "";
|
||||
String L3ID = "";
|
||||
String LEADPROCESS = "0";
|
||||
String REARPROCESS = "0";
|
||||
String PROCESSKPI = "";
|
||||
String RELEVANTFILE = "";
|
||||
String SUPPORTFILE = "";
|
||||
String POLICYTYPE = "";
|
||||
List<RowMap> parentMaps = new ArrayList<>();
|
||||
parentMaps = GetNodesUtil.getParentFrame(PLPARENTID, parentMaps);
|
||||
if (null != parentMaps && !parentMaps.isEmpty()) {
|
||||
for (RowMap parentMap : parentMaps) {
|
||||
Integer parentLevel = parentMap.getInt("FRAMELEVEL");
|
||||
String parentID = parentMap.getString("FRAMEID");
|
||||
if (parentLevel.equals(3)) {
|
||||
L3ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(2)) {
|
||||
L2ID = parentID;
|
||||
}
|
||||
if (parentLevel.equals(1)) {
|
||||
L1ID = parentID;
|
||||
}
|
||||
}
|
||||
}
|
||||
//文件状态
|
||||
FILESTATE = "0";
|
||||
if (fileModel.isPublish()==true) {
|
||||
FILESTATE = "1";
|
||||
}
|
||||
if (fileModel.isApproval()==true) {
|
||||
FILESTATE = "2";
|
||||
}
|
||||
if (fileModel.isStop()==true) {
|
||||
FILESTATE = "3";
|
||||
}
|
||||
//文件生效状态
|
||||
if (fileModel.isUse()==true) {
|
||||
FILEUSESTATE = "1";
|
||||
} else {
|
||||
FILEUSESTATE = "0";
|
||||
}
|
||||
Map<String, JSONObject> fileAttrJsonMap = new HashMap<>();
|
||||
try {
|
||||
fileAttrJsonMap = new RepositoryAttribute().queryRepositoryAttributeById(fileIdString);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("文件ID"+fileIdString+"数据异常");
|
||||
}
|
||||
finally {
|
||||
if (null!=fileAttrJsonMap && !fileAttrJsonMap.isEmpty()) {
|
||||
//发布部门
|
||||
JSONObject Issuing_department = fileAttrJsonMap.get("Issuing_department");
|
||||
if (null!=Issuing_department && !Issuing_department.equals("")) {
|
||||
JSONArray PUBDEPTJA = Issuing_department.getJSONArray("value");
|
||||
if (null!=PUBDEPTJA && !PUBDEPTJA.isEmpty()) {
|
||||
for (Object PUBDEPTO : PUBDEPTJA) {
|
||||
JSONObject PUBDEPTJO = JSONObject.parseObject(String.valueOf(PUBDEPTO));
|
||||
PUBDEPT = PUBDEPT + " " + PUBDEPTJO.getString("id");
|
||||
}
|
||||
PUBDEPT = PUBDEPT.substring(1);
|
||||
}
|
||||
}
|
||||
//发布时间
|
||||
PUBDATETIME = "";
|
||||
JSONObject effective_date = fileAttrJsonMap.get("Drafted_and_revised_date");
|
||||
if (null!=effective_date && !effective_date.equals("")) {
|
||||
String pubDateString = effective_date.getString("text");
|
||||
if (null!=pubDateString && !pubDateString.equals("")) {
|
||||
if (CheckUtil.isDate(pubDateString)) {
|
||||
Date parse = null;
|
||||
try {
|
||||
parse = sdf1.parse(pubDateString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
PUBDATETIME = sdf1.format(parse);
|
||||
}
|
||||
}
|
||||
}
|
||||
//前置流程
|
||||
JSONObject lead_process = fileAttrJsonMap.get("lead_process");
|
||||
if (null != lead_process && !lead_process.equals("")) {
|
||||
JSONArray lpValue = lead_process.getJSONArray("value");
|
||||
if (null != lpValue && !lpValue.isEmpty()) {
|
||||
LEADPROCESS = "1";
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
LEADPROCESS = "0";
|
||||
}
|
||||
//后置流程
|
||||
JSONObject rear_process = fileAttrJsonMap.get("rear_process");
|
||||
if (null != rear_process && !rear_process.equals("")) {
|
||||
JSONArray rpValue = rear_process.getJSONArray("value");
|
||||
if (null != rpValue && !rpValue.isEmpty()) {
|
||||
REARPROCESS = "1";
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
} else {
|
||||
REARPROCESS = "0";
|
||||
}
|
||||
//流程绩效
|
||||
JSONObject performance = fileAttrJsonMap.get("Process_performance_metrics");
|
||||
if (null!=performance && !performance.equals("")) {
|
||||
JSONArray performanceJA = performance.getJSONArray("value");
|
||||
if (null!=performanceJA && !performanceJA.isEmpty()) {
|
||||
for (Object performanceO : performanceJA) {
|
||||
JSONObject performanceJO = JSONObject.parseObject(String.valueOf(performanceO));
|
||||
PROCESSKPI = PROCESSKPI + " " + performanceJO.getString("fileId");
|
||||
}
|
||||
PROCESSKPI = PROCESSKPI.substring(1);
|
||||
}
|
||||
}
|
||||
//相关文件
|
||||
JSONObject R_relevant_flies = fileAttrJsonMap.get("R_relevant_flies");
|
||||
if (null!=R_relevant_flies && !R_relevant_flies.equals("")) {
|
||||
JSONArray RELEVANTFILEJA = R_relevant_flies.getJSONArray("value");
|
||||
if (null!=RELEVANTFILEJA && !RELEVANTFILEJA.isEmpty()) {
|
||||
for (Object RELEVANTFILEO : RELEVANTFILEJA) {
|
||||
JSONObject RELEVANTFILEJO = JSONObject.parseObject(String.valueOf(RELEVANTFILEO));
|
||||
RELEVANTFILE = RELEVANTFILE + " " + RELEVANTFILEJO.getString("fileId");
|
||||
}
|
||||
RELEVANTFILE = RELEVANTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
//支持文件
|
||||
JSONObject support_files = fileAttrJsonMap.get("support_files");
|
||||
if (null!=support_files && !support_files.equals("")) {
|
||||
JSONArray SUPPORTFILEJA = support_files.getJSONArray("value");
|
||||
if (null!=SUPPORTFILEJA && !SUPPORTFILEJA.isEmpty()) {
|
||||
for (Object SUPPORTFILEO : SUPPORTFILEJA) {
|
||||
JSONObject SUPPORTFILEJO = JSONObject.parseObject(String.valueOf(SUPPORTFILEO));
|
||||
SUPPORTFILE = SUPPORTFILE + " " + SUPPORTFILEJO.getString("fileId");
|
||||
}
|
||||
SUPPORTFILE = SUPPORTFILE.substring(1);
|
||||
}
|
||||
}
|
||||
//制度类型
|
||||
List<Map<String, Object>> nodeElements = CoeDesignerUtil.getShapeMessageJson4(fileIdString);
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("regulation")) {
|
||||
POLICYTYPE = "regulation";
|
||||
} else if (NODETYPE.equals("I/O_L4")) {
|
||||
POLICYTYPE = "I/O_L4";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fileSet.contains(fileIdString)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("FILEID", fileIdString);
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
oldFileDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("FILEID", fileIdString);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("PLLEVEL", PLLEVEL);
|
||||
dataMap.put("PLPARENTID", PLPARENTID);
|
||||
dataMap.put("PLORDERINDEX", PLORDERINDEX);
|
||||
dataMap.put("PLCATEGORY", PLCATEGORY);
|
||||
dataMap.put("PLMETHODID", PLMETHODID);
|
||||
dataMap.put("CREATEPER", CREATEPER);
|
||||
dataMap.put("MODIFYPER", MODIFYPER);
|
||||
dataMap.put("CREATEDATETIME", CREATEDATETIME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
dataMap.put("PUBDEPT", PUBDEPT);
|
||||
dataMap.put("PUBDATETIME", PUBDATETIME);
|
||||
dataMap.put("FILESTATE", FILESTATE);
|
||||
dataMap.put("FILEUSESTATE", FILEUSESTATE);
|
||||
dataMap.put("VIEWCOUNT", VIEWCOUNT);
|
||||
dataMap.put("L1ID", L1ID);
|
||||
dataMap.put("L2ID", L2ID);
|
||||
dataMap.put("L3ID", L3ID);
|
||||
dataMap.put("LEADPROCESS", LEADPROCESS);
|
||||
dataMap.put("REARPROCESS", REARPROCESS);
|
||||
dataMap.put("PROCESSKPI", PROCESSKPI);
|
||||
dataMap.put("RELEVANTFILE", RELEVANTFILE);
|
||||
dataMap.put("SUPPORTFILE", SUPPORTFILE);
|
||||
dataMap.put("POLICYTYPE", POLICYTYPE);
|
||||
newFileDataMaps.add(dataMap);
|
||||
}
|
||||
//更新/新增节点
|
||||
List<Map<String, Object>> nodeElements = CoeDesignerUtil.getShapeMessageJson4(fileIdString);
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
String NODETYPE = String.valueOf(nodeElement.get("type"));
|
||||
if (NODETYPE.equals("method_approval_node") || NODETYPE.equals("method_service_node") || NODETYPE.equals("method_approval_node3") || NODETYPE.equals("method_service_node4") || NODETYPE.equals("role")) {
|
||||
//节点信息
|
||||
String NODEID = String.valueOf(nodeElement.get("id"));
|
||||
String NODENAME = String.valueOf(nodeElement.get("name"));
|
||||
//形状属性数组
|
||||
JSONArray attributesArray = JSON.parseArray(String.valueOf(nodeElement.get("attributes")));
|
||||
//形状属性:信息系统、活动序号、活动描述、角色、岗位
|
||||
String ITSYSVAL = "";
|
||||
String ACTIVITYNUMBER = "";
|
||||
String ACTIVITYDESC = "";
|
||||
String ROLE = "";
|
||||
String ROLENAME = "";
|
||||
String POST = "";
|
||||
String POSTNAME = "";
|
||||
if (null != attributesArray && !attributesArray.isEmpty()) {
|
||||
for (Object attribute : attributesArray) {
|
||||
JSONObject attributeJO = JSON.parseObject(String.valueOf(attribute));
|
||||
String SHAPEATTRKEY = attributeJO.getString("key");
|
||||
if (SHAPEATTRKEY.equals("information_systems")) {
|
||||
ITSYSVAL = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_number")) {
|
||||
ACTIVITYNUMBER = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("activity_description")) {
|
||||
ACTIVITYDESC = attributeJO.getString("value");
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("role")) {
|
||||
//SDK.getLogAPI().consoleInfo("文件名称"+PLNAME+"\n节点名称"+NODENAME+"\n节点角色信息"+attributeJO);
|
||||
for (PALRepositoryModel model : palOrgList) {
|
||||
List<Map<String, Object>> roleShapes = CoeDesignerUtil.getShapeMessageJson4(model.getId());
|
||||
if (null!=roleShapes && !roleShapes.isEmpty()) {
|
||||
for (Map<String, Object> roleShape : roleShapes) {
|
||||
if (attributeJO.getString("value").equals(roleShape.get("name"))) {
|
||||
JSONArray roleShapeAttrs = JSON.parseArray(String.valueOf(roleShape.get("attributes")));
|
||||
if (null != roleShapeAttrs && !roleShapeAttrs.isEmpty()) {
|
||||
for (Object roleShapeAttr : roleShapeAttrs) {
|
||||
JSONObject roleShapeAttrJO = JSON.parseObject(String.valueOf(roleShapeAttr));
|
||||
String ROLESHAPEATTRKEY = roleShapeAttrJO.getString("key");
|
||||
if (ROLESHAPEATTRKEY.equals("post")) {
|
||||
ROLE = roleShapeAttrJO.getString("value");
|
||||
ROLENAME = roleShapeAttrJO.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SHAPEATTRKEY.equals("post")) {
|
||||
POST = attributeJO.getString("value");
|
||||
POSTNAME = attributeJO.getString("value");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nodeSet.contains(NODEID)) {
|
||||
dataMap = new HashMap<>();
|
||||
nowDateJ = new Date(System.currentTimeMillis());
|
||||
Timestamp nowDateTime = new Timestamp(nowDateJ.getTime());
|
||||
dataMap.put("UPDATEDATE", nowDateTime);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("PLID", fileIdString);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
oldNodeDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
dataMap.put("uuId", uuId);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("NODENAME", NODENAME);
|
||||
dataMap.put("NODETYPE", NODETYPE);
|
||||
dataMap.put("PLID", fileIdString);
|
||||
dataMap.put("PLNAME", PLNAME);
|
||||
dataMap.put("NODECATEGORY", PLMETHODID);
|
||||
dataMap.put("ITSYSVAL", ITSYSVAL);
|
||||
dataMap.put("ACTIVITYNUMBER", ACTIVITYNUMBER);
|
||||
dataMap.put("ACTIVITYDESC", ACTIVITYDESC);
|
||||
dataMap.put("ROLE", ROLE);
|
||||
dataMap.put("POST", POST);
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("新增架构"+newFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改架构"+oldFrameDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("新增文件"+newFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改文件"+oldFileDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("新增节点"+newNodeDataMaps.size());
|
||||
SDK.getLogAPI().consoleInfo("修改节点"+oldNodeDataMaps.size());
|
||||
if (null != oldFrameDataMaps && !oldFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FRAME SET"
|
||||
+ " FRAMENAME=:FRAMENAME, FRAMELEVEL=:FRAMELEVEL, FRAMETYPE=:FRAMETYPE, FRAMEPARENTID=:FRAMEPARENTID, FRAMEORDERINDEX=:FRAMEORDERINDEX, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE WHERE FRAMEID=:FRAMEID", oldFrameDataMaps);
|
||||
}
|
||||
if (null != newFrameDataMaps && !newFrameDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FRAME(ID,FRAMEID,FRAMENAME,FRAMELEVEL,FRAMETYPE,FRAMEPARENTID,FRAMEORDERINDEX,MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :FRAMEID, :FRAMENAME, :FRAMELEVEL, :FRAMETYPE, :FRAMEPARENTID, :FRAMEORDERINDEX, :MODIFYDATETIME)", newFrameDataMaps);
|
||||
}
|
||||
if (null != oldFileDataMaps && !oldFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILE1 SET"
|
||||
+ " PLNAME=:PLNAME, PLLEVEL=:PLLEVEL, PLPARENTID=:PLPARENTID, PLORDERINDEX=:PLORDERINDEX, PLCATEGORY=:PLCATEGORY, "
|
||||
+ " PLMETHODID=:PLMETHODID, CREATEPER=:CREATEPER, MODIFYPER=:MODIFYPER, "
|
||||
+ " PUBDEPT=:PUBDEPT, PUBDATETIME=:PUBDATETIME, FILESTATE=:FILESTATE, VIEWCOUNT=:VIEWCOUNT, L1ID=:L1ID, "
|
||||
+ " L2ID=:L2ID, L3ID=:L3ID, LEADPROCESS=:LEADPROCESS, REARPROCESS=:REARPROCESS, PROCESSKPI=:PROCESSKPI, "
|
||||
+ " RELEVANTFILE=:RELEVANTFILE, SUPPORTFILE=:SUPPORTFILE, POLICYTYPE=:POLICYTYPE, "
|
||||
+ " CREATEDATETIME=:CREATEDATETIME, MODIFYDATETIME=:MODIFYDATETIME, FILEUSESTATE=:FILEUSESTATE, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE FILEID=:FILEID", oldFrameDataMaps);
|
||||
}
|
||||
if (null != newFileDataMaps && !newFileDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILE1"
|
||||
+ " (ID, FILEID, PLNAME, PLLEVEL, PLPARENTID, PLORDERINDEX, PLCATEGORY, PLMETHODID, CREATEPER, MODIFYPER, PUBDEPT, PUBDATETIME, "
|
||||
+ " FILESTATE, VIEWCOUNT, L1ID, L2ID, L3ID, LEADPROCESS, REARPROCESS, PROCESSKPI, RELEVANTFILE, SUPPORTFILE, POLICYTYPE, FILEUSESTATE, CREATEDATETIME, MODIFYDATETIME ) "
|
||||
+ " VALUES(:uuId, :FILEID, :PLNAME, :PLLEVEL, :PLPARENTID, :PLORDERINDEX, :PLCATEGORY, :PLMETHODID, "
|
||||
+ " :CREATEPER, :MODIFYPER, :PUBDEPT, :PUBDATETIME, :FILESTATE, :VIEWCOUNT, :L1ID, :L2ID, "
|
||||
+ " :L3ID, :LEADPROCESS, :REARPROCESS, :PROCESSKPI, :RELEVANTFILE, :SUPPORTFILE, :POLICYTYPE, :FILEUSESTATE, :CREATEDATETIME, :MODIFYDATETIME)", newFileDataMaps);
|
||||
}
|
||||
if (null != oldNodeDataMaps && !oldNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILENODE5 SET"
|
||||
+ " NODENAME=:NODENAME, NODETYPE=:NODETYPE, PLNAME=:PLNAME, NODECATEGORY=:NODECATEGORY, ITSYSVAL=:ITSYSVAL, "
|
||||
+ " ACTIVITYNUMBER=:ACTIVITYNUMBER, ACTIVITYDESC=:ACTIVITYDESC, ROLE=:ROLE, POST=:POST, ROLENAME=:ROLENAME, POSTNAME=:POSTNAME, MODIFYDATETIME=:MODIFYDATETIME, UPDATEDATE=:UPDATEDATE "
|
||||
+ " WHERE PLID=:PLID AND NODEID=:NODEID", oldNodeDataMaps);
|
||||
}
|
||||
if (null != newNodeDataMaps && !newNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("INSERT INTO BO_EU_PAL_FILENODE5"
|
||||
+ " (ID, NODEID, NODENAME, NODETYPE, PLID, PLNAME, NODECATEGORY, ITSYSVAL, ACTIVITYNUMBER, ACTIVITYDESC, ROLE, POST, ROLENAME, POSTNAME, MODIFYDATETIME) "
|
||||
+ " VALUES(:uuId, :NODEID, :NODENAME, :NODETYPE, :PLID, :PLNAME, :NODECATEGORY, :ITSYSVAL, :ACTIVITYNUMBER, :ACTIVITYDESC, :ROLE, :POST, :ROLENAME, :POSTNAME, :MODIFYDATETIME)", newNodeDataMaps);
|
||||
}
|
||||
}
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
SDK.getLogAPI().consoleInfo("结束时间"+endTime);
|
||||
SDK.getLogAPI().consoleInfo("运行时间"+(endTime-startTime));
|
||||
return ro.toString();
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,288 @@
|
||||
package com.awspaas.user.apps.yili.reportform.service;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
|
||||
import com.actionsoft.bpms.commons.login.constant.LoginConst;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
||||
import com.actionsoft.bpms.server.RequestParams;
|
||||
import com.actionsoft.bpms.server.SSOUtil;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.awspaas.user.apps.yili.reportform.util.TreeUtil;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.*;
|
||||
|
||||
import static com.awspaas.user.apps.yili.reportform.util.TaskUtil.getLastPublishTaskIdByModelId;
|
||||
import static java.util.stream.Collectors.collectingAndThen;
|
||||
import static java.util.stream.Collectors.toCollection;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-08 14:09
|
||||
* @Description: 跳转页面
|
||||
*/
|
||||
public class ToPageService extends ActionWeb {
|
||||
|
||||
UserContext _uc;
|
||||
|
||||
public ToPageService(UserContext uc) {
|
||||
super(uc);
|
||||
_uc = uc;
|
||||
}
|
||||
|
||||
//定义全局变量
|
||||
private static String frameIDtoFrameView = null;
|
||||
|
||||
public String toIndex(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.reportform", "index.html", macroLibraries);
|
||||
}
|
||||
public String toFileboard(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.reportform", "fileboard.html", macroLibraries);
|
||||
}
|
||||
public String toTerritory(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.reportform", "territory.html", macroLibraries);
|
||||
}
|
||||
public String toDomainprocess(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.reportform", "domainprocess.html", macroLibraries);
|
||||
}
|
||||
public String toPersonView(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
macroLibraries.put("uid", _uc.getUID());
|
||||
macroLibraries.put("ip", SDK.getPortalAPI().getPortalUrl());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.integration", "index.html", macroLibraries);
|
||||
}
|
||||
public String toDeptView(UserContext uc, RequestParams params) {
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.integration", "Department.html", macroLibraries);
|
||||
}
|
||||
public String toFrameView(UserContext uc, RequestParams params) {
|
||||
frameIDtoFrameView = params.get("frameID");
|
||||
Map<String, Object> macroLibraries = new HashMap<String, Object>();
|
||||
macroLibraries.put("sid", _uc.getSessionId());
|
||||
macroLibraries.put("frameID", frameIDtoFrameView);
|
||||
return HtmlPageTemplate.merge("com.awspaas.user.apps.yili.integration", "listview.html", macroLibraries);
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:架构视图筛选条件:文件类型
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/11 9:57
|
||||
*/
|
||||
public String queryTermsFileType (UserContext uc, RequestParams params) {
|
||||
ResponseObject ro = ResponseObject.newOkResponse();
|
||||
HashMap<String, Object> fileType = new HashMap<>();
|
||||
ArrayList<Map> fileTypes = new ArrayList<>();
|
||||
fileType.put("termsKey","processFile");
|
||||
fileType.put("termsVal","流程");
|
||||
fileTypes.add(fileType);
|
||||
fileType = new HashMap<String, Object>();
|
||||
fileType.put("termsKey","policyFile");
|
||||
fileType.put("termsVal","制度");
|
||||
fileTypes.add(fileType);
|
||||
fileType = new HashMap<String, Object>();
|
||||
fileType.put("termsKey","guideFile");
|
||||
fileType.put("termsVal","操作指导");
|
||||
fileTypes.add(fileType);
|
||||
fileType = new HashMap<String, Object>();
|
||||
fileType.put("termsKey","formFile");
|
||||
fileType.put("termsVal","表单/模板");
|
||||
fileTypes.add(fileType);
|
||||
fileType = new HashMap<String, Object>();
|
||||
fileType.put("termsKey","totalFile");
|
||||
fileType.put("termsVal","全部");
|
||||
fileTypes.add(fileType);
|
||||
ro.put("fileTypes",fileTypes);
|
||||
return ro.toString();
|
||||
}
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:架构视图
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/11 10:09
|
||||
*/
|
||||
public String frameView (UserContext uc, RequestParams params) {
|
||||
ResponseObject ro = ResponseObject.newOkResponse();
|
||||
//String frameID = params.get("frameID");
|
||||
String fileType = params.get("fileType");
|
||||
if (null!=frameIDtoFrameView && !frameIDtoFrameView.equals("")) {
|
||||
//SDK.getLogAPI().consoleInfo("当前架构ID1"+frameID);
|
||||
SDK.getLogAPI().consoleInfo("当前架构ID全局"+frameIDtoFrameView);
|
||||
Object[] sqlParams = {frameIDtoFrameView};
|
||||
HashMap<String, Object> fileMap = new HashMap<>();
|
||||
ArrayList<Map> fileMaps = new ArrayList<>();
|
||||
String nodeType = null;
|
||||
RowMap frameRowMap = DBSql.getMap("SELECT FRAMEID,FRAMEPARENTID,FRAMENAME,FRAMEORDERINDEX,FRAMELEVEL FROM BO_EU_PAL_FRAME WHERE FRAMEID=?", sqlParams);
|
||||
String sid = _uc.getSessionId();
|
||||
String path = "";
|
||||
PALRepositoryModel model = null;
|
||||
String taskId="";
|
||||
if (null!=frameRowMap && !frameRowMap.isEmpty()) {
|
||||
fileMap = new HashMap<String, Object>();
|
||||
nodeType = "frame";
|
||||
fileMap.put("ID", frameRowMap.getString("FRAMEID"));
|
||||
fileMap.put("PARENTID", frameRowMap.getString("FRAMEPARENTID"));
|
||||
fileMap.put("name", frameRowMap.getString("FRAMENAME"));
|
||||
fileMap.put("ORDERINDEX", frameRowMap.getString("FRAMEORDERINDEX"));
|
||||
fileMap.put("TLEVEL", frameRowMap.getString("FRAMELEVEL"));
|
||||
fileMap.put("nodeType", nodeType);
|
||||
fileMaps.add(fileMap);
|
||||
List<RowMap> fileRowMaps = DBSql.getMaps("SELECT FILEID,PLPARENTID,PLNAME,PLMETHODID,SUPPORTFILE,PUBDEPT,PUBDATETIME,PLORDERINDEX,PLLEVEL,POLICYTYPE FROM BO_EU_PAL_FILE1 WHERE PLPARENTID=? AND FILESTATE='1' AND (PLMETHODID='process.epc' OR PLMETHODID='process.flowchart' OR PLMETHODID='control.policy') ORDER BY TO_NUMBER(PLLEVEL) ASC, TO_NUMBER(PLORDERINDEX) ASC", sqlParams);
|
||||
ArrayList<RowMap> fileHandleRowMaps = new ArrayList<>();
|
||||
Map<String, Object> reFileMap = new HashMap<>();
|
||||
RowMap reFileRowMap = new RowMap(reFileMap);
|
||||
if (null!=fileRowMaps && !fileRowMaps.isEmpty()) {
|
||||
fileHandleRowMaps = new ArrayList<>();
|
||||
for (RowMap fileRowMap : fileRowMaps) {
|
||||
String FILEID = fileRowMap.getString("FILEID");
|
||||
String SUPPORTFILE = fileRowMap.getString("SUPPORTFILE");
|
||||
String PUBDEPT = fileRowMap.getString("PUBDEPT");
|
||||
Integer PLLEVEL = fileRowMap.getInt("PLLEVEL");
|
||||
if (null!=SUPPORTFILE && !SUPPORTFILE.equals("")) {
|
||||
String[] reFileIDs = SUPPORTFILE.split(" ");
|
||||
for (String reFileID : reFileIDs) {
|
||||
PALRepositoryModel reFileModel = PALRepositoryCache.getCache().get(reFileID);
|
||||
String PLMETHODID = reFileModel.getMethodId();
|
||||
if (PLMETHODID.equals("data.form")) {
|
||||
reFileMap = new HashMap<>();
|
||||
reFileMap.put("FILEID", reFileID);
|
||||
reFileMap.put("PLNAME", reFileModel.getName());
|
||||
reFileMap.put("PLPARENTID", FILEID);
|
||||
reFileMap.put("PLMETHODID", PLMETHODID);
|
||||
reFileMap.put("PUBDEPT", PUBDEPT);
|
||||
reFileMap.put("PLLEVEL", (PLLEVEL+1));
|
||||
reFileMap.put("PLORDERINDEX", reFileModel.getOrderIndex());
|
||||
reFileRowMap = new RowMap(reFileMap);
|
||||
fileHandleRowMaps.add(reFileRowMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fileRowMaps.addAll(fileHandleRowMaps);
|
||||
}
|
||||
|
||||
if (null!=fileType && !fileType.equals("")) {
|
||||
fileHandleRowMaps = new ArrayList<>();
|
||||
if (null!=fileRowMaps && !fileRowMaps.isEmpty()) {
|
||||
for (RowMap fileRowMap : fileRowMaps) {
|
||||
if (fileType.equals("processFile")) {
|
||||
if (fileRowMap.getString("PLMETHODID").equals("process.epc") || fileRowMap.getString("PLMETHODID").equals("process.flowchart")) {
|
||||
fileHandleRowMaps.add(fileRowMap);
|
||||
}
|
||||
}
|
||||
if (fileType.equals("policyFile")) {
|
||||
if (fileRowMap.getString("PLMETHODID").equals("control.policy") && (fileRowMap.getString("POLICYTYPE").equals("regulation") || null==fileRowMap.getString("POLICYTYPE") || fileRowMap.getString("POLICYTYPE").equals(""))) {
|
||||
fileHandleRowMaps.add(fileRowMap);
|
||||
}
|
||||
}
|
||||
// && fileRowMap.getString("POLICYTYPE").equals("regulation")
|
||||
if (fileType.equals("guideFile")) {
|
||||
if (fileRowMap.getString("PLMETHODID").equals("control.policy") && fileRowMap.getString("POLICYTYPE").equals("I/O_L4")) {
|
||||
fileHandleRowMaps.add(fileRowMap);
|
||||
}
|
||||
}
|
||||
if (fileType.equals("formFile")) {
|
||||
if (fileRowMap.getString("PLMETHODID").equals("data.form")) {
|
||||
fileHandleRowMaps.add(fileRowMap);
|
||||
String PLPARENTID = fileRowMap.getString("PLPARENTID");
|
||||
PALRepositoryModel reFileModel = PALRepositoryCache.getCache().get(PLPARENTID);
|
||||
String PLMETHODID = reFileModel.getMethodId();
|
||||
String PUBDEPT = fileRowMap.getString("PUBDEPT");
|
||||
Integer PLLEVEL = fileRowMap.getInt("PLLEVEL");
|
||||
if (!PLMETHODID.equals("process.framework")) {
|
||||
reFileMap = new HashMap<>();
|
||||
reFileMap.put("FILEID", reFileModel.getId());
|
||||
reFileMap.put("PLNAME", reFileModel.getName());
|
||||
reFileMap.put("PLPARENTID", reFileModel.getParentId());
|
||||
reFileMap.put("PLMETHODID", PLMETHODID);
|
||||
reFileMap.put("PUBDEPT", PUBDEPT);
|
||||
reFileMap.put("PLLEVEL", (PLLEVEL-1));
|
||||
reFileMap.put("PLORDERINDEX", reFileModel.getOrderIndex());
|
||||
reFileRowMap = new RowMap(reFileMap);
|
||||
fileHandleRowMaps.add(reFileRowMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fileType.equals("totalFile")) {
|
||||
fileHandleRowMaps.add(fileRowMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
fileHandleRowMaps = fileHandleRowMaps.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getString("FILEID")))),
|
||||
ArrayList::new));
|
||||
fileRowMaps = fileHandleRowMaps;
|
||||
}
|
||||
if(null!=fileRowMaps && !fileRowMaps.isEmpty()) {
|
||||
for (RowMap fileRowMap : fileRowMaps) {
|
||||
fileMap = new HashMap<String, Object>();
|
||||
model = PALRepositoryCache.getCache().get(fileRowMap.getString("FILEID"));
|
||||
if (model != null) {
|
||||
if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册
|
||||
taskId=getLastPublishTaskIdByModelId(model.getId());
|
||||
}
|
||||
}
|
||||
path = "./w"+"?"+"cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open"+"&"+"uuid="+fileRowMap.getString("FILEID")+"&"+"sid="+sid+"&"+"taskId="+taskId;
|
||||
nodeType = "file";
|
||||
fileMap.put("ID", fileRowMap.getString("FILEID"));
|
||||
fileMap.put("PARENTID", fileRowMap.getString("PLPARENTID"));
|
||||
fileMap.put("name", fileRowMap.getString("PLNAME"));
|
||||
fileMap.put("PLMETHODID", fileRowMap.getString("PLMETHODID"));
|
||||
fileMap.put("PUBDATETIME", fileRowMap.getString("PUBDATETIME"));
|
||||
fileMap.put("path", path);
|
||||
fileMap.put("ORDERINDEX", fileRowMap.getString("PLORDERINDEX"));
|
||||
fileMap.put("TLEVEL", fileRowMap.getString("PLLEVEL"));
|
||||
fileMap.put("nodeType", nodeType);
|
||||
if (fileRowMap.getString("PLMETHODID").equals("process.epc") || fileRowMap.getString("PLMETHODID").equals("process.flowchart")) {
|
||||
fileMap.put("fileType", "processFile");
|
||||
} else if (fileRowMap.getString("PLMETHODID").equals("control.policy") && (fileRowMap.getString("POLICYTYPE").equals("regulation") || null==fileRowMap.getString("POLICYTYPE") || fileRowMap.getString("POLICYTYPE").equals(""))) {
|
||||
// && fileRowMap.getString("POLICYTYPE").equals("regulation")
|
||||
fileMap.put("fileType", "policyFile");
|
||||
} else if (fileRowMap.getString("PLMETHODID").equals("control.policy") && fileRowMap.getString("POLICYTYPE").equals("I/O_L4")) {
|
||||
fileMap.put("fileType", "guideFile");
|
||||
} else if (fileRowMap.getString("PLMETHODID").equals("data.form")) {
|
||||
fileMap.put("fileType", "formFile");
|
||||
}
|
||||
fileMaps.add(fileMap);
|
||||
}
|
||||
List<Map> fileTreeNodes = TreeUtil.buildTree(fileMaps,null,"frame",null,null);
|
||||
ro.put("fileMaps",fileTreeNodes);
|
||||
return ro.toString();
|
||||
} else {
|
||||
ro.ok("暂无文件");
|
||||
fileMaps = new ArrayList<>();
|
||||
ro.put("fileMaps",fileMaps);
|
||||
return ro.toString();
|
||||
}
|
||||
} else {
|
||||
ro.ok("无效架构");
|
||||
fileMaps = new ArrayList<>();
|
||||
ro.put("fileMaps",fileMaps);
|
||||
return ro.toString();
|
||||
}
|
||||
} else {
|
||||
ro.ok("未传入有效架构ID");
|
||||
}
|
||||
return ro.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.awspaas.user.apps.yili.reportform.util;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-18 17:36
|
||||
* @Description: 校验元素是否合法
|
||||
*/
|
||||
public class CheckUtil {
|
||||
public static boolean isDate(String date) {
|
||||
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
// 使用严格的解析
|
||||
sdf.setLenient(false);
|
||||
try {
|
||||
sdf.parse(date);
|
||||
} catch (ParseException e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
package com.awspaas.user.apps.yili.reportform.util;
|
||||
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-06-27 22:35
|
||||
* @Description: 获取子节点工具类
|
||||
*/
|
||||
public class GetNodesUtil {
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取L1下子架构
|
||||
* @auther: Lizj
|
||||
* @date: 2022/6/22 22:30
|
||||
*/
|
||||
public static ArrayList getChildFrame(String frameID, String hasRoot, ArrayList<Map> frameList) {
|
||||
Object[] sqlParams = new Object[]{};
|
||||
sqlParams = new Object[]{frameID};
|
||||
RowMap frameRowMap = DBSql.getMap("SELECT FRAMEID,FRAMENAME,FRAMELEVEL,FRAMEPARENTID,FRAMEORDERINDEX FROM BO_EU_PAL_FRAME WHERE FRAMEID=?", sqlParams);
|
||||
String FRAMELEVEL = frameRowMap.getString("FRAMELEVEL");
|
||||
if (hasRoot.equals("Y")) {
|
||||
frameList.add(frameRowMap);
|
||||
} else {
|
||||
if (!FRAMELEVEL.equals("1")) {
|
||||
frameList.add(frameRowMap);
|
||||
}
|
||||
}
|
||||
Integer FRAMENUM = DBSql.getInt("SELECT COUNT(*) AS FRAMENUM FROM BO_EU_PAL_FRAME WHERE FRAMEPARENTID=?", sqlParams);
|
||||
if (FRAMENUM>0) {
|
||||
List<RowMap> subFrameMaps = DBSql.getMaps("SELECT FRAMEID,FRAMENAME,FRAMELEVEL,FRAMEPARENTID,FRAMEORDERINDEX FROM BO_EU_PAL_FRAME WHERE FRAMEPARENTID=?", sqlParams);
|
||||
for (RowMap subFrameMap : subFrameMaps) {
|
||||
frameID = subFrameMap.getString("FRAMEID");
|
||||
getChildFrame(frameID,hasRoot,frameList);
|
||||
}
|
||||
}
|
||||
return frameList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取所有子部门
|
||||
* @auther: Lizj
|
||||
* @date: 2022/6/27 22:41
|
||||
*/
|
||||
public static ArrayList getChildDept(String deptID,ArrayList<String> deptIDList) {
|
||||
deptIDList.add(deptID);
|
||||
Object[] sqlParams = new Object[]{};
|
||||
sqlParams = new Object[]{deptID};
|
||||
List<RowMap> subDeptMaps = DBSql.getMaps("SELECT ID FROM ORGDEPARTMENT WHERE PARENTDEPARTMENTID=?",sqlParams);
|
||||
if (null!=subDeptMaps && !subDeptMaps.isEmpty()) {
|
||||
for (RowMap subDeptMap : subDeptMaps) {
|
||||
deptID = subDeptMap.getString("ID");
|
||||
getChildDept(deptID,deptIDList);
|
||||
}
|
||||
}
|
||||
return deptIDList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取父架构
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/4 17:38
|
||||
*/
|
||||
public static List<RowMap> getParentFrame(String fileID, List<RowMap> fileIDMaps) {
|
||||
Object[] sqlParams = new Object[]{};
|
||||
sqlParams = new Object[]{fileID};
|
||||
RowMap parentFile = DBSql.getMap("SELECT FRAMEID,FRAMENAME,FRAMELEVEL,FRAMEPARENTID,FRAMEORDERINDEX FROM BO_EU_PAL_FRAME WHERE FRAMEID=?", sqlParams);
|
||||
if (null!=parentFile && !parentFile.isEmpty()) {
|
||||
if (parentFile.getInt("FRAMELEVEL")<=3) {
|
||||
fileIDMaps.add(parentFile);
|
||||
if (parentFile.getInt("FRAMELEVEL")>1) {
|
||||
fileID = parentFile.getString("FRAMEPARENTID");
|
||||
getParentFrame(fileID, fileIDMaps);
|
||||
}
|
||||
}
|
||||
}
|
||||
return fileIDMaps;
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取父部门
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/4 17:39
|
||||
*/
|
||||
public static String getParentDept(String deptID, Integer toDeptLevel) {
|
||||
Object[] sqlParams = new Object[]{};
|
||||
sqlParams = new Object[]{deptID};
|
||||
RowMap parentDept = DBSql.getMap("SELECT ID,PARENTDEPARTMENTID,LAYER FROM ORGDEPARTMENT WHERE ID=?", sqlParams);
|
||||
if (null != parentDept && !parentDept.isEmpty()) {
|
||||
if (parentDept.getInt("LAYER") > toDeptLevel) {
|
||||
deptID = parentDept.getString("PARENTDEPARTMENTID");
|
||||
getParentDept(deptID, toDeptLevel);
|
||||
} else if(parentDept.getInt("LAYER") == toDeptLevel) {
|
||||
return deptID;
|
||||
}
|
||||
}
|
||||
return deptID;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,363 @@
|
||||
package com.awspaas.user.apps.yili.reportform.util;
|
||||
|
||||
import com.actionsoft.apps.coe.pal.pal.method.model.PALMethodAttributeModel;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryAPIManager;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryPropertyCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.CoeDesignerShapeAPIManager;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.cache.DesignerShapeRelationCache;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.DesignerShapeRelationModel;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.designer.util.ShapeUtil;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
|
||||
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryPropertyModel;
|
||||
import com.actionsoft.bpms.org.model.DepartmentModel;
|
||||
import com.actionsoft.bpms.org.model.RoleModel;
|
||||
import com.actionsoft.bpms.org.model.UserModel;
|
||||
import com.actionsoft.bpms.util.UtilString;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.tools.ant.util.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class RepositoryAttribute {
|
||||
/**
|
||||
* 根据模型ID查询所有文件扩展属性
|
||||
*
|
||||
* @param uuid
|
||||
* @return
|
||||
*/
|
||||
public Map<String, JSONObject> queryRepositoryAttributeById(String uuid) {
|
||||
Map<String, JSONObject> result = new HashMap<>();
|
||||
PALRepositoryModel plModel = PALRepositoryCache.getCache().get(uuid);
|
||||
// 获取所有文件属性
|
||||
List<PALMethodAttributeModel> methodAttrModels = PALRepositoryAPIManager.getInstance().getValidAndUseAttributeModels(plModel.getWsId(), plModel.getMethodId());
|
||||
if (methodAttrModels != null && methodAttrModels.size() > 0) {
|
||||
Map<String, PALMethodAttributeModel> attributeModelMap = new HashMap<>();
|
||||
Map<String, Integer> sortAttrMap = new HashMap<>();
|
||||
if (methodAttrModels != null) {
|
||||
int sort = 0;
|
||||
for (PALMethodAttributeModel attr : methodAttrModels) {
|
||||
attributeModelMap.put(attr.getKey(), attr);
|
||||
sortAttrMap.put(attr.getKey(), ++sort);
|
||||
}
|
||||
}
|
||||
List<PALRepositoryPropertyModel> propertys = PALRepositoryPropertyCache.getPropertyByPlId(plModel.getId());
|
||||
// 排序
|
||||
// propertys.sort((p1, p2) -> (sortAttrMap.containsKey(p1.getPropertyId()) ? sortAttrMap.get(p1.getPropertyId()) : 0) - (sortAttrMap.containsKey(p2.getPropertyId()) ? sortAttrMap.get(p2.getPropertyId()) : 0));
|
||||
|
||||
for (PALRepositoryPropertyModel property : propertys) {
|
||||
String id = property.getPropertyId();
|
||||
if (!attributeModelMap.containsKey(id) || !attributeModelMap.get(id).getUse()) {
|
||||
continue;
|
||||
}
|
||||
PALMethodAttributeModel attributeModel = attributeModelMap.get(id);
|
||||
// 记录结果集
|
||||
JSONObject attrObj = new JSONObject();
|
||||
attrObj.put("ref", attributeModel.getRef());// ref
|
||||
attrObj.put("type", attributeModel.getType());// 类型 relation string ...
|
||||
attrObj.put("attrId", attributeModel.getKey());// 属性key
|
||||
attrObj.put("attrTitle", attributeModel.getNewTitle());// 属性标题
|
||||
attrObj.put("text", "");// 属性内容单行文本
|
||||
attrObj.put("value", new JSONArray());// 属性内容集,relation或awsorg类型时存储对应的json数据
|
||||
String inputValue = property.getPropertyValue();
|
||||
if ("relation".equals(attributeModel.getType())) {
|
||||
List<String> inputValueList = new ArrayList<>();
|
||||
List<DesignerShapeRelationModel> list = DesignerShapeRelationCache.getListByAttrId(plModel.getId(), "", attributeModel.getKey());
|
||||
if (list != null && list.size() > 0) {
|
||||
// 判断是否有重复数据,进行重复过滤
|
||||
Set<String> tempStrs = new HashSet<>();
|
||||
List<DesignerShapeRelationModel> tempList = new ArrayList<>();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
DesignerShapeRelationModel model = list.get(i);
|
||||
String str = model.getFileId() + model.getShapeId() + model.getAttrId() + model.getRelationFileId() + model.getRelationShapeId();
|
||||
if (!tempStrs.contains(str)) {
|
||||
tempList.add(model);
|
||||
tempStrs.add(str);
|
||||
}
|
||||
}
|
||||
list = tempList;
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
DesignerShapeRelationModel model = list.get(i);
|
||||
JSONObject refObj = JSONObject.parseObject(attributeModel.getRef());
|
||||
String relationTyp = refObj.containsKey("type") ? refObj.getString("type") : "shape";
|
||||
if ("file".equals(relationTyp)) {// 关联的模型文件
|
||||
if (model.getRelationFileId().length() < 36) {
|
||||
continue;
|
||||
}
|
||||
List<PALRepositoryModel> list2 = PALRepositoryCache.getByVersionId(plModel.getWsId(), model.getRelationFileId());
|
||||
for (PALRepositoryModel model2 : list2) {
|
||||
if (model2.isUse()) {
|
||||
inputValueList.add(model2.getName());
|
||||
JSONObject tmp = new JSONObject();
|
||||
tmp.put("fileId", model2.getId());
|
||||
tmp.put("name", model2.getName());
|
||||
tmp.put("isFile", true);
|
||||
attrObj.getJSONArray("value").add(tmp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
inputValueList.add(model.getRelationShapeText());
|
||||
JSONObject tmp = new JSONObject();
|
||||
tmp.put("fileId", model.getRelationFileId());
|
||||
tmp.put("shapeId", model.getRelationShapeId());
|
||||
tmp.put("name", model.getRelationShapeText());
|
||||
tmp.put("isFile", false);
|
||||
attrObj.getJSONArray("value").add(tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
inputValue = StringUtils.join(inputValueList, ",");
|
||||
}
|
||||
// 关联bpm组织架构
|
||||
if ("awsorg".equals(attributeModel.getType())) {
|
||||
List<DesignerShapeRelationModel> list = DesignerShapeRelationCache.getListByAttrId(plModel.getId(), "", attributeModel.getKey());
|
||||
List<String> deptValList = new ArrayList<>();
|
||||
List<String> positionValList = new ArrayList<>();
|
||||
List<String> roleValList = new ArrayList<>();
|
||||
List<String> userValList = new ArrayList<>();
|
||||
if (list != null && list.size() > 0) {
|
||||
Set<String> filter = new HashSet<String>();// 去重记录
|
||||
list.sort((m1, m2) -> {
|
||||
return m1.getId().compareTo(m2.getId());
|
||||
});
|
||||
for (DesignerShapeRelationModel model : list) {
|
||||
if ("00000000-0000-0000-0000-000000000000".equals(model.getRelationFileId()) && "00000000-0000-0000-0000-000000000000".equals(model.getRelationShapeId())) {
|
||||
JSONObject object = JSONObject.parseObject(model.getRelationShapeText());
|
||||
boolean flag = false;
|
||||
// 查询最新名称
|
||||
if ("department".equals(object.getString("type"))) {
|
||||
DepartmentModel dept = SDK.getORGAPI().getDepartmentById(object.getString("id"));
|
||||
if (dept != null && !filter.contains(dept.getId())) {
|
||||
deptValList.add(dept.getName());
|
||||
filter.add(dept.getId());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("position".equals(object.getString("type"))) {// 岗位,先用角色代替
|
||||
RoleModel role = SDK.getORGAPI().getRoleById(object.getString("id"));
|
||||
if (role != null && !filter.contains(role.getId())) {
|
||||
positionValList.add(role.getName());
|
||||
filter.add(role.getId());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("user".equals(object.getString("type"))) {
|
||||
UserModel user = SDK.getORGAPI().getUser(object.getString("id"));
|
||||
if (user != null && !filter.contains(user.getUID())) {
|
||||
userValList.add(user.getUserName());
|
||||
filter.add(user.getUID());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("role".equals(object.getString("type"))) {
|
||||
RoleModel role = SDK.getORGAPI().getRoleById(object.getString("id"));
|
||||
if (role != null && !filter.contains(role.getId())) {
|
||||
roleValList.add(role.getName());
|
||||
filter.add(role.getId());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
attrObj.getJSONArray("value").add(object);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 数据组合
|
||||
deptValList.addAll(positionValList);
|
||||
deptValList.addAll(roleValList);
|
||||
deptValList.addAll(userValList);
|
||||
inputValue = StringUtils.join(deptValList, ",");
|
||||
|
||||
}
|
||||
inputValue = inputValue.replaceAll("'", "'");
|
||||
inputValue = inputValue.replaceAll("\"", """);
|
||||
attrObj.put("text", inputValue);
|
||||
result.put(attributeModel.getKey(), attrObj);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据模型和形状查询所有形状扩展属性
|
||||
*
|
||||
* @param uuid
|
||||
* @param shapeId
|
||||
* @param shapeObject 当前节点的定义json,可以通过PALRepositoryQueryAPIManager.getInstance().getProcessDefinition获取string--》转换JSONObject--》获取elements--》elements.getJSONObject(shapeId)得到
|
||||
* @return
|
||||
*/
|
||||
private Map<String, JSONObject> queryRepositoryShapeAttributeById(String uuid, String shapeId, JSONObject shapeObject) {
|
||||
Map<String, JSONObject> result = new HashMap<>();
|
||||
PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid);
|
||||
String methodId = model.getMethodId();
|
||||
String wsId = model.getWsId();
|
||||
JSONObject dataAttributes = ShapeUtil.getCustom(shapeObject.getJSONArray("dataAttributes"));
|
||||
JSONArray attributesJsonArray = dataAttributes.containsKey("attributesJsonArray") ? dataAttributes.getJSONArray("attributesJsonArray") : new JSONArray(); //扩展属性
|
||||
// 查询属性数据集合
|
||||
Map<String, JSONObject> attrDataMap = new HashMap<>();
|
||||
for (Object obj : attributesJsonArray) {
|
||||
if (obj == null) {
|
||||
continue; //删除的节点不存在
|
||||
}
|
||||
JSONObject jsonObj = (JSONObject) obj;
|
||||
if (!jsonObj.containsKey("groupPath") || UtilString.isEmpty(jsonObj.getString("groupPath"))) {
|
||||
continue; //排除组
|
||||
}
|
||||
if (!jsonObj.containsKey("type") || UtilString.isEmpty(jsonObj.getString("type"))) {
|
||||
continue; //排除无type的
|
||||
}
|
||||
attrDataMap.put(jsonObj.getString("key"), jsonObj);
|
||||
}
|
||||
// 获取形状的属性配置(有效且使用中)
|
||||
List<PALMethodAttributeModel> methodAttrModels = CoeDesignerShapeAPIManager.getInstance().getValidAndUseAttributeModels(wsId, methodId, shapeObject.getString("name"), methodId);
|
||||
for (PALMethodAttributeModel attributeModel : methodAttrModels) {
|
||||
// 记录结果集
|
||||
JSONObject attrObj = new JSONObject();
|
||||
attrObj.put("ref", attributeModel.getRef());// ref
|
||||
attrObj.put("type", attributeModel.getType());// 类型 relation string ...
|
||||
attrObj.put("attrId", attributeModel.getKey());// 属性key
|
||||
attrObj.put("attrTitle", attributeModel.getNewTitle());// 属性标题
|
||||
attrObj.put("text", "");// 属性内容单行文本
|
||||
attrObj.put("value", new JSONArray());// 属性内容集,relation或awsorg类型时存储对应的json数据
|
||||
|
||||
String key = attributeModel.getKey();
|
||||
String attrValue = "";
|
||||
if (attrDataMap.containsKey(key)) {
|
||||
JSONObject jsonObj = attrDataMap.get(key);
|
||||
String type = attributeModel.getType();
|
||||
if ("string".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
} else if ("number".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
} else if ("textarea".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
} else if ("boolean".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
} else if ("select".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
} else if ("select_m".equals(type)) {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
String[] values = attrValue.split(",");
|
||||
List<String> valueList = new ArrayList<>();
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
if (!UtilString.isEmpty(values[i])) {
|
||||
valueList.add(values[i]);
|
||||
}
|
||||
}
|
||||
attrValue = StringUtils.join(valueList, ",");
|
||||
} else if ("relation".equals(type)) {
|
||||
List<String> inputValues = new ArrayList<>();
|
||||
JSONObject refObj = JSONObject.parseObject(attributeModel.getRef());
|
||||
String relationType = refObj.containsKey("type") ? refObj.getString("type") : "shape";
|
||||
List<DesignerShapeRelationModel> list = DesignerShapeRelationCache.getListByAttrId(uuid, shapeId, key);
|
||||
if (list != null && list.size() > 0) {
|
||||
// 判断是否有重复数据,进行重复过滤
|
||||
Set<String> tempStrs = new HashSet<>();
|
||||
List<DesignerShapeRelationModel> tempList = new ArrayList<>();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
DesignerShapeRelationModel relationModel = list.get(i);
|
||||
String str = relationModel.getFileId() + relationModel.getShapeId() + relationModel.getAttrId() + relationModel.getRelationFileId() + relationModel.getRelationShapeId();
|
||||
if (!tempStrs.contains(str)) {
|
||||
tempList.add(relationModel);
|
||||
tempStrs.add(str);
|
||||
}
|
||||
}
|
||||
list = tempList;
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
DesignerShapeRelationModel relationModel = list.get(i);
|
||||
if ("file".equals(relationType)) {// 文件属性
|
||||
String versionId = UtilString.isEmpty(relationModel.getRelationShapeId()) ? relationModel.getRelationFileId() : relationModel.getRelationShapeId();
|
||||
if (!UtilString.isEmpty(versionId)) {
|
||||
List<PALRepositoryModel> list2 = PALRepositoryCache.getByVersionId(wsId, versionId);
|
||||
for (PALRepositoryModel model2 : list2) {
|
||||
if (model2.isUse()) {
|
||||
inputValues.add(model2.getName());
|
||||
JSONObject tmp = new JSONObject();
|
||||
tmp.put("fileId", model2.getId());
|
||||
tmp.put("name", model2.getName());
|
||||
tmp.put("isFile", true);
|
||||
attrObj.getJSONArray("value").add(tmp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {// 形状属性
|
||||
inputValues.add(relationModel.getRelationShapeText());
|
||||
JSONObject tmp = new JSONObject();
|
||||
tmp.put("fileId", relationModel.getRelationFileId());
|
||||
tmp.put("shapeId", relationModel.getRelationShapeId());
|
||||
tmp.put("name", relationModel.getRelationShapeText());
|
||||
tmp.put("isFile", false);
|
||||
attrObj.getJSONArray("value").add(tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
attrValue = StringUtils.join(inputValues, ",");
|
||||
} else if ("awsorg".equals(type)) {// 关联bpm组织架构
|
||||
List<DesignerShapeRelationModel> list = DesignerShapeRelationCache.getListByAttrId(uuid, shapeId, key);
|
||||
List<String> awsOrgResultList = new ArrayList<>();
|
||||
List<String> deptValueList = new ArrayList<>();
|
||||
List<String> positionValueList = new ArrayList<>();
|
||||
List<String> userValueList = new ArrayList<>();
|
||||
List<String> roleValueList = new ArrayList<>();
|
||||
if (list != null && list.size() > 0) {
|
||||
for (DesignerShapeRelationModel relationModel : list) {
|
||||
JSONObject object = JSONObject.parseObject(relationModel.getRelationShapeText());
|
||||
String orgType = object.getString("type");
|
||||
String keyId = object.getString("id");
|
||||
boolean flag = false;
|
||||
if ("department".equals(orgType)) {// 部门
|
||||
DepartmentModel deptModel = SDK.getORGAPI().getDepartmentById(keyId);
|
||||
if (deptModel != null) {
|
||||
deptValueList.add(deptModel.getName());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("position".equals(orgType)) {// 岗位
|
||||
RoleModel roleModel = SDK.getORGAPI().getRoleById(keyId);
|
||||
if (roleModel != null) {
|
||||
positionValueList.add(roleModel.getName());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("user".equals(orgType)) {// 人员
|
||||
UserModel userModel = SDK.getORGAPI().getUser(keyId);
|
||||
if (userModel != null) {
|
||||
userValueList.add(userModel.getUserName());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if ("role".equals(orgType)) {// 角色
|
||||
RoleModel roleModel = SDK.getORGAPI().getRoleById(keyId);
|
||||
if (roleModel != null) {
|
||||
roleValueList.add(roleModel.getName());
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
attrObj.getJSONArray("value").add(object);
|
||||
}
|
||||
}
|
||||
}
|
||||
awsOrgResultList.addAll(deptValueList);
|
||||
awsOrgResultList.addAll(positionValueList);
|
||||
awsOrgResultList.addAll(roleValueList);
|
||||
awsOrgResultList.addAll(userValueList);
|
||||
attrValue = StringUtils.join(awsOrgResultList, ",");
|
||||
} else {
|
||||
attrValue = jsonObj.containsKey("value") ? jsonObj.getString("value") : "";
|
||||
}
|
||||
}
|
||||
attrValue = attrValue.replaceAll("'", "'");
|
||||
attrValue = attrValue.replaceAll("\"", """);
|
||||
attrObj.put("text", attrValue);
|
||||
result.put(attributeModel.getKey(), attrObj);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.awspaas.user.apps.yili.reportform.util;
|
||||
|
||||
import com.actionsoft.bpms.commons.database.RowMapper;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-07-20 10:09
|
||||
* @Description: 工具类
|
||||
*/
|
||||
public class TaskUtil {
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取taskId
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/5 16:18
|
||||
*/
|
||||
public static String getLastPublishTaskIdByModelId(String repositoryId) {
|
||||
//String sql = "SELECT pl.TASKID FROM APP_ACT_COE_PAL_PUBLISH p, APP_ACT_COE_PAL_PUBLISH_N pl WHERE pl.pid = p.id AND pl.palrepositoryid = ? ORDER BY publishdate DESC";
|
||||
String sql = "SELECT pl.TASKID FROM APP_ACT_COE_PAL_PUBLISH p, APP_ACT_COE_PAL_PUBLISH_LIST pl WHERE pl.pid = p.id AND pl.palrepositoryid = ? ORDER BY publishdate DESC";
|
||||
//String sql = "SELECT * FROM (SELECT TASKID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID= ? ORDER BY CREATEDATE DESC) WHERE ROWNUM = 1";
|
||||
String taskId = DBSql.getObject(sql, new RowMapper<String>() {
|
||||
@Override
|
||||
public String mapRow(ResultSet rs, int arg1) throws SQLException {
|
||||
return rs.getString(1);
|
||||
}
|
||||
}, new Object[] { repositoryId });
|
||||
return taskId;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
package com.awspaas.user.apps.yili.reportform.util;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author:Lizj
|
||||
* @create: 2022-06-24 17:28
|
||||
* @Description: 树形工具类
|
||||
*/
|
||||
public class TreeUtil {
|
||||
|
||||
//建立树形结构
|
||||
//rootSign 根节点标识
|
||||
//tLevel 节点层级,用于指定展示层数
|
||||
//nodeType 节点类型,用于多数据类型合并
|
||||
public static List<Map> buildTree(List<Map> nodeMaps,String rootSign,String rootNodeType,String tLevel,String nodeType){
|
||||
List<Map> treeNodes =new ArrayList<>();
|
||||
for (Map treeNode : getRootNode(nodeMaps,rootSign,rootNodeType)) {
|
||||
treeNode = buildChildTree(treeNode,nodeMaps,tLevel,nodeType);
|
||||
treeNodes.add(treeNode);
|
||||
}
|
||||
// 子节点进行排序
|
||||
List<Map> treeNodesSort = Optional.ofNullable(treeNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing(treeNode->Integer.valueOf(treeNode.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
return treeNodesSort;
|
||||
}
|
||||
//递归,建立子树形结构
|
||||
private static Map buildChildTree(Map pNode, List<Map> nodeMaps, String tLevel, String nodeType){
|
||||
List<Map> childNodes =new ArrayList<>();
|
||||
if (null == tLevel || tLevel.equals("")) {
|
||||
for (Map nodeMap : nodeMaps) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTree(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(childNodes)){
|
||||
List<Map> childNodesSort = Optional.ofNullable(childNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing(childNodesOrigin->Integer.valueOf(childNodesOrigin.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
pNode.put("children",childNodesSort);
|
||||
}
|
||||
} else {
|
||||
for (Map nodeMap : nodeMaps) {
|
||||
if (Integer.valueOf(tLevel)>=Integer.valueOf(String.valueOf(nodeMap.get("TLEVEL")))) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTree(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
if (Integer.valueOf(tLevel)<Integer.valueOf(String.valueOf(nodeMap.get("TLEVEL"))) && String.valueOf(nodeMap.get("nodeType")).equals(nodeType)) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTree(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(childNodes)){
|
||||
List<Map> childNodesSort = Optional.ofNullable(childNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing(childNodesOrigin->Integer.valueOf(childNodesOrigin.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
pNode.put("children",childNodesSort);
|
||||
}
|
||||
}
|
||||
return pNode;
|
||||
}
|
||||
//获取根节点
|
||||
private static List<Map> getRootNode(List<Map> nodeMaps,String rootSign,String rootNodeType) {
|
||||
List<Map> rootNodes =new ArrayList<>();
|
||||
for (Map nodeMap : nodeMaps) {
|
||||
if (null!=rootSign && !rootSign.equals("")) {
|
||||
if (null!=rootNodeType && !rootNodeType.equals("")) {
|
||||
if (nodeMap.get("PARENTID").equals(rootSign) && nodeMap.get("nodeType").equals(rootNodeType)) {
|
||||
rootNodes.add(nodeMap);
|
||||
}
|
||||
} else {
|
||||
if (nodeMap.get("PARENTID").equals(rootSign)) {
|
||||
rootNodes.add(nodeMap);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (nodeMap.get("nodeType").equals(rootNodeType)) {
|
||||
rootNodes.add(nodeMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rootNodes;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user