|
@@ -2,19 +2,14 @@ package nckd.jxccl.sit.hcsi.formplugin.web.tp;
|
|
|
|
|
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
|
-import kd.bos.dataentity.utils.ObjectUtils;
|
|
|
|
|
import kd.bos.entity.tree.TreeNode;
|
|
import kd.bos.entity.tree.TreeNode;
|
|
|
import kd.bos.form.control.Search;
|
|
import kd.bos.form.control.Search;
|
|
|
import kd.bos.form.control.TreeView;
|
|
import kd.bos.form.control.TreeView;
|
|
|
import kd.bos.form.control.events.SearchEnterEvent;
|
|
import kd.bos.form.control.events.SearchEnterEvent;
|
|
|
import kd.bos.form.control.events.SearchEnterListener;
|
|
import kd.bos.form.control.events.SearchEnterListener;
|
|
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
|
|
-import kd.swc.hsas.business.formula.helper.FormulaDataServiceHelper;
|
|
|
|
|
-import kd.swc.hsas.business.formula.helper.FormulaItemOrFuncTreeHelper;
|
|
|
|
|
-import kd.swc.hsbp.business.servicehelper.SWCSalaryParameterServiceHelper;
|
|
|
|
|
-import kd.swc.hsbp.common.cache.SWCPageCache;
|
|
|
|
|
-import kd.swc.hsbp.common.constants.WtcInteCfgConstants;
|
|
|
|
|
-import kd.swc.hsbp.common.util.SWCStringUtils;
|
|
|
|
|
|
|
+import kd.bos.util.StringUtils;
|
|
|
|
|
+import kd.hr.hbp.common.cache.HRPageCache;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
|
|
|
@@ -43,9 +38,9 @@ public class SitItemSelectTreePlugin extends AbstractFormPlugin implements Searc
|
|
|
@Override
|
|
@Override
|
|
|
public void search(@NotNull SearchEnterEvent event) {
|
|
public void search(@NotNull SearchEnterEvent event) {
|
|
|
String searchText = event.getText();
|
|
String searchText = event.getText();
|
|
|
- boolean isExpend = SWCStringUtils.isNotEmpty(searchText);
|
|
|
|
|
|
|
+ boolean isExpend = StringUtils.isNotEmpty(searchText);
|
|
|
|
|
|
|
|
- SWCPageCache pageCache = new SWCPageCache(this.getView());
|
|
|
|
|
|
|
+ HRPageCache pageCache = new HRPageCache(this.getView());
|
|
|
Map<String, Map<String, Map<String, Object>>> dataMap =
|
|
Map<String, Map<String, Map<String, Object>>> dataMap =
|
|
|
(Map)pageCache.get(CACHE_ALL_ITEM_DATA, Map.class);
|
|
(Map)pageCache.get(CACHE_ALL_ITEM_DATA, Map.class);
|
|
|
|
|
|
|
@@ -81,12 +76,34 @@ public class SitItemSelectTreePlugin extends AbstractFormPlugin implements Searc
|
|
|
.map(selectData -> selectData.getString("itemunicodeid"))
|
|
.map(selectData -> selectData.getString("itemunicodeid"))
|
|
|
.collect(Collectors.toSet());
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
|
|
- List<TreeNode> checkNodeList = FormulaItemOrFuncTreeHelper.getCheckTreeNodeList(nodeList, uniqueCodeSet);
|
|
|
|
|
|
|
+ List<TreeNode> checkNodeList = getCheckTreeNodeList(nodeList, uniqueCodeSet);
|
|
|
if (CollectionUtils.isNotEmpty(checkNodeList)) {
|
|
if (CollectionUtils.isNotEmpty(checkNodeList)) {
|
|
|
treeView.checkNodes(checkNodeList);
|
|
treeView.checkNodes(checkNodeList);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public List<TreeNode> getCheckTreeNodeList(List<TreeNode> nodeList, Set<String> uniqueCodeSet) {
|
|
|
|
|
+ if (CollectionUtils.isEmpty(uniqueCodeSet)) {
|
|
|
|
|
+ return new ArrayList(0);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Queue<TreeNode> waitToCheckQueue = new LinkedList();
|
|
|
|
|
+ waitToCheckQueue.addAll(nodeList);
|
|
|
|
|
+ List<TreeNode> checkNodeList = new ArrayList(10);
|
|
|
|
|
+
|
|
|
|
|
+ while(waitToCheckQueue.size() > 0) {
|
|
|
|
|
+ TreeNode treeNode = (TreeNode)waitToCheckQueue.poll();
|
|
|
|
|
+ List<TreeNode> childeList = treeNode.getChildren();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(childeList)) {
|
|
|
|
|
+ waitToCheckQueue.addAll(childeList);
|
|
|
|
|
+ } else if (uniqueCodeSet.contains(treeNode.getId())) {
|
|
|
|
|
+ checkNodeList.add(treeNode);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return checkNodeList;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private List<TreeNode> loadSLItemChildNode(String name, boolean isExpend,
|
|
private List<TreeNode> loadSLItemChildNode(String name, boolean isExpend,
|
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
|
List<Map<String, Object>> salaryItemList = getSalaryItemList(name, dataMap);
|
|
List<Map<String, Object>> salaryItemList = getSalaryItemList(name, dataMap);
|
|
@@ -125,11 +142,27 @@ public class SitItemSelectTreePlugin extends AbstractFormPlugin implements Searc
|
|
|
|
|
|
|
|
private List<Map<String, Object>> getSalaryItemList(String name,
|
|
private List<Map<String, Object>> getSalaryItemList(String name,
|
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
|
- return SWCStringUtils.isEmpty(name)
|
|
|
|
|
- ? FormulaDataServiceHelper.mapToList(dataMap.get(SALARY_ITEM_KEY))
|
|
|
|
|
|
|
+ return StringUtils.isEmpty(name)
|
|
|
|
|
+ ? mapToList(dataMap.get(SALARY_ITEM_KEY))
|
|
|
: findItemByName(name, SALARY_ITEM_KEY, dataMap);
|
|
: findItemByName(name, SALARY_ITEM_KEY, dataMap);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public static List<Map<String, Object>> mapToList(Map<String, Map<String, Object>> dataMap) {
|
|
|
|
|
+ if (dataMap != null && dataMap.size() != 0) {
|
|
|
|
|
+ List<Map<String, Object>> result = new ArrayList(dataMap.size());
|
|
|
|
|
+ Iterator var2 = dataMap.entrySet().iterator();
|
|
|
|
|
+
|
|
|
|
|
+ while(var2.hasNext()) {
|
|
|
|
|
+ Map.Entry<String, Map<String, Object>> entry = (Map.Entry)var2.next();
|
|
|
|
|
+ result.add(entry.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return new ArrayList();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private List<TreeNode> buildSalaryItemTree(Map<String, TreeNode> itemTypeNodeMap,
|
|
private List<TreeNode> buildSalaryItemTree(Map<String, TreeNode> itemTypeNodeMap,
|
|
|
Map<String, List<TreeNode>> salaryItemNodeMap, boolean isExpend) {
|
|
Map<String, List<TreeNode>> salaryItemNodeMap, boolean isExpend) {
|
|
|
List<TreeNode> treeNodeList = itemTypeNodeMap.entrySet().stream()
|
|
List<TreeNode> treeNodeList = itemTypeNodeMap.entrySet().stream()
|
|
@@ -154,68 +187,6 @@ public class SitItemSelectTreePlugin extends AbstractFormPlugin implements Searc
|
|
|
return Collections.singletonList(itemRoot);
|
|
return Collections.singletonList(itemRoot);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static boolean isEnableWtcInte() {
|
|
|
|
|
- Map<String, Object> paramMap = SWCSalaryParameterServiceHelper.getSalaryParam("wtcinte");
|
|
|
|
|
- if (paramMap == null) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Boolean wtcinte = (Boolean)paramMap.get("enableWtcInte");
|
|
|
|
|
- Integer scheme = (Integer)paramMap.getOrDefault("scheme",
|
|
|
|
|
- WtcInteCfgConstants.FIELD_SCHEME_THREE);
|
|
|
|
|
-
|
|
|
|
|
- return wtcinte != null && wtcinte &&
|
|
|
|
|
- (WtcInteCfgConstants.FIELD_SCHEME_ONE.equals(scheme) ||
|
|
|
|
|
- WtcInteCfgConstants.FIELD_SCHEME_TWO.equals(scheme));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private static void getTreeNodeList(Map<String, List<TreeNode>> bsNodeMap,
|
|
|
|
|
- Map<String, TreeNode> bsTypeNodeMap, String bizTypNumber,
|
|
|
|
|
- Map<String, Object> bsItem, String prefixKey) {
|
|
|
|
|
- TreeNode bsNode = new TreeNode(
|
|
|
|
|
- bizTypNumber + PREFIX_SEPARATOR + ITEM_TYPE_BS,
|
|
|
|
|
- String.valueOf(bsItem.get("uniquecode")),
|
|
|
|
|
- (String)bsItem.get("name")
|
|
|
|
|
- );
|
|
|
|
|
-
|
|
|
|
|
- bsNodeMap.computeIfAbsent(bizTypNumber, k -> new ArrayList<>(10)).add(bsNode);
|
|
|
|
|
-
|
|
|
|
|
- bsTypeNodeMap.computeIfAbsent(bizTypNumber, k ->
|
|
|
|
|
- new TreeNode(prefixKey + ITEM_TYPE_BS,
|
|
|
|
|
- bizTypNumber + PREFIX_SEPARATOR + ITEM_TYPE_BS,
|
|
|
|
|
- (String)bsItem.get("bizTypeName")
|
|
|
|
|
- )
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private List<TreeNode> loadSPTreeNodeList(String name, boolean isExpend,
|
|
|
|
|
- Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
|
|
|
- List<Map<String, Object>> result = SWCStringUtils.isEmpty(name)
|
|
|
|
|
- ? FormulaDataServiceHelper.mapToList(dataMap.get(SP_ITEM_KEY))
|
|
|
|
|
- : findItemByName(name, SP_ITEM_KEY, dataMap);
|
|
|
|
|
-
|
|
|
|
|
- if (CollectionUtils.isEmpty(result)) {
|
|
|
|
|
- return Collections.emptyList();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- List<TreeNode> treeNodeList = result.stream()
|
|
|
|
|
- .map(spItem -> new TreeNode(
|
|
|
|
|
- PREFIX_SEPARATOR + ITEM_TYPE_SP,
|
|
|
|
|
- String.valueOf(spItem.get("uniquecode")),
|
|
|
|
|
- (String)spItem.get("name")
|
|
|
|
|
- ))
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- TreeNode node = new TreeNode("", PREFIX_SEPARATOR + ITEM_TYPE_SP,
|
|
|
|
|
- ResManager.loadKDString("支持项目-SP", "FormulaItemOrFuncTreeHelper_5",
|
|
|
|
|
- "swc-hsas-business", new Object[0]));
|
|
|
|
|
- node.setChildren(treeNodeList);
|
|
|
|
|
- node.setExpend(isExpend);
|
|
|
|
|
- node.setIsOpened(isExpend);
|
|
|
|
|
-
|
|
|
|
|
- return Collections.singletonList(node);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private List<Map<String, Object>> findItemByName(String name, String itemName,
|
|
private List<Map<String, Object>> findItemByName(String name, String itemName,
|
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
Map<String, Map<String, Map<String, Object>>> dataMap) {
|
|
|
Map<String, Map<String, Object>> result = dataMap.get(itemName);
|
|
Map<String, Map<String, Object>> result = dataMap.get(itemName);
|
|
@@ -231,7 +202,7 @@ public class SitItemSelectTreePlugin extends AbstractFormPlugin implements Searc
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
String number = (String)itemMap.get("number");
|
|
String number = (String)itemMap.get("number");
|
|
|
- return SWCStringUtils.isNotEmpty(number) &&
|
|
|
|
|
|
|
+ return StringUtils.isNotEmpty(number) &&
|
|
|
(number.contains(name) || entry.getKey().contains(name));
|
|
(number.contains(name) || entry.getKey().contains(name));
|
|
|
})
|
|
})
|
|
|
.map(Map.Entry::getValue)
|
|
.map(Map.Entry::getValue)
|