流程资产库搜索优化

This commit is contained in:
yujh 2024-09-20 14:02:30 +08:00
parent 825f704851
commit 1cbf88415a
2 changed files with 161 additions and 3 deletions

View File

@ -2213,7 +2213,7 @@ public class ProcessPublishWeb extends ActionWeb {
removeUsedList.add(model);
usedList.removeAll(removeUsedList);// 筛选具有权限的所有使用中的流程
}
JSONArray treeData = RepositoryTreeUtil.list2tree(usedList, wsId, true, true, "-");
JSONArray treeData = RepositoryTreeUtil.list2treeBySearch(usedList, wsId, true, true, "-");
return treeData.toString();
}

View File

@ -266,7 +266,6 @@ public class RepositoryTreeUtil {
Collections.sort(list, new Comparator1());
for (PALRepositoryModel palModel : list) {
JSONObject palObject = new JSONObject();
palObject.put("id", palModel.getId());
palObject.put("name", palModel.getName());
@ -414,5 +413,164 @@ public class RepositoryTreeUtil {
return result;
}
}
/**
* 资产库搜索扩展
* @param repositoryList
* @param wsId
* @param professionalIcon
* @param checkbox
* @param checkboxIds
* @return
*/
public static JSONArray list2treeBySearch(List<PALRepositoryModel> repositoryList, String wsId, boolean professionalIcon, boolean checkbox, String checkboxIds) {
JSONArray jsonArray = new JSONArray();
Map<String, PALRepositoryModel> repositoryMap = new HashMap<String, PALRepositoryModel>();
repositoryMap.put(wsId, new PALRepositoryModelImpl());
if (repositoryList == null) {
return jsonArray;
}
for (PALRepositoryModel model : repositoryList) {
repositoryMap.put(model.getVersionId(), model);
}
List<PALRepositoryModel> list = new ArrayList<PALRepositoryModel>();
for (PALRepositoryModel repository : repositoryList) {
if(repository.isPublish()){
continue;
}
PALRepositoryModelImpl object = new PALRepositoryModelImpl();
object.setId(repository.getId());
object.setName(repository.getName());
object.setLevel(repository.getLevel());
object.setMethodCategory(repository.getMethodCategory());
object.setMethodId(repository.getMethodId());
object.setVersionId(repository.getVersionId());
object.setVersion(repository.getVersion());
object.setWsId(repository.getWsId());
// 责任人和责任部门
object.setDutyDept(repository.getDutyDept());
object.setDutyUser(repository.getDutyUser());
object.setParentId(repository.getParentId());
list.add(object);
}
Collections.sort(list, new Comparator1());
for (PALRepositoryModel palModel : list) {
JSONObject palObject = new JSONObject();
palObject.put("id", palModel.getId());
palObject.put("name", palModel.getName());
palObject.put("pid", palModel.getParentId());
palObject.put("versionId", palModel.getVersionId());
palObject.put("version", VersionUtil.getVersionStr(palModel.getVersion()));
palObject.put("category", palModel.getMethodCategory());
palObject.put("method", palModel.getMethodId());
// 责任部门和责任人
palObject.put("dutyDept", palModel.getDutyDept());
palObject.put("dutyDeptName", "");
if (!UtilString.isEmpty(palModel.getDutyDept())) {
DepartmentModel model = SDK.getORGAPI().getDepartmentById(palModel.getDutyDept());
if (model != null) palObject.put("dutyDeptName", model.getName());
}
palObject.put("dutyUser", palModel.getDutyUser());
palObject.put("dutyUserName", "");
if (!UtilString.isEmpty(palModel.getDutyUser())) {
UserModel model = SDK.getORGAPI().getUser(palModel.getDutyUser());
if (model != null) palObject.put("dutyUserName", model.getUserName());
}
if (false) {
palObject.put("icon", "../apps/" + CoEConstant.APP_ID + "/img/method/" + palModel.getMethodId() + "/16.png");
if (palModel.getMethodId().contains("epc")) {
palObject.put("icon", "../apps/com.actionsoft.apps.coe.method.process.epc/img/method/" + palModel.getMethodId() + "/16.png");
}
if (palModel.getMethodId().contains("flowchart")) {
palObject.put("icon", "../apps/com.actionsoft.apps.coe.method.process.flowchart/img/method/process.flowchart/16.png");
}
} else {
if (palModel.getMethodId().equals("default")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#59179");
iconFont.put("color", "#FFB718");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("process.epc")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe605");
iconFont.put("color", "#5882F9");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("process.bpmn2")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe665");
iconFont.put("color", "#5882F9");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("control.policy")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe69c");
iconFont.put("color", "#349B53");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("process.flowchart")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe75b");
iconFont.put("color", "#5882F9");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("process.evc")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe75b");
iconFont.put("color", "#5882F9");
palObject.put("iconFont", iconFont);
} else if (palModel.getMethodId().equals("data.form")) {
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe80b");
iconFont.put("color", "#FFB718");
palObject.put("iconFont", iconFont);
}else if(palModel.getMethodId().equals("process.framework")){
JSONObject iconFont = new JSONObject();
iconFont.put("code", "&#xe610");
iconFont.put("color", "#FFB718");
palObject.put("iconFont", iconFont);
}else {
palObject.put("iconFont", "&#59101");
}
}
List<PALRepositoryModel> children = PALRepositoryQueryAPIManager.getInstance().getUsedPalRepositoryModelsByPid(palModel.getWsId(), palModel.getId());
if (children == null || children.size() == 0) {
palObject.put("isParent", false);
// String icon = palObject.getString("icon");
// palObject.put("icon", icon.replace("16.png", "16.leaf.png"));
} else {
palObject.put("isParent", true);
palObject.put("open", false);
}
//流程文件是否为文件夹
boolean isFolder = palModel.getMethodId().equals("default") ? true : false;
palObject.put("isFolder", isFolder);
if (checkbox) {
if (checkboxIds != null && (checkboxIds.equals("-") || checkboxIds.contains(palModel.getId())) && !isFolder) {
palObject.put("nocheck", false);
palObject.put("isPublish", false);
} else {
palObject.put("nocheck", true);
palObject.put("isPublish", true);
}
//文件密级校验
if (HighSecurityUtil.isON() && HighSecurityUtil.fileSecuritySwitch()){
ResponseObject responseObject = new CoeProcessLevelWeb(DispatcherRequest.getUserContext()).checkFilePemission(palModel.getId());
if (responseObject.isErr() && !isFolder){
palObject.put("nocheck", true);
}
}
}
jsonArray.add(palObject);
}
return jsonArray;
}
}