From 7e4770bc14b40bd4590f7eb539e39d7a65f887f2 Mon Sep 17 00:00:00 2001 From: qinoy Date: Tue, 30 May 2023 17:57:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E8=8A=82=E7=82=B9=E5=B1=95=E5=BC=80=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oft.apps.coe.method.process.subprocess.jar | Bin 45778 -> 47882 bytes .../graph/GraphNodeExpandHandle.java | 98 +++++++++++++++++- 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar b/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar index 1995ed13ad6506fc9bf2aae25c8c81c22e6a1578..5d564a2be4667c62beb0d105673a6d7b0b515acb 100644 GIT binary patch delta 9988 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 O_F6QU#EQS)_J05gOBx6O delta 7773 zcmYjWWmJ?=*QKPpyFt3U8)+m(U{tz0hZsUS1crv8ySt@JK)SmI80nHw;S=Al?vJz2 z-Z$1gYdve-XPq7W6JZvLfT^v9h=dLYhYAPRAD4*9i10V^vA@I*JTEa(;3bZT|BYZI zc=;Dlf!BP240zqY(0B$fi1C6K!j&)xk)7f?%>qH7NhL^(5rZqRtgc@~2o`;Oh{FfqB3!)T6n!V)|+|5MKKgHn2_0{5ibSakTQQ2 z+S+l_8lS!eSrnv^U3sp=ww^eNFE#^%C#q4|Ha<=uIc&~NFMa)JW z93?-d<93=-zgo!qIt;tu8pu2xp-TI8poi~lpXS{ebv)94in&)p|p%pCR zmbKPdO+C*>^&>dUu5vbIf-D%Zj<=BL}1SivAfi{=;jz;+&-!oI~bt6b7G zt=wV)GrzG1?$EEW#v+_>Hk?pV{>+(w3S#}Kowz8w&x#a~7Cg_N%yElZp5GM$3s7~= zoqYb#9Oghnzt$FQ{~289zQhZr-+JRb^#rf2hJvc#R~{ja z00;LKsnJ8sSK{U4I`^^!*?SW#5p5XOlHr8*(F+~yY=4yBM=_v{^6eDa4w7j>V=f6U zvSf@qKj!HDGSY4#h|>(50B+NAt?eIckvwK z4J=hPfzuH8srBpS!|VXbr?sBv-z0E2+nK?BJ5_xGT((Dcy_yyvC?7*wHu6#s@`wzz z))@b*cEY7zc@?fk@|@Yr$Y7-j80j1@_fRP`-x^cwJ|x^4tLY62r;p|c3G`Y`tb0AE zcDvH;x+}PL=M@&g>_I~~iKof@Clz6C*c*EvqXBjVECVax@)i1Iw#-F;*yo^BcYZH= zUBY*{*)3MpKHuCy4VOi_H`rJA>HHauT{?ZlM^(N7qg&S1>lXg8)b3yu6dN-O$U0Le ztrqHf&lvORAUQAS7G|aE9&|+ed*)_Q6b_CE>n&Hs7MlNifM-g?Xem- znTM&xkyyKoXiy>Ba?qB`oQ;i35!^MCJj3ckboO*Za1z`8CSlLM|Z>!#$H5_rbBVn2}JtM0z zw5JBIT=mt#0Fm#myqBI`R`lUq1RF=ZGZEC2M{e@S7_aOBUWx<9%$vQ!>iz^? z5evMaOH==;!MjVuV8>QjtKEouJoZBi_1~n@yqCINwr0}U2`#tBHoMk7F~p~*I*+0= z6y%#im)L=ycG&{UcMO>WC8U zMa1Ax3^7-1sp42h=R?2Qd^9dZUdcw(*^g?`eamkC5?MHt$wz)%WxeeP?Fn30*~xDU(-_c{4Q$(;s65S;aGGGWeWChmyVzSvORqi-PGbPP6{4Ct&;9vBYT~|f)XtcDl`8?cJ#iOsQY{*#d%Iz`zNOhe(4xftq}GS`G+d= z6L}3CVUs15qD7U1R86HaiXj+ZEC{cM`Is5PVHPKo6zYurG$gL_sk%49hVm?~#<=$} zanpu?21SnV*mULyL5O3w2JVq4RwJKHqo`AKozh6=dO_>CZ6f{js~olQ$HQ zIPhu5OmE*+QzGiRAa9nMHd6DwLuRd(mM0fgLY+9z?-F;|*rI8MsDxNqA#)%ttg-q0IoSmK|JvC9uK_8xNx zLcc0w6SUUydYN2wK)Fm` zx^V2Gd$$Lt%~*+$`y-?+wsR*EIyElB29VY1isp30*%f^Ch$(w|VEM;) zVGXfpS5fs7!a6Dj>rbI?&unwa9s>1IYIjN%a*Kp~P1`*d**FvgmJOMx{vpg*Ywt)! zPr!C3rB8@2Z?bkZaioYN3LKmq4jkOeFC-xxDk>`6-=}#a&_+y}yjs43|(Y$Ogd7f~@#e#c8zH!YVyOrXU6VUa8uky12!l)zo$4eY2_$ zT8F8(Y4xH(Yx8M~@ml6l%g_3amQJr`nD>+4VTMd%3FF=K^DpU1(4;r@^MkVwR4XDL ze@3o*MBel!NeT3PkS_r&4-$h}vH}u!DX4)d0Pv!)Bnu#I*I38jxKMcgrX=DC(yjYu ztGE>%=64f-^C##@zL3W5hC%pGX@q7zjo+x6Ge&SOYI!d3$oeL}DO^H8{Tz7Y2Gmk| z9@mggdn9oJZfW$~OxGSQIX%Y3KDTBCvfn;PQrisG;+P>zB+YG zX>gBLJ>O10&!9Lx7G^zdY0vXiekG_&6ob6x5b{YVIBrr+H2dE^%D22Dd+D8tGSYSyKB#!=67Y0(oxvrI9*t zB35a)Pk~WLd+Svnxe%FgoXjYyGiDQ$S>MGllluFvk;qIw6H0!0C3;e{TJ&(eh>=KS zinzM^nONRtArB=WqEe}Pq;dxVJOgllyyvoavZPUx%;sT+;L?IYYpJbtlTRX~$9E6WVZ&^G-%?R-? znnN|U8VtE|@)jeI>=V(w<_$g-B#=z3k(tNm#XUcMBP2W=YoqnCIay=5p+?&7bLZkV zTE@1&+k`-e-H6QMTP_pLF{FSnJYfo15dEN@w;OrtP%vQzljx1UwLDMG$IOJ_?wgNx zZ)f)%h-;)+iIWr@07y7CALm=T>Z5_5L8IIA1Hx%K?tp} zt5a0c+s;G@1SWHqI#T?O-3c@M{>rp3y}YR}IZcFJe60EuFE({_bcLMTBJ&eoO=F?* zSZHcQ=XO&T({xI@-3Zh)iyX@V5u{0>wJJY{P&68xv0H7$@#$x4WC}|+m7xi|-fhBe z9#Ou=y$xA}DFq*k*&ZzQ#t8W}crJTinW2w|@Y{?7t#0sAF|$k_!j+KAaO+<}<7 zEA5CCK_-{F{o_?tt5@9Aj1Qjf1Fs$;80R*_G*w1}t=Ed62A{HK7zy?>E4+hYn?$qNZREq@(*R#Zh(B( z>i9C_k)|DI;0@3B@A=NmT3NkUo{r^(5w@BZ>i-FdzyZ!IyfoH?{ug|DATlY3byl_AVsovN)-PgYv2E=m+hfZdEiE00SZ5Q=uRh?MzCPp1Q7h!BBK#l(vJefWSp4mA~Uw^3f4W*y89!x_-ZGoK{tRpB?ayXCYo* zEEh@pG#L-R3-YUQx!#6l#M_UkAfl6=tVp7kBC#G@;BWAd#ndec$RHfGa1^ZuZfa9uJK1kV()H6%R^${iWNt9rvwzA&Ir8??KrD z`?21H-k0=2Ac#X_T%NV-t+w15+Ywqee5=GEq4@^ntO^h(3G9MP{{4A- z)d3sSl;JWJWu%PRF}T+#mcHJn$Cea8&!kKEu)bkFm^JbA`H{2(prdx16p&dY(FwQA z9A~$gjvwo4(l)^vpv00x;F45luC)=b=Vh?pONAJr?t4ZD`NcKb@z}pu>X7C+w0Lg- zao!X61irm`1f{b7sJbcXyI35x;-AjrT4)1Fk#1=7PvDNoJ3ngdX$60jXKZNaMnC&8 zP&c)j0FNaXX~-W|2QwnU8|UA1uL>Ix-mVI}^1R(gR#vW@v1eEMvPhnL+(a3z2-1$W(#M7e9?Azox;N9s{4FRGifx(>m%1)-+U{H6Pbie7%Cgd!q5y4D*7L zUAs=1Q34|?*zX7osY|+k{@Gtvo>YC78mp~ZRjwIBEIMTn9>%!vxgeCP9%a^^EJR3d z997|$@exXyrM$}bMouZz4{k`R7}W|$7aUlPY?&3hy=$;zLaj`VOp3@2B$q)OZbK5d z<|VH1Cytd+<8q#XXLGusDZ(!a6@UkktjT8HBluEO0tyNSJXAYdJ)|{&-3@jL%;$xy z?{-s*u?cmN%d5&C;U0b#J(h|f+uFs=9a0wAYNU{gd(uFd-9%GNuFG+uD|+e}aDU`7 z)eg0Th-ccH(if+F=hX$9f>UK!)!^^=n6~6DI)hC-I89O5w%1de(rXH|{`MUcJeW<@ z*I?iT7p&=acs_9(6ssfBMypc=dlDeC&ZaWq^pR4W(_;d$jR*fmLHfW~{?Dty z#4}{9zI2A6(rDjc==jo~_3$-G(5O`VzoBo4u@&eqI|^zbYF(EBRQOitZLdEl=)#0X zEnE+npAt%JJ^YB}J9UA6WT>FzkNckInCBCS0+sOUkOPS18+Y=`E_W1LK*}9va=d&Ka)>Wb^6zFr;j5+_j>P9&CuacY!Rgxj^*zzlB z{!!%_Xs=UWyDZ)_;T|-Zs@a7!c5^cx67Avl$tds3r#RV6dl0zkMP>ngndyP-Mfz+Mu_nd~0|zUcF@A{jnf#S$<*o;4ED(G)-N) z(k!V`IZd>iTiO8XWNU;t?mTEOu!qmxTJ*kxo|Vl(EVN$^RhhPRZae1Fm(++3V@#pKe1>E}EW)h)rd{ zjs0Ug|x?_kc*QJbKS*@ky(v$bCd`RDjVim&)tFbI8u+)mS-NN=ohDs^f$XB?k)^Ie?J+Ot+O4428fSpr*9V22fKL&tPdw zVeQiDk<;0RQ>D9K9`&j8q_S^UQBC}mHwXR1;zQpJA>zC>3LhJ9QirH1cS|x@!oB)N zmeNgM{O8p6bo^5JhTJ8PD(8yx{(EcUXcs&VkRamO8+WHC2JV5_40f0I|#=+j-QC+IXA-h>>L|x~aebvVNu3$s7oPyV$Cw|1GdQ zYN-D?7mGVkN6|+*0f@|rwZ4v6*@Z#O&;d|=VA!1{OEgYK)~J|}ZTdy0pO?*Qx6n|+ zI&>ClYaHzuPG@^`EUkVz`n)K->}f8Rqz@{+iP&~LcFt&W_yaZkb*29~=*h(PPm11y z2?{J);(cpc-mZVAq}vUT>B^b1!aD6u&e*rkKBu$6pXZk<}8M(dY5+f9Xcp5^`~nEhAC3piGY;LMs!LRD(b# z0}QfrN8^6n!Bbog5%1C@{QAO{7{CP+e0QQfQKjmq zF-AsS>A>1#$g^cc^PHw+P~WQ_9pdH z@cXZ@@XS&<2f5Uk7--M5t76F5LERY4``@Ux4*cNl+AE<91H7~3KUo~HWs2+Pj9)X}=tA71Uq!M3!h+6i~xfk*3b45Ka6AZsEn4P%)gsQ5hF!P*1YriPT2J<(xe zDAmcJdGq?oJ^xGlDX3=1S_~f!PKWJ3-KYOCFuM)l{*K0{L`05Deu1rea`NlQhD&xBt{fBTTSoGaG^w z;4d{qd)cmC{kM$6_*#C|PuYU(}fQZ2-E&s}T zY@tMGiu$VxfYn=h5ip|vr4mV~;LcXk|CB+A&=dDheci^5Kp6iojct=dcu4)1BDKHx zw_v*Vzw6TfDS7#5VE=YD1k#NErqtlazf>&ie`m)FNx;AkHUyKLf6{6P8?s69%Ps#4 Dv6>1R diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphNodeExpandHandle.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphNodeExpandHandle.java index e4a13a86..08f8762b 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphNodeExpandHandle.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphNodeExpandHandle.java @@ -1,5 +1,6 @@ package com.actionsoft.apps.coe.method.process.subprocess.graph; +import com.actionsoft.apps.coe.method.process.subprocess.constant.LinkerDefConstant; import com.actionsoft.apps.coe.method.process.subprocess.constant.SubProcessConst; import com.actionsoft.apps.coe.method.process.subprocess.mode.Node; import com.actionsoft.apps.coe.pal.pal.repository.designer.manage.CoeDesignerAPIManager; @@ -7,6 +8,7 @@ import com.actionsoft.apps.coe.pal.pal.repository.designer.model.BaseModel; import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.cache.DesignerShapeRelationCache; import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.DesignerShapeRelationModel; import com.actionsoft.apps.coe.pal.pal.repository.designer.util.ShapeUtil; +import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.bpms.util.UtilString; import com.actionsoft.exception.AWSException; import com.alibaba.fastjson.JSONArray; @@ -163,7 +165,11 @@ public class GraphNodeExpandHandle { double[][] vertexPosition = expandAdjMatrix.getVertexPosition(elements); // 7、构建新的连线 NodeExpandLinkerRender linkerRender = new NodeExpandLinkerRender(vertexPosition, expandAdjMatrix); - linkerRender.toAssembleLinker(direction); + JSONArray linkers = linkerRender.toAssembleLinker(direction); + for (Object o : linkers) { + JSONObject linker = (JSONObject) o; + addEndToEndGraphElements(linker); + } } /** @@ -415,9 +421,99 @@ class NodeExpandLinkerRender{ this.expandAdjMatrix = expandAdjMatrix; } + /** + * 根据连线方向 组装连线 + * @param direction 连线方向 + * @return + */ public JSONArray toAssembleLinker(String direction){ JSONArray linkers = new JSONArray(); + for (int i = 0; i < vertexPosition.length; i++) { + double[] fromPoi = vertexPosition[i]; + List nextNodeIndex = expandAdjMatrix.getNeighbors(i); + if (nextNodeIndex.size() > 0){ // 说明当前节点有连线 + for (Integer nodeIndex : nextNodeIndex) { + double[] toPoi = vertexPosition[nodeIndex]; + double[][] turnPoi = "horizontal".equals(direction) + ? calculationLinkerPointInHorizLayOut(fromPoi, toPoi) + : calculationLinkerPointInVertLayOut(fromPoi, toPoi); + double[] angleArr = calculationLinkerAngle(fromPoi, toPoi, turnPoi[1], turnPoi[turnPoi.length - 2]); + // 构建连线 + JSONObject linkerObj = JSONObject.parseObject(LinkerDefConstant.linker); + linkerObj.put("id", UUIDGener.getObjectId()); + // 折点 + JSONArray points = new JSONArray(); + for (int j = 0; j < turnPoi.length; j++) { + if (j > 0 && j < turnPoi.length - 1){ + JSONObject pointObj = new JSONObject(); + pointObj.put("x", turnPoi[j][0]); + pointObj.put("y", turnPoi[j][1]); + points.add(pointObj); + } + } + linkerObj.put("points", points); + // 起点与终点 + JSONObject fromObj = new JSONObject(); + fromObj.put("x", turnPoi[0][0]); + fromObj.put("y", turnPoi[0][1]); + fromObj.put("angle", angleArr[0]); + fromObj.put("id", nodeIds.get(i)); + linkerObj.put("from", fromObj); + JSONObject toObj = new JSONObject(); + toObj.put("x", turnPoi[turnPoi.length - 1][0]); + toObj.put("y", turnPoi[turnPoi.length - 1][1]); + toObj.put("angle", angleArr[1]); + toObj.put("id", nodeIds.get(nodeIndex.intValue())); + linkerObj.put("to", toObj); + linkers.add(linkerObj); + } + } + } return linkers; } + + private double[][] calculationLinkerPointInVertLayOut(double[] fromPoi, double[] toPoi) { + return null; + } + + private double[][] calculationLinkerPointInHorizLayOut(double[] fromPoi, double[] toPoi) { + + return null; + } + + /** + * 计算angle值 + * @param fromPoi 起始节点坐标 + * @param toPoi 结束节点坐标 + * @param firstTurnPoi 连线第一个折点坐标 + * @param lastTurnPoi 连线最后一个折点坐标 + * @return [0]: from的angle [1]: to的angle + */ + private double[] calculationLinkerAngle(double[] fromPoi, double[] toPoi, double[] firstTurnPoi, double[] lastTurnPoi){ + double fromX = fromPoi[0], fromY = fromPoi[1]; + double toX = toPoi[0], toY = toPoi[1]; + double firstTurnX = firstTurnPoi[0], firstTurnY = firstTurnPoi[1]; + double lastTurnX = lastTurnPoi[0], lastTurnY = lastTurnPoi[1]; + + if (fromY == toY){ // 水平 + return fromX < toX ? new double[]{LinkerDefConstant.ANGLE_LEFT, LinkerDefConstant.ANGLE_RIGHT} : new double[]{LinkerDefConstant.ANGLE_RIGHT, LinkerDefConstant.ANGLE_LEFT}; + }else if (fromX == toX){ // 垂直 + return fromY < toY ? new double[]{LinkerDefConstant.ANGLE_UP, LinkerDefConstant.ANGLE_DOWN} : new double[]{LinkerDefConstant.ANGLE_DOWN, LinkerDefConstant.ANGLE_UP}; + }else { + double fromAngle = 0.0; + if (fromY == firstTurnY){ // 水平 + fromAngle = fromX < firstTurnX ? LinkerDefConstant.ANGLE_LEFT : LinkerDefConstant.ANGLE_RIGHT; + }else if (fromX == firstTurnX){ // 垂直 + fromAngle = fromY < firstTurnY ? LinkerDefConstant.ANGLE_UP : LinkerDefConstant.ANGLE_DOWN; + } + double toAngle = 0.0; + if (toY == lastTurnY){ // 水平 + toAngle = toX < lastTurnX ? LinkerDefConstant.ANGLE_LEFT : LinkerDefConstant.ANGLE_RIGHT; + }else if (toX == lastTurnX){ // 垂直 + toAngle = toY < lastTurnY ? LinkerDefConstant.ANGLE_UP : LinkerDefConstant.ANGLE_DOWN; + } + return new double[]{fromAngle, toAngle}; + } + } }