From a1d74c2c338f5f694df95a4db487a39557e56eda Mon Sep 17 00:00:00 2001 From: anhc <3442943606@qq.com> Date: Fri, 16 Sep 2022 15:33:30 +0800 Subject: [PATCH] =?UTF-8?q?Excel=E5=AF=BC=E5=85=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E4=BD=8D=E7=BD=AE=E9=87=8D=E5=8F=A0=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/com.actionsoft.apps.coe.pal.batch.jar | Bin 231703 -> 228570 bytes .../web/create/shape/ImportShapeExcel1.java | 831 +++++++++++++++++- .../batch/web/create/shape/ShapeConst.java | 4 +- 3 files changed, 788 insertions(+), 47 deletions(-) diff --git a/com.actionsoft.apps.coe.pal.batch/lib/com.actionsoft.apps.coe.pal.batch.jar b/com.actionsoft.apps.coe.pal.batch/lib/com.actionsoft.apps.coe.pal.batch.jar index da4ae623577a85ae5b159c4446e363ce31f5f60d..6813c2370216b97638228e26783279ff5114b638 100644 GIT binary patch delta 58731 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 z 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 delta 61475 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 diff --git a/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ImportShapeExcel1.java b/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ImportShapeExcel1.java index 575b5863..92417751 100644 --- a/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ImportShapeExcel1.java +++ b/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ImportShapeExcel1.java @@ -133,7 +133,10 @@ public class ImportShapeExcel1 { //常规图形绘制 LogUtil.appendLog(BatchConst.LOG_DESC + "[执行阶段][绘制常规分支图形]", simpleLogFile, fullLogFile); Map>>> branchData = fileDataMap.get(repositoryId); - double maxRight = this.drawBranchShape(repositoryId, branchData, offsetX, nodeMap, relationList); + JSONObject drawBranchShape = this.drawBranchShape(repositoryId, branchData, offsetX, nodeMap, relationList); + double maxRight = drawBranchShape.getDouble("rightMaxLine"); + int maxLevel = drawBranchShape.getInteger("maxLevel"); + rightMaxLine = Math.max(rightMaxLine,maxRight); offsetX = rightMaxLine + 150; @@ -145,6 +148,7 @@ public class ImportShapeExcel1 { if (specicalCell == null || specicalCell.isEmpty()){ continue; } + for (int i = 0; i < specicalCell.size(); i++) { CellObject node = specicalCell.get(i); @@ -152,7 +156,9 @@ public class ImportShapeExcel1 { List shapes = new ArrayList<>(); //节点画图, - JSONObject shape = this.drawShape(node, 0, offsetX, i, i); + JSONObject shape =this.drawShape(node, 0, offsetX, i, i); + //计算最右边界 + rightMaxLine = this.getrightMaxLine(shape,rightMaxLine); shapes.add(shape); nodeMap.put(this.getCellObjectUUID(node),shapes); @@ -160,38 +166,49 @@ public class ImportShapeExcel1 { //文件操作 LogUtil.appendLog(BatchConst.LOG_END + "[执行阶段][保存模型阶段]", simpleLogFile, fullLogFile); - this.saveDefine(repositoryId,nodeMap); + this.saveDefine(repositoryId,nodeMap,rightMaxLine,maxLevel); + + // 更新其他自定义属性 + LogUtil.appendLog(BatchConst.LOG_START + "完善模型内形状自定义属性配置", simpleLogFile, fullLogFile); + PALRepositoryAPIManager.getInstance().updateRepositoryProperty(repositoryId); + LogUtil.appendLog(BatchConst.LOG_END + "完善模型内形状自定义属性配置", simpleLogFile, fullLogFile); } LogUtil.appendLog(BatchConst.LOG_END + "[执行结束][Excel导入完成]", simpleLogFile, fullLogFile); } - private double drawBranchShape(String repositoryId,Map>>> branchData,double originOffsetX,Map> nodeMap,List relationList){ + private JSONObject drawBranchShape(String repositoryId,Map>>> branchData,double originOffsetX,Map> nodeMap, + List relationList){ + JSONObject res = new JSONObject(); + res.put("rightMaxLine",0); + res.put("maxLevel",0); + if (branchData==null || branchData.isEmpty()){ - return 0; + return res; } double rightMaxLine = 0; double offsetX = originOffsetX; + int maxLevelNum = 0; + + for (Map.Entry>>> branch : branchData.entrySet()) { - //int offsetX = offsetX + rightMaxLine; // <层级,同级别map> Map>> levelMap = branch.getValue(); //获取最大层级 int maxLevel = levelMap.keySet().size(); + maxLevelNum = Math.max(maxLevel,maxLevelNum); //遍历层级,产出图+连线 for (int level = 0; level < maxLevel; level++) { //同层级多分支节点信息, <序号,同序号listNode> Map> numList = levelMap.get("" + level); - //计算同层级索引 int levelNodeIndex = 0; for (int i = 0; i < numList.keySet().size()+1; i++) { -// double offset = startNodeOffset; //构建同层级的分支序号 String levelNo = this.getLevelNo(level, i); @@ -201,11 +218,6 @@ public class ImportShapeExcel1 { continue; } -// if (levelNo.equals("5.2")){ -// Object o = new Object(); -// } - - //找到上级节点,可跨级 JSONObject upNodes = this.findUpLevelNode(levelNo, levelMap, nodeMap); JSONArray upList = upNodes.getJSONArray("upList"); @@ -225,27 +237,29 @@ public class ImportShapeExcel1 { size = numList.keySet().size(); } }else{ - //多个父级节点计算偏移量 - Double minX = null; - Double maxX = null; - for (int upIndex = 0; upIndex < upList.size(); upIndex++) { - JSONObject upNode = upList.getJSONObject(upIndex); - JSONObject props = (JSONObject)upNode.get("props"); - if (minX == null && maxX == null){ - minX = props.getDouble("x"); - maxX = minX; + if (levelNo.contains(".")){ + //当前节点是分支下节点 + //多个父级节点计算偏移量 + Double minX = null; + Double maxX = null; + for (int upIndex = 0; upIndex < upList.size(); upIndex++) { + JSONObject upNode = upList.getJSONObject(upIndex); + JSONObject props = (JSONObject)upNode.get("props"); + if (minX == null && maxX == null){ + minX = props.getDouble("x"); + maxX = minX; + } + maxX = Math.max(props.getDouble("x"), maxX); + minX = Math.min(props.getDouble("x"), minX); } - maxX = Math.max(props.getDouble("x"), maxX); - minX = Math.min(props.getDouble("x"), minX); + levelOffset =((maxX - minX) * 0.5 ) + minX; } - levelOffset =((maxX - minX) * 0.5 ) + minX; } } - //同级别节点是,一分,二分节点节点计算offset + //同级别节点是一分,二分节点三分节点计算offset double offset = this.getLevelStartNodeOffset(size,levelOffset); - for (int nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++,levelNodeIndex++) { CellObject node = nodes.get(nodeIndex); @@ -258,23 +272,10 @@ public class ImportShapeExcel1 { //计算最右边边界 rightMaxLine = this.getrightMaxLine(shape, rightMaxLine); - //图形拓展属性处理 - JSONArray attributesJsonArray = new JSONArray(); JSONArray expandArr = node.getExpandArr(); - this.handleExpandAttr(repositoryId,shape,expandArr,attributesJsonArray,relationList); - if (attributesJsonArray.size() > 0) { - JSONArray dataAttributes = shape.getJSONArray("dataAttributes"); - if (!dataAttributes.isEmpty() && dataAttributes.size() > 0) { - for (Object attribute : dataAttributes) { - JSONObject obj = (JSONObject) attribute; - if (obj.containsKey("attributesJsonArray")) { - obj.put("attributesJsonArray", attributesJsonArray); - break; - } - } - } - } + this.handleExpandAttr(repositoryId,shape,expandArr,relationList); + shapes.add(shape); if (upNodes.getBooleanValue("isUp")){ @@ -295,10 +296,675 @@ public class ImportShapeExcel1 { } } } + + //位置重叠偏移计算 + //左边界 + double leftMinLine = offsetX - ShapeConst.SHAPE_BRANCH_INTERVAL; + + JSONObject object = this.changeShapePosition(levelMap, nodeMap, offsetX, rightMaxLine, leftMinLine); + Double changeLeftMinLine = object.getDouble("leftMinLine"); + Double changeRightMaxLine = object.getDouble("rightMaxLine"); + rightMaxLine = Math.max(changeRightMaxLine,rightMaxLine); +// leftMinLine = Math.min(leftMinLine,changeLeftMinLine); + + + //比较返回左边界>> levelMap,Map> nodeMap,double offset,double rightMaxLine){ + double rightLine = rightMaxLine; + + //获取最大层级 + int maxLevel = levelMap.keySet().size(); + + for (int level = 0; level < maxLevel; level++) { + //同层级多分支节点信息, <序号,同序号listNode> + Map> numList = levelMap.get("" + level); + + for (int i = 0; i < numList.keySet().size()+1; i++) { + //构建同层级的分支序号 + String levelNo = this.getLevelNo(level, i); + + //当前分支的最终节点,同序号节点list + List nodes = numList.get(levelNo); + if (null == nodes){ + continue; + } + + for (CellObject node : nodes) { + //图形+连线 + List shapes = nodeMap.get(this.getCellObjectUUID(node)); + for (JSONObject shape : shapes) { + if (shape.getString("name").equals("linker")){ + //调整连线,调整to的x,pointer的size-1对象的x + JSONObject from = shape.getJSONObject("from"); + Double fromx = from.getDouble("x"); + from.put("x",(double)fromx + offset); + + JSONObject to = shape.getJSONObject("to"); + Double tox = to.getDouble("x"); + to.put("x",(double)tox + offset); + + JSONArray points = shape.getJSONArray("points"); + for (int i1 = 0; i1 < points.size(); i1++) { + JSONObject point = points.getJSONObject(i1); + Double x = point.getDouble("x"); + point.put("x",(double)x + offset); + } + + }else{ + //调整图形的x坐标,比较x与leftLine 的min + JSONObject props = shape.getJSONObject("props"); + Double x = props.getDouble("x"); + props.put("x",(double) x + offset); + + //计算最右边界 + rightLine = this.getrightMaxLine(shape,rightLine); + } + } + } + } + + } + + return Math.max(rightLine,rightMaxLine); + } + + + private JSONObject changeShapePosition(Map>> levelMap,Map> nodeMap,double offsetX,double rightMaxLine,double leftMinLine){ + + JSONObject res = new JSONObject(); + res.put("rightMaxLine",rightMaxLine); + res.put("leftMinLine",leftMinLine); + + int maxLevel = levelMap.keySet().size(); + + int branchMax = 0; + int startLevel = 0; + + //计算分支数量 + for (int level = 0; level < maxLevel; level++) { + //同层级多分支节点信息, <序号,同序号listNode> + Map> numList = levelMap.get("" + level); + if (numList.keySet().size()<=1){ + //只调整分支节点 + continue; + } + //找到一个出现分支的层级 + branchMax = numList.keySet().size(); + startLevel = level; + break; + } + + //计算当前分支是奇数还是偶数项,branchMax 为0 说明没有分支不需要计算 + if (branchMax == 0){ + return res; + } + + double medianBranch = (branchMax + 1) * 0.5; + if (branchMax % 2 == 1 ){ + //奇数分支 + JSONObject object = this.oddBranchChange(levelMap, nodeMap, maxLevel, startLevel, medianBranch, rightMaxLine, leftMinLine); + res.put("rightMaxLine",object.getDouble("rightMaxLine")); + res.put("leftMinLine",object.getDouble("leftMinLine")); + }else { + //偶数分支 + JSONObject object = this.evenBranchChange(levelMap, nodeMap, maxLevel, startLevel, medianBranch, offsetX, rightMaxLine, leftMinLine); + res.put("rightMaxLine",object.getDouble("rightMaxLine")); + res.put("leftMinLine",object.getDouble("leftMinLine")); + } + + return res; + } + + //奇数分支处理 + private JSONObject oddBranchChange(Map>> levelMap,Map> nodeMap,int maxLevel,int startLevel,double medianBranch,double rightMaxLine,double leftMinLine){ + JSONObject res = new JSONObject(); + res.put("rightMaxLine",rightMaxLine); + res.put("leftMinLine",leftMinLine); + + for (int level = maxLevel-1; level>=startLevel; level--){ + //同层级多分支节点信息 + Map> numList = levelMap.get("" + level); +// if (numList.keySet().size()<=1 && !numList.keySet().contains(".")){ +// //只调整分支节点 +// continue; +// } + + + //奇数左半部分支调整,逆序 + int branchMedian = (int) medianBranch; + for (int i = branchMedian-1; i >=1; i--) { + //构建同层级的分支序号 + String leftLevelNo = this.getLevelNo(level, i); + String rightLevelNo = this.getLevelNo(level,i+1); + + + //同分支序号多节点list + List leftNodes = numList.get(leftLevelNo); + List rightNodes = numList.get(rightLevelNo); + if (null == leftNodes || leftNodes.isEmpty() ){ + continue; + } + + if (leftLevelNo.equals("4.1")){ + Object o = new Object(); + } + + if (rightNodes == null || rightNodes.isEmpty()){ + //递归向上找分支结点 + rightNodes = this.findUpBranchNode(levelMap,rightLevelNo); + if (rightNodes.isEmpty()){ + continue; + } + } + + double leftShapeX = this.getNumListLeftShapeX(leftNodes, nodeMap); + double rightShapeX = this.getNumListRightShapeX(rightNodes, nodeMap); + + + + if (leftShapeX + 15 > rightShapeX){ + //需要调整,向左边移动 + double offset = leftShapeX - (rightShapeX - ShapeConst.SHAPE_NODE_INTERVAL - ShapeConst.SHAPE_NODE_WIDTH ); + double leftOffset = this.leftOffsetNode(leftNodes, levelMap, nodeMap, offset, leftMinLine); + + res.put("leftMinLine",Math.min(leftOffset,leftMinLine)); + } + } + + //奇数右半部调整 + for (int i = branchMedian; i < numList.keySet().size();i++){ + //构建同层级的分支序号 + String leftLevelNo = this.getLevelNo(level, i); + String rightLevelNo = this.getLevelNo(level,i+1); + //同分支序号多节点list + List leftNodes = numList.get(leftLevelNo); + List rightNodes = numList.get(rightLevelNo); + if (rightNodes == null || rightNodes.isEmpty()){ + continue; + } + if (null == leftNodes || leftNodes.isEmpty()){ + //递归找到左边的上级节点list + leftNodes = this.findUpBranchNode(levelMap,leftLevelNo); + if (leftNodes.isEmpty()){ + continue; + } + } + + double leftShapeX = this.getNumListLeftShapeX(leftNodes, nodeMap); + double rightShapeX = this.getNumListRightShapeX(rightNodes, nodeMap); + + if (leftShapeX + 15 > rightShapeX){ + //需要调整,向右边移动 + double offset = leftShapeX + ShapeConst.SHAPE_NODE_INTERVAL + ShapeConst.SHAPE_NODE_WIDTH; + double rightOffset = this.rightOffsetNode(rightNodes, levelMap, nodeMap, offset, rightMaxLine); + + res.put("rightMaxLine",Math.max(rightMaxLine,rightOffset)); + } + } + } + + return res; + } + + //偶数项调整 + private JSONObject evenBranchChange(Map>> levelMap,Map> nodeMap,int maxLevel,int startLevel,double medianBranch,double offsetX,double rightMaxLine,double leftMinLine){ + + JSONObject res = new JSONObject(); + res.put("rightMaxLine",rightMaxLine); + res.put("leftMinLine",leftMinLine); + + for (int level = maxLevel-1; level>=startLevel; level--){ + //同层级多分支节点信息 + Map> numList = levelMap.get("" + level); + if (numList.keySet().size()<=1){ + //只调整分支节点 + continue; + } + + + //偶数左半部分支调整,逆序 + int branchMedian = (int) Math.ceil(medianBranch); + for (int i = branchMedian-1; i >=1; i--){ + //构建同层级的分支序号 + String leftLevelNo = this.getLevelNo(level, i); + String rightLevelNo = "-1"; + if (i+1 < medianBranch){ + rightLevelNo = this.getLevelNo(level,i+1); + } + + if (leftLevelNo.equals("4.1")){ + Object o = new Object(); + } + + //同分支序号多节点list + List leftNodes = numList.get(leftLevelNo); + List rightNodes = numList.get(rightLevelNo); + if (null == leftNodes || leftNodes.isEmpty()){ + continue; + } + + double leftShapeX = this.getNumListLeftShapeX(leftNodes, nodeMap); + double rightShapeX = this.getNumListRightShapeX(rightNodes, nodeMap); + if (rightShapeX == 0){ + rightShapeX = offsetX; + } + + if (leftShapeX + 15 > rightShapeX){ + //需要调整,向左边移动 + double offset = leftShapeX - (rightShapeX - ShapeConst.SHAPE_NODE_INTERVAL - ShapeConst.SHAPE_NODE_WIDTH ); + double leftOffset = this.leftOffsetNode(leftNodes, levelMap, nodeMap, offset, leftMinLine); + + res.put("leftMinLine",Math.min(leftMinLine,leftOffset)); + } + } + + //偶数右半部调整 + branchMedian = (int) Math.floor(medianBranch); + for (int i = branchMedian; i < numList.keySet().size();i++){ + //构建同层级的分支序号 + String leftLevelNo = "-1"; + String rightLevelNo = this.getLevelNo(level,i+1); + + if (i > medianBranch){ + leftLevelNo = this.getLevelNo(level, i); + } + + //同分支序号多节点list + List leftNodes = numList.get(leftLevelNo); + List rightNodes = numList.get(rightLevelNo); + if (rightNodes == null || rightNodes.isEmpty()){ + continue; + } + + + double leftShapeX = this.getNumListLeftShapeX(leftNodes, nodeMap); + double rightShapeX = this.getNumListRightShapeX(rightNodes, nodeMap); + + if (leftShapeX == 0){ + leftShapeX = offsetX; + } + + if (leftShapeX + 15 > rightShapeX){ + //需要调整,向右边移动 + double offset = leftShapeX + ShapeConst.SHAPE_NODE_INTERVAL + ShapeConst.SHAPE_NODE_WIDTH; + double rightOffset = this.rightOffsetNode(rightNodes, levelMap, nodeMap, offset, rightMaxLine); + + res.put("rightMaxLine",Math.max(rightMaxLine,rightOffset)); + } + } + + } + + return res; + } + + + private double leftOffsetNode(List nodes,Map>> levelMap,Map> nodeMap,double offset,double leftMinLine){ + + double leftLine = leftMinLine; + //递归处理父级所有图形+连线的x的偏移量 + double upLeftLine = this.changeUpLeftOffset(nodes.get(0), levelMap, nodeMap, offset, leftLine); + + leftLine = Math.min(leftLine,upLeftLine); + + //处理当前nodes的偏移x + double moveLeftLine = this.moveLeftNode(nodes, nodeMap, offset, leftLine,true,true); + leftLine = Math.min(leftLine,moveLeftLine); + + //递归处理子级所有图形+连线x的偏移量 + double subLeftLine = this.changeSubLeftOffset(nodes.get(0), levelMap, nodeMap, offset, leftLine); + leftLine = Math.min(leftLine,subLeftLine); + + return Math.min(leftLine,leftMinLine); + + } + + private double changeUpLeftOffset(CellObject node,Map>> levelMap,Map> nodeMap,double offset,double leftMinLine){ + + double leftLine = leftMinLine; + String shapeNum = node.getShapeNum(); + if (!shapeNum.contains(".")){ + return leftLine; + } + //小数 + String[] split = shapeNum.split("\\."); + String level = ""+ (Integer.parseInt(split[0])-1); + String branch = split[1]; + + Map> numList = levelMap.get(level); + + List upList = numList.get(level + "." + branch); + if (upList == null || upList.isEmpty()){ + return leftLine; + } + double upLeftLine = this.changeUpLeftOffset(upList.get(0), levelMap, nodeMap, offset, leftLine); + + leftLine = Math.min(leftLine,upLeftLine); + + //移动父级节点 + double moveLeftLine = this.moveLeftNode(upList, nodeMap, offset, leftLine,true,false); + + leftLine = Math.min(leftLine,moveLeftLine); + + return Math.min(leftLine,leftMinLine); + } + + private double moveLeftNode(List nodes,Map> nodeMap,double offset,double leftMinLine,boolean isUp,boolean isSub){ + double leftLine = leftMinLine; + if (nodes==null || nodes.isEmpty()){ + return leftLine; + } + for (CellObject node : nodes) { + + //图形+连线 + List shapes = nodeMap.get(this.getCellObjectUUID(node)); + for (JSONObject shape : shapes) { + if (shape.getString("name").equals("linker")){ + //调整连线,调整to的x,pointer的size-1对象的x + if (isUp){ + JSONObject to = shape.getJSONObject("to"); + Double x = to.getDouble("x"); + to.put("x",(double)x-offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(points.size() - 1); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1-offset); + } + if (isSub){ + JSONObject from = shape.getJSONObject("from"); + Double x = from.getDouble("x"); + from.put("x",(double)x-offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(0); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1-offset); + } + + }else{ + //调整图形的x坐标,比较x与leftLine 的min + JSONObject props = shape.getJSONObject("props"); + Double x = props.getDouble("x"); + props.put("x",(double)x-offset); + + //计算最左边界 + leftLine = this.getLeftMinLine(shape,leftLine); + } + } + } + + return leftLine; + } + + private double changeSubLeftOffset(CellObject node,Map>> levelMap,Map> nodeMap,double offset,double leftMinLine){ + double leftLine = leftMinLine; + String shapeNum = node.getShapeNum(); + + if (!shapeNum.contains(".")){ + return leftLine; + } + + //小数 + String[] split = shapeNum.split("\\."); + String level = ""+ (Integer.parseInt(split[0])+1); + String branch = split[1]; + + Map> numList = levelMap.get(level); + List subList = numList.get(level + "." + branch); + if (subList == null || subList.isEmpty()){ + subList = numList.get(level); + if (subList != null){ + //直接特殊处理,下一个整数节点连线调整 + for (CellObject cellObject : subList) { + + String upLevelno = Integer.parseInt(level) - 1 + "." + branch; + + //图形+连线 + List shapes = nodeMap.get(this.getCellObjectUUID(cellObject)); + for (JSONObject shape : shapes) { + //只调整连线的from点位 + if (shape.getString("name").equals("linker")){ + //只调整与上一次递归分支的连线,调整to的x,pointer的0对象的x + JSONObject from = shape.getJSONObject("from"); + if (from.getString("shapeNum").equals(upLevelno)){ + Double x = from.getDouble("x"); + from.put("x",(double)x-offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(0); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1-offset); + } + } + } + + } + } + return leftLine; + } + + double subLeftOffset = this.changeSubLeftOffset(subList.get(0), levelMap, nodeMap, offset, leftLine); + + leftLine = Math.min(leftLine,subLeftOffset); + + //移动子级节点 + double moveLeftLine = this.moveLeftNode(subList, nodeMap, offset, leftLine,true,true); + + leftLine = Math.min(leftLine,moveLeftLine); + + return Math.min(leftLine,leftMinLine); + } + + private double rightOffsetNode(List nodes,Map>> levelMap,Map> nodeMap,double offset,double rightMaxLine){ + + double rightLine = rightMaxLine; + //递归处理父级所有图形+连线的x的偏移量 + double upRightOffset = this.changeUpRightOffset(nodes.get(0), levelMap, nodeMap, offset, rightLine); + + rightLine = Math.max(rightLine,upRightOffset); + + //处理当前nodes的偏移x + double moveRightOffset = this.moveRightNode(nodes, nodeMap, offset, rightLine, true, true); + rightLine = Math.max(rightLine,moveRightOffset); + + //递归处理子级所有图形+连线x的偏移量 + double subRightOffset = this.changeSubRightOffset(nodes.get(0), levelMap, nodeMap, offset, rightLine); + rightLine = Math.max(subRightOffset,rightLine); + + return Math.max(rightLine,rightMaxLine); + } + + private double changeUpRightOffset(CellObject node,Map>> levelMap,Map> nodeMap,double offset,double rightMaxLine){ + double rightLine = rightMaxLine; + String shapeNum = node.getShapeNum(); + if (!shapeNum.contains(".")){ + return rightLine; + } + + //小数,取上级节点数据 + String[] split = shapeNum.split("\\."); + String level = ""+ (Integer.parseInt(split[0])-1); + String branch = split[1]; + Map> numList = levelMap.get(level); + List upList = numList.get(level + "." + branch); + if (upList == null || upList.isEmpty()){ + return rightLine; + } + + double upRightOffset = this.changeUpRightOffset(upList.get(0), levelMap, nodeMap, offset, rightLine); + + rightLine = Math.max(rightLine,upRightOffset); + + //移动父节点x的偏移量 + double moveRightOffset = this.moveRightNode(upList, nodeMap, offset, rightLine, true, false); + + rightLine = Math.max(moveRightOffset,rightLine); + + return Math.max(rightLine,rightMaxLine); + } + + private double moveRightNode(List nodes,Map> nodeMap,double offset,double rightMaxLine,boolean isUp,boolean isSub){ + double rightLine = rightMaxLine; + if (nodes==null || nodes.isEmpty()){ + return rightLine; + } + for (CellObject node : nodes) { + + //图形+连线 + List shapes = nodeMap.get(this.getCellObjectUUID(node)); + for (JSONObject shape : shapes) { + if (shape.getString("name").equals("linker")){ + //调整连线,调整to的x,pointer的size-1对象的x + if (isUp){ + JSONObject to = shape.getJSONObject("to"); + Double x = to.getDouble("x"); + to.put("x",(double)x+offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(points.size() - 1); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1+offset); + } + if (isSub){ + JSONObject from = shape.getJSONObject("from"); + Double x = from.getDouble("x"); + from.put("x",(double)x+offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(0); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1+offset); + } + + }else{ + //调整图形的x坐标,比较x与leftLine 的min + JSONObject props = shape.getJSONObject("props"); + Double x = props.getDouble("x"); + props.put("x",(double)x+offset); + + //计算最左边界 + rightLine = this.getLeftMinLine(shape,rightMaxLine); + } + } + } + + return rightLine; + } + + private double changeSubRightOffset(CellObject node,Map>> levelMap,Map> nodeMap,double offset,double rightMaxLine){ + double rightLine = rightMaxLine; + String shapeNum = node.getShapeNum(); + + if (!shapeNum.contains(".")){ + return rightLine; + } + + //小数 + String[] split = shapeNum.split("\\."); + String level = ""+ (Integer.parseInt(split[0])+1); + String branch = split[1]; + + Map> numList = levelMap.get(level); + List subList = numList.get(level + "." + branch); + + if (subList == null || subList.isEmpty()){ + subList = numList.get(level); + if (subList != null){ + //直接特殊处理,下一个整数节点连线调整 + for (CellObject cellObject : subList) { + String upLevelno = Integer.parseInt(level) - 1 + "." + branch; + //图形+连线 + List shapes = nodeMap.get(this.getCellObjectUUID(cellObject)); + for (JSONObject shape : shapes) { + //只调整连线的from点位 + if (shape.getString("name").equals("linker")){ + //只调整与上一次递归分支的连线,调整to的x,pointer的0对象的x + JSONObject from = shape.getJSONObject("from"); + if (from.getString("shapeNum").equals(upLevelno)){ + Double x = from.getDouble("x"); + from.put("x",(double)x-offset); + + JSONArray points = shape.getJSONArray("points"); + JSONObject point = points.getJSONObject(0); + Double x1 = point.getDouble("x"); + point.put("x",(double)x1-offset); + } + } + } + } + } + return rightLine; + } + + double subRightOffset = this.changeSubRightOffset(subList.get(0), levelMap, nodeMap, offset, rightLine); + + rightLine = Math.max(rightLine,subRightOffset); + + //移动子级节点 + double moveRightOffset = this.moveRightNode(subList, nodeMap, offset, rightLine, true, true); + + rightLine = Math.max(rightLine,moveRightOffset); + + return Math.max(rightLine,rightMaxLine); + } + + private double getNumListLeftShapeX(List leftNodes,Map> nodeMap){ + JSONObject shape = this.getNumListLeftShape(leftNodes, nodeMap); + if (shape == null){ + return 0; + } + JSONObject props = shape.getJSONObject("props"); + return props.getDouble("x"); + } + + private double getNumListRightShapeX(List rightNodes,Map> nodeMap){ + JSONObject shape = this.getNumListRightShape(rightNodes, nodeMap); + if (shape == null){ + return 0; + } + JSONObject props = shape.getJSONObject("props"); + return props.getDouble("x"); + } + + private JSONObject getNumListLeftShape(List leftNodes,Map> nodeMap){ + if (null == leftNodes || leftNodes.isEmpty()){ + return null; + } + CellObject cellObject = leftNodes.get(leftNodes.size()-1); + + List jsonObjects = nodeMap.get(this.getCellObjectUUID(cellObject)); + return jsonObjects == null || jsonObjects.isEmpty() ? null:jsonObjects.get(0); + } + + private JSONObject getNumListRightShape(List rightNodes,Map> nodeMap){ + if (null == rightNodes || rightNodes.isEmpty()){ + return null; + } + CellObject cellObject = rightNodes.get(0); + + List jsonObjects = nodeMap.get(this.getCellObjectUUID(cellObject)); + return jsonObjects == null || jsonObjects.isEmpty() ? null:jsonObjects.get(0); } private double getrightMaxLine(JSONObject shape,double rightMaxLine){ @@ -312,7 +978,19 @@ public class ImportShapeExcel1 { return Math.max(shapeRight,rightMaxLine); } - private void handleExpandAttr(String repositoryId,JSONObject shape,JSONArray expandArr,JSONArray attributesJsonArray,List relationList){ + private double getLeftMinLine(JSONObject shape,double leftMaxLine){ + if (null == shape){ + return 0; + } + + JSONObject props = shape.getJSONObject("props"); + Double x = props.getDouble("x"); + + return Math.min(x,leftMaxLine); + } + + private void handleExpandAttr(String repositoryId,JSONObject shape,JSONArray expandArr,List relationList){ + JSONArray attributesJsonArray = new JSONArray(); String shapeTitle = shape.getString("title"); String shapeId = shape.getString("id"); String shapeText = shape.getString("text"); @@ -503,10 +1181,24 @@ public class ImportShapeExcel1 { attributesJsonArray.add(object2); } } + + if (attributesJsonArray.size() > 0) { + JSONArray dataAttributes = shape.getJSONArray("dataAttributes"); + if (!dataAttributes.isEmpty() && dataAttributes.size() > 0) { + for (Object attribute : dataAttributes) { + JSONObject obj = (JSONObject) attribute; + if (obj.containsKey("attributesJsonArray")) { + obj.put("attributesJsonArray", attributesJsonArray); + break; + } + } + } + } + } - private void saveDefine(String repositoryId,Map> nodeMap){ + private void saveDefine(String repositoryId,Map> nodeMap,double rightMaxLine,int maxLevel){ PALRepositoryModel palModel = PALRepositoryCache.getCache().get(repositoryId); BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(palModel.getId(), 0); if (defineModel == null) { @@ -515,8 +1207,23 @@ public class ImportShapeExcel1 { } defineModel.setUpdateTime(new SimpleDateFormat(CoeDesignerConstant.DATE_TIME_STYLE_YYYY_MM_DD_HH_MM_SS).format(new Date())); String define = defineModel.getDefinition(); +// System.out.println("@@@:"+define); JSONObject definition = JSON.parseObject(define); + //计算画布宽度 + JSONObject page = definition.getJSONObject("page"); + Double width = page.getDouble("width"); + Double height = page.getDouble("height"); + int bottomMaxLine = (ShapeConst.SHAPE_NODE_HEIGHT + ShapeConst.SHAPE_HEIGHT_INTERVAL) * maxLevel; + if (width < rightMaxLine){ + page.put("width",rightMaxLine + 500); + } + + if (height < bottomMaxLine + 150){ + page.put("height",bottomMaxLine + 500); + } + + JSONObject element = new JSONObject(); for (List nodeValue : nodeMap.values()) { for (JSONObject node : nodeValue) { @@ -524,6 +1231,7 @@ public class ImportShapeExcel1 { } } definition.put("elements",element); + defineModel.setDefinition(definition.toString()); // 保存文件 CoeDesignerAPIManager.getInstance().storeDefinition(defineModel);// dao操作 @@ -564,10 +1272,12 @@ public class ImportShapeExcel1 { JSONObject from = this.getShapeBottomPoint(fromNode); from.put("id", fromNode.getString("id")); + from.put("shapeNum",fromNode.getString("shapeNum")); from.put("angle",4.71238898038469 ); JSONObject to = this.getShapTopPoint(toNode); to.put("id", toNode.getString("id")); + to.put("shapeNum",toNode.getString("shapeNum")); to.put("angle",1.5707963267948968 ); //设置linker的point @@ -752,6 +1462,37 @@ public class ImportShapeExcel1 { return ""+level+"."+index; } + private List findUpBranchNode(Map>> levelMap,String levelNo){ + List list = new ArrayList<>(); + if (!levelNo.contains(".")){ + return list; + } + //小数 + String[] split = levelNo.split("\\."); + String level = ""+ (Integer.parseInt(split[0])-1); + String branch = split[1]; + + if (Integer.parseInt(level)<0){ + return list; + } + + Map> numList = levelMap.get(level); + + List cellObjects = numList.get(level + "." + branch); + if (cellObjects==null){ + return list; + } + list.addAll(cellObjects); + + if (cellObjects.isEmpty()){ + List upBranchNode = this.findUpBranchNode(levelMap, level + "." + branch); + list.addAll(upBranchNode); + } + + + return list; + } + /** * 找到已经画好的上级节点 改为递归 * @param no diff --git a/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ShapeConst.java b/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ShapeConst.java index 949e3528..c4142ebf 100644 --- a/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ShapeConst.java +++ b/com.actionsoft.apps.coe.pal.batch/src/com/actionsoft/apps/coe/pal/batch/web/create/shape/ShapeConst.java @@ -17,7 +17,7 @@ public class ShapeConst { public final static String TABLE_REPOSITORY_TYPE = "模型类型"; public final static String TABLE_SHAPE_NAME = "形状名称"; public final static String TABLE_SHAPE_TYPE = "形状类型"; - public final static String TABLE_SHAPE_BRANCH = "形状分支"; + public final static String TABLE_SHAPE_BRANCH = "流程分支"; public final static String TABLE_SHAPE_NUM = "形状编号"; public final static String TABLE_EXTAND_EXAMPLE = "扩展"; public final static String TABLE_EXTAND_EXAMPLE2 = "..."; @@ -27,7 +27,7 @@ public class ShapeConst { public final static String SHAPE_BASE_TITLE_ROW = "模型名称、模型类型、形状名称、形状类型"; public final static String [] SHAPE_TITLE_ROW_IMPORT = new String [] {TABLE_REPOSITORY_NAME, TABLE_REPOSITORY_TYPE, TABLE_SHAPE_NAME, TABLE_SHAPE_TYPE,TABLE_SHAPE_BRANCH,TABLE_SHAPE_NUM}; - public final static String SHAPE_BASE_TITLE_ROW_IMPORT = "模型名称、模型类型、形状名称、形状类型、形状分支、形状编号"; + public final static String SHAPE_BASE_TITLE_ROW_IMPORT = "模型名称、模型类型、形状名称、形状类型、流程分支、形状编号"; public final static Integer SHAPE_NODE_WIDTH = 200;