伊利集成,数据看板代码上传
This commit is contained in:
parent
27b8b76cea
commit
c35629be39
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
@ -525,7 +525,7 @@ public class GetmeritsController {
|
||||
String[] plid = dleass.split(",");
|
||||
for (String ikds:plid
|
||||
) {
|
||||
String sqls3 = "select * from APP_ACT_COE_PAL_REPOSITORY where CREATEUSER = 'admin' AND PLPARENTID = "+ikds+" AND PLCATEGORY = 'process'and PLMETHODID ='process.framework' and PLNAME not in ('流程架构图','测试用','GMY-截图用','sx批量测试' ,'8.2培训使用','用户练习使用','YX测试分部','yx测试人员','yx测试部','流程架构测试') and PLPARENTID not in ('63ff93c6-2f27-4851-a396-6830c428db2e', 'c84f497a-4de3-4404-86e8-cd5af71c3b47','94dabf55-b032-4316-a4c3-00b83763da09', '36ac7cdd-a361-4bd3-9511-c03c1b3627a4','84e534b4-e51a-4874-9ff1-8a0206d9e0c5', '98bd5917-7563-4b29-b775-815e91d9864c','f07da63c-3423-4c1e-ae75-b323c6a69093', '79cb4c35-d2f7-4c43-a7db-44038b557eac','7ad79a73-a497-417a-a5ec-d4c9fd45061c', '42c09260-c1d3-44b7-ac3d-f8280e04c294') order by PLORDERINDEX asc";
|
||||
String sqls3 = "select * from APP_ACT_COE_PAL_REPOSITORY where CREATEUSER = 'admin' AND PLPARENTID = "+ikds+" AND PLCATEGORY = 'process'and PLMETHODID ='process.framework' and PLNAME not in ('流程架构图','测试用','GMY-截图用','sx批量测试','8.2培训使用','用户练习使用','YX测试分部','yx测试人员','yx测试部','流程架构测试') and PLPARENTID not in ('63ff93c6-2f27-4851-a396-6830c428db2e', 'c84f497a-4de3-4404-86e8-cd5af71c3b47','94dabf55-b032-4316-a4c3-00b83763da09', '36ac7cdd-a361-4bd3-9511-c03c1b3627a4','84e534b4-e51a-4874-9ff1-8a0206d9e0c5', '98bd5917-7563-4b29-b775-815e91d9864c','f07da63c-3423-4c1e-ae75-b323c6a69093', '79cb4c35-d2f7-4c43-a7db-44038b557eac','7ad79a73-a497-417a-a5ec-d4c9fd45061c', '42c09260-c1d3-44b7-ac3d-f8280e04c294') order by PLORDERINDEX asc";
|
||||
|
||||
List<RowMap> mapss = DBSql.getMaps(sqls3);
|
||||
for (RowMap rowmaps : mapss) {
|
||||
|
||||
@ -332,9 +332,6 @@ public class TaskController {
|
||||
// jsonObject1.put("size","12k");
|
||||
jsonArray.add(jsonObject1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
num++;
|
||||
|
||||
}
|
||||
@ -440,11 +437,11 @@ public class TaskController {
|
||||
jsonObject.put("taskId", id);
|
||||
jsonArray.add(jsonObject);
|
||||
|
||||
String sql_upfile ="select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.getString("PUBLISHFILEID")+"'" + ") ORDER BY CREATETIME ASC";
|
||||
String sql_upfile ="select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.get("CHANGEDFILEIDNEW")+"'" + ") ORDER BY CREATETIME ASC";
|
||||
String methodId = DBSql.getString("select PLMETHODID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.getString("PUBLISHFILEID")+"'");
|
||||
if(UtilString.isNotEmpty(methodId)) {
|
||||
if(methodId.equals("control.policy")) {
|
||||
sql_upfile = "select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.getString("PUBLISHFILEID")+"') AND FILETYPE = 'f' ORDER BY CREATETIME ASC";
|
||||
sql_upfile = "select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.get("CHANGEDFILEIDNEW")+"') AND FILETYPE = 'f' ORDER BY CREATETIME ASC";
|
||||
}
|
||||
}
|
||||
//String sql_upfile = "select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where ID= '"+bo.getString("PUBLISHFILEID")+"') AND FILETYPE = 'f'";
|
||||
|
||||
@ -18,13 +18,11 @@ 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;
|
||||
@ -41,7 +39,6 @@ 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());
|
||||
@ -98,12 +95,7 @@ public class SyncData implements IJob {
|
||||
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());
|
||||
@ -426,161 +418,6 @@ public class SyncData implements IJob {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -642,34 +479,6 @@ public class SyncData implements IJob {
|
||||
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));
|
||||
|
||||
@ -4,17 +4,22 @@ import java.sql.Timestamp;
|
||||
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.bo.engine.BO;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -34,22 +39,62 @@ public class SyncData_job implements IJob {
|
||||
syncNodeData();
|
||||
|
||||
}
|
||||
//同步节点数据到 BO_EU_PAL_FILENODE6
|
||||
//同步节点数据到 BO_EU_PAL_FILENODE5
|
||||
public void syncNodeData() {
|
||||
DBSql.update("DELETE FROM BO_EU_NODESYN_EXCEPTION");
|
||||
DBSql.update("DELETE FROM BO_EU_PAL_FILENODE5");
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
ArrayList<String> fromNodeDataIDMaps = new ArrayList<>();
|
||||
List<PALRepositoryModel> palTotalList = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delNodeDataMaps = new ArrayList<>();
|
||||
String wsId = "7d3ca852-a0bd-42e6-80b1-3dcea6f55083";
|
||||
//总文件集合
|
||||
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());
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE6", String.class);
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE5", String.class);
|
||||
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 plRid = fileModel.getPlRid();
|
||||
/*
|
||||
* if(!fileModel.isPublish()) { continue; }
|
||||
*/
|
||||
/*
|
||||
* String sql =
|
||||
* "SELECT ID FROM (SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID = '"
|
||||
@ -61,6 +106,24 @@ public class SyncData_job implements IJob {
|
||||
* DBSql.update(dsql); continue; } }
|
||||
*/
|
||||
Timestamp MODIFYDATETIME = fileModel.getModifyDate();
|
||||
//更新/新增节点
|
||||
nodeElements = new ArrayList<>();
|
||||
if(PLMETHODID.equals("process.epc")||PLMETHODID.equals("process.flowchart")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取节点属性过程中,"+"文件ID:"+PLNAME+"=======>获取节点形状属性异常");
|
||||
}
|
||||
//System.err.println(PLNAME+"======nodeElements1=======>"+nodeElements);
|
||||
}
|
||||
//制度类型
|
||||
/*
|
||||
* nodeElements = new ArrayList<>(); if (PLMETHODID.equals("control.policy")) {
|
||||
* try { nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID); } catch
|
||||
* (Exception e) { SDK.getLogAPI().consoleInfo("获取制度类型过程中," + "文件ID:" + FILEID +
|
||||
* "获取节点形状属性异常"); }
|
||||
* //System.err.println(PLNAME+"======nodeElements2=======>"+nodeElements); }
|
||||
*/
|
||||
//同步角色岗位
|
||||
if (null != nodeElements && !nodeElements.isEmpty()) {
|
||||
for (Map<String, Object> nodeElement : nodeElements) {
|
||||
@ -96,13 +159,13 @@ public class SyncData_job implements IJob {
|
||||
String nodeRoleText = attributeJO.getString("value");
|
||||
ROLE = nodeRoleText;
|
||||
if (null!=ROLE && !ROLE.equals("")) {
|
||||
Object 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);
|
||||
roleFileRowMaps = DBSql.getMaps("SELECT RELATIONFILEID FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID='"+FILEID+"' AND ATTRID='role'");
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取流程节点角色属性关联文件时"+"文件ID:"+FILEID+"节点ID:"+NODEID+"异常");
|
||||
SDK.getLogAPI().consoleInfo("获取流程节点角色属性关联文件时"+"文件名称:"+PLNAME+"___文件ID:"+FILEID+"___节点ID:"+NODEID+"异常");
|
||||
}
|
||||
|
||||
if (null!=roleFileRowMaps && !roleFileRowMaps.isEmpty()) {
|
||||
for (RowMap roleFileRowMap : roleFileRowMaps) {
|
||||
String RELATIONFILEID = roleFileRowMap.getString("RELATIONFILEID");
|
||||
@ -137,6 +200,7 @@ public class SyncData_job implements IJob {
|
||||
//SDK.getLogAPI().consoleInfo("角色岗位文本"+roleShapeJO);
|
||||
ROLENAME = roleShapeJO.getString("value");
|
||||
POSTNAME = roleShapeJO.getString("value");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -182,8 +246,22 @@ public class SyncData_job implements IJob {
|
||||
dataMap.put("PLID", FILEID);
|
||||
dataMap.put("NODEID", NODEID);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
System.err.println("更新节点信息===========>"+dataMap);
|
||||
oldNodeDataMaps.add(dataMap);
|
||||
//System.err.println("更新节点信息===========>"+dataMap);
|
||||
try {
|
||||
DBSql.update("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", dataMap);
|
||||
} catch (Exception e) {
|
||||
BO bo = new BO();
|
||||
bo.set("PLID", FILEID);
|
||||
bo.set("PLNAME", PLNAME);
|
||||
bo.set("NODEID", NODEID);
|
||||
bo.set("NODENAME", NODENAME);
|
||||
bo.set("INFORMATION", e.getMessage());
|
||||
SDK.getBOAPI().createDataBO("BO_EU_NODESYN_EXCEPTION", bo, UserContext.fromUID("admin"));
|
||||
System.err.println("数据保存异常==========>"+e.getMessage()+"__活动描述:"+ACTIVITYDESC);
|
||||
}
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
String uuId = SDK.getRuleAPI().executeAtScript("@uuid()");
|
||||
@ -202,38 +280,59 @@ public class SyncData_job implements IJob {
|
||||
dataMap.put("ROLENAME", ROLENAME);
|
||||
dataMap.put("POSTNAME", POSTNAME);
|
||||
dataMap.put("MODIFYDATETIME", MODIFYDATETIME);
|
||||
System.err.println("同步节点信息===========>"+dataMap);
|
||||
newNodeDataMaps.add(dataMap);
|
||||
|
||||
//System.err.println("同步节点信息===========>"+dataMap);
|
||||
try {
|
||||
DBSql.update("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)", dataMap);
|
||||
} catch (Exception e) {
|
||||
BO bo = new BO();
|
||||
bo.set("PLID", FILEID);
|
||||
bo.set("PLNAME", PLNAME);
|
||||
bo.set("NODEID", NODEID);
|
||||
bo.set("NODENAME", NODENAME);
|
||||
bo.set("INFORMATION", e.getMessage());
|
||||
SDK.getBOAPI().createDataBO("BO_EU_NODESYN_EXCEPTION", bo, UserContext.fromUID("admin"));
|
||||
System.err.println("数据保存异常==========>"+e.getMessage()+"__活动描述:"+ACTIVITYDESC);
|
||||
}
|
||||
|
||||
|
||||
//newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//删除节点信息
|
||||
if (null != nodeIdList && !nodeIdList.isEmpty()) {
|
||||
for (String nodeIdOfList : nodeIdList) {
|
||||
if (!fromNodeDataIDMaps.contains(nodeIdOfList)) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("NODEID", nodeIdOfList);
|
||||
DBSql.update("DELETE FROM BO_EU_PAL_FILENODE5 WHERE NODEID=:NODEID", dataMap);
|
||||
delNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null != oldNodeDataMaps && !oldNodeDataMaps.isEmpty()) {
|
||||
DBSql.batchUpdate("UPDATE BO_EU_PAL_FILENODE6 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_FILENODE6"
|
||||
+ " (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_FILENODE6 WHERE NODEID=:NODEID", delNodeDataMaps);
|
||||
}
|
||||
/*
|
||||
* 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());
|
||||
|
||||
@ -0,0 +1,246 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
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.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author:lihongyu
|
||||
* @create: 2022-11-03 11:32
|
||||
* @Description: 同步节点信息表
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class SyncData_job3 implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
syncNodeData();
|
||||
|
||||
}
|
||||
//同步节点数据到 BO_EU_PAL_FILENODE6
|
||||
public void syncNodeData() {
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
ArrayList<String> fromNodeDataIDMaps = new ArrayList<>();
|
||||
List<PALRepositoryModel> palTotalList = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delNodeDataMaps = new ArrayList<>();
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE6", String.class);
|
||||
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 (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("")) {
|
||||
Object 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<>();
|
||||
Date 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);
|
||||
//System.err.println("更新节点信息===========>"+dataMap);
|
||||
oldNodeDataMaps.add(dataMap);
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
String 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);
|
||||
System.err.println("同步节点信息===========>"+dataMap);
|
||||
newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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_FILENODE6 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_FILENODE6"
|
||||
+ " (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_FILENODE6 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,344 @@
|
||||
package com.awspaas.user.apps.yili.reportform.job;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
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.bo.engine.BO;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.schedule.IJob;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author:lihongyu
|
||||
* @create: 2022-11-03 11:32
|
||||
* @Description: 全量同步文件
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class SyncData_job4 implements IJob {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
syncNodeData();
|
||||
|
||||
}
|
||||
//同步节点数据到 BO_EU_PAL_FILENODE6
|
||||
public void syncNodeData() {
|
||||
DBSql.update("DELETE FROM BO_EU_NODESYN_EXCEPTION");
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
ArrayList<String> fromNodeDataIDMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> newNodeDataMaps = new ArrayList<>();
|
||||
ArrayList<Map<String, ?>> delNodeDataMaps = new ArrayList<>();
|
||||
String wsId = "7d3ca852-a0bd-42e6-80b1-3dcea6f55083";
|
||||
//总文件集合
|
||||
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());
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<String> nodeIdList = DBSql.getList("SELECT NODEID FROM BO_EU_PAL_FILENODE6", String.class);
|
||||
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();
|
||||
/*
|
||||
* if(!fileModel.isPublish()) { continue; }
|
||||
*/
|
||||
/*
|
||||
* 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();
|
||||
//更新/新增节点
|
||||
nodeElements = new ArrayList<>();
|
||||
if(PLMETHODID.equals("process.epc")||PLMETHODID.equals("process.flowchart")) {
|
||||
try {
|
||||
nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID);
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取节点属性过程中,"+"文件ID:"+PLNAME+"=======>获取节点形状属性异常");
|
||||
}
|
||||
//System.err.println(PLNAME+"======nodeElements1=======>"+nodeElements);
|
||||
}
|
||||
//制度类型
|
||||
/*
|
||||
* nodeElements = new ArrayList<>(); if (PLMETHODID.equals("control.policy")) {
|
||||
* try { nodeElements = CoeDesignerUtil.getShapeMessageJson4(FILEID); } catch
|
||||
* (Exception e) { SDK.getLogAPI().consoleInfo("获取制度类型过程中," + "文件ID:" + FILEID +
|
||||
* "获取节点形状属性异常"); }
|
||||
* //System.err.println(PLNAME+"======nodeElements2=======>"+nodeElements); }
|
||||
*/
|
||||
//同步角色岗位
|
||||
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("")) {
|
||||
List<RowMap> roleFileRowMaps = new ArrayList<>();
|
||||
try {
|
||||
roleFileRowMaps = DBSql.getMaps("SELECT RELATIONFILEID FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID='"+FILEID+"' AND ATTRID='role'");
|
||||
} catch (Exception e) {
|
||||
SDK.getLogAPI().consoleInfo("获取流程节点角色属性关联文件时"+"文件名称:"+PLNAME+"___文件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<>();
|
||||
Date 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);
|
||||
//System.err.println("更新节点信息===========>"+dataMap);
|
||||
try {
|
||||
DBSql.update("UPDATE BO_EU_PAL_FILENODE6 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", dataMap);
|
||||
} catch (Exception e) {
|
||||
BO bo = new BO();
|
||||
bo.set("PLID", FILEID);
|
||||
bo.set("PLNAME", PLNAME);
|
||||
bo.set("NODEID", NODEID);
|
||||
bo.set("NODENAME", NODENAME);
|
||||
bo.set("INFORMATION", e.getMessage());
|
||||
SDK.getBOAPI().createDataBO("BO_EU_NODESYN_EXCEPTION", bo, UserContext.fromUID("admin"));
|
||||
System.err.println("数据保存异常==========>"+e.getMessage()+"__活动描述:"+ACTIVITYDESC);
|
||||
}
|
||||
} else {
|
||||
dataMap = new HashMap<>();
|
||||
String 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);
|
||||
|
||||
//System.err.println("同步节点信息===========>"+dataMap);
|
||||
try {
|
||||
DBSql.update("INSERT INTO BO_EU_PAL_FILENODE6"
|
||||
+ " (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)", dataMap);
|
||||
} catch (Exception e) {
|
||||
BO bo = new BO();
|
||||
bo.set("PLID", FILEID);
|
||||
bo.set("PLNAME", PLNAME);
|
||||
bo.set("NODEID", NODEID);
|
||||
bo.set("NODENAME", NODENAME);
|
||||
bo.set("INFORMATION", e.getMessage());
|
||||
SDK.getBOAPI().createDataBO("BO_EU_NODESYN_EXCEPTION", bo, UserContext.fromUID("admin"));
|
||||
System.err.println("数据保存异常==========>"+e.getMessage()+"__活动描述:"+ACTIVITYDESC);
|
||||
}
|
||||
|
||||
|
||||
//newNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//删除节点信息
|
||||
if (null != nodeIdList && !nodeIdList.isEmpty()) {
|
||||
for (String nodeIdOfList : nodeIdList) {
|
||||
if (!fromNodeDataIDMaps.contains(nodeIdOfList)) {
|
||||
dataMap = new HashMap<>();
|
||||
dataMap.put("NODEID", nodeIdOfList);
|
||||
DBSql.update("DELETE FROM BO_EU_PAL_FILENODE6 WHERE NODEID=:NODEID", dataMap);
|
||||
delNodeDataMaps.add(dataMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* if (null != oldNodeDataMaps && !oldNodeDataMaps.isEmpty()) {
|
||||
* DBSql.batchUpdate("UPDATE BO_EU_PAL_FILENODE6 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_FILENODE6" +
|
||||
* " (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_FILENODE6 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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -219,72 +219,64 @@ public class DataViewService extends ActionWeb {
|
||||
long start = System.currentTimeMillis();
|
||||
ArrayList<String> positionNameList = new ArrayList<>();
|
||||
for (String positionID : positionIDs) {
|
||||
sqlParams = new Object[] { positionID };
|
||||
RowMap POSITIONMap = DBSql.getMap("SELECT POSITION_NAME FROM ORGUSER WHERE POSITION_NO=?", sqlParams);
|
||||
String POSITION_NAME = null;
|
||||
RowMap POSITIONMap = DBSql.getMap("SELECT POSITION_NAME FROM ORGUSER WHERE POSITION_NO= '"+positionID+"'");
|
||||
if (null != POSITIONMap && !POSITIONMap.isEmpty()) {
|
||||
POSITION_NAME = POSITIONMap.getString("POSITION_NAME");
|
||||
positionNameList.add(POSITION_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
for (String positionName : positionNameList) {
|
||||
// if (nodeRowMap.getString("ROLE").equals(positionID) ||
|
||||
// nodeRowMap.getString("POST").equals(positionID)) {
|
||||
List<RowMap> nodeRowMaps = DBSql.getMaps(
|
||||
"SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%"
|
||||
+ positionName + "%'");
|
||||
for (RowMap nodeRowMap : nodeRowMaps) {
|
||||
String plId = nodeRowMap.getString("PLID");
|
||||
RowMap fileRowMap = DBSql.getMap(
|
||||
"SELECT FILESTATE,FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI FROM BO_EU_PAL_FILE1 WHERE FILEID = '"
|
||||
+ plId + "'");
|
||||
if (fileRowMap != null) {
|
||||
if ("0".equals(fileRowMap.getString("FILESTATE"))) {
|
||||
continue;
|
||||
}
|
||||
nodeMap = new HashMap<String, Object>();
|
||||
model = PALRepositoryCache.getCache().get(plId);
|
||||
if (null != model) {
|
||||
if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册
|
||||
taskId = getLastPublishTaskIdByModelId(model.getId());
|
||||
String positionName = POSITIONMap.getString("POSITION_NAME");
|
||||
// if (nodeRowMap.getString("ROLE").equals(positionID) ||
|
||||
// nodeRowMap.getString("POST").equals(positionID)) {
|
||||
List<RowMap> nodeRowMaps = DBSql.getMaps(
|
||||
"SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%"
|
||||
+ positionName + "%'");
|
||||
for (RowMap nodeRowMap : nodeRowMaps) {
|
||||
String plId = nodeRowMap.getString("PLID");
|
||||
RowMap fileRowMap = DBSql.getMap(
|
||||
"SELECT FILESTATE,FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI FROM BO_EU_PAL_FILE1 WHERE FILEID = '"
|
||||
+ plId + "'");
|
||||
if (fileRowMap != null) {
|
||||
if ("0".equals(fileRowMap.getString("FILESTATE"))) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&"
|
||||
+ "uuid=" + nodeRowMap.getString("PLID") + "&" + "sid=" + sid + "&" + "taskId="
|
||||
+ taskId;
|
||||
nodeMap.put("NODENAME", nodeRowMap.getString("NODENAME"));
|
||||
nodeMap.put("PLNAME", nodeRowMap.getString("PLNAME"));
|
||||
nodeMap.put("NODETYPE", nodeRowMap.getString("NODETYPE"));
|
||||
nodeMap.put("path", path);
|
||||
nodeMap.put("ACTIVITYNUMBER", nodeRowMap.getString("ACTIVITYNUMBER"));
|
||||
nodeMap.put("ACTIVITYDESC", nodeRowMap.getString("ACTIVITYDESC"));
|
||||
nodeMap.put("ROLENAME", nodeRowMap.getString("ROLE"));
|
||||
nodeMap.put("POSTNAME", nodeRowMap.getString("POST"));
|
||||
nodeMaps.add(nodeMap);
|
||||
nodeMap = new HashMap<String, Object>();
|
||||
taskId = getLastPublishTaskIdByModelId(plId);
|
||||
/*
|
||||
* model = PALRepositoryCache.getCache().get(plId); if (null != model) { if
|
||||
* (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 } }
|
||||
*/
|
||||
path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&"
|
||||
+ "uuid=" + plId + "&" + "sid=" + sid + "&" + "taskId="
|
||||
+ taskId;
|
||||
nodeMap.put("NODENAME", nodeRowMap.getString("NODENAME"));
|
||||
nodeMap.put("PLNAME", nodeRowMap.getString("PLNAME"));
|
||||
nodeMap.put("NODETYPE", nodeRowMap.getString("NODETYPE"));
|
||||
nodeMap.put("path", path);
|
||||
nodeMap.put("ACTIVITYNUMBER", nodeRowMap.getString("ACTIVITYNUMBER"));
|
||||
nodeMap.put("ACTIVITYDESC", nodeRowMap.getString("ACTIVITYDESC"));
|
||||
nodeMap.put("ROLENAME", nodeRowMap.getString("ROLE"));
|
||||
nodeMap.put("POSTNAME", nodeRowMap.getString("POST"));
|
||||
nodeMaps.add(nodeMap);
|
||||
|
||||
UoPProcessMap = new HashMap<String, Object>();
|
||||
fileType = "process";
|
||||
model = PALRepositoryCache.getCache().get(fileRowMap.getString("FILEID"));
|
||||
if (null != model) {
|
||||
if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册
|
||||
taskId = getLastPublishTaskIdByModelId(model.getId());
|
||||
}
|
||||
UoPProcessMap = new HashMap<String, Object>();
|
||||
fileType = "process";
|
||||
/*
|
||||
* model = PALRepositoryCache.getCache().get(fileRowMap.getString("FILEID")); if
|
||||
* (null != model) { 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;
|
||||
UoPProcessMap.put("id", fileRowMap.getString("FILEID"));
|
||||
UoPProcessMap.put("text", fileRowMap.getString("PLNAME"));
|
||||
UoPProcessMap.put("path", path);
|
||||
UoPProcessMap.put("RELEVANTFILE", fileRowMap.getString("RELEVANTFILE"));
|
||||
UoPProcessMap.put("SUPPORTFILE", fileRowMap.getString("SUPPORTFILE"));
|
||||
UoPProcessMap.put("PROCESSKPI", fileRowMap.getString("PROCESSKPI"));
|
||||
UoPProcessMap.put("fileType", fileType);
|
||||
UoPProcessMap.put("PARENTID", rootuuId);
|
||||
UoPProcessMaps.add(UoPProcessMap);
|
||||
}
|
||||
path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&"
|
||||
+ "uuid=" + fileRowMap.getString("FILEID") + "&" + "sid=" + sid + "&" + "taskId="
|
||||
+ taskId;
|
||||
UoPProcessMap.put("id", fileRowMap.getString("FILEID"));
|
||||
UoPProcessMap.put("text", fileRowMap.getString("PLNAME"));
|
||||
UoPProcessMap.put("path", path);
|
||||
UoPProcessMap.put("RELEVANTFILE", fileRowMap.getString("RELEVANTFILE"));
|
||||
UoPProcessMap.put("SUPPORTFILE", fileRowMap.getString("SUPPORTFILE"));
|
||||
UoPProcessMap.put("PROCESSKPI", fileRowMap.getString("PROCESSKPI"));
|
||||
UoPProcessMap.put("fileType", fileType);
|
||||
UoPProcessMap.put("PARENTID", rootuuId);
|
||||
UoPProcessMaps.add(UoPProcessMap);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1061,6 +1053,8 @@ public class DataViewService extends ActionWeb {
|
||||
List<RowMap> fileRowMaps = null;
|
||||
String sid = _uc.getSessionId();
|
||||
String deptString = params.get("dept");
|
||||
|
||||
System.err.println("======deptString===="+deptString);
|
||||
String fileType = params.get("fileType");
|
||||
ArrayList<String> deptIDList = new ArrayList<>();
|
||||
ArrayList<String> deptIDList2 = new ArrayList<>();
|
||||
@ -1072,6 +1066,7 @@ public class DataViewService extends ActionWeb {
|
||||
List<RowMap> fileListMap = DBSql.getMaps(sql);
|
||||
|
||||
String dempId = "";
|
||||
String sqlParm = "";
|
||||
if (null == deptString || "".equals(deptString)) {
|
||||
String ucDeptID = _uc.getUserModel().getDepartmentId();
|
||||
String pathIdOfCache = _uc.getDepartmentModel().getPathIdOfCache();
|
||||
@ -1086,36 +1081,62 @@ public class DataViewService extends ActionWeb {
|
||||
deptIDList2 = deptIDList;
|
||||
deptString = deptIDList.toString();
|
||||
}
|
||||
}
|
||||
String sqlParm = deptString;
|
||||
if (UtilString.isNotEmpty(deptString)) {
|
||||
if (deptString.contains(",")) {
|
||||
StringBuffer sbu = new StringBuffer();
|
||||
net.sf.json.JSONArray jsonArry = net.sf.json.JSONArray.fromObject(deptString);
|
||||
for (int i = 0; i < jsonArry.size(); i++) {
|
||||
if (jsonArry.size() == 1) {
|
||||
sbu.append("'").append(jsonArry.getString(i)).append("'");
|
||||
} else {
|
||||
if (i == jsonArry.size() - 1) {
|
||||
if (UtilString.isNotEmpty(deptString)) {
|
||||
if (deptString.contains(",")) {
|
||||
StringBuffer sbu = new StringBuffer();
|
||||
String replace = deptString.replace("[", "").replace("]", "");
|
||||
String[] arr = replace.split(",");
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
if (arr.length == 1) {
|
||||
sbu.append("'").append(arr[i]).append("'");
|
||||
} else {
|
||||
if (i == arr.length - 1) {
|
||||
sbu.append("'").append(arr[i]).append("'");
|
||||
} else {
|
||||
sbu.append("'").append(arr[i]).append("'").append(",");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
sqlParm = sbu.toString();
|
||||
} else {
|
||||
sqlParm = "'" + deptString.replace("[", "").replace("]", "") + "'";
|
||||
}
|
||||
}
|
||||
|
||||
}else {
|
||||
if (UtilString.isNotEmpty(deptString)) {
|
||||
if (deptString.contains(",")) {
|
||||
StringBuffer sbu = new StringBuffer();
|
||||
net.sf.json.JSONArray jsonArry = net.sf.json.JSONArray.fromObject(deptString);
|
||||
for (int i = 0; i < jsonArry.size(); i++) {
|
||||
if (jsonArry.size() == 1) {
|
||||
sbu.append("'").append(jsonArry.getString(i)).append("'");
|
||||
} else {
|
||||
sbu.append("'").append(jsonArry.getString(i)).append("'").append(",");
|
||||
if (i == jsonArry.size() - 1) {
|
||||
sbu.append("'").append(jsonArry.getString(i)).append("'");
|
||||
} else {
|
||||
sbu.append("'").append(jsonArry.getString(i)).append("'").append(",");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sqlParm = sbu.toString();
|
||||
} else {
|
||||
sqlParm = "'" + deptString.replace("[", "").replace("]", "") + "'";
|
||||
}
|
||||
sqlParm = sbu.toString();
|
||||
} else {
|
||||
sqlParm = "'" + deptString.replace("[", "").replace("]", "") + "'";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
System.err.println("=========sqlParm=========" + sqlParm);
|
||||
|
||||
try {
|
||||
String sqltt = "SELECT ID AS FILEID,PLNAME,PLPARENTID,PLMETHODID,PLLEVEL,PLVERSIONID,PLORDERINDEX,EXT3 as POLICYTYPE FROM APP_ACT_COE_PAL_REPOSITORY WHERE ISPUBLISH = 1 AND ISSTOP =0 AND EXT5 = '1' AND EXT6 IN (" + sqlParm + ") AND (PLMETHODID='process.epc' OR PLMETHODID='control.policy' OR PLMETHODID='process.flowchart')";
|
||||
List<RowMap> maps = DBSql.getMaps(sqltt);
|
||||
System.err.println("=========maps=======" + maps.size());
|
||||
for (RowMap rowMap : maps) {
|
||||
String id = rowMap.getString("FILEID");
|
||||
PALRepositoryModel model = PALRepositoryCache.getCache().get(id);
|
||||
|
||||
@ -1578,7 +1578,7 @@ public class ProcessPubService extends ActionWeb {
|
||||
ArrayList<Map> BDApprovalOLNodeRateMaps = new ArrayList<>();
|
||||
ArrayList<Map> FDApprovalOLNodeRateMaps = new ArrayList<>();
|
||||
//事业部和职能部门ID,名称 list
|
||||
List<RowMap> nodeRowMaps = DBSql.getMaps("SELECT BN.NODEID,BN.NODETYPE,BF.FILEID,BF.PLPARENTID,BF.PUBDEPT FROM BO_EU_PAL_FILENODE5 BN LEFT JOIN BO_EU_PAL_FILE1 BF ON BN.PLID=BF.FILEID WHERE BF.FILESTATE='1' AND BF.PLMETHODID='process.epc'");
|
||||
List<RowMap> nodeRowMaps = DBSql.getMaps("SELECT BN.NODEID,BN.NODETYPE,BF.FILEID,BF.PLPARENTID,BF.PUBDEPT FROM BO_EU_PAL_FILENODE5 BN LEFT JOIN BO_EU_PAL_FILE1 BF ON BN.PLID=BF.FILEID WHERE BF.FILESTATE='1' AND BF.PLMETHODID in ('process.epc','process.flowchart')");
|
||||
ArrayList<RowMap> nodeHandleMaps = new ArrayList<>();
|
||||
List<RowMap> BDInfoMaps = DBSql.getMaps("SELECT DEPTID,DEPTNAME,ABBREVIATION,DEPTTYPE FROM BO_EU_DEPT_ABBREVIATION WHERE DEPTTYPE='BD'");
|
||||
List<RowMap> FDInfoMaps = DBSql.getMaps("SELECT DEPTID,DEPTNAME,ABBREVIATION,DEPTTYPE FROM BO_EU_DEPT_ABBREVIATION WHERE DEPTTYPE='FD'");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user