From f3ad14f8af7fb651426d1ee617e7ecb9d3fc9aab Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期四, 28 三月 2024 11:15:52 +0800 Subject: [PATCH] 新增产品节点上设置关系,可设置项为“无/旁联/表决” --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 49 insertions(+), 5 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java index 6f17597..24ca30a 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java @@ -125,25 +125,69 @@ // 1. 瑙f瀽鍑鸿妭鐐逛笌杈� getNodeAndLineFromRbd(modelRbd.getId(), rbdJsonArray, modelNodeList, modelLineList, productImgList); - // 2. 璁$畻鎵�鏈夎妭鐐圭殑鍏ュ彛绾挎暟鍙婂嚭鍙g嚎鏁� + // 2. 瀵逛簬鏈夊鏍瑰叆鍙g嚎鐨勪骇鍝佽妭鐐癸紝灏嗗叾涓婄殑琛ㄥ喅銆佹梺鑱斿叧绯诲墺绂绘垚杩愮畻绗﹁妭鐐癸紝娣诲姞鍒拌鑺傜偣鐨勫墠闈紝骞舵坊鍔犵浉搴旂殑杈� + peelOperationFromProductNode(modelRbd.getId(), modelNodeList, modelLineList); + // 3. 璁$畻鎵�鏈夎妭鐐圭殑鍏ュ彛绾挎暟鍙婂嚭鍙g嚎鏁� calcInOutLineNumAllNode(modelNodeList, modelLineList); - // 3. 澶嶅埗浜у搧鑺傜偣(node)鍒發ist + // 4. 澶嶅埗浜у搧鑺傜偣(node)鍒發ist List<ModelNode> modelNodeAndVnodeList = modelNodeList.stream().filter(item -> "node".equals(item.getNodeType())).collect(Collectors.toList()); - // 4. 涓嶆柇灏嗗熀鏈ā鍨嬶紙涓茶仈銆佸苟鑱斻�佹梺鑱斻�佽〃鍐炽�佹ˉ鑱旓級鏇挎崲涓鸿櫄鑺傜偣鑰岀畝鍖栧浘褰紝鐩磋嚦鏃犳硶绠�鍖栦负姝€�� + // 5. 涓嶆柇灏嗗熀鏈ā鍨嬶紙涓茶仈銆佸苟鑱斻�佹梺鑱斻�佽〃鍐炽�佹ˉ鑱旓級鏇挎崲涓鸿櫄鑺傜偣鑰岀畝鍖栧浘褰紝鐩磋嚦鏃犳硶绠�鍖栦负姝€�� result = getAlgorithmFromRbd(modelRbd, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList); - // 5. 杞崲涓虹畻娉曞簱鎺ュ彛XML + // 6. 杞崲涓虹畻娉曞簱鎺ュ彛XML if (result) { result = createIfXmlFromRbd(modelRbd, algorithmList, modelNodeAndVnodeList); } - // 6. 淇濆瓨妯″瀷 + // 7. 淇濆瓨妯″瀷 if (saveFlag) saveModel(modelRbd, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList); return result; } + private void peelOperationFromProductNode(Long modelId, + List<ModelNode> modelNodeList, + List<ModelLine> modelLineList) { + List<ModelNode> nodesToAdd = new ArrayList<>(); + List<ModelLine> linesToAdd = new ArrayList<>(); + for (ModelNode node: modelNodeList) { + List<ModelLine> inLineList = modelLineList.stream().filter(item -> + item.getEndCell().equals(node.getPicId())).collect(Collectors.toList()); + if ("node".equals(node.getNodeType()) && + StringUtils.isNotBlank(node.getNodeTypeExt()) && + inLineList.size() > 1) { + // 鏃佽仈or琛ㄥ喅 + ModelNode nodeNew = new ModelNode(); + Long nodeNewId = UUIDUtil.generateId(); + nodeNew.setId(nodeNewId); + nodeNew.setPicId(nodeNewId.toString()); + nodeNew.setModelId(modelId); + nodeNew.setNodeType(node.getNodeTypeExt()); + nodeNew.setName(node.getNodeTypeExt()); + nodeNew.setVoteNum(node.getVoteNum()); + nodeNew.setPositionX(node.getPositionX()); + nodeNew.setPositionY(node.getPositionY()); + nodesToAdd.add(nodeNew); + + ModelLine lineNew = new ModelLine(); + Long lineNewId = UUIDUtil.generateId(); + lineNew.setId(lineNewId); + lineNew.setPicId(lineNewId.toString()); + lineNew.setModelId(modelId); + lineNew.setBeginCell(nodeNewId.toString()); + lineNew.setEndCell(node.getPicId()); + linesToAdd.add(lineNew); + + for(ModelLine line: inLineList){ + line.setEndCell(nodeNewId.toString()); + } + } + } + modelNodeList.addAll(nodesToAdd); + modelLineList.addAll(linesToAdd); + } + private boolean createIfXmlFromRbd(ModelRbd modelRbd, List<Algorithm> algorithmList, List<ModelNode> modelNodeAndVnodeList) { -- Gitblit v1.9.1