管理看板代码提交

This commit is contained in:
lihongyu 2022-12-30 23:23:33 +08:00
parent c35629be39
commit 43e6298d09
3 changed files with 409 additions and 376 deletions

View File

@ -42,7 +42,7 @@ public class SyncData_job implements IJob {
//同步节点数据到 BO_EU_PAL_FILENODE5
public void syncNodeData() {
DBSql.update("DELETE FROM BO_EU_NODESYN_EXCEPTION");
DBSql.update("DELETE FROM BO_EU_PAL_FILENODE5");
//DBSql.update("DELETE FROM BO_EU_PAL_FILENODE5");
HashMap<String, Object> dataMap = new HashMap<>();
ArrayList<String> fromNodeDataIDMaps = new ArrayList<>();
ArrayList<Map<String, ?>> oldNodeDataMaps = new ArrayList<>();

View File

@ -225,7 +225,7 @@ public class DataViewService extends ActionWeb {
// 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 '%"
"SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE5 WHERE POST LIKE '%"
+ positionName + "%'");
for (RowMap nodeRowMap : nodeRowMaps) {
String plId = nodeRowMap.getString("PLID");
@ -594,7 +594,7 @@ public class DataViewService extends ActionWeb {
String POSITION_NAME = UserContext.fromUID(uid).getUserModel().getPositionName();
if (UtilString.isNotEmpty(POSITION_NAME)) {
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 '%"
"SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE5 WHERE POST LIKE '%"
+ POSITION_NAME + "%'");
for (RowMap nodeRowMap : nodeRowMaps) {
String PLID = nodeRowMap.getString("PLID");

View File

@ -1,5 +1,14 @@
package com.awspaas.user.apps.yili.reportform.service;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
@ -7,24 +16,12 @@ import com.actionsoft.bpms.org.model.UserModel;
import com.actionsoft.bpms.server.RequestParams;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.sdk.local.SDK;
import com.awspaas.user.apps.yili.reportform.util.GetNodesUtil;
import com.awspaas.user.apps.yili.reportform.util.TreeUtil;
import org.json.JSONException;
import org.json.JSONObject;
import java.sql.Connection;
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.*;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toCollection;
import net.sf.json.JSONObject;
/**
@ -35,7 +32,8 @@ import static java.util.stream.Collectors.toCollection;
public class ProcessPubService extends ActionWeb {
UserContext _uc;
private static final String Map = null;
UserContext _uc;
public ProcessPubService(UserContext uc) {
super(uc);
@ -1338,6 +1336,7 @@ public class ProcessPubService extends ActionWeb {
* @date: 2022/7/15 15:56
*/
public String nodeAnalysisTerms(UserContext uc, RequestParams params) {
long start = System.currentTimeMillis();
ResponseObject ro = ResponseObject.newOkResponse();
//所属单位
List<RowMap> deptMaps = DBSql.getMaps("SELECT ID,PARENTDEPARTMENTID,DEPARTMENTNAME,LAYER,ORDERINDEX FROM ORGDEPARTMENT"
@ -1389,6 +1388,8 @@ public class ProcessPubService extends ActionWeb {
List<Map> fieldTreeNodes = TreeUtil.buildTree("1",fieldNodes, "process", null, null, null);
ro.put("deptTreeNodes", deptTreeNodes);
ro.put("fieldTreeNodes", fieldTreeNodes);
long end = System.currentTimeMillis();
System.out.println("======加载筛选框用时=====>"+(end-start)/1000);
return ro.toString();
}
@ -1408,111 +1409,126 @@ public class ProcessPubService extends ActionWeb {
ArrayList<Map> fieldList = new ArrayList<>();
NumberFormat numberformat = NumberFormat.getInstance();
numberformat.setMaximumFractionDigits(2);
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<>();
if (null!=unit && !unit.equals("")) {
if("all".equals(unit)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(unit, deptIDList);
for (String deptID : deptIDList) {
for (RowMap fileMap : nodeRowMaps) {
if (fileMap.getString("PUBDEPT").contains(deptID)) {
nodeHandleMaps.add(fileMap);
}
if(UtilString.isNotEmpty(unit)||UtilString.isNotEmpty(field)) {
if (null!=unit && !unit.equals("")) {
if("all".equals(unit)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}
}
nodeRowMaps = nodeHandleMaps;
}
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap fileMap : nodeRowMaps) {
if (fileMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(fileMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
Integer nodeTotalNum = 0;
Integer approvalNodeNum = 0;
Integer operationNodeNum = 0;
Integer onlineNodeNum = 0;
Integer itsysNodeNum = 0;
String approvalRrationate = "0";
String operationRate = "0";
String onlineRate = "0";
String itsysRate = "0";
if (null!=nodeRowMaps && !nodeRowMaps.isEmpty()) {
nodeTotalNum = nodeRowMaps.size();
approvalNodeNum = 0;
operationNodeNum = 0;
onlineNodeNum = 0;
itsysNodeNum = 0;
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
onlineNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
itsysNodeNum += 1;
}
}else {
nodeHandleMaps = new ArrayList<>();
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(unit, deptIDList);
for (String deptID : deptIDList) {
for (RowMap fileMap : nodeRowMaps) {
if (fileMap.getString("PUBDEPT").contains(deptID)) {
nodeHandleMaps.add(fileMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap fileMap : nodeRowMaps) {
if (fileMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(fileMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
Integer nodeTotalNum = 0;
Integer approvalNodeNum = 0;
Integer operationNodeNum = 0;
Integer onlineNodeNum = 0;
Integer itsysNodeNum = 0;
String approvalRrationate = "0";
String operationRate = "0";
String onlineRate = "0";
String itsysRate = "0";
if (null!=nodeRowMaps && !nodeRowMaps.isEmpty()) {
nodeTotalNum = nodeRowMaps.size();
approvalNodeNum = 0;
operationNodeNum = 0;
onlineNodeNum = 0;
itsysNodeNum = 0;
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
onlineNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
itsysNodeNum += 1;
}
}
approvalRrationate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
operationRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
onlineRate = numberformat.format((float) onlineNodeNum / (float) approvalNodeNum * 100);
itsysRate = numberformat.format((float) itsysNodeNum / (float) operationNodeNum * 100);
ro.put("nodeTotalNum",nodeTotalNum);
ro.put("approvalNodeNum",approvalNodeNum);
ro.put("approvalRrationate",approvalRrationate);
ro.put("onlineRate",onlineRate);
ro.put("operationNodeNum",operationNodeNum);
ro.put("operationRate",operationRate);
ro.put("itsysRate",itsysRate);
} else {
nodeTotalNum = 0;
approvalNodeNum = 0;
operationNodeNum = 0;
onlineNodeNum = 0;
itsysNodeNum = 0;
approvalRrationate = "0";
operationRate = "0";
onlineRate = "0";
itsysRate = "0";
ro.ok("暂无节点");
ro.put("nodeTotalNum",nodeTotalNum);
ro.put("approvalNodeNum",approvalNodeNum);
ro.put("approvalRrationate",approvalRrationate);
ro.put("onlineRate",onlineRate);
ro.put("operationNodeNum",operationNodeNum);
ro.put("operationRate",operationRate);
ro.put("itsysRate",itsysRate);
approvalRrationate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
operationRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
onlineRate = numberformat.format((float) onlineNodeNum / (float) approvalNodeNum * 100);
itsysRate = numberformat.format((float) itsysNodeNum / (float) operationNodeNum * 100);
ro.put("nodeTotalNum",nodeTotalNum);
ro.put("approvalNodeNum",approvalNodeNum);
ro.put("approvalRrationate",approvalRrationate);
ro.put("onlineRate",onlineRate);
ro.put("operationNodeNum",operationNodeNum);
ro.put("operationRate",operationRate);
ro.put("itsysRate",itsysRate);
} else {
nodeTotalNum = 0;
approvalNodeNum = 0;
operationNodeNum = 0;
onlineNodeNum = 0;
itsysNodeNum = 0;
approvalRrationate = "0";
operationRate = "0";
onlineRate = "0";
itsysRate = "0";
ro.ok("暂无节点");
ro.put("nodeTotalNum",nodeTotalNum);
ro.put("approvalNodeNum",approvalNodeNum);
ro.put("approvalRrationate",approvalRrationate);
ro.put("onlineRate",onlineRate);
ro.put("operationNodeNum",operationNodeNum);
ro.put("operationRate",operationRate);
ro.put("itsysRate",itsysRate);
}
}else {
List<BO> list = SDK.getBOAPI().query("BO_EU_FILE_OPERATIONNODE").addQuery("TYPE = ", "流程节点总数").list();
for (BO bo : list) {
String data = bo.getString("NODEDATA");
String name = bo.getString("NAME");
if("operationNodeNum".equals(name)||"approvalNodeNum".equals(name)||"nodeTotalNum".equals(name)) {
ro.put(name,Integer.parseInt(data));
}else {
ro.put(name,data);
}
}
}
return ro.toString();
}
@ -1588,137 +1604,143 @@ public class ProcessPubService extends ActionWeb {
Integer approvalOLNodeNum = 0;
String approvalRate = "0";
String approvalOLRate = "0";
if(UtilString.isNotEmpty(field)) {
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap nodeRowMap : nodeRowMaps) {
nodeHandleMaps.add(nodeRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(nodeRowMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap nodeRowMap : nodeRowMaps) {
nodeHandleMaps.add(nodeRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(nodeRowMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
if (null!=BDInfoMaps && !BDInfoMaps.isEmpty()) {
for (RowMap bdInfoMap : BDInfoMaps) {
nodeTotalNum = 0;
approvalNodeNum = 0;
approvalOLNodeNum = 0;
String bdDeptID = bdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(bdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
approvalOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalNodeNum",approvalNodeNum);
BDApprovalNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
approvalRate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
} else {
approvalRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalRate",approvalRate);
BDApprovalNodeRateMaps.add(deptNodeCountMap);
if (approvalNodeNum!=0) {
approvalOLRate = numberformat.format((float) approvalOLNodeNum / (float) approvalNodeNum * 100);
} else {
approvalOLRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalOLRate",approvalOLRate);
BDApprovalOLNodeRateMaps.add(deptNodeCountMap);
}
}
if (null!=FDInfoMaps && !FDInfoMaps.isEmpty()) {
for (RowMap fdInfoMap : FDInfoMaps) {
nodeTotalNum = 0;
approvalNodeNum = 0;
approvalOLNodeNum = 0;
String fdDeptID = fdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(fdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
approvalOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalNodeNum",approvalNodeNum);
FDApprovalNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
approvalRate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
} else {
approvalRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalRate",approvalRate);
FDApprovalNodeRateMaps.add(deptNodeCountMap);
if (approvalNodeNum!=0) {
approvalOLRate = numberformat.format((float) approvalOLNodeNum / (float) approvalNodeNum * 100);
} else {
approvalOLRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalOLRate",approvalOLRate);
FDApprovalOLNodeRateMaps.add(deptNodeCountMap);
}
}
ro.put("BDApprovalNodeCountMaps",BDApprovalNodeCountMaps);
ro.put("FDApprovalNodeCountMaps",FDApprovalNodeCountMaps);
ro.put("BDApprovalNodeRateMaps",BDApprovalNodeRateMaps);
ro.put("FDApprovalNodeRateMaps",FDApprovalNodeRateMaps);
ro.put("BDApprovalOLNodeRateMaps",BDApprovalOLNodeRateMaps);
ro.put("FDApprovalOLNodeRateMaps",FDApprovalOLNodeRateMaps);
if (null!=BDInfoMaps && !BDInfoMaps.isEmpty()) {
for (RowMap bdInfoMap : BDInfoMaps) {
nodeTotalNum = 0;
approvalNodeNum = 0;
approvalOLNodeNum = 0;
String bdDeptID = bdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(bdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
approvalOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalNodeNum",approvalNodeNum);
BDApprovalNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
approvalRate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
} else {
approvalRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalRate",approvalRate);
BDApprovalNodeRateMaps.add(deptNodeCountMap);
if (approvalNodeNum!=0) {
approvalOLRate = numberformat.format((float) approvalOLNodeNum / (float) approvalNodeNum * 100);
} else {
approvalOLRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalOLRate",approvalOLRate);
BDApprovalOLNodeRateMaps.add(deptNodeCountMap);
}
}
if (null!=FDInfoMaps && !FDInfoMaps.isEmpty()) {
for (RowMap fdInfoMap : FDInfoMaps) {
nodeTotalNum = 0;
approvalNodeNum = 0;
approvalOLNodeNum = 0;
String fdDeptID = fdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(fdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node") || nodeRowMap.getString("NODETYPE").equals("method_service_node")) {
approvalNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node")) {
approvalOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalNodeNum",approvalNodeNum);
FDApprovalNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
approvalRate = numberformat.format((float) approvalNodeNum / (float) nodeTotalNum * 100);
} else {
approvalRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalRate",approvalRate);
FDApprovalNodeRateMaps.add(deptNodeCountMap);
if (approvalNodeNum!=0) {
approvalOLRate = numberformat.format((float) approvalOLNodeNum / (float) approvalNodeNum * 100);
} else {
approvalOLRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("approvalOLRate",approvalOLRate);
FDApprovalOLNodeRateMaps.add(deptNodeCountMap);
}
}
ro.put("BDApprovalNodeCountMaps",BDApprovalNodeCountMaps);
ro.put("FDApprovalNodeCountMaps",FDApprovalNodeCountMaps);
ro.put("BDApprovalNodeRateMaps",BDApprovalNodeRateMaps);
ro.put("FDApprovalNodeRateMaps",FDApprovalNodeRateMaps);
ro.put("BDApprovalOLNodeRateMaps",BDApprovalOLNodeRateMaps);
ro.put("FDApprovalOLNodeRateMaps",FDApprovalOLNodeRateMaps);
}else {
List<BO> list = SDK.getBOAPI().query("BO_EU_FILE_OPERATIONNODE").addQuery("TYPE = ", "审批节点信息").list();
for (BO bo : list) {
ro.put(bo.getString("NAME"),bo.getString("NODEDATA"));
}
}
return ro.toString();
}
/**
@ -1744,7 +1766,7 @@ public class ProcessPubService extends ActionWeb {
ArrayList<Map> BDOperationOLNodeRateMaps = new ArrayList<>();
ArrayList<Map> FDOperationOLNodeRateMaps = 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'");
@ -1754,136 +1776,147 @@ public class ProcessPubService extends ActionWeb {
Integer operationOLNodeNum = 0;
String operationNodeRate = "0";
String operationOLNodeRate = "0";
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(nodeRowMap);
}
if(UtilString.isNotEmpty(field)) {
if (null!=field && !field.equals("")) {
if("all".equals(field)) {
for (RowMap fileRowMap : nodeRowMaps) {
nodeHandleMaps.add(fileRowMap);
}
}
}else {
nodeHandleMaps = new ArrayList<>();
fieldList = new ArrayList<Map>();
fieldList = GetNodesUtil.getChildFrame(field,"", fieldList);
for (Map fieldMap : fieldList) {
String fieldID = String.valueOf(fieldMap.get("FRAMEID"));
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PLPARENTID").equals(fieldID)) {
nodeHandleMaps.add(nodeRowMap);
}
}
}
}
nodeRowMaps = nodeHandleMaps;
}
if (null!=BDInfoMaps && !BDInfoMaps.isEmpty()) {
for (RowMap bdInfoMap : BDInfoMaps) {
nodeTotalNum = 0;
operationNodeNum = 0;
operationOLNodeNum = 0;
String bdDeptID = bdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(bdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
operationOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeNum",operationNodeNum);
BDOperationNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
operationNodeRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
} else {
operationNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeRate",operationNodeRate);
BDOperationNodeRateMaps.add(deptNodeCountMap);
if (operationNodeNum!=0) {
operationOLNodeRate = numberformat.format((float) operationOLNodeNum / (float) operationNodeNum * 100);
} else {
operationOLNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationOLNodeRate",operationOLNodeRate);
BDOperationOLNodeRateMaps.add(deptNodeCountMap);
}
}
if (null!=FDInfoMaps && !FDInfoMaps.isEmpty()) {
for (RowMap fdInfoMap : FDInfoMaps) {
nodeTotalNum = 0;
operationNodeNum = 0;
operationOLNodeNum = 0;
String fdDeptID = fdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(fdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
operationOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeNum",operationNodeNum);
FDOperationNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
operationNodeRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
} else {
operationNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeRate",operationNodeRate);
FDOperationNodeRateMaps.add(deptNodeCountMap);
if (operationNodeNum!=0) {
operationOLNodeRate = numberformat.format((float) operationOLNodeNum / (float) operationNodeNum * 100);
} else {
operationOLNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationOLNodeRate",operationOLNodeRate);
FDOperationOLNodeRateMaps.add(deptNodeCountMap);
}
}
ro.put("BDOperationNodeCountMaps",BDOperationNodeCountMaps);
ro.put("FDOperationNodeCountMaps",FDOperationNodeCountMaps);
ro.put("BDOperationNodeRateMaps",BDOperationNodeRateMaps);
ro.put("FDOperationNodeRateMaps",FDOperationNodeRateMaps);
ro.put("BDOperationOLNodeRateMaps",BDOperationOLNodeRateMaps);
ro.put("FDOperationOLNodeRateMaps",FDOperationOLNodeRateMaps);
}else {
List<BO> list = SDK.getBOAPI().query("BO_EU_FILE_OPERATIONNODE").addQuery("TYPE = ", "操作节点信息").list();
for (BO bo : list) {
ro.put(bo.getString("NAME"),bo.getString("NODEDATA"));
}
nodeRowMaps = nodeHandleMaps;
}
}
if (null!=BDInfoMaps && !BDInfoMaps.isEmpty()) {
for (RowMap bdInfoMap : BDInfoMaps) {
nodeTotalNum = 0;
operationNodeNum = 0;
operationOLNodeNum = 0;
String bdDeptID = bdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(bdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
operationOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeNum",operationNodeNum);
BDOperationNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
operationNodeRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
} else {
operationNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeRate",operationNodeRate);
BDOperationNodeRateMaps.add(deptNodeCountMap);
if (operationNodeNum!=0) {
operationOLNodeRate = numberformat.format((float) operationOLNodeNum / (float) operationNodeNum * 100);
} else {
operationOLNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",bdDeptID);
deptNodeCountMap.put("deptName",bdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationOLNodeRate",operationOLNodeRate);
BDOperationOLNodeRateMaps.add(deptNodeCountMap);
}
}
if (null!=FDInfoMaps && !FDInfoMaps.isEmpty()) {
for (RowMap fdInfoMap : FDInfoMaps) {
nodeTotalNum = 0;
operationNodeNum = 0;
operationOLNodeNum = 0;
String fdDeptID = fdInfoMap.getString("DEPTID");
deptIDList = new ArrayList<String>();
deptIDList = GetNodesUtil.getChildDept(fdDeptID, deptIDList);
if (null!=deptIDList && !deptIDList.isEmpty()) {
for (String deptID : deptIDList) {
for (RowMap nodeRowMap : nodeRowMaps) {
if (nodeRowMap.getString("PUBDEPT").contains(deptID)) {
nodeTotalNum += 1;
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3") || nodeRowMap.getString("NODETYPE").equals("method_service_node4")) {
operationNodeNum += 1;
}
if (nodeRowMap.getString("NODETYPE").equals("method_approval_node3")) {
operationOLNodeNum += 1;
}
}
}
}
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeNum",operationNodeNum);
FDOperationNodeCountMaps.add(deptNodeCountMap);
if (nodeTotalNum!=0) {
operationNodeRate = numberformat.format((float) operationNodeNum / (float) nodeTotalNum * 100);
} else {
operationNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationNodeRate",operationNodeRate);
FDOperationNodeRateMaps.add(deptNodeCountMap);
if (operationNodeNum!=0) {
operationOLNodeRate = numberformat.format((float) operationOLNodeNum / (float) operationNodeNum * 100);
} else {
operationOLNodeRate = "0";
}
deptNodeCountMap = new HashMap<>();
deptNodeCountMap.put("deptID",fdDeptID);
deptNodeCountMap.put("deptName",fdInfoMap.getString("ABBREVIATION"));
deptNodeCountMap.put("operationOLNodeRate",operationOLNodeRate);
FDOperationOLNodeRateMaps.add(deptNodeCountMap);
}
}
ro.put("BDOperationNodeCountMaps",BDOperationNodeCountMaps);
ro.put("FDOperationNodeCountMaps",FDOperationNodeCountMaps);
ro.put("BDOperationNodeRateMaps",BDOperationNodeRateMaps);
ro.put("FDOperationNodeRateMaps",FDOperationNodeRateMaps);
ro.put("BDOperationOLNodeRateMaps",BDOperationOLNodeRateMaps);
ro.put("FDOperationOLNodeRateMaps",FDOperationOLNodeRateMaps);
return ro.toString();
}