From 341c397375bce9ab9282f92c4d16030f49d34b28 Mon Sep 17 00:00:00 2001 From: CL <2502239547@qq.com> Date: Mon, 17 Apr 2023 10:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=A3=E6=A1=88=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/artifacts/shoufagongwen.xml | 8 + .idea/encodings.xml | 6 + .idea/inspectionProfiles/Project_Default.xml | 36 ++ .idea/libraries/classbean.xml | 9 + .idea/libraries/lib.xml | 13 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/uiDesigner.xml | 124 +++++ .../com/api/files/GD_Action.class | Bin 0 -> 6075 bytes .../web/danganfiles/DA/FWCB_Action.class | Bin 0 -> 13138 bytes .../web/danganfiles/DA/JWJCPD_Action.class | Bin 0 -> 13097 bytes .../web/danganfiles/DA/JWJCYD_Action.class | Bin 0 -> 13147 bytes .../web/danganfiles/DA/SWBLCPD_Action.class | Bin 0 -> 13194 bytes .../web/danganfiles/DA/YZSQ_Action.class | Bin 0 -> 13150 bytes .../web/danganfiles/DA/util/CreatXML.class | Bin 0 -> 14033 bytes .../danganfiles/DA/util/DaHttpAction.class | Bin 0 -> 9104 bytes .../web/danganfiles/DA/util/GDS_Action.class | Bin 0 -> 4123 bytes .../web/danganfiles/DA/util/GD_Action.class | Bin 0 -> 5426 bytes .../web/danganfiles/DA/util/JY_action.class | Bin 0 -> 11337 bytes .../web/danganfiles/DA/util/ZipFile.class | Bin 0 -> 4390 bytes .../web/danganfiles/DA/util/ZipUtil.class | Bin 0 -> 2503 bytes .../web/danganfiles/DA/util/demo.class | Bin 0 -> 443 bytes .../web/danganfiles/DA/util/test.class | Bin 0 -> 5847 bytes out/production/shoufagongwen/rebel.xml | 16 + shoufagongwen.iml | 28 ++ src/com/api/files/GD_Action.java | 180 +++++++ .../web/danganfiles/DA/FWCB_Action.java | 373 ++++++++++++++ .../web/danganfiles/DA/JWJCPD_Action.java | 382 +++++++++++++++ .../web/danganfiles/DA/JWJCYD_Action.java | 382 +++++++++++++++ .../web/danganfiles/DA/SWBLCPD_Action.java | 382 +++++++++++++++ .../web/danganfiles/DA/YZSQ_Action.java | 389 +++++++++++++++ .../web/danganfiles/DA/util/CreatXML.java | 456 ++++++++++++++++++ .../web/danganfiles/DA/util/DaHttpAction.java | 271 +++++++++++ .../web/danganfiles/DA/util/GDS_Action.java | 99 ++++ .../web/danganfiles/DA/util/GD_Action.java | 167 +++++++ .../web/danganfiles/DA/util/JY_action.java | 422 ++++++++++++++++ .../web/danganfiles/DA/util/ZipFile.java | 144 ++++++ .../web/danganfiles/DA/util/ZipUtil.java | 67 +++ .../web/danganfiles/DA/util/demo.java | 11 + .../web/danganfiles/DA/util/test.java | 133 +++++ src/rebel.xml | 16 + 42 files changed, 4136 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/shoufagongwen.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/libraries/classbean.xml create mode 100644 .idea/libraries/lib.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 out/production/shoufagongwen/com/api/files/GD_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/FWCB_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/JWJCPD_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/JWJCYD_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/CreatXML.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/GD_Action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/JY_action.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipFile.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/demo.class create mode 100644 out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/test.class create mode 100644 out/production/shoufagongwen/rebel.xml create mode 100644 shoufagongwen.iml create mode 100644 src/com/api/files/GD_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/FWCB_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/JWJCPD_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/JWJCYD_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/CreatXML.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/GD_Action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/JY_action.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/ZipFile.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/demo.java create mode 100644 src/com/engine/workflow/web/danganfiles/DA/util/test.java create mode 100644 src/rebel.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/artifacts/shoufagongwen.xml b/.idea/artifacts/shoufagongwen.xml new file mode 100644 index 0000000..a7cbd3b --- /dev/null +++ b/.idea/artifacts/shoufagongwen.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/../../WEAVER/ecology/WEB-INF/lib + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..9de3c4a --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/classbean.xml b/.idea/libraries/classbean.xml new file mode 100644 index 0000000..bfcf648 --- /dev/null +++ b/.idea/libraries/classbean.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml new file mode 100644 index 0000000..ccfcd39 --- /dev/null +++ b/.idea/libraries/lib.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..3725f55 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c66ee77 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/shoufagongwen/com/api/files/GD_Action.class b/out/production/shoufagongwen/com/api/files/GD_Action.class new file mode 100644 index 0000000000000000000000000000000000000000..cecfd62d39eff54f848c0eaa39fae72d48157888 GIT binary patch literal 6075 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 M7ZUF23t-Lv04r`$NdN!< literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/FWCB_Action.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/FWCB_Action.class new file mode 100644 index 0000000000000000000000000000000000000000..9097559335f3c6f1d215546f5c6d89ac821e5c76 GIT binary patch literal 13138 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 literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.class new file mode 100644 index 0000000000000000000000000000000000000000..508410351baa90692094e1ec7b4cedcb892994b5 GIT binary patch literal 13194 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 literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.class new file mode 100644 index 0000000000000000000000000000000000000000..3c417d1939a662bea80112a22e80349f2e574dcb GIT binary patch literal 13150 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 SF}bz9e*@e5Wgw#P-2VZetDFY_ literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.class new file mode 100644 index 0000000000000000000000000000000000000000..f6aebacf0fa5ae828e261d58a475e1fe7260ae86 GIT binary patch literal 9104 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 literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.class new file mode 100644 index 0000000000000000000000000000000000000000..5b5b308fffe473e93144f8a9d6f6faf568085f39 GIT binary patch literal 4123 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 b#TMx`xA6a{BVD=-fSgn>On;XmjsEdJUv)K? literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipFile.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipFile.class new file mode 100644 index 0000000000000000000000000000000000000000..9629ed5a46d1e05aa4a299cbf2170f44e2fa38aa GIT binary patch literal 4390 zcmbVQYj_mp6@Di>yED6)m}DU&3ku;P7rJ4*rz zipA1u5uv3D#;UXuZEG#G-9$p6)+%UQd$ZQwFHh}Xf42`beZQIAWCNj3+mOtDm-C&= zd){-tS>FEF+4BIF;;%m3f&E@Qj87{#;DZbMRXid-KjT9g4vNudefS(671PJW*k?gznSRm zikkhwe!U~u8IE;_V_im6PX^bl3Z^V08r*Kg*KwhdCifU|2`v?^W}-V7j)x;XdeAb> zXfntRA-6GQ#Z%T6E1`$`8e4aScZGw78MIG3vncfkxo^a}8-@Fl!M_#>d0i0((LVVI zmyMW&z@*id*n|b1?Vwj?%960~zjKO5x+L5%NhKqbJHkmDG~4G~FC`RgvBHtw4dJ*A zqJs4b&XPP5d}{|HdfYP17%`OzK}y1+ifaSCc146c*2x0BS&^q!i?()%g~clzjFRFKRFW;8(3A9@)R|0*|A9!kNfG!J zXVtDT5_-fk6T69#9gAD|L~B}BLb%J#4#EAK#yx0Gb#>_py>l|7+c8f`;$oH4Q(&YYJZ1@I$HC^QYmLxJcSggs_>27=8LU zdwAe)BZoeC`Kb>EU;OagehFo{=W|&rVXnRPpO`IS+Ep@}S1(yC9DP^9g6lz$YemTZ zO2d2jH92c0>tZYe@>Ik7_zg44E}9x(d29GBe#d!K%*mWPoA1`}d%VG_O{QXXJ7TFi zJr*%LnH>!#*c2VdY>tixFO2;`!%oCCSVCx4Hux#1Cxri~;ZFkTckpL{`ClX~`9B&p zowV)P&TQ=1!Qz;-46{ z+!U8(!M0UR>=5w$2~jq|g;QaAO^QPpOmt2&vbThedt=7H2K$vqsc3I*X%TQ{M%(yKwwy1C;>QDt^|X@DCeDKV zWY>ecY8cXK4)U;yPay>O(afjj2w*kVaOM@Qky1^7bQEs>11_CG-Y8t5VaR@W8lLJj z6n>6JHCgxU+LJMW2YbfO}a72f3LmGuO7oqx#hA?9ai4CrLxkRo# ze-f2dwI%Z691$^1qu9|j0{;P78X9|V2)EeQY8>68m=>xY#`Lz@G)hACa^ADhs!HTE zW(yv$9#K5?Q%1o0Xd`jAC}Eb{KOSWh$(x_-q{gnY`zv=`E{MGj8I0^zDKdsdc*`vA<1Uc~+ zHF#?Ro`81*w**L;TZd3649%jUVJx|Dnh`9;Nq%)$oXO34@)Ee6@h#)1fxCB*&?|`8 zO0+ZDPcefA(ceqP9wb|j5Zzbzt81}5jqKvEFPr)^%cPL|P2 z-7eZLWd>PuT2*z;2$l}PYY%Rlpts+4HpGDLBhkZ{!2kpl<<4>2VG%^B4S;9`rFO6m z4Q1pN2|Dri&KQ1``a~mWqG6IrKF!bkw()YU7Ufx;Q?A?=wVEw`rrs{tcPBiYN!UTS zRF+Qx11m+0(DyRMaof|Sv{%F;a|(-=ks!3$d2$3x%)8rcmREPgsTVf zDE~L$aa+q{IEq7f8i#FIyNE{_c2V0dQlXw_`!T@eHj>Mt0^HQN-mU--_Fy`8ley$5 zyW<{OR;kNt*MeZ-;5dy2$5S$xL!)*m>KN;bsUYD=b@KlK1$(ocSFZ5tQLt}}U6|D| ag$yfTA23F$xW@PGvhXsY57LD^JoIm<>OPSG literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..95fb233fec42f6d041fd1ebbd761a769538d623d GIT binary patch literal 2503 zcmbVO+fx%)9R5x&Y*-eB2q-F|A{rpDtyZ)`t)i$Xpe2KD9HQ;7G^mYx~f?_0Q-_U;3c6-`PYGKxUjisD5vKQ?^H zxN7KW>gr>jYuQtMD%*8^IkUZQPDIqbW&^CJRW0+Q6u96UExijhLOrD>fmhB z%zBn%=M@2nKD>y(ZAQYEWN+3g{nK2DJ&`z13 zy%O(IW^3reZh;+7!=k{3O8ZKJr7wp$IX-YoLl(Rer00DauAp6mi<|}zd4ZPI0+k3` zzr4N%@>V)!x*D!xM!~FxYq-v8nB*OMa%R?W4bO2Eyrto7yrbb=+|ckIZfbZRA1KIZ zxP=cj+{O)oqVLk}D@c~$Khp5ARQv=t1@`=pjuWUWLqDCkWF}di>&l|Vu2`a2>_~ye zCp3wi7|kX5^3Ig+YI3GGXeXT%ds-lzOgpkZYOLH*%Vl&&)*t82d4cM*mGhgJ; zv7%tBjBM7lQv%&jg0Z3pN-1ISR$O`PTFx^wtj{UaJL5W8)AcNq@ixRt?d^}J@*7$= z`0Ol`^9E%Pyur?=f<$i-&w0#d!{eBhQ?E$axNXgj_)|C(8jmja8Qc@e9aV^ipHhzEF_}v0RVB4Xc>rS3@ zKG`$~cg{on$V~vdxK{bX8pOEQiVEmJCr^Uy6{nUoK1F9iK5OF(2uyU%BX}2~A1J7F z(&RhYT2w4Kp$WRt<2$Y;h8|ixLpzD>S*UV0ltNtLw@rpI``-=DcmMg9`sXw5>f8kq41g<9i&yPt^Ja2k|Qo;dc!9L|;TTOlEmMb;9&` zn|ghW)q@nZUtq59Fz0d?r2R%(zew57L~+QsAk}_C2#UMIev;&Fz^|4glep6Q2c{<;32k9qTu)gG*A$#C@p~#Gz?(qKjATAAOHXW literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/demo.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/demo.class new file mode 100644 index 0000000000000000000000000000000000000000..7a1a14ccb8613cf955313baf8c5637d178e06363 GIT binary patch literal 443 zcmb7AO-sW-6r7i)iH+6PR=j(w3a*H^iXe)opodB?o;JxgZcTO}P0a7|BzW)#_@l&^ zC@AQ~g?%6M-pmgB_Wtq;-~`(NI@t0t@-ZfOr`qW9jL@0v%?a*>O%!1eYNM{JJW|E2 zj50<>p^arWmxXTnFVHRT^@?yD#x@tqq)ZaEEglw`twpUOkw}wDv(TAZiOX|Ql{yoN z%I%b2%B41hoylFel#fzmyeej8p-nn%oya0(?eQODLNK#c5vwZ}CiEJ`!$zbJ7hS^9 zf9(*4-yUwFrHV`J!r^~vjstd!E=P|$!I?OB_n$#e?bzq&wV;nRuKS-0=po>)hxHa| X$On8I@-JfWgGkuGX1h4x=wSE(<~m=4 literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/test.class b/out/production/shoufagongwen/com/engine/workflow/web/danganfiles/DA/util/test.class new file mode 100644 index 0000000000000000000000000000000000000000..ef04681bd1ef06501a55f12f43ef692106f692b3 GIT binary patch literal 5847 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 literal 0 HcmV?d00001 diff --git a/out/production/shoufagongwen/rebel.xml b/out/production/shoufagongwen/rebel.xml new file mode 100644 index 0000000..a7abe20 --- /dev/null +++ b/out/production/shoufagongwen/rebel.xml @@ -0,0 +1,16 @@ + + + + + + shoufagongwen + + + + + + + diff --git a/shoufagongwen.iml b/shoufagongwen.iml new file mode 100644 index 0000000..90d593e --- /dev/null +++ b/shoufagongwen.iml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/api/files/GD_Action.java b/src/com/api/files/GD_Action.java new file mode 100644 index 0000000..73e795d --- /dev/null +++ b/src/com/api/files/GD_Action.java @@ -0,0 +1,180 @@ +package com.api.files; + + + +import com.engine.workflow.web.danganfiles.DA.util.DaHttpAction; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +/** + * 调用归档的方法,建模表单的按钮触发 + */ +@Path("/inter/file") +public class GD_Action { + + + + @GET + @Path("/dofiling") + @Produces(MediaType.TEXT_PLAIN) + public String interfile (@Context HttpServletRequest request, @Context HttpServletResponse response){ + BaseBean bb = new BaseBean(); + String id =request.getParameter("id"); + bb.writeLog("进入方法--归档执行开始"+id); + RecordSet rs = new RecordSet(); +// String depidSql="SELECT b.id as depid FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(select creater FROM workflow_requestbase WHERE REQUESTID=(select lcid from uf_dagd where id="+id+"))"; + String depidSql="select ssbm from uf_dagd where id="+id; + String depid =""; + try { + rs.executeQuery(depidSql); + if ( rs.next()){ + depid = rs.getString("ssbm"); + bb.writeLog("执行部门语句----"+depidSql); + } + }catch (Exception e){ + bb.writeLog("执行部门语句失败----"+e); + } + + //查询归档记录表 + String sql ="select * from uf_dagd where id="+id; + int gdzt =-1; + try { + rs.executeQuery(sql); + if (rs.next()){ + gdzt = rs.getInt("gdzt"); + bb.writeLog("执行语句----"+sql); + } + }catch (Exception e){ + bb.writeLog("执行语句失败----"+e); + e.printStackTrace(); + } + + bb.writeLog("状态信息"+gdzt); + boolean success = false; + int i = 10; + //判断文件归档状态,0为未归档 + bb.writeLog("归档状态"+gdzt); + if(gdzt==0){ + + String filename = rs.getString("wjjmc"); + String filepath = rs.getString("wjlj"); + String sfwlb = rs.getString("sfwlb"); + //执行档案归档文件上传方法 + + bb.writeLog("文件相关信息"+filename+"--"+filepath+"--"+sfwlb); + DaHttpAction daHttpAction = new DaHttpAction(); + + try { + bb.writeLog("进入daHttpAction.doit方法"); + i= daHttpAction.doit(filename,filepath,sfwlb,depid); + } catch (Exception e) { + e.printStackTrace(); + } + bb.writeLog("返回信息str"+i); + //将记录表中的未归档状态修改为归档=" + if(i!=0){ + bb.writeLog("上传出问题了-----"+i); + }else if(i==0){ + String upsql = "update uf_dagd set gdzt =1 where id="+id; + RecordSet rs1 = new RecordSet(); + bb.writeLog("sql--->"+upsql); + success = rs1.executeUpdate(upsql); + bb.writeLog("上传成功-----"+success); + } + } + +//除0 以外的所有返回信息都是错误 + return i+""; + } + + @GET + @Path("/dofilings") + @Produces(MediaType.APPLICATION_JSON) + public Map interfiles (@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean bb = new BaseBean(); + String id = request.getParameter("id"); + bb.writeLog("进入方法--归档执行开始" + id); + RecordSet rs = new RecordSet(); + String[] arr = id.split(","); + int i = 10; + int successCount = 0; + int deftCount = 0; + for (int y = 0; y < arr.length; y++) { + boolean success = false; + String depidSql="select ssbm from uf_dagd where id="+arr[y]; + String depid =""; + try { + rs.executeQuery(depidSql); + if (rs.next()){ + depid = rs.getString("ssbm"); + bb.writeLog("执行部门语句----"+depidSql); + } + }catch (Exception e){ + bb.writeLog("执行部门语句失败----"+e); + } + + //查询归档记录表 + String sql = "select * from uf_dagd where id=" + arr[y]; + int gdzt = -1; + try { + rs.executeQuery(sql); + if (rs.next()){ + gdzt = rs.getInt("gdzt"); + bb.writeLog("执行语句----" + sql); + } + } catch (Exception e) { + bb.writeLog("执行语句失败----" + e); + e.printStackTrace(); + } + + + bb.writeLog("状态信息" + gdzt); + //判断文件归档状态,0为未归档 + bb.writeLog("归档状态" + gdzt); + if (gdzt == 0) { + String filename = rs.getString("wjjmc"); + String filepath = rs.getString("wjlj"); + String sfwlb = rs.getString("sfwlb"); + //执行档案归档文件上传方法 + bb.writeLog("文件相关信息" + filename + "--" + filepath + "--" + sfwlb); + DaHttpAction daHttpAction = new DaHttpAction(); + + try { + bb.writeLog("进入daHttpAction.doit方法"); + i = daHttpAction.doit(filename,filepath,sfwlb,depid); + } catch (Exception e) { + e.printStackTrace(); + } + bb.writeLog("返回信息str" + i); + //将记录表中的未归档状态修改为归档=" + if (i != 0) { + deftCount += 1; + bb.writeLog("归档出问题了----->" + i); + } else if (i == 0) { + successCount += 1; + String upsql = "update uf_dagd set gdzt =1 where id=" + arr[y]; + RecordSet rs1 = new RecordSet(); + bb.writeLog("sql--->" + upsql); + success = rs1.executeUpdate(upsql); + bb.writeLog("上传成功更新数据库----->"+success); + } + + } + } +//除0 以外的所有返回信息都是错误 + HashMap resultMap = new HashMap<>(); + resultMap.put("successCount", successCount); + resultMap.put("deftCount", deftCount); + return resultMap; + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/FWCB_Action.java b/src/com/engine/workflow/web/danganfiles/DA/FWCB_Action.java new file mode 100644 index 0000000..ff5b579 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/FWCB_Action.java @@ -0,0 +1,373 @@ +package com.engine.workflow.web.danganfiles.DA; + + +import com.engine.workflow.web.danganfiles.DA.util.CreatXML; +import org.apache.ibatis.jdbc.SQL; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.zip.ZipOutputStream; + +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.filename; +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.fjFilename; +import static com.engine.workflow.web.danganfiles.DA.util.ZipFile.zipu; +/** + * 发文呈报 + * 2020-10-14 + */ +@SuppressWarnings("all") +public class FWCB_Action implements Action { + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + @Override + public String execute(RequestInfo requestinfo) { + String creatorid = requestinfo.getCreatorid(); + + String sqls="select departmentid FROM HrmResource where lastname=?"; + RecordSet recordSet2=new RecordSet(); + recordSet2.execute(sqls,creatorid); + if(recordSet2.next()){ + String departmentid = recordSet2.getString("departmentid"); + } + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + List> list = new ArrayList>(); + //=====================================================================读取主表数据 + bb.writeLog("====局文件传阅单========START="+requestinfo.getRequestid()); + String requestid = requestinfo.getRequestid(); //请求ID + + String src = requestinfo.getRequestManager().getSrc(); + bb.writeLog("====局文件传阅单=====src="+src); + //当前操作类型 submit:提交/reject:退回 + String workflowid = requestinfo.getWorkflowid(); //流程ID + String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称 + + String sql = "select * from "+tablename+" where requestid = "+requestid; + + rs.execute(sql); + rs.writeLog(sql); + HashMap map = new HashMap(); // 依据说明 + HashMap mapList = new HashMap(); // 归档文件 + SimpleDateFormat fomat = new SimpleDateFormat("yyyyMMddHHmmss"); + String time = fomat.format(new Date()); + bb.writeLog(time); + + String dh =time+"-"+requestid; + UUID uuid = UUID.randomUUID(); + bb.writeLog(uuid); + String str = uuid.toString().replaceAll("-",""); + + String fj =""; + String ofdwj =""; + String zwofdwj =""; + String wjbt =""; + String ngcs=""; + if (rs.next()){ + fj =rs.getString("fj"); //附件 + wjbt = rs.getString("bt"); //文件标题 + String zsdw = rs.getString("zsdw"); //主送单位 + String csdw = rs.getString("csdw"); //抄送单位 + int mj = rs.getInt("mj"); //密级 + String hj = rs.getString("hj"); // 缓急 + String ys = rs.getString("ys"); // 印数 + String wh = rs.getString("wh"); //文号 + ngcs = rs.getString("szbm"); //拟稿处室 + String ngr = rs.getString("ngr"); //拟稿人 + String zw = rs.getString("zw"); // 正文 + ofdwj = rs.getString("fj"); // ofd文件 + zwofdwj = rs.getString("zwofdwj"); // ofd附件文件 + String mjstr=""; + if(mj==0){ + mjstr="非涉密"; + }else if(mj==1){ + mjstr="机密"; + }else if(mj==2){ + mjstr="秘密"; + } + Date date = new Date(); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-",""); + + bb.writeLog("====局文件传阅单=====文件添加数据="+time+requestid+wjbt+wh+ngr+da); + bb.writeLog("====局文件传阅单=====文件添加数据="+src); + map.put("dh",time+"-"+requestid); //档号,归档存储文件文件夹名称 + map.put("bt",wjbt); //标题 + map.put("bh",wh);//文号 +// map.put("zrz",ngcs); //责任者 + map.put("rq",da.replaceAll("-","")); //日期 + map.put("ys",1); + + bb.writeLog("====局文件传阅单=====文件添加数据="+map); + + mapList.put("dh",str); //UUID档号 + mapList.put("wz","发文"); //文种 + mapList.put("bt",wjbt); //文件标题 + + + String depName="select departmentname from hrmdepartment where id="+ngcs; + String zrzName =""; + try { + rs.execute(depName); + rs.writeLog(depName); + rs.next(); + zrzName = rs.getString("departmentname"); + }catch (Exception e){ + bb.writeLog(""+e); + } + map.put("zrz",zrzName); + + + + String createrId="SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid; + String jgryid =""; + try { + rs.execute(createrId); + rs.writeLog(createrId); + rs.next(); + jgryid = rs.getString("CREATER"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrName="SELECT LASTNAME FROM hrmresource WHERE id=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryName =""; + try { + rs.execute(createrName); + rs.writeLog(createrName); + rs.next(); + jgryName = rs.getString("LASTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrDepName="SELECT b.DEPARTMENTNAME FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryBmName =""; + try { + rs.execute(createrDepName); + rs.writeLog(createrDepName); + rs.next(); + jgryBmName = rs.getString("DEPARTMENTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String nodeInfoSql="SELECT a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime FROM (SELECT a.nodeid,a.receivedate,a.receivetime,a.operatedate,a.operatetime,c.lastname,a.requestid,c.id,c.departmentid,d.departmentname FROM workflow_currentoperator a,workflow_nodebase b,hrmresource c,hrmdepartment d" + + " WHERE a.nodeid=b.id AND a.processuser=c.id AND d.id=c.departmentid and a.requestid="+requestid+") a right JOIN (SELECT id ,nodename FROM workflow_nodebase WHERE id in(SELECT nodeid FROM workflow_currentoperator WHERE requestid="+requestid+")) b ON a.nodeid=b.id order by nodeid"; + List> nodeInfoList = new ArrayList<>(); + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(nodeInfoSql); + bb.writeLog("开始查询节点流程"); + while (recordSet.next()){ + Map nodeInfo = new HashMap<>(); + nodeInfo.put("id",recordSet.getString("id")); + nodeInfo.put("nodename",recordSet.getString("nodename")); + nodeInfo.put("lastname",recordSet.getString("lastname")); + nodeInfo.put("departmentname",recordSet.getString("departmentname")); + nodeInfo.put("receivedate",recordSet.getString("receivedate")); + nodeInfo.put("receivetime",recordSet.getString("receivetime")); + nodeInfo.put("operatedate",recordSet.getString("operatedate")); + nodeInfo.put("operatetime",recordSet.getString("operatetime")); + nodeInfoList.add(nodeInfo); + } + bb.writeLog("查询节点流程"); + }catch (Exception e){ + e.printStackTrace(); + } + bb.writeLog("节点信息-->"+nodeInfoList); + + bb.writeLog("查询出的附件-->"+fj); + String[] arr = fj.split(","); + List> fjList = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + //附件 + String fjSQL="SELECT filerealpath,imagefilename FROM imagefile WHERE imagefileid ="+ arr[i]; + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(fjSQL); + bb.writeLog("开始附件列表"); + while (recordSet.next()){ + Map fjMap = new HashMap<>(); + String filerealpath = recordSet.getString("filerealpath"); + String imagefilename = recordSet.getString("imagefilename"); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + String newname = imagefilename.substring(0, index2); + String fileNameNoEx = getFileNameNoEx(zipPath); + fjMap.put("filerealpath",filerealpath); + fjMap.put("imagefilename",imagefilename); + fjMap.put("fjUUID",fileNameNoEx); + fjList.add(fjMap); + } + bb.writeLog("查询附件结束 fjList.size()==="+fjList.size()); + }catch (Exception e){ + bb.writeLog("查询附件异常==="+e); + } + } + + mapList.put("ys",1); //页数 + mapList.put("zrz",zrzName); //责任者 部门名称 + mapList.put("jgryName",jgryName); //机构人员中文 + mapList.put("jgryBmName",jgryBmName); //机构人员部门名称 + mapList.put("jgryid",jgryid); //机构人员id + mapList.put("rq",da.replaceAll("-","")); //日期 + mapList.put("kzbs","控制"); // 控制标识 + mapList.put("zw",ofdwj); // 正文 + mapList.put("zwofd",zwofdwj); // 正文ofd + mapList.put("nodeInfoList",nodeInfoList); // 节点信息 + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fjList",fjList); //附件 + }else{ + mapList.put("fjList","0"); //附件 + } + +// mapList.put("cld",ofdwj); //处理单 + mapList.put("mj",mjstr); + + bb.writeLog("====局文件传阅单==内部=444=map="+map.toString()); + bb.writeLog("====局文件传阅单==内部=444=maplist="+mapList.toString()); + } + bb.writeLog("====局文件传阅单===444=src="); + bb.writeLog("====局文件传阅单===444=map="+map.toString()); + bb.writeLog("====局文件传阅单===444=maplist="+mapList.toString()); + + String filerealpath = ""; +// String YJnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str; //归档文件依据说明文件夹 +// String GDnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String YJnewPath = "/WEAVER/oadata792/DAGD/FWCB/"+str; //归档文件依据说明文件夹 + String GDnewPath = "/WEAVER/oadata792/DAGD/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String zipname =str+".zip"; + String zippath = YJnewPath+".zip";//压缩包路径 + // 根据系统的实际情况选择目录分隔符bai(windows下是,dulinux下是/) +// linux下只认正斜杠,为了保证跨平台性,不建议使用反斜杠(在java程序中是转义字符,用\来表示反斜杠) + +// 在内存中创建一个文件对象,注意:此时还没有在硬盘对应目录下创建实实在在的文件 +// File f = new File(YJnewPath); +// bb.writeLog("====局文件传阅单=====创建文件c="+YJnewPath); + bb.writeLog("====局文件传阅单=====创建文件夹成功c="+YJnewPath); + + + File f2 = new File(GDnewPath+"/ww"); + bb.writeLog("====局文件传阅单=====创建文件c="+GDnewPath); + if(f2.exists()) { + bb.writeLog("====局文件传阅单=====创建文件夹="+f2.getAbsolutePath()); + + bb.writeLog("====局文件传阅单=====创建文件夹="+f2.getName()); + bb.writeLog("====局文件传阅单=====创建文件c="+f2.length()); + + bb.writeLog("-----"); + } else { +// 先创建文件所在的目录 + boolean su =f2.getParentFile().mkdirs(); + if(su==true){ + if(fj.length()>0){ + fjFilename(fj, GDnewPath); + } + if(zwofdwj.length()>0){ + fjFilename(zwofdwj, GDnewPath); + } + if(ofdwj.length()>0){ + String filename = filename(ofdwj, GDnewPath); + mapList.put("cld",filename); + } + } + + } + + bb.writeLog("====局文件传阅单=====创建文件夹成功c="+GDnewPath); + //先创建文件夹,之后存放文件,再传递建模进行记录 + CreatXML creatXML = new CreatXML(); + try { + + creatXML.createYJSMXml(YJnewPath,map); + + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("局文件传阅单----依据说明:" + e); + } + try { + creatXML.createGDWJXml(GDnewPath,mapList); + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("局文件传阅单=====归档文件:" + e); + } + + bb.writeLog("====局文件传阅单=====写入xml文件="+src); + bb.writeLog("====局文件传阅单====文件方法="); + + File f1=null; + ZipOutputStream out=null; + String zip = YJnewPath+".zip"; +// try { +// f1= new File(YJnewPath); +// out = new ZipOutputStream(new FileOutputStream( +// YJnewPath+".zip")); +// zip(out,f1,null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + +// try { +// ZipUtil zipUtil = new ZipUtil(); +// zipUtil.zip(YJnewPath,zippath); +// } catch (Exception e) { +// e.printStackTrace(); +// } + zipu(YJnewPath,zippath); + bb.writeLog("====局文件传阅单=====写入xml文件="+src); + Date date = new Date(); + String day = new SimpleDateFormat("yyyy-MM-dd").format(date); + String daytime = new SimpleDateFormat("hh:mm").format(date); + //文件路径,收发文类别0是收文1是发文,文件夹名称,归档状态,流程id + String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('"+zippath+"','"+0+"','"+zipname+"','"+0+"','"+requestid+"','"+day+"','"+daytime+"','"+ngcs+"','"+wjbt+"')"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(insertsql); + recordSet.writeLog("建模台账添加数据"+insertsql); + + return Action.SUCCESS; + } + +} + + + + + diff --git a/src/com/engine/workflow/web/danganfiles/DA/JWJCPD_Action.java b/src/com/engine/workflow/web/danganfiles/DA/JWJCPD_Action.java new file mode 100644 index 0000000..ad749eb --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/JWJCPD_Action.java @@ -0,0 +1,382 @@ +package com.engine.workflow.web.danganfiles.DA; + + +import com.engine.workflow.web.danganfiles.DA.util.CreatXML; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.zip.ZipOutputStream; + +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.filename; +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.fjFilename; +import static com.engine.workflow.web.danganfiles.DA.util.ZipFile.zipu; + +/** + * @author:CL + * @date:2023/4/3 10:20 + * 文件呈批单 发文 + */ +@SuppressWarnings("all") +public class JWJCPD_Action implements Action { + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + @Override + public String execute(RequestInfo requestinfo) { + String creatorid = requestinfo.getCreatorid(); + + String sqls="select departmentid FROM HrmResource where lastname=?"; + RecordSet recordSet2=new RecordSet(); + recordSet2.executeQuery(sqls,creatorid); + String departmentid=null; + if(recordSet2.next()){ + departmentid = recordSet2.getString("departmentid"); + } + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + List> list = new ArrayList>(); + bb.writeLog("====文件呈批单 责任者id ==="+departmentid); + //=====================================================================读取主表数据 + bb.writeLog("====文件呈批单========START="+requestinfo.getRequestid()); + String requestid = requestinfo.getRequestid(); //请求ID + + String src = requestinfo.getRequestManager().getSrc(); + bb.writeLog("====文件呈批单=====src="+src); + //当前操作类型 submit:提交/reject:退回 + String workflowid = requestinfo.getWorkflowid(); //流程ID + String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称 + + String sql = "select * from "+tablename+" where requestid = "+requestid; + + rs.execute(sql); + rs.writeLog(sql); + HashMap map = new HashMap(); // 依据说明 + HashMap mapList = new HashMap(); // 归档文件 + SimpleDateFormat fomat = new SimpleDateFormat("yyyyMMddHHmmss"); + String time = fomat.format(new Date()); + bb.writeLog(time); + + String dh =time+"-"+requestid; + UUID uuid = UUID.randomUUID(); + bb.writeLog(uuid); + String str = uuid.toString().replaceAll("-",""); + + String fj =""; + String ofdwj =""; + String zwofdwj =""; + String wjbt =""; +// String zrz="3"; //责任者id(部门id) + String zrz=departmentid; //责任者id(部门id) + if (rs.next()){ + String swrq1 = rs.getString("swrq1"); // +// fj =rs.getString("fj"); //附件 + wjbt = rs.getString("cpwjbt"); //文件标题 ** + String zsdw = rs.getString("zsdw"); //主送单位 + String csdw = rs.getString("csdw"); //抄送单位 +// int mj = rs.getInt("mj"); //密级 + String hj = rs.getString("hj"); // 缓急 + String ys = rs.getString("ys"); // 印数 + String wh = rs.getString("wh"); //文号 +// ngcs = rs.getString("szbm"); //拟稿处室 + String ngr = rs.getString("ngr"); //拟稿人 + String zw = rs.getString("zw"); // 正文 + ofdwj = rs.getString("fj"); // ofd文件 ** + zwofdwj = rs.getString("zwofdwj"); // ofd附件文件 +// String mjstr="内部"; //暂时用内部测试 等档案那边调整后 变为"" + String mjstr=""; //暂时用内部测试 等档案那边调整后 变为"" + +// if(mj==0){ +// mjstr="非涉密"; +// }else if(mj==1){ +// mjstr="机密"; +// }else if(mj==2){ +// mjstr="秘密"; +// } + Date date = new Date(); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-",""); + + bb.writeLog("====文件呈批单=====文件添加数据="+time+requestid+wjbt+wh+ngr+da); + bb.writeLog("====文件呈批单=====文件添加数据="+src); + map.put("dh",time+"-"+requestid); //档号,归档存储文件文件夹名称 + map.put("bt",wjbt); //标题 + map.put("bh",wh);//文号 +// map.put("zrz",ngcs); //责任者 + map.put("rq",swrq1.replaceAll("-","")); //日期 + map.put("ys",1); + + bb.writeLog("====文件呈批单=====文件添加数据="+map); + + mapList.put("dh",str); //UUID档号 + mapList.put("wz","发文"); //文种 + mapList.put("bt",wjbt); //文件标题 + + + String depName="select departmentname from hrmdepartment where id="+zrz; + String zrzName =""; + try { + rs.execute(depName); + rs.writeLog(depName); + rs.next(); + zrzName = rs.getString("departmentname"); + }catch (Exception e){ + bb.writeLog(""+e); + } + map.put("zrz",zrzName); + map.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + mapList.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + + + String createrId="SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid; + String jgryid =""; + try { + rs.execute(createrId); + rs.writeLog(createrId); + rs.next(); + jgryid = rs.getString("CREATER"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrName="SELECT LASTNAME FROM hrmresource WHERE id=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryName =""; + try { + rs.execute(createrName); + rs.writeLog(createrName); + rs.next(); + jgryName = rs.getString("LASTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrDepName="SELECT b.DEPARTMENTNAME FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryBmName =""; + try { + rs.execute(createrDepName); + rs.writeLog(createrDepName); + rs.next(); + jgryBmName = rs.getString("DEPARTMENTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String nodeInfoSql="SELECT a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime FROM (SELECT a.nodeid,a.receivedate,a.receivetime,a.operatedate,a.operatetime,c.lastname,a.requestid,c.id,c.departmentid,d.departmentname FROM workflow_currentoperator a,workflow_nodebase b,hrmresource c,hrmdepartment d" + + " WHERE a.nodeid=b.id AND a.processuser=c.id AND d.id=c.departmentid and a.requestid="+requestid+") a right JOIN (SELECT id ,nodename FROM workflow_nodebase WHERE id in(SELECT nodeid FROM workflow_currentoperator WHERE requestid="+requestid+")) b ON a.nodeid=b.id order by nodeid"; + List> nodeInfoList = new ArrayList<>(); + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(nodeInfoSql); + bb.writeLog("开始查询节点流程"); + while (recordSet.next()){ + Map nodeInfo = new HashMap<>(); + nodeInfo.put("id",recordSet.getString("id")); + nodeInfo.put("nodename",recordSet.getString("nodename")); + nodeInfo.put("lastname",recordSet.getString("lastname")); + nodeInfo.put("departmentname",recordSet.getString("departmentname")); + nodeInfo.put("receivedate",recordSet.getString("receivedate")); + nodeInfo.put("receivetime",recordSet.getString("receivetime")); + nodeInfo.put("operatedate",recordSet.getString("operatedate")); + nodeInfo.put("operatetime",recordSet.getString("operatetime")); + nodeInfoList.add(nodeInfo); + } + bb.writeLog("查询节点流程"); + }catch (Exception e){ + e.printStackTrace(); + } + bb.writeLog("节点信息-->"+nodeInfoList); + + bb.writeLog("查询出的附件-->"+fj); + String[] arr = fj.split(","); + List> fjList = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + //附件 + String fjSQL="SELECT filerealpath,imagefilename FROM imagefile WHERE imagefileid ="+ arr[i]; + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(fjSQL); + bb.writeLog("开始附件列表"); + while (recordSet.next()){ + Map fjMap = new HashMap<>(); + String filerealpath = recordSet.getString("filerealpath"); + String imagefilename = recordSet.getString("imagefilename"); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + String newname = imagefilename.substring(0, index2); + String fileNameNoEx = getFileNameNoEx(zipPath); + fjMap.put("filerealpath",filerealpath); + fjMap.put("imagefilename",imagefilename); + fjMap.put("fjUUID",fileNameNoEx); + fjList.add(fjMap); + } + bb.writeLog("查询附件结束 fjList.size()==="+fjList.size()); + }catch (Exception e){ + bb.writeLog("查询附件异常==="+e); + } + } + + mapList.put("ys",1); //页数 + mapList.put("zrz",zrzName); //责任者 部门名称 + mapList.put("jgryName",jgryName); //机构人员中文 + mapList.put("jgryBmName",jgryBmName); //机构人员部门名称 + mapList.put("jgryid",jgryid); //机构人员id + mapList.put("rq",da.replaceAll("-","")); //日期 + mapList.put("kzbs","推送"); // 控制标识 默认推送 + mapList.put("zw",ofdwj); // 正文 + mapList.put("zwofd",zwofdwj); // 正文ofd + mapList.put("nodeInfoList",nodeInfoList); // 节点信息 + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fjList",fjList); //附件 + }else{ + mapList.put("fjList","0"); //附件 + } + +// mapList.put("cld",ofdwj); //处理单 + mapList.put("mj",mjstr); + + bb.writeLog("====文件呈批单==内部=444=map="+map.toString()); + bb.writeLog("====文件呈批单==内部=444=maplist="+mapList.toString()); + } + bb.writeLog("====文件呈批单===444=src="); + bb.writeLog("====文件呈批单===444=map="+map.toString()); + bb.writeLog("====文件呈批单===444=maplist="+mapList.toString()); + + String filerealpath = ""; +// String YJnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str; //归档文件依据说明文件夹 +// String GDnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String YJnewPath = "/opt/weaver/oadata792/DAGD/JWJCPD/"+str; //归档文件依据说明文件夹 + String GDnewPath = "/opt/weaver/oadata792/DAGD/JWJCPD/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String zipname =str+".zip"; + String zippath = YJnewPath+".zip";//压缩包路径 + // 根据系统的实际情况选择目录分隔符bai(windows下是,dulinux下是/) +// linux下只认正斜杠,为了保证跨平台性,不建议使用反斜杠(在java程序中是转义字符,用\来表示反斜杠) + +// 在内存中创建一个文件对象,注意:此时还没有在硬盘对应目录下创建实实在在的文件 +// File f = new File(YJnewPath); +// bb.writeLog("====文件呈批单=====创建文件c="+YJnewPath); + bb.writeLog("====文件呈批单=====创建文件夹成功c="+YJnewPath); + + + File f2 = new File(GDnewPath+"/ww"); + bb.writeLog("====文件呈批单=====创建文件c="+GDnewPath); + if(f2.exists()) { + bb.writeLog("====文件呈批单=====创建文件夹="+f2.getAbsolutePath()); + + bb.writeLog("====文件呈批单=====创建文件夹="+f2.getName()); + bb.writeLog("====文件呈批单=====创建文件c="+f2.length()); + + bb.writeLog("-----"); + } else { +// 先创建文件所在的目录 + boolean su =f2.getParentFile().mkdirs(); + if(su==true){ + if(fj.length()>0){ + fjFilename(fj, GDnewPath); + } + if(zwofdwj.length()>0){ + fjFilename(zwofdwj, GDnewPath); + } + if(ofdwj.length()>0){ + String filename = filename(ofdwj, GDnewPath); + mapList.put("cld",filename); + } + } + + } + + bb.writeLog("====文件呈批单=====创建文件夹成功c="+GDnewPath); + //先创建文件夹,之后存放文件,再传递建模进行记录 + CreatXML creatXML = new CreatXML(); + try { + + creatXML.createYJSMXml(YJnewPath,map); + + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("文件呈批单----依据说明:" + e); + } + try { + creatXML.createGDWJXml(GDnewPath,mapList); + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("文件呈批单=====归档文件:" + e); + } + + bb.writeLog("====文件呈批单=====写入xml文件="+src); + bb.writeLog("====文件呈批单====文件方法="); + + File f1=null; + ZipOutputStream out=null; + String zip = YJnewPath+".zip"; +// try { +// f1= new File(YJnewPath); +// out = new ZipOutputStream(new FileOutputStream( +// YJnewPath+".zip")); +// zip(out,f1,null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + +// try { +// ZipUtil zipUtil = new ZipUtil(); +// zipUtil.zip(YJnewPath,zippath); +// } catch (Exception e) { +// e.printStackTrace(); +// } + zipu(YJnewPath,zippath); + bb.writeLog("====文件呈批单=====写入xml文件="+src); +// Date date = new Date(); +// String day = new SimpleDateFormat("yyyy-MM-dd").format(date); +// String daytime = new SimpleDateFormat("hh:mm").format(date); + Date date = new Date(); + String day = new SimpleDateFormat("yyyy-MM-dd").format(date); + String daytime = new SimpleDateFormat("hh:mm").format(date); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-", ""); + //文件路径,收发文类别 0是收文 1是发文,文件夹名称,归档状态,流程id +// String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('"+zippath+"','"+0+"','"+zipname+"','"+0+"','"+requestid+"','"+day+"','"+daytime+"','"+zrz+"','"+wjbt+"')"; + + String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('" + zippath + "','" + 1 + "','" + zipname + "','" + 0 + "','" + requestid + "','" + day + "','" + daytime + "','" + zrz + "','" + wjbt + "')"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(insertsql); + recordSet.writeLog("建模台账添加数据"+insertsql); + + return Action.SUCCESS; + } + +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/JWJCYD_Action.java b/src/com/engine/workflow/web/danganfiles/DA/JWJCYD_Action.java new file mode 100644 index 0000000..87efe0e --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/JWJCYD_Action.java @@ -0,0 +1,382 @@ + package com.engine.workflow.web.danganfiles.DA; + + +import com.engine.workflow.web.danganfiles.DA.util.CreatXML; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.zip.ZipOutputStream; + +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.filename; +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.fjFilename; +import static com.engine.workflow.web.danganfiles.DA.util.ZipFile.zipu; + +/** + * @author:CL + * @date:2023/4/3 10:20 + * 局文件传阅单 收文 + */ +@SuppressWarnings("all") +public class JWJCYD_Action implements Action { + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + @Override + public String execute(RequestInfo requestinfo) { + String creatorid = requestinfo.getCreatorid(); + + String sqls="select departmentid FROM HrmResource where lastname=?"; + RecordSet recordSet2=new RecordSet(); + recordSet2.executeQuery(sqls,creatorid); + String departmentid=null; + if(recordSet2.next()){ + departmentid = recordSet2.getString("departmentid"); + } + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + List> list = new ArrayList>(); + bb.writeLog("====局文件传阅单 责任者id ==="+departmentid); + //=====================================================================读取主表数据 + bb.writeLog("====局文件传阅单========START="+requestinfo.getRequestid()); + String requestid = requestinfo.getRequestid(); //请求ID + + String src = requestinfo.getRequestManager().getSrc(); + bb.writeLog("====局文件传阅单=====src="+src); + //当前操作类型 submit:提交/reject:退回 + String workflowid = requestinfo.getWorkflowid(); //流程ID + String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称 + + String sql = "select * from "+tablename+" where requestid = "+requestid; + + rs.execute(sql); + rs.writeLog(sql); + HashMap map = new HashMap(); // 依据说明 + HashMap mapList = new HashMap(); // 归档文件 + SimpleDateFormat fomat = new SimpleDateFormat("yyyyMMddHHmmss"); + String time = fomat.format(new Date()); + bb.writeLog(time); + + String dh =time+"-"+requestid; + UUID uuid = UUID.randomUUID(); + bb.writeLog(uuid); + String str = uuid.toString().replaceAll("-",""); + + String fj =""; + String ofdwj =""; + String zwofdwj =""; + String wjbt =""; +// String zrz="3"; //责任者id(部门id) + String zrz=departmentid; //责任者id(部门id) + if (rs.next()){ + String swrq1 = rs.getString("sj"); //收文日期 *** +// fj =rs.getString("fj"); //附件 + wjbt = rs.getString("bt0"); //文件标题 + String zsdw = rs.getString("zsdw"); //主送单位 + String csdw = rs.getString("csdw"); //抄送单位 +// int mj = rs.getInt("mj"); //密级 + String hj = rs.getString("hj"); // 缓急 + String ys = rs.getString("ys"); // 印数 + String wh = rs.getString("wh"); //文号 *** +// ngcs = rs.getString("szbm"); //拟稿处室 + String ngr = rs.getString("ngr"); //拟稿人 + String zw = rs.getString("zw"); // 正文 + ofdwj = rs.getString("fj"); // ofd文件 *** + zwofdwj = rs.getString("zwofdwj"); // ofd附件文件 +// String mjstr="内部"; //暂时用内部测试 等档案那边调整后 变为"" + String mjstr=""; //暂时用内部测试 等档案那边调整后 变为"" +// if(mj==0){ +// mjstr="非涉密"; +// }else if(mj==1){ +// mjstr="机密"; +// }else if(mj==2){ +// mjstr="秘密"; +// } + Date date = new Date(); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-",""); + + bb.writeLog("====局文件传阅单=====文件添加数据="+time+requestid+wjbt+wh+ngr+da); + bb.writeLog("====局文件传阅单=====文件添加数据="+src); + map.put("dh",time+"-"+requestid); //档号,归档存储文件文件夹名称 + map.put("bt",wjbt); //标题 + map.put("bh",wh);//文号 +// map.put("zrz",ngcs); //责任者 + map.put("rq",swrq1.replaceAll("-","")); //日期 + map.put("ys",1); + + bb.writeLog("====局文件传阅单=====文件添加数据="+map); + + mapList.put("dh",str); //UUID档号 + mapList.put("wz","收文"); //文种 + mapList.put("bt",wjbt); //文件标题 + + + String depName="select departmentname from hrmdepartment where id="+zrz; + String zrzName =""; + try { + rs.execute(depName); + rs.writeLog(depName); + rs.next(); + zrzName = rs.getString("departmentname"); + }catch (Exception e){ + bb.writeLog(""+e); + } + map.put("zrz",zrzName); + map.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + mapList.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + + + + String createrId="SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid; + String jgryid =""; + try { + rs.execute(createrId); + rs.writeLog(createrId); + rs.next(); + jgryid = rs.getString("CREATER"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrName="SELECT LASTNAME FROM hrmresource WHERE id=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryName =""; + try { + rs.execute(createrName); + rs.writeLog(createrName); + rs.next(); + jgryName = rs.getString("LASTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrDepName="SELECT b.DEPARTMENTNAME FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryBmName =""; + try { + rs.execute(createrDepName); + rs.writeLog(createrDepName); + rs.next(); + jgryBmName = rs.getString("DEPARTMENTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String nodeInfoSql="SELECT a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime FROM (SELECT a.nodeid,a.receivedate,a.receivetime,a.operatedate,a.operatetime,c.lastname,a.requestid,c.id,c.departmentid,d.departmentname FROM workflow_currentoperator a,workflow_nodebase b,hrmresource c,hrmdepartment d" + + " WHERE a.nodeid=b.id AND a.processuser=c.id AND d.id=c.departmentid and a.requestid="+requestid+") a right JOIN (SELECT id ,nodename FROM workflow_nodebase WHERE id in(SELECT nodeid FROM workflow_currentoperator WHERE requestid="+requestid+")) b ON a.nodeid=b.id order by nodeid"; + List> nodeInfoList = new ArrayList<>(); + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(nodeInfoSql); + bb.writeLog("开始查询节点流程"); + while (recordSet.next()){ + Map nodeInfo = new HashMap<>(); + nodeInfo.put("id",recordSet.getString("id")); + nodeInfo.put("nodename",recordSet.getString("nodename")); + nodeInfo.put("lastname",recordSet.getString("lastname")); + nodeInfo.put("departmentname",recordSet.getString("departmentname")); + nodeInfo.put("receivedate",recordSet.getString("receivedate")); + nodeInfo.put("receivetime",recordSet.getString("receivetime")); + nodeInfo.put("operatedate",recordSet.getString("operatedate")); + nodeInfo.put("operatetime",recordSet.getString("operatetime")); + nodeInfoList.add(nodeInfo); + } + bb.writeLog("查询节点流程"); + }catch (Exception e){ + e.printStackTrace(); + } + bb.writeLog("节点信息-->"+nodeInfoList); + + bb.writeLog("查询出的附件-->"+fj); + String[] arr = fj.split(","); + List> fjList = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + //附件 + String fjSQL="SELECT filerealpath,imagefilename FROM imagefile WHERE imagefileid ="+ arr[i]; + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(fjSQL); + bb.writeLog("开始附件列表"); + while (recordSet.next()){ + Map fjMap = new HashMap<>(); + String filerealpath = recordSet.getString("filerealpath"); + String imagefilename = recordSet.getString("imagefilename"); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + String newname = imagefilename.substring(0, index2); + String fileNameNoEx = getFileNameNoEx(zipPath); + fjMap.put("filerealpath",filerealpath); + fjMap.put("imagefilename",imagefilename); + fjMap.put("fjUUID",fileNameNoEx); + fjList.add(fjMap); + } + bb.writeLog("查询附件结束 fjList.size()==="+fjList.size()); + }catch (Exception e){ + bb.writeLog("查询附件异常==="+e); + } + } + + mapList.put("ys",1); //页数 + mapList.put("zrz",zrzName); //责任者 部门名称 + mapList.put("jgryName",jgryName); //机构人员中文 + mapList.put("jgryBmName",jgryBmName); //机构人员部门名称 + mapList.put("jgryid",jgryid); //机构人员id + mapList.put("rq",da.replaceAll("-","")); //日期 + mapList.put("kzbs","推送"); // 控制标识 默认推送 + mapList.put("zw",ofdwj); // 正文 + mapList.put("zwofd",zwofdwj); // 正文ofd + mapList.put("nodeInfoList",nodeInfoList); // 节点信息 + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fjList",fjList); //附件 + }else{ + mapList.put("fjList","0"); //附件 + } + +// mapList.put("cld",ofdwj); //处理单 + mapList.put("mj",mjstr); + + bb.writeLog("====局文件传阅单==内部=444=map="+map.toString()); + bb.writeLog("====局文件传阅单==内部=444=maplist="+mapList.toString()); + } + bb.writeLog("====局文件传阅单===444=src="); + bb.writeLog("====局文件传阅单===444=map="+map.toString()); + bb.writeLog("====局文件传阅单===444=maplist="+mapList.toString()); + + String filerealpath = ""; +// String YJnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str; //归档文件依据说明文件夹 +// String GDnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String YJnewPath = "/opt/weaver/oadata792/DAGD/JWJCYD/"+str; //归档文件依据说明文件夹 + String GDnewPath = "/opt/weaver/oadata792/DAGD/JWJCYD/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String zipname =str+".zip"; + String zippath = YJnewPath+".zip";//压缩包路径 + // 根据系统的实际情况选择目录分隔符bai(windows下是,dulinux下是/) +// linux下只认正斜杠,为了保证跨平台性,不建议使用反斜杠(在java程序中是转义字符,用\来表示反斜杠) + +// 在内存中创建一个文件对象,注意:此时还没有在硬盘对应目录下创建实实在在的文件 +// File f = new File(YJnewPath); +// bb.writeLog("====局文件传阅单=====创建文件c="+YJnewPath); + bb.writeLog("====局文件传阅单=====创建文件夹成功c="+YJnewPath); + + + File f2 = new File(GDnewPath+"/ww"); + bb.writeLog("====局文件传阅单=====创建文件c="+GDnewPath); + if(f2.exists()) { + bb.writeLog("====局文件传阅单=====创建文件夹="+f2.getAbsolutePath()); + + bb.writeLog("====局文件传阅单=====创建文件夹="+f2.getName()); + bb.writeLog("====局文件传阅单=====创建文件c="+f2.length()); + + bb.writeLog("-----"); + } else { +// 先创建文件所在的目录 + boolean su =f2.getParentFile().mkdirs(); + if(su==true){ + if(fj.length()>0){ + fjFilename(fj, GDnewPath); + } + if(zwofdwj.length()>0){ + fjFilename(zwofdwj, GDnewPath); + } + if(ofdwj.length()>0){ + String filename = filename(ofdwj, GDnewPath); + mapList.put("cld",filename); + } + } + + } + + bb.writeLog("====局文件传阅单=====创建文件夹成功c="+GDnewPath); + //先创建文件夹,之后存放文件,再传递建模进行记录 + CreatXML creatXML = new CreatXML(); + try { + + creatXML.createYJSMXml(YJnewPath,map); + + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("局文件传阅单----依据说明:" + e); + } + try { + creatXML.createGDWJXml(GDnewPath,mapList); + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("局文件传阅单=====归档文件:" + e); + } + + bb.writeLog("====局文件传阅单=====写入xml文件="+src); + bb.writeLog("====局文件传阅单====文件方法="); + + File f1=null; + ZipOutputStream out=null; + String zip = YJnewPath+".zip"; +// try { +// f1= new File(YJnewPath); +// out = new ZipOutputStream(new FileOutputStream( +// YJnewPath+".zip")); +// zip(out,f1,null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + +// try { +// ZipUtil zipUtil = new ZipUtil(); +// zipUtil.zip(YJnewPath,zippath); +// } catch (Exception e) { +// e.printStackTrace(); +// } + zipu(YJnewPath,zippath); + bb.writeLog("====局文件传阅单=====写入xml文件="+src); +// Date date = new Date(); +// String day = new SimpleDateFormat("yyyy-MM-dd").format(date); +// String daytime = new SimpleDateFormat("hh:mm").format(date); + Date date = new Date(); + String day = new SimpleDateFormat("yyyy-MM-dd").format(date); + String daytime = new SimpleDateFormat("hh:mm").format(date); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-", ""); + //文件路径,收发文类别 0是收文 1是发文,文件夹名称,归档状态,流程id +// String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('"+zippath+"','"+0+"','"+zipname+"','"+0+"','"+requestid+"','"+day+"','"+daytime+"','"+zrz+"','"+wjbt+"')"; + + String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('" + zippath + "','" + 0 + "','" + zipname + "','" + 0 + "','" + requestid + "','" + day + "','" + daytime + "','" + zrz + "','" + wjbt + "')"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(insertsql); + recordSet.writeLog("建模台账添加数据"+insertsql); + + return Action.SUCCESS; + } + +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.java b/src/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.java new file mode 100644 index 0000000..24b8cac --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/SWBLCPD_Action.java @@ -0,0 +1,382 @@ +package com.engine.workflow.web.danganfiles.DA; + + +import com.engine.workflow.web.danganfiles.DA.util.CreatXML; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.zip.ZipOutputStream; + +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.filename; +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.fjFilename; +import static com.engine.workflow.web.danganfiles.DA.util.ZipFile.zipu; + +/** + * @author:CL + * @date:2023/4/3 10:20 + * 收文办理呈批单 + */ +@SuppressWarnings("all") +public class SWBLCPD_Action implements Action { + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + @Override + public String execute(RequestInfo requestinfo) { + String creatorid = requestinfo.getCreatorid(); + + String sqls="select departmentid FROM HrmResource where lastname=?"; + RecordSet recordSet2=new RecordSet(); + recordSet2.executeQuery(sqls,creatorid); + String departmentid=null; + if(recordSet2.next()){ + departmentid = recordSet2.getString("departmentid"); + } + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + List> list = new ArrayList>(); + bb.writeLog("====收文办理呈批单 责任者id ==="+departmentid); + //=====================================================================读取主表数据 + bb.writeLog("====收文办理呈批单========START="+requestinfo.getRequestid()); + String requestid = requestinfo.getRequestid(); //请求ID + + String src = requestinfo.getRequestManager().getSrc(); + bb.writeLog("====收文办理呈批单=====src="+src); + //当前操作类型 submit:提交/reject:退回 + String workflowid = requestinfo.getWorkflowid(); //流程ID + String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称 + + String sql = "select * from "+tablename+" where requestid = "+requestid; + + rs.execute(sql); + rs.writeLog(sql); + HashMap map = new HashMap(); // 依据说明 + HashMap mapList = new HashMap(); // 归档文件 + SimpleDateFormat fomat = new SimpleDateFormat("yyyyMMddHHmmss"); + String time = fomat.format(new Date()); + bb.writeLog(time); + + String dh =time+"-"+requestid; + UUID uuid = UUID.randomUUID(); + bb.writeLog(uuid); + String str = uuid.toString().replaceAll("-",""); + + String fj =""; + String ofdwj =""; + String zwofdwj =""; + String wjbt =""; +// String zrz="3"; //责任者id(部门id) + String zrz=departmentid; //责任者id(部门id) + if (rs.next()){ + String swrq1 = rs.getString("swrq1"); //收文日期 +// fj =rs.getString("fj"); //附件 + wjbt = rs.getString("bt2"); //文件标题 ** + String zsdw = rs.getString("zsdw"); //主送单位 + String csdw = rs.getString("csdw"); //抄送单位 +// int mj = rs.getInt("mj"); //密级 + String hj = rs.getString("hj"); // 缓急 + String ys = rs.getString("ys"); // 印数 + String wh = rs.getString("wh"); //文号 ** +// ngcs = rs.getString("szbm"); //拟稿处室 + String ngr = rs.getString("ngr"); //拟稿人 + String zw = rs.getString("zw"); // 正文 + ofdwj = rs.getString("fj"); // ofd文件 ** + zwofdwj = rs.getString("zwofdwj"); // ofd附件文件 +// String mjstr="内部"; //暂时用内部测试 等档案那边调整后 变为"" + String mjstr=""; //暂时用内部测试 等档案那边调整后 变为"" +// if(mj==0){ +// mjstr="非涉密"; +// }else if(mj==1){ +// mjstr="机密"; +// }else if(mj==2){ +// mjstr="秘密"; +// } + Date date = new Date(); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-",""); + + bb.writeLog("====收文办理呈批单=====文件添加数据="+time+requestid+wjbt+wh+ngr+da); + bb.writeLog("====收文办理呈批单=====文件添加数据="+src); + map.put("dh",time+"-"+requestid); //档号,归档存储文件文件夹名称 + map.put("bt",wjbt); //标题 + map.put("bh",wh);//文号 +// map.put("zrz",ngcs); //责任者 + map.put("rq",swrq1.replaceAll("-","")); //日期 + map.put("ys",1); + + bb.writeLog("====收文办理呈批单=====文件添加数据="+map); + + mapList.put("dh",str); //UUID档号 + mapList.put("wz","收文"); //文种 + mapList.put("bt",wjbt); //文件标题 + + + String depName="select departmentname from hrmdepartment where id="+zrz; + String zrzName =""; + try { + rs.execute(depName); + rs.writeLog(depName); + rs.next(); + zrzName = rs.getString("departmentname"); + }catch (Exception e){ + bb.writeLog(""+e); + } + map.put("zrz",zrzName); + map.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + mapList.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + + + + String createrId="SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid; + String jgryid =""; + try { + rs.execute(createrId); + rs.writeLog(createrId); + rs.next(); + jgryid = rs.getString("CREATER"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrName="SELECT LASTNAME FROM hrmresource WHERE id=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryName =""; + try { + rs.execute(createrName); + rs.writeLog(createrName); + rs.next(); + jgryName = rs.getString("LASTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrDepName="SELECT b.DEPARTMENTNAME FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryBmName =""; + try { + rs.execute(createrDepName); + rs.writeLog(createrDepName); + rs.next(); + jgryBmName = rs.getString("DEPARTMENTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String nodeInfoSql="SELECT a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime FROM (SELECT a.nodeid,a.receivedate,a.receivetime,a.operatedate,a.operatetime,c.lastname,a.requestid,c.id,c.departmentid,d.departmentname FROM workflow_currentoperator a,workflow_nodebase b,hrmresource c,hrmdepartment d" + + " WHERE a.nodeid=b.id AND a.processuser=c.id AND d.id=c.departmentid and a.requestid="+requestid+") a right JOIN (SELECT id ,nodename FROM workflow_nodebase WHERE id in(SELECT nodeid FROM workflow_currentoperator WHERE requestid="+requestid+")) b ON a.nodeid=b.id order by nodeid"; + List> nodeInfoList = new ArrayList<>(); + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(nodeInfoSql); + bb.writeLog("开始查询节点流程"); + while (recordSet.next()){ + Map nodeInfo = new HashMap<>(); + nodeInfo.put("id",recordSet.getString("id")); + nodeInfo.put("nodename",recordSet.getString("nodename")); + nodeInfo.put("lastname",recordSet.getString("lastname")); + nodeInfo.put("departmentname",recordSet.getString("departmentname")); + nodeInfo.put("receivedate",recordSet.getString("receivedate")); + nodeInfo.put("receivetime",recordSet.getString("receivetime")); + nodeInfo.put("operatedate",recordSet.getString("operatedate")); + nodeInfo.put("operatetime",recordSet.getString("operatetime")); + nodeInfoList.add(nodeInfo); + } + bb.writeLog("查询节点流程"); + }catch (Exception e){ + e.printStackTrace(); + } + bb.writeLog("节点信息-->"+nodeInfoList); + + bb.writeLog("查询出的附件-->"+fj); + String[] arr = fj.split(","); + List> fjList = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + //附件 + String fjSQL="SELECT filerealpath,imagefilename FROM imagefile WHERE imagefileid ="+ arr[i]; + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(fjSQL); + bb.writeLog("开始附件列表"); + while (recordSet.next()){ + Map fjMap = new HashMap<>(); + String filerealpath = recordSet.getString("filerealpath"); + String imagefilename = recordSet.getString("imagefilename"); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + String newname = imagefilename.substring(0, index2); + String fileNameNoEx = getFileNameNoEx(zipPath); + fjMap.put("filerealpath",filerealpath); + fjMap.put("imagefilename",imagefilename); + fjMap.put("fjUUID",fileNameNoEx); + fjList.add(fjMap); + } + bb.writeLog("查询附件结束 fjList.size()==="+fjList.size()); + }catch (Exception e){ + bb.writeLog("查询附件异常==="+e); + } + } + + mapList.put("ys",1); //页数 + mapList.put("zrz",zrzName); //责任者 部门名称 + mapList.put("jgryName",jgryName); //机构人员中文 + mapList.put("jgryBmName",jgryBmName); //机构人员部门名称 + mapList.put("jgryid",jgryid); //机构人员id + mapList.put("rq",da.replaceAll("-","")); //日期 + mapList.put("kzbs","推送"); // 控制标识 默认推送 + mapList.put("zw",ofdwj); // 正文 + mapList.put("zwofd",zwofdwj); // 正文ofd + mapList.put("nodeInfoList",nodeInfoList); // 节点信息 + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fjList",fjList); //附件 + }else{ + mapList.put("fjList","0"); //附件 + } + +// mapList.put("cld",ofdwj); //处理单 + mapList.put("mj",mjstr); + + bb.writeLog("====收文办理呈批单==内部=444=map="+map.toString()); + bb.writeLog("====收文办理呈批单==内部=444=maplist="+mapList.toString()); + } + bb.writeLog("====收文办理呈批单===444=src="); + bb.writeLog("====收文办理呈批单===444=map="+map.toString()); + bb.writeLog("====收文办理呈批单===444=maplist="+mapList.toString()); + + String filerealpath = ""; +// String YJnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str; //归档文件依据说明文件夹 +// String GDnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String YJnewPath = "/opt/weaver/oadata792/DAGD/SWBLCPD/"+str; //归档文件依据说明文件夹 + String GDnewPath = "/opt/weaver/oadata792/DAGD/SWBLCPD/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String zipname =str+".zip"; + String zippath = YJnewPath+".zip";//压缩包路径 + // 根据系统的实际情况选择目录分隔符bai(windows下是,dulinux下是/) +// linux下只认正斜杠,为了保证跨平台性,不建议使用反斜杠(在java程序中是转义字符,用\来表示反斜杠) + +// 在内存中创建一个文件对象,注意:此时还没有在硬盘对应目录下创建实实在在的文件 +// File f = new File(YJnewPath); +// bb.writeLog("====收文办理呈批单=====创建文件c="+YJnewPath); + bb.writeLog("====收文办理呈批单=====创建文件夹成功c="+YJnewPath); + + + File f2 = new File(GDnewPath+"/ww"); + bb.writeLog("====收文办理呈批单=====创建文件c="+GDnewPath); + if(f2.exists()) { + bb.writeLog("====收文办理呈批单=====创建文件夹="+f2.getAbsolutePath()); + + bb.writeLog("====收文办理呈批单=====创建文件夹="+f2.getName()); + bb.writeLog("====收文办理呈批单=====创建文件c="+f2.length()); + + bb.writeLog("-----"); + } else { +// 先创建文件所在的目录 + boolean su =f2.getParentFile().mkdirs(); + if(su==true){ + if(fj.length()>0){ + fjFilename(fj, GDnewPath); + } + if(zwofdwj.length()>0){ + fjFilename(zwofdwj, GDnewPath); + } + if(ofdwj.length()>0){ + String filename = filename(ofdwj, GDnewPath); + mapList.put("cld",filename); + } + } + + } + + bb.writeLog("====收文办理呈批单=====创建文件夹成功c="+GDnewPath); + //先创建文件夹,之后存放文件,再传递建模进行记录 + CreatXML creatXML = new CreatXML(); + try { + + creatXML.createYJSMXml(YJnewPath,map); + + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("收文办理呈批单----依据说明:" + e); + } + try { + creatXML.createGDWJXml(GDnewPath,mapList); + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("收文办理呈批单=====归档文件:" + e); + } + + bb.writeLog("====收文办理呈批单=====写入xml文件="+src); + bb.writeLog("====收文办理呈批单====文件方法="); + + File f1=null; + ZipOutputStream out=null; + String zip = YJnewPath+".zip"; +// try { +// f1= new File(YJnewPath); +// out = new ZipOutputStream(new FileOutputStream( +// YJnewPath+".zip")); +// zip(out,f1,null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + +// try { +// ZipUtil zipUtil = new ZipUtil(); +// zipUtil.zip(YJnewPath,zippath); +// } catch (Exception e) { +// e.printStackTrace(); +// } + zipu(YJnewPath,zippath); + bb.writeLog("====收文办理呈批单=====写入xml文件="+src); +// Date date = new Date(); +// String day = new SimpleDateFormat("yyyy-MM-dd").format(date); +// String daytime = new SimpleDateFormat("hh:mm").format(date); + Date date = new Date(); + String day = new SimpleDateFormat("yyyy-MM-dd").format(date); + String daytime = new SimpleDateFormat("hh:mm").format(date); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-", ""); + //文件路径,收发文类别0是收文1是发文,文件夹名称,归档状态,流程id +// String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('"+zippath+"','"+0+"','"+zipname+"','"+0+"','"+requestid+"','"+day+"','"+daytime+"','"+zrz+"','"+wjbt+"')"; + + String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('" + zippath + "','" + 0 + "','" + zipname + "','" + 0 + "','" + requestid + "','" + day + "','" + daytime + "','" + zrz + "','" + wjbt + "')"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(insertsql); + recordSet.writeLog("建模台账添加数据"+insertsql); + + return Action.SUCCESS; + } + +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.java b/src/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.java new file mode 100644 index 0000000..0275cd7 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/YZSQ_Action.java @@ -0,0 +1,389 @@ +package com.engine.workflow.web.danganfiles.DA; + + +import com.engine.workflow.web.danganfiles.DA.util.CreatXML; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.zip.ZipOutputStream; + +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.filename; +import static com.engine.workflow.web.danganfiles.DA.util.JY_action.fjFilename; +import static com.engine.workflow.web.danganfiles.DA.util.ZipFile.zipu; + +/** + * @author:CL + * @date:2023/4/3 10:20 + * 用章申请 发文 + */ +@SuppressWarnings("all") +public class YZSQ_Action implements Action { + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + @Override + public String execute(RequestInfo requestinfo) { + String creatorid = requestinfo.getCreatorid(); + + String sqls="select departmentid FROM HrmResource where lastname=?"; + RecordSet recordSet2=new RecordSet(); + recordSet2.executeQuery(sqls,creatorid); + String departmentid=null; + if(recordSet2.next()){ + departmentid = recordSet2.getString("departmentid"); + } + + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + List> list = new ArrayList>(); + bb.writeLog("====用章申请 责任者id ==="+departmentid); + + //=====================================================================读取主表数据 + bb.writeLog("====用章申请========START="+requestinfo.getRequestid()); + String requestid = requestinfo.getRequestid(); //请求ID + + String src = requestinfo.getRequestManager().getSrc(); + bb.writeLog("====用章申请=====src="+src); + //当前操作类型 submit:提交/reject:退回 + String workflowid = requestinfo.getWorkflowid(); //流程ID + String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称 + + String sql = "select * from "+tablename+" where requestid = "+requestid; + + rs.execute(sql); + rs.writeLog(sql); + HashMap map = new HashMap(); // 依据说明 + HashMap mapList = new HashMap(); // 归档文件 + SimpleDateFormat fomat = new SimpleDateFormat("yyyyMMddHHmmss"); + String time = fomat.format(new Date()); + bb.writeLog(time); + + String dh =time+"-"+requestid; + UUID uuid = UUID.randomUUID(); + bb.writeLog(uuid); + String str = uuid.toString().replaceAll("-",""); + + String fj =""; + String ofdwj =""; + String zwofdwj =""; + String wjbt =""; +// String zrz="3"; //责任者id(部门id) + String zrz=departmentid; //责任者id(部门id) + + if (rs.next()){ + String gjz=rs.getString("yzmc"); + String swrq1 = rs.getString("syrq2"); //收文日期 *** +// fj =rs.getString("fj"); //附件 +// wjbt = rs.getString("cpwjbt"); //文件标题 + wjbt="用章申请"; + String zsdw = rs.getString("wjfsdw"); //主送单位 + String csdw = rs.getString("csdw"); //抄送单位 +// int mj = rs.getInt("mj"); //密级 + String hj = rs.getString("hj"); // 缓急 + String ys = rs.getString("ys"); // 印数 + String wh = rs.getString("wh"); //文号 +// ngcs = rs.getString("szbm"); //拟稿处室 + String ngr = rs.getString("ngr"); //拟稿人 + String zw = rs.getString("zw"); // 正文 + ofdwj = rs.getString("fj"); // ofd文件 + zwofdwj = rs.getString("zwofdwj"); // ofd附件文件 +// String mjstr="内部"; //暂时用内部测试 等档案那边调整后 变为"" + String mjstr=""; //暂时用内部测试 等档案那边调整后 变为"" +// if(mj==0){ +// mjstr="非涉密"; +// }else if(mj==1){ +// mjstr="机密"; +// }else if(mj==2){ +// mjstr="秘密"; +// } + Date date = new Date(); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-",""); + + bb.writeLog("====用章申请=====文件添加数据="+time+requestid+wjbt+wh+ngr+da); + bb.writeLog("====用章申请=====文件添加数据="+src); + map.put("dh",time+"-"+requestid); //档号,归档存储文件文件夹名称 + map.put("bt",wjbt); //标题 + map.put("bh",wh);//文号 +// map.put("zrz",ngcs); //责任者 + map.put("rq",swrq1.replaceAll("-","")); //日期 + map.put("ys",1); + map.put("zsdw",zsdw); + map.put("gjz",gjz); + + bb.writeLog("====用章申请=====文件添加数据="+map); + + mapList.put("dh",str); //UUID档号 + mapList.put("wz","发文"); //文种 + mapList.put("bt",wjbt); //文件标题 + + + String depName="select departmentname from hrmdepartment where id="+zrz; + String zrzName =""; + try { + rs.execute(depName); + rs.writeLog(depName); + rs.next(); + zrzName = rs.getString("departmentname"); + }catch (Exception e){ + bb.writeLog(""+e); + } + map.put("zrz",zrzName); + map.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + mapList.put("jghwt",zrzName); // 机构或问题 也就是归档机构 + + + + String createrId="SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid; + String jgryid =""; + try { + rs.execute(createrId); + rs.writeLog(createrId); + rs.next(); + jgryid = rs.getString("CREATER"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrName="SELECT LASTNAME FROM hrmresource WHERE id=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryName =""; + try { + rs.execute(createrName); + rs.writeLog(createrName); + rs.next(); + jgryName = rs.getString("LASTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String createrDepName="SELECT b.DEPARTMENTNAME FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(SELECT CREATER FROM workflow_requestbase WHERE REQUESTID="+requestid+")"; + String jgryBmName =""; + try { + rs.execute(createrDepName); + rs.writeLog(createrDepName); + rs.next(); + jgryBmName = rs.getString("DEPARTMENTNAME"); + }catch (Exception e){ + bb.writeLog(""+e); + } + + + String nodeInfoSql="SELECT a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime FROM (SELECT a.nodeid,a.receivedate,a.receivetime,a.operatedate,a.operatetime,c.lastname,a.requestid,c.id,c.departmentid,d.departmentname FROM workflow_currentoperator a,workflow_nodebase b,hrmresource c,hrmdepartment d" + + " WHERE a.nodeid=b.id AND a.processuser=c.id AND d.id=c.departmentid and a.requestid="+requestid+") a right JOIN (SELECT id ,nodename FROM workflow_nodebase WHERE id in(SELECT nodeid FROM workflow_currentoperator WHERE requestid="+requestid+")) b ON a.nodeid=b.id order by nodeid"; + List> nodeInfoList = new ArrayList<>(); + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(nodeInfoSql); + bb.writeLog("开始查询节点流程"); + while (recordSet.next()){ + Map nodeInfo = new HashMap<>(); + nodeInfo.put("id",recordSet.getString("id")); + nodeInfo.put("nodename",recordSet.getString("nodename")); + nodeInfo.put("lastname",recordSet.getString("lastname")); + nodeInfo.put("departmentname",recordSet.getString("departmentname")); + nodeInfo.put("receivedate",recordSet.getString("receivedate")); + nodeInfo.put("receivetime",recordSet.getString("receivetime")); + nodeInfo.put("operatedate",recordSet.getString("operatedate")); + nodeInfo.put("operatetime",recordSet.getString("operatetime")); + nodeInfoList.add(nodeInfo); + } + bb.writeLog("查询节点流程"); + }catch (Exception e){ + e.printStackTrace(); + } + bb.writeLog("节点信息-->"+nodeInfoList); + + bb.writeLog("查询出的附件-->"+fj); + String[] arr = fj.split(","); + List> fjList = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + //附件 + String fjSQL="SELECT filerealpath,imagefilename FROM imagefile WHERE imagefileid ="+ arr[i]; + try { + RecordSet recordSet = new RecordSet(); + recordSet.execute(fjSQL); + bb.writeLog("开始附件列表"); + while (recordSet.next()){ + Map fjMap = new HashMap<>(); + String filerealpath = recordSet.getString("filerealpath"); + String imagefilename = recordSet.getString("imagefilename"); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + String newname = imagefilename.substring(0, index2); + String fileNameNoEx = getFileNameNoEx(zipPath); + fjMap.put("filerealpath",filerealpath); + fjMap.put("imagefilename",imagefilename); + fjMap.put("fjUUID",fileNameNoEx); + fjList.add(fjMap); + } + bb.writeLog("查询附件结束 fjList.size()==="+fjList.size()); + }catch (Exception e){ + bb.writeLog("查询附件异常==="+e); + } + } + + mapList.put("ys",1); //页数 + mapList.put("zrz",zrzName); //责任者 部门名称 + mapList.put("jgryName",jgryName); //机构人员中文 + mapList.put("jgryBmName",jgryBmName); //机构人员部门名称 + mapList.put("jgryid",jgryid); //机构人员id + mapList.put("rq",da.replaceAll("-","")); //日期 + mapList.put("kzbs","推送"); // 控制标识 默认推送 + mapList.put("zw",ofdwj); // 正文 + mapList.put("zwofd",zwofdwj); // 正文ofd + mapList.put("nodeInfoList",nodeInfoList); // 节点信息 + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fj",fj); //附件 + }else{ + mapList.put("fj","0"); //附件 + } + if(fj!=null && fj!=""){ + mapList.put("fjList",fjList); //附件 + }else{ + mapList.put("fjList","0"); //附件 + } + +// mapList.put("cld",ofdwj); //处理单 + mapList.put("mj",mjstr); + + bb.writeLog("====用章申请==内部=444=map="+map.toString()); + bb.writeLog("====用章申请==内部=444=maplist="+mapList.toString()); + } + bb.writeLog("====用章申请===444=src="); + bb.writeLog("====用章申请===444=map="+map.toString()); + bb.writeLog("====用章申请===444=maplist="+mapList.toString()); + + String filerealpath = ""; +// String YJnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str; //归档文件依据说明文件夹 +// String GDnewPath = "/home/WEAVER/ecology/DA/FWCB/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String YJnewPath = "/opt/weaver/oadata792/DAGD/YZSQ/"+str; //归档文件依据说明文件夹 + String GDnewPath = "/opt/weaver/oadata792/DAGD/YZSQ/"+str+"/"+time+"-"+requestid; //归档文件正文附件文件夹 + String zipname =str+".zip"; + String zippath = YJnewPath+".zip";//压缩包路径 + // 根据系统的实际情况选择目录分隔符bai(windows下是,dulinux下是/) +// linux下只认正斜杠,为了保证跨平台性,不建议使用反斜杠(在java程序中是转义字符,用\来表示反斜杠) + +// 在内存中创建一个文件对象,注意:此时还没有在硬盘对应目录下创建实实在在的文件 +// File f = new File(YJnewPath); +// bb.writeLog("====用章申请=====创建文件c="+YJnewPath); + bb.writeLog("====用章申请=====创建文件夹成功c="+YJnewPath); + + + File f2 = new File(GDnewPath+"/ww"); + bb.writeLog("====用章申请=====创建文件c="+GDnewPath); + if(f2.exists()) { + bb.writeLog("====用章申请=====创建文件夹="+f2.getAbsolutePath()); + + bb.writeLog("====用章申请=====创建文件夹="+f2.getName()); + bb.writeLog("====用章申请=====创建文件c="+f2.length()); + + bb.writeLog("-----"); + } else { +// 先创建文件所在的目录 + boolean su =f2.getParentFile().mkdirs(); + if(su==true){ + if(fj.length()>0){ + fjFilename(fj, GDnewPath); + } + if(zwofdwj.length()>0){ + fjFilename(zwofdwj, GDnewPath); + } + if(ofdwj.length()>0){ + String filename = filename(ofdwj, GDnewPath); + mapList.put("cld",filename); + } + } + + } + + bb.writeLog("====用章申请=====创建文件夹成功c="+GDnewPath); + //先创建文件夹,之后存放文件,再传递建模进行记录 + CreatXML creatXML = new CreatXML(); + try { + + creatXML.createYJSMXml(YJnewPath,map); + + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("用章申请----依据说明:" + e); + } + try { + creatXML.createGDWJXml(GDnewPath,mapList); + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("用章申请=====归档文件:" + e); + } + + bb.writeLog("====用章申请=====写入xml文件="+src); + bb.writeLog("====用章申请====文件方法="); + + File f1=null; + ZipOutputStream out=null; + String zip = YJnewPath+".zip"; +// try { +// f1= new File(YJnewPath); +// out = new ZipOutputStream(new FileOutputStream( +// YJnewPath+".zip")); +// zip(out,f1,null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + +// try { +// ZipUtil zipUtil = new ZipUtil(); +// zipUtil.zip(YJnewPath,zippath); +// } catch (Exception e) { +// e.printStackTrace(); +// } + zipu(YJnewPath,zippath); + bb.writeLog("====用章申请=====写入xml文件="+src); +// Date date = new Date(); +// String day = new SimpleDateFormat("yyyy-MM-dd").format(date); +// String daytime = new SimpleDateFormat("hh:mm").format(date); + Date date = new Date(); + String day = new SimpleDateFormat("yyyy-MM-dd").format(date); + String daytime = new SimpleDateFormat("hh:mm").format(date); + String da = new SimpleDateFormat("yyyy-MM-dd").format(date).replaceAll("-", ""); + //文件路径,收发文类别 0是收文 1是发文,文件夹名称,归档状态,流程id +// String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('"+zippath+"','"+0+"','"+zipname+"','"+0+"','"+requestid+"','"+day+"','"+daytime+"','"+zrz+"','"+wjbt+"')"; + + String insertsql = "insert into uf_dagd(wjlj,sfwlb,wjjmc,gdzt,lcid,lcgdrq,lcgdsj,ssbm,gdlcm) values('" + zippath + "','" + 1 + "','" + zipname + "','" + 0 + "','" + requestid + "','" + day + "','" + daytime + "','" + zrz + "','" + wjbt + "')"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(insertsql); + recordSet.writeLog("建模台账添加数据"+insertsql); + + return Action.SUCCESS; + } + +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/CreatXML.java b/src/com/engine/workflow/web/danganfiles/DA/util/CreatXML.java new file mode 100644 index 0000000..f64119c --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/CreatXML.java @@ -0,0 +1,456 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.XMLWriter; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; + +import java.io.File; +import java.io.FileOutputStream; +import java.util.*; + +public class CreatXML { + + +// +// public static void main(String[] args) { +// Long start = System.currentTimeMillis(); +// HashMap map = new HashMap(); +// // createGDWJXml("","D:/WEAVER/DA",map); +// // createYJSMXml(); +// System.out.println("运行时间:"+ (System.currentTimeMillis() - start)); +// } + +// public static void main(String[] args) { +// String fileName="1e01r515g45g5g015.zip"; +// String fileNameNoEx = getFileNameNoEx(fileName); +// System.out.println(fileNameNoEx); +// +// } + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + public static boolean isEmpty(String str) { + if ("".equals(str) || str == null) { + return true; + } else { + return false; + } + } + + /** + * 生成xml方法 + */ + public void createGDWJXml(String path, HashMap map) throws Exception { + + BaseBean bs = new BaseBean(); + bs.writeLog("进入xml生成方法---归档文件"); + + bs.writeLog("进入xml生成方法---归档文件---" + map); + + bs.writeLog("进入xml生成方法---归档文件---准备执行sql"); + String fj = map.get("fj").toString(); + + + + bs.writeLog("创建document对象"); + // 1、创建document对象 + Document document = DocumentHelper.createDocument(); + // 2、创建根节点rss + Element root = document.addElement("root"); + // 3、向rss节点添加version属性 + // root.addAttribute("version", "2.0"); + // 4、生成子节点及子节点内容 + Element v1 = root.addElement("电子文件移交存储数据包"); + Element v2 = v1.addElement("文件实体"); + Element w1 = v2.addElement("档号"); + Element w2 = v2.addElement("题名"); + Element w3 = v2.addElement("并列题名"); + Element w4 = v2.addElement("类别"); + Element w5 = v2.addElement("主题词或关键字"); + Element w6 = v2.addElement("人名"); + Element w7 = v2.addElement("文件编号"); + Element w8 = v2.addElement("责任者"); + Element w9 = v2.addElement("保管期限"); + Element w10 = v2.addElement("机构或问题"); + Element w11 = v2.addElement("控制标识"); + Element w12 = v2.addElement("日期"); + Element w13 = v2.addElement("文种"); + Element w14 = v2.addElement("主送"); + Element w15 = v2.addElement("抄送"); + Element w16 = v2.addElement("密级"); + Element w17 = v2.addElement("保密期限"); + Element w18 = v2.addElement("页数"); + Element w19 = v2.addElement("附注"); + Element w20 = v2.addElement("脱机载体编号"); + //正文 稿本块 + Element g21 = v2.addElement("稿本块"); + Element g211 = g21.addElement("稿本"); + Element g2111 = g211.addElement("稿本类型"); + Element g2112 = g211.addElement("稿本文件"); + Element g2113 = g211.addElement("文件标识符"); + + g2111.setText("正文"); + w18.setText("1"); + // g2112.setText("正文文件"); + // g2113.setText("正文标识符"); + + String aq = getfilename(map.get("zw").toString()).get(0).get("gbwj").toString(); + String aq2 = getfilename(map.get("zw").toString()).get(0).get("bsf").toString(); + bs.writeLog("---------------------------正文稿本文件" + aq + "---" + aq2); + + g2112.setText(aq); + String fileNameNoEx = getFileNameNoEx(aq2); + g2113.setText(fileNameNoEx); + //附件稿本块 + bs.writeLog("获取附件"+map.get("fj").toString()); + if(map.get("fj").toString()=="0" && "0".equals(map.get("fj").toString())){ +// Element g311 = g21.addElement("稿本"); +// Element g3111 = g311.addElement("稿本类型"); +// Element g3112 = g311.addElement("稿本文件"); +// Element g3113 = g311.addElement("文件标识符"); +// g3111.setText("附件"); +// g3112.setText(""); +// g3113.setText(""); + bs.writeLog("---------------------------没有附件"); + }else{ + int i = getfilename(map.get("fj").toString()).size(); + for (int o = 0; o < i; o++) { + Element g312 = g21.addElement("稿本"); + g312.addElement("稿本类型").setText("附件"); + g312.addElement("稿本文件").setText(getfilename(map.get("fj").toString()).get(o).get("gbwj").toString()); + g312.addElement("文件标识符").setText(getFileNameNoEx(getfilename(map.get("fj").toString()).get(o).get("bsf").toString())); + } + String zwofd = map.get("zwofd").toString(); + if (!isEmpty(zwofd)){ + bs.writeLog("zwofd不为空-->"+zwofd); + int y = getfilename(zwofd).size(); + if (y>0){ + for (int o = 0; o < y; o++) { + Element g312 = g21.addElement("稿本"); + g312.addElement("稿本类型").setText("附件"); + g312.addElement("稿本文件").setText(getfilename(map.get("zwofd").toString()).get(o).get("gbwj").toString()); + g312.addElement("文件标识符").setText(getFileNameNoEx(getfilename(map.get("zwofd").toString()).get(o).get("bsf").toString())); + } + } + } + } + bs.writeLog("---------------------------附件稿本文件" ); + +// Element g311 = g21.addElement("稿本"); +// Element g3111 = g311.addElement("稿本类型"); +// Element g3112 = g311.addElement("稿本文件"); +// Element g3113 = g311.addElement("文件标识符"); +// g3111.setText("附件"); +// g3112.setText("文件"); +// g3113.setText("uuid"); + //处理单稿本块 + + Element g411 = g21.addElement("稿本"); + Element g4111 = g411.addElement("稿本类型"); + Element g4112 = g411.addElement("稿本文件"); + Element g4113 = g411.addElement("文件标识符"); + g4111.setText("处理单"); + bs.writeLog(map.get("zw").toString()); + g4112.setText(getfilename(map.get("zw").toString()).get(0).get("gbwj").toString()); + g4113.setText(map.get("cld").toString()); + //附件稿本块 +// bs.writeLog("-----------------------处理单稿本文件" +cldname+"(2)"); + + List> nodeInfoList = (List>)map.get("nodeInfoList"); + bs.writeLog("-----进入生成xmlAction-----nodeInfoList-->" +nodeInfoList); + + int size = nodeInfoList.size(); + bs.writeLog("--nodeInfoList--size-->" +size); + + if (size==0){ + Element w22 = v2.addElement("流程跟踪");//需要循环节点信息 + w22.addElement("环节名称"); + w22.addElement("办理人"); + w22.addElement("办理部门"); + w22.addElement("接收时间"); + w22.addElement("当前状态"); + w22.addElement("完成时间"); + }else { + for (int i = 0; i < nodeInfoList.size(); i++) { + //a.id,b.nodename,a.lastname,a.departmentname,a.receivedate,a.receivetime,a.operatedate,a.operatetime + Element w22 = v2.addElement("流程跟踪");//需要循环节点信息 + w22.addElement("环节名称").setText(nodeInfoList.get(i).get("nodename").toString()); + w22.addElement("办理人").setText(nodeInfoList.get(i).get("lastname").toString()); + w22.addElement("办理部门").setText(nodeInfoList.get(i).get("departmentname").toString()); + String receivedate = nodeInfoList.get(i).get("receivedate").toString(); + String receivetime = nodeInfoList.get(i).get("receivetime").toString(); + String receivet = receivedate+" "+receivetime; + bs.writeLog("--接收时间-->" +receivet); + w22.addElement("接收时间").setText(receivet); + String operatedate = nodeInfoList.get(i).get("operatedate").toString(); + String operatetime = nodeInfoList.get(i).get("operatetime").toString(); + String operate = operatedate+" "+operatetime; + bs.writeLog("--完成时间-->" +operate); + String id = nodeInfoList.get(i).get("id").toString(); + if (isEmpty(id)){ + bs.writeLog("--id为空-->" +id); + w22.addElement("当前状态").setText("未完成"); + }else { + bs.writeLog("--id不为空-->" +id); + w22.addElement("当前状态").setText("已完成"); + } + w22.addElement("完成时间").setText(operate); + } + + } + + + + + w1.setText(map.get("dh").toString()); + w2.setText(map.get("bt").toString()); +// w3.setText(""); +// w4.setText(""); +// w5.setText(""); +// w6.setText(""); +// w7.setText(""); + w8.setText(map.get("zrz").toString()); + +// w9.setText(""); + w10.setText(map.get("jghwt").toString()); + // w11.setText("控制"); + w11.setText(map.get("kzbs").toString()); + w12.setText(map.get("rq").toString()); + w13.setText(map.get("wz").toString()); +// w14.setText(""); +// w15.setText(""); + w16.setText(map.get("mj").toString()); +// w17.setText(""); +// w18.setText("1"); +// w19.setText(""); +// w20.setText(""); + Element v3 = v1.addElement("业务实体块"); + Element w31 = v3.addElement("业务实体"); + Element w311 = w31.addElement("机构人员标识符"); + Element w312 = w31.addElement("业务行为"); + Element w313 = w31.addElement("行为时间"); + Element w314 = w31.addElement("文件标识符"); + + w311.setText(map.get("jgryid").toString()); + w312.setText("归档"); + Date date = new Date(); + w313.setText(date.toString()); + w314.setText(fileNameNoEx); + +// w311.setText(""); +// w312.setText(""); +// w313.setText(""); +// w314.setText(""); + + Element v4 = v1.addElement("机构人员实体块"); + Element v41 = v4.addElement("机构人员实体"); + Element v411 = v41.addElement("机构人员标识符"); + Element v412 = v41.addElement("机构名称"); + Element v413 = v41.addElement("人员名称"); + v411.setText(map.get("jgryid").toString()); + v412.setText(map.get("jgryBmName").toString()); + v413.setText(map.get("jgryName").toString()); + if (size==0){ + bs.writeLog("--size==0--机构人员实体块-->" ); + }else { + for (int i = 0; i < nodeInfoList.size(); i++) { + String id = nodeInfoList.get(i).get("id").toString(); + if (isEmpty(id)){ + bs.writeLog("--id为空不插入机构人员数据-->" +id); + }else { + bs.writeLog("--id不为空-->" +id); + Element v42 = v4.addElement("机构人员实体"); + Element v421 = v42.addElement("机构人员标识符"); + Element v422 = v42.addElement("机构名称"); + Element v423 = v42.addElement("人员名称"); + v421.setText(nodeInfoList.get(i).get("id").toString()); + v422.setText(nodeInfoList.get(i).get("departmentname").toString()); + v423.setText(nodeInfoList.get(i).get("lastname").toString()); + } + + } + } + + + +// v411.setText(""); +// v412.setText(""); +// v413.setText(""); + + Element v5 = v1.addElement("实体关系块"); + Element v51 = v5.addElement("实体关系"); + Element v511 = v51.addElement("实体标识"); + Element v512 = v51.addElement("文件标识符"); + v511.setText(map.get("dh").toString()); + v512.setText(fileNameNoEx); + Element v52 = v5.addElement("实体关系"); + v52.addElement("实体标识").setText(map.get("dh").toString()); + v52.addElement("文件标识符").setText(map.get("cld").toString()); + if(map.get("fj").toString()=="0" && "0".equals(map.get("fj").toString())){ +// v511.setText(map.get("dh").toString()); +// v512.setText(fileNameNoEx); + }else { + int y = getfilename(map.get("fj").toString()).size(); + for (int i = 0; i < y; i++) { + Element v53 = v5.addElement("实体关系"); + v53.addElement("实体标识").setText(map.get("dh").toString()); + v53.addElement("文件标识符").setText(getFileNameNoEx(getfilename(map.get("fj").toString()).get(i).get("bsf").toString())); + } + String zwofd = map.get("zwofd").toString(); + if (!isEmpty(zwofd)){ + int z = getfilename(zwofd).size(); + if(z>0){ + for (int i = 0; i < z; i++) { + Element v53 = v5.addElement("实体关系"); + v53.addElement("实体标识").setText(map.get("dh").toString()); + v53.addElement("文件标识符").setText(getFileNameNoEx(getfilename(map.get("zwofd").toString()).get(i).get("bsf").toString())); + } + } + } + + } + + + + bs.writeLog("进入xml生成方法----22-"); + ////文档实体块--文档详细信息 + bs.writeLog("进入xml生成方法"); + + // 5、设置生成xml的格式 + OutputFormat format = OutputFormat.createPrettyPrint(); + // 设置编码格式 + format.setEncoding("UTF-8"); + + + // 6、生成xml文件 + File file = new File(path + "/gdwj.xml"); + file.createNewFile(); + bs.writeLog("进入xml生成方法----33"); + XMLWriter writer = new XMLWriter(new FileOutputStream(file), format); + // 设置是否转义,默认使用转义字符 + writer.setEscapeText(false); + writer.write(document); + writer.close(); + bs.writeLog("生成gdwj.xml成功"); + bs.writeLog("进入xml生成方法----44生成gdwj.xml成功"); + + } + + public void createYJSMXml(String path, HashMap map) throws Exception { + + BaseBean bs = new BaseBean(); + bs.writeLog("进入xml生成方法-----11+依据说明"); + + + bs.writeLog("进入xml生成方法-----22----1+依据说明"); + // 1、创建document对象 + Document document = DocumentHelper.createDocument(); + // 2、创建根节点rss + Element root = document.addElement("root"); + // 3、向rss节点添加version属性 + // root.addAttribute("version", "2.0"); + // 4、生成子节点及子节点内容 + Element v1 = root.addElement("电子文件移交说明及目录描述"); + Element v2 = v1.addElement("目录描述"); + bs.writeLog("依据说明-----"); + Element w1 = v2.addElement("档号"); + Element w2 = v2.addElement("题名"); + Element w3 = v2.addElement("文件编号"); + Element w4 = v2.addElement("责任者"); + Element w5 = v2.addElement("日期"); + Element w6 = v2.addElement("页数"); + bs.writeLog("进入xml生成方法-----33----1+依据说明" + map); + + w1.setText(map.get("dh").toString()); + w2.setText(map.get("bt").toString()); + w3.setText(map.get("bh").toString()); + w4.setText(map.get("zrz").toString()); + w5.setText(map.get("rq").toString()); + w6.setText(map.get("ys").toString()); + + bs.writeLog("进入xml生成方法----222"); + // 5、设置生成xml的格式 + OutputFormat format = OutputFormat.createPrettyPrint(); + // 设置编码格式 + format.setEncoding("UTF-8"); + + + // 6、生成xml文件 + File file = new File(path + "/yjsm.xml"); + file.createNewFile(); + + bs.writeLog("进入xml生成方法----33" + file); + XMLWriter writer = new XMLWriter(new FileOutputStream(file), format); + // 设置是否转义,默认使用转义字符 + writer.setEscapeText(false); + writer.write(document); + writer.close(); + bs.writeLog("生成yjsm.xml成功"); + bs.writeLog("进入xml生成方法-----22----1+生成yjsm.xml成功"); + + } + + /** + * 根据参数信息返回文件名,及标识符 + * @param fj + * @return + */ + public static List getfilename(String fj) { + BaseBean bs = new BaseBean(); + bs.writeLog("==11=进入查询方法-->fj"+fj); + List list = new ArrayList<>(); + // HashMap map = new HashMap(); + String[] arr = fj.split(","); + bs.writeLog("==22=进入查询方法"); + // RecordSet rs3 = new RecordSet(); + for (int i = 0; i < arr.length; i++) { + RecordSet rs3 = new RecordSet(); +// String docdetail = "select top(1) im.filerealpath,do.imagefilename,im.iszip from imagefile im left join docimagefile do on im.imagefileid = do.imagefileid where docid=" + arr[i] + " order by versionid desc"; + String docdetail = "SELECT filerealpath,docimagefile.imagefilename,iszip FROM imagefile LEFT JOIN docimagefile ON imagefile.imagefileid = docimagefile.imagefileid WHERE docid = "+arr[i]+" ORDER BY versionid DESC"; + rs3.execute(docdetail); + HashMap map = new HashMap(); + // List list = new ArrayList<>(); + bs.writeLog("==22=" + docdetail); + if (rs3.next()) { + String filerealpath = rs3.getString("filerealpath"); + String imagefilename = rs3.getString("imagefilename"); + bs.writeLog("==33=" + filerealpath + "---" + imagefilename); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + + String newname = imagefilename.substring(0, index2); + bs.writeLog("==44=" + zipPath + "---" + newname); + map.put("bsf", zipPath); + map.put("gbwj", newname); + + bs.writeLog("==45=" + map); + } + list.add(map); + + } + bs.writeLog("=55==" + list); + return list; + } +} + diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.java b/src/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.java new file mode 100644 index 0000000..0d63e1e --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/DaHttpAction.java @@ -0,0 +1,271 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import weaver.general.BaseBean; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + + +public class DaHttpAction { + + + private static String FILENAME = ""; + private static String SESSION = ""; + private static File file = new File(""); + + public static String getSESSION() { + return SESSION; + } + + public static void setSESSION(String SESSION) { + DaHttpAction.SESSION = SESSION; + } + + public String getFILENAME() { + return FILENAME; + } + + public void setFILENAME(String FILENAME) { + this.FILENAME = FILENAME; + } + + public File getFile() { + return file; + } + + public void setFile(File file) { + this.file = file; + } + + private static CloseableHttpClient httpClient = HttpClients.createDefault(); + + private static final String ADDRESS_URL = "http://10.96.30.95:8083"; + + private static String init() throws IOException { + + BaseBean bs = new BaseBean(); + bs.writeLog("进入归档初始化方法-->文件名称-->"+FILENAME); + bs.writeLog("进入归档初始化方法-->文件名称长度-->"+String.valueOf(file.length())); + String initpath = ADDRESS_URL + "/oa/InitUpload.do"; + bs.writeLog("进入归档初始化方法-->上传接口路径-->"+initpath); + HttpPost httppost = new HttpPost(initpath); + MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create(); + mEntityBuilder.addTextBody("fileName", FILENAME, ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addTextBody("fileSize", String.valueOf(file.length())); + String reStr; + JSONObject jsonObject; + HttpResponse responce; + httppost.setEntity(mEntityBuilder.build()); + try { + bs.writeLog("进入初始化try/catch-->"+httppost); + responce = httpClient.execute(httppost); + bs.writeLog("进入归档初始化方法--执行接口返回结果-->"+responce); + int resStatu = responce.getStatusLine().getStatusCode(); + bs.writeLog("第一个接口--resStatu--->"+resStatu); + bs.writeLog("第一个接口--SC_OK--->"+HttpStatus.SC_OK); + if (resStatu == HttpStatus.SC_OK) { + HttpEntity entity = responce.getEntity(); + bs.writeLog(entity); + reStr = EntityUtils.toString(entity); + bs.writeLog("进入归档初始化方法响应-->"+reStr); + jsonObject = JSONObject.parseObject(reStr); + String session = jsonObject.getString("session"); + Integer code = jsonObject.getInteger("code"); + if (0==code){ + return session; + } + } + }catch (Exception e) { + e.printStackTrace(); + } + return "f"; + } + + private static boolean processData(String depId,String doctype) throws IOException { + BaseBean bs = new BaseBean(); + bs.writeLog("进入上传校验方法-->"); + String upfile = ADDRESS_URL +"/oa/UploadFile.do"; + HttpPost httppost = new HttpPost(upfile); + bs.writeLog("进入上传校验方法接口-->"+upfile); + bs.writeLog("进入上传校验方法--打印FileName-->"+FILENAME); + bs.writeLog("进入上传校验方法--打印Dept-->"+depId); + bs.writeLog("进入上传校验方法--打印doctype-->"+doctype); + MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create(); + mEntityBuilder.addTextBody("FileName", FILENAME, ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addTextBody("OffSoftName", "今易", ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addTextBody("OffSoftVer", "V1.0", ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addTextBody("Dept", depId, ContentType.TEXT_PLAIN.withCharset("utf-8"));//部门id + mEntityBuilder.addTextBody("doctype", doctype, ContentType.TEXT_PLAIN.withCharset("utf-8"));//0收文,1发文 +// mEntityBuilder.addTextBody("Strategy", "sw", ContentType.TEXT_PLAIN.withCharset("utf-8")); + String reStr; + JSONObject jsonObject; + HttpResponse responce; + httppost.setEntity(mEntityBuilder.build()); + responce = httpClient.execute(httppost); + int resStatu = responce.getStatusLine().getStatusCode(); + bs.writeLog("第三个接口--resStatu--->"+resStatu); + bs.writeLog("第三个接口--SC_OK--->"+HttpStatus.SC_OK); + if (resStatu == HttpStatus.SC_OK) { + // get result data + HttpEntity entity = responce.getEntity(); + reStr = EntityUtils.toString(entity); + bs.writeLog("进入上传校验方法打印返回值-->"+reStr); + jsonObject = JSONObject.parseObject(reStr); + return 0 == jsonObject.getInteger("code"); + } else { + return false; + } + + } + + public static boolean uploadFile(String filePath) throws Exception{ + BaseBean bs = new BaseBean(); +// String url = ADDRESS_URL +"/oa/UploadData.do"; +// System.out.println("进入归档上传方法---session---->"+session); +// System.out.println("进入归档上传方法---服务端发布的接口地址---->"+url); +// System.out.println("进入归档上传方法---文件名称---->"+FILENAME); +// System.out.println("进入归档上传方法-->文件名称长度-->"+String.valueOf(file.length())); +// System.out.println("进入归档上传方法----需要传递到服务器的文件路径---"+filePath);//需要传递到服务器的文件路径 +// File file = new File(filePath); +// ZipInputStream zipInputStream = null; +// InputStream inputStream = null; +// try { +// //InputStream in = new FileInputStream(file); +// if(!file.exists()) +// { +// throw new WebApplicationException(404); +// } +// zipInputStream = new ZipInputStream(new FileInputStream(file)); +// if (zipInputStream.getNextEntry() != null) { +// inputStream = new BufferedInputStream(zipInputStream); +// } +// MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); +// entityBuilder.addTextBody("fileName", FILENAME); +// entityBuilder.addTextBody("fileSize", String.valueOf(file.length())); +// entityBuilder.addBinaryBody("file", inputStream, +// ContentType.MULTIPART_FORM_DATA, FILENAME); +// HttpPost httpPost = new HttpPost(url); +// httpPost.setEntity(entityBuilder.build()); +// //执行post接口 +// HttpResponse response = httpClient.execute(httpPost); +// String result=""; +// if (response!=null && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { +// HttpEntity resEntity = response.getEntity(); +// if(resEntity != null){ +// result = EntityUtils.toString(resEntity, Consts.UTF_8); +// } +// } +// System.out.println("进入上传校验方法打印返回值-->"+result); +// JSONObject jsonObject = JSONObject.parseObject(result); +// return 0 == jsonObject.getInteger("code"); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (ClientProtocolException e) { +// e.printStackTrace(); +// } catch (IOException e) { +// e.printStackTrace(); +// } + try { + String url = ADDRESS_URL +"/oa/UploadData.do"; + HttpPost httppost = new HttpPost(url); + FileInputStream fis = new FileInputStream(file); + BufferedInputStream bis = new BufferedInputStream(fis); + int count = 1000000; + byte[] bytes = new byte[count]; + int len = -1; + String reStr; + JSONObject jsonObject; + HttpResponse responce; + HttpEntity entity; + while ((len = bis.read(bytes, 0, count)) != -1) { + MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create(); + mEntityBuilder.addTextBody("fileName", FILENAME, ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addTextBody("fileSize", String.valueOf(len), ContentType.TEXT_PLAIN.withCharset("utf-8")); + mEntityBuilder.addBinaryBody("file", bytes, ContentType.DEFAULT_BINARY, FILENAME); + //mEntityBuilder.addTextBody("Dept", "市委", ContentType.TEXT_PLAIN.withCharset("utf-8")); + httppost.setEntity(mEntityBuilder.build()); + responce = httpClient.execute(httppost); + int resStatu = responce.getStatusLine().getStatusCode(); + + if (resStatu == HttpStatus.SC_OK) { + // get result data + entity = responce.getEntity(); + reStr = EntityUtils.toString(entity); + jsonObject = JSONObject.parseObject(reStr); + bs.writeLog("reStr->"+reStr); + if (0 != jsonObject.getInteger("code")) { + bs.writeLog("上传出错"); + return false; + } + } else { + bs.writeLog("上传出错"); + return false; + } + } + bs.writeLog("上传完成"); + return true; + } finally { + bs.writeLog("上传完成"); + } + } + + + + public static int doit(String filename,String filepath ,String doctype,String depId) throws Exception{ + BaseBean bs = new BaseBean(); + bs.writeLog("点击归档按钮-->filename-->"+filename); + bs.writeLog("点击归档按钮-->filepath-->"+filepath); + int success =9; + DaHttpAction HttpAction = new DaHttpAction(); + HttpAction.setFILENAME(filename); + HttpAction.setFile(new File(filepath)); + bs.writeLog("设置文件名称-->"+FILENAME); + bs.writeLog("设置文件大小-->"+String.valueOf(file.length())); + try { + String session = init(); + if ("f".equals(session)) { + bs.writeLog("初始化出错"); + return 2; + }else { + bs.writeLog("第一个接口执行成功-->文件初始化成功-->session-->"+session); + if (!uploadFile(filepath)) { + bs.writeLog("文件上传出错"); + return 4; + }else { + bs.writeLog("第二个接口执行成功-->文件上传成功"); + bs.writeLog("上传成功"); + if (!processData(depId,doctype)) { + bs.writeLog("处理失败"); + return 5; + } else { + success=0; + bs.writeLog("第三个接口执行成功-->文件验证成功"); + } + } + } + + } finally { + success=0; +// httpClient.close(); + } + return success; + } + + + +} + + + diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.java b/src/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.java new file mode 100644 index 0000000..f73cf6b --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/GDS_Action.java @@ -0,0 +1,99 @@ +package com.engine.workflow.web.danganfiles.DA.util; + + +import com.engine.workflow.web.danganfiles.DA.util.DaHttpAction; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 调用归档的方法,建模表单的按钮触发 + */ +@Path("/inter/file") +public class GDS_Action { + + + + @GET + @Path("/dofilings") + @Produces(MediaType.TEXT_PLAIN) + public String interfiles (@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean bb = new BaseBean(); + String id = request.getParameter("id"); + bb.writeLog("进入方法--归档执行开始" + id); + RecordSet rs = new RecordSet(); + String[] arr = id.split(","); + int i = 10; + for (int y = 0; y < arr.length; y++) { + boolean success = false; + String depidSql="select ssbm from uf_dagd where id="+arr[y]; + String depid =""; + try { + rs.executeQuery(depidSql); + rs.next(); + depid = rs.getString("ssbm"); + bb.writeLog("执行部门语句----"+depidSql); + }catch (Exception e){ + bb.writeLog("执行部门语句失败----"+e); + } + + //查询归档记录表 + String sql = "select * from uf_dagd where id=" + arr[y]; + int gdzt = -1; + try { + rs.executeQuery(sql); + rs.next(); + gdzt = rs.getInt("gdzt"); + bb.writeLog("执行语句----" + sql); + } catch (Exception e) { + bb.writeLog("执行语句失败----" + e); + e.printStackTrace(); + } + + + bb.writeLog("状态信息" + gdzt); + + //判断文件归档状态,0为未归档 + bb.writeLog("归档状态" + gdzt); + if (gdzt == 0) { + + String filename = rs.getString("wjjmc"); + String filepath = rs.getString("wjlj"); + String sfwlb = rs.getString("sfwlb"); + //执行档案归档文件上传方法 + + bb.writeLog("文件相关信息" + filename + "--" + filepath + "--" + sfwlb); + DaHttpAction daHttpAction = new DaHttpAction(); + + try { + bb.writeLog("进入daHttpAction.doit方法"); + i = daHttpAction.doit(filename,filepath,sfwlb,depid); + } catch (Exception e) { + e.printStackTrace(); + } + bb.writeLog("返回信息str" + i); + //将记录表中的未归档状态修改为归档=" + if (i != 0) { + bb.writeLog("归档出问题了----->" + i); + } else if (i == 0) { + String upsql = "update uf_dagd set gdzt =1 where id=" + arr[y]; + RecordSet rs1 = new RecordSet(); + bb.writeLog("---" + upsql); + success = rs1.execute(upsql); + bb.writeLog("上传出boolean----->"+success); + } + + + } + } +//除0 以外的所有返回信息都是错误 + return i + ""; + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/GD_Action.java b/src/com/engine/workflow/web/danganfiles/DA/util/GD_Action.java new file mode 100644 index 0000000..50f5301 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/GD_Action.java @@ -0,0 +1,167 @@ +package com.engine.workflow.web.danganfiles.DA.util; + + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 调用归档的方法,建模表单的按钮触发 + */ +@Path("/inter/file") +public class GD_Action { + + @GET + @Path("/dofiling") + @Produces(MediaType.TEXT_PLAIN) + public String interfile (@Context HttpServletRequest request, @Context HttpServletResponse response){ + BaseBean bb = new BaseBean(); + String id =request.getParameter("id"); + bb.writeLog("进入方法--归档执行开始"+id); + RecordSet rs = new RecordSet(); +// String depidSql="SELECT b.id as depid FROM hrmresource a,hrmdepartment b WHERE a.departmentid = b.id AND a.ID=(select creater FROM workflow_requestbase WHERE REQUESTID=(select lcid from uf_dagd where id="+id+"))"; + String depidSql="select ssbm from uf_dagd where id="+id; + String depid =""; + try { + rs.executeQuery(depidSql); + if ( rs.next()){ + depid = rs.getString("ssbm"); + bb.writeLog("执行部门语句----"+depidSql); + } + }catch (Exception e){ + bb.writeLog("执行部门语句失败----"+e); + } + + //查询归档记录表 + String sql ="select * from uf_dagd where id="+id; + int gdzt =-1; + try { + rs.executeQuery(sql); + if (rs.next()){ + gdzt = rs.getInt("gdzt"); + bb.writeLog("执行语句----"+sql); + } + }catch (Exception e){ + bb.writeLog("执行语句失败----"+e); + e.printStackTrace(); + } + + bb.writeLog("状态信息"+gdzt); + boolean success = false; + int i = 10; + //判断文件归档状态,0为未归档 + bb.writeLog("归档状态"+gdzt); + if(gdzt==0){ + + String filename = rs.getString("wjjmc"); + String filepath = rs.getString("wjlj"); + String sfwlb = rs.getString("sfwlb"); + //执行档案归档文件上传方法 + + bb.writeLog("文件相关信息"+filename+"--"+filepath+"--"+sfwlb); + DaHttpAction daHttpAction = new DaHttpAction(); + + try { + bb.writeLog("进入daHttpAction.doit方法"); + i= daHttpAction.doit(filename,filepath,sfwlb,depid); + } catch (Exception e) { + e.printStackTrace(); + } + bb.writeLog("返回信息str"+i); + //将记录表中的未归档状态修改为归档=" + if(i!=0){ + bb.writeLog("上传出问题了-----"+i); + }else if(i==0){ + String upsql = "update uf_dagd set gdzt =1 where id="+id; + RecordSet rs1 = new RecordSet(); + bb.writeLog("sql--->"+upsql); + success = rs1.executeUpdate(upsql); + bb.writeLog("上传成功-----"+success); + } + } + +//除0 以外的所有返回信息都是错误 + return i+""; + } + + @GET + @Path("/dofilings") + @Produces(MediaType.TEXT_PLAIN) + public String interfiles (@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean bb = new BaseBean(); + String id = request.getParameter("id"); + bb.writeLog("进入方法--归档执行开始" + id); + RecordSet rs = new RecordSet(); + String[] arr = id.split(","); + int i = 10; + for (int y = 0; y < arr.length; y++) { + boolean success = false; + String depidSql="select ssbm from uf_dagd where id="+arr[y]; + String depid =""; + try { + rs.executeQuery(depidSql); + if (rs.next()){ + depid = rs.getString("ssbm"); + bb.writeLog("执行部门语句----"+depidSql); + } + }catch (Exception e){ + bb.writeLog("执行部门语句失败----"+e); + } + + //查询归档记录表 + String sql = "select * from uf_dagd where id=" + arr[y]; + int gdzt = -1; + try { + rs.executeQuery(sql); + if (rs.next()){ + gdzt = rs.getInt("gdzt"); + bb.writeLog("执行语句----" + sql); + } + } catch (Exception e) { + bb.writeLog("执行语句失败----" + e); + e.printStackTrace(); + } + + + bb.writeLog("状态信息" + gdzt); + //判断文件归档状态,0为未归档 + bb.writeLog("归档状态" + gdzt); + if (gdzt == 0) { + String filename = rs.getString("wjjmc"); + String filepath = rs.getString("wjlj"); + String sfwlb = rs.getString("sfwlb"); + //执行档案归档文件上传方法 + bb.writeLog("文件相关信息" + filename + "--" + filepath + "--" + sfwlb); + DaHttpAction daHttpAction = new DaHttpAction(); + + try { + bb.writeLog("进入daHttpAction.doit方法"); + i = daHttpAction.doit(filename,filepath,sfwlb,depid); + } catch (Exception e) { + e.printStackTrace(); + } + bb.writeLog("返回信息str" + i); + //将记录表中的未归档状态修改为归档=" + if (i != 0) { + bb.writeLog("归档出问题了----->" + i); + } else if (i == 0) { + String upsql = "update uf_dagd set gdzt =1 where id=" + arr[y]; + RecordSet rs1 = new RecordSet(); + bb.writeLog("sql--->" + upsql); + success = rs1.executeUpdate(upsql); + bb.writeLog("上传成功更新数据库----->"+success); + } + + } + } +//除0 以外的所有返回信息都是错误 + return i + ""; + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/JY_action.java b/src/com/engine/workflow/web/danganfiles/DA/util/JY_action.java new file mode 100644 index 0000000..899a50a --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/JY_action.java @@ -0,0 +1,422 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; + +import java.io.*; +import java.nio.channels.FileChannel; +import java.util.UUID; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +/** + * ClassName: JY_action + * date: 2020/8/10 17:23 + * author LiLei + * remake 文件处理类,获取ecology存储的附件转换为原文件类型,要注意的是,一般附件都会被重命名为UUID形式并被压缩为zip形式。 + */ + +public class JY_action { + + /** + * zip文件解压 + * + * @param inputFile 待解压文件夹/文件 + * @param destDirPath 解压路径 + */ + public static void zipUncompress(String inputFile, String destDirPath) throws Exception { + File srcFile = new File(inputFile);//获取当前压缩文件 + // 判断源文件是否存在 + if (!srcFile.exists()) { + throw new Exception(srcFile.getPath() + "所指文件不存在"); + } + //开始解压 + //构建解压输入流 + ZipInputStream zIn = new ZipInputStream(new FileInputStream(srcFile)); + ZipEntry entry = null; + File file = null; + while ((entry = zIn.getNextEntry()) != null) { + if (!entry.isDirectory()) { + file = new File(destDirPath, entry.getName()); + if (!file.exists()) { + new File(file.getParent()).mkdirs();//创建此文件的上级目录 + } + OutputStream out = new FileOutputStream(file); + BufferedOutputStream bos = new BufferedOutputStream(out); + int len = -1; + byte[] buf = new byte[1024]; + while ((len = zIn.read(buf)) != -1) { + bos.write(buf, 0, len); + } + // 关流顺序,先打开的后关闭 + bos.close(); + out.close(); + } + } + } + + /** + * 兼容linux的解压 + * + * @param zipFilePath + * @param destDir + */ + public static void unzip(String zipFilePath, String destDir) { + System.setProperty("sun.zip.encoding", System.getProperty("sun.jnu.encoding")); //防止文件名中有中文时出错 + //System.out.println(System.getProperty("sun.zip.encoding")); //ZIP编码方式 + //System.out.println(System.getProperty("sun.jnu.encoding")); //当前文件编码方式 + //System.out.println(System.getProperty("file.encoding")); //这个是当前文件内容编码方式 + + File dir = new File(destDir); + // create output directory if it doesn't exist + if (!dir.exists()) dir.mkdirs(); + FileInputStream fis; + // buffer for read and write data to file + byte[] buffer = new byte[1024]; + try { + fis = new FileInputStream(zipFilePath); + ZipInputStream zis = new ZipInputStream(fis); + ZipEntry ze = zis.getNextEntry(); + while (ze != null) { + String fileName = ze.getName(); + File newFile = new File(destDir + File.separator + fileName); + //System.out.println("Unzipping to " + newFile.getAbsolutePath()); + // create directories for sub directories in zip + new File(newFile.getParent()).mkdirs(); + FileOutputStream fos = new FileOutputStream(newFile); + int len; + while ((len = zis.read(buffer)) > 0) { + fos.write(buffer, 0, len); + } + fos.close(); + // close this ZipEntry + zis.closeEntry(); + ze = zis.getNextEntry(); + } + // close last ZipEntry + zis.closeEntry(); + zis.close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + + /** + * 删除文件 + */ + public static boolean deleteFile(String path) { + BaseBean bs = new BaseBean(); + boolean flag = true; + File file = new File(path); + + if (file.isFile() && file.exists()) { + file.delete(); + flag = true; + bs.writeLog("删除成功"); + } + return flag; + } + + /** + * 重命名文件 + */ + public static void singleChange(String path, String oldName, String newName) { + + File file = new File(path + oldName); //指定文件名及路径 + BaseBean bs = new BaseBean(); + if (file.renameTo(new File(path + newName))) { + bs.writeLog("修改成功!"); + } else { + bs.writeLog("修改失败"); + } + + } + + public static String getFileNameNoEx(String filename) { + + if ((filename != null) && (filename.length() > 0)) { + + int dot = filename.lastIndexOf('.'); + + if ((dot >-1) && (dot < (filename.length()))) { + + return filename.substring(0, dot); + + } + + } + + return filename; + + } + + /** + * 用缓冲区读写,来提升读写效率。 + */ + private static void fileCopyRightWay(String oldPath,String newPath) { + BaseBean bs = new BaseBean(); + bs.writeLog("oldPath-->"+oldPath); + bs.writeLog("newPath-->"+newPath); + + FileWriter fw = null; + FileReader fr = null; + try { + fr = new FileReader(oldPath);//读 + fw = new FileWriter(newPath);//写 + char[] buf = new char[1024];//缓冲区 + int len; + while ((len = fr.read(buf)) != -1) { + fw.write(buf, 0, len);//读几个写几个 + } + } catch (IOException e) { + bs.writeLog(e.getMessage()); + } finally { + if (fr != null) { + try { + fr.close(); + } catch (IOException e) { + bs.writeLog(e.getMessage()); + } + } + + if (fw != null) { + try { + fw.flush(); + fw.close(); + } catch (IOException e) { + bs.writeLog(e.getMessage()); + } + } + } + } + + private static void copyFileUsingFileChannels(File source, File dest) throws IOException { + FileChannel inputChannel = null; + FileChannel outputChannel = null; + try { + inputChannel = new FileInputStream(source).getChannel(); + outputChannel = new FileOutputStream(dest).getChannel(); + outputChannel.transferFrom(inputChannel, 0, inputChannel.size()); + } finally { + inputChannel.close(); + outputChannel.close(); + } + } + + + public static void fjFilename(String fj, String GDnewPath) { + + String[] arr = fj.split(","); + BaseBean bs = new BaseBean(); + bs.writeLog("进入附件方法---111"+GDnewPath); + for (int i = 0; i < arr.length; i++) { + RecordSet rs33 = new RecordSet(); + String docdetail = "select im.filerealpath,d.imagefilename,im.iszip from imagefile im left join docimagefile d on im.imagefileid = d.imagefileid where docid=" + arr[i] + " order by versionid desc"; + boolean su = rs33.execute(docdetail); + + bs.writeLog("语句执行" + su); + bs.writeLog("===" + docdetail); + if (rs33.next()) { + String filerealpath = rs33.getString("filerealpath"); + String imagefilename = rs33.getString("imagefilename"); + int zip = rs33.getInt("iszip"); + + bs.writeLog("获取数据--11--44--" + filerealpath); + bs.writeLog("获取数据--11--44--" + imagefilename); + bs.writeLog("进入正文方法---111====判断是否压缩" + zip); + + if (zip == 1) { + try { + bs.writeLog("进入正文方法--22====是压缩" + zip); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + int index3 = zipPath.lastIndexOf("."); + String zipPath1 = zipPath.substring(0,index3); + String newname = imagefilename.substring(index2); + unzip(filerealpath, GDnewPath); + bs.writeLog(GDnewPath); + singleChange(GDnewPath+"/", zipPath1, zipPath1 + newname); + bs.writeLog("重命名"+zipPath1 + newname); +// bs.writeLog("重命名"+zipPath+ newname); + + } catch (Exception e) { + e.printStackTrace(); + } + } else { + bs.writeLog("进入正文方法---33==OFD==否压缩" + zip); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //未压缩文件名 + String newname = imagefilename.substring(index2); + + bs.writeLog("进入正文方法---344==="+zipPath+"===="+newname); + + + File f = new File(GDnewPath+"/"+zipPath+newname); + + //复制文件到新文件夹下 + if(! f.exists()) { + bs.writeLog("进入正文方法--55==OFD==否压缩" + zip); + InputStream instream = null; + try { + instream = new FileInputStream(new File(filerealpath)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + OutputStream out1 = null; + try { + out1 = new FileOutputStream(new File(GDnewPath+"/"+zipPath+newname)); + bs.writeLog("进入正文方法--66==OFD==否压缩" ); + int read = 0; + byte[] bytes = new byte[2048]; + while((read = instream.read(bytes)) != -1) { + out1.write(bytes, 0, read); + } + out1.flush(); + instream.close(); + out1.close(); + } + catch (Exception e) { + e.printStackTrace(); + + } + + } + } + } + + + } + } + + + + + + + + + + + public static String filename(String fj, String GDnewPath) { + + + String[] arr = fj.split(","); + BaseBean bs = new BaseBean(); + bs.writeLog("进入附件方法---111"+GDnewPath); + UUID uuid = UUID.randomUUID(); + for (int i = 0; i < arr.length; i++) { + RecordSet rs33 = new RecordSet(); + String docdetail = "select im.filerealpath,d.imagefilename,im.iszip from imagefile im left join docimagefile d on im.imagefileid = d.imagefileid where docid=" + arr[i] + " order by versionid desc"; + boolean su = rs33.execute(docdetail); + + bs.writeLog("语句执行" + su); + bs.writeLog("===" + docdetail); + if (rs33.next()) { + String filerealpath = rs33.getString("filerealpath"); + String imagefilename = rs33.getString("imagefilename"); + int zip = rs33.getInt("iszip"); + + bs.writeLog("获取数据--11--44--" + filerealpath); + bs.writeLog("获取数据--11--44--" + imagefilename); + bs.writeLog("进入正文方法---111====判断是否压缩" + zip); + + if (zip == 1) { + try { + bs.writeLog("进入正文方法--22====是压缩" + zip); + + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //压缩文件名 + int index3 = zipPath.lastIndexOf("."); + + String zipPath1 = zipPath.substring(0,index3); + String newname = imagefilename.substring(index2); + unzip(filerealpath, GDnewPath); + + bs.writeLog(GDnewPath); + singleChange(GDnewPath+"/", zipPath1, zipPath1 + newname); + bs.writeLog("重命名"+zipPath1 + newname); + bs.writeLog("重命名"+zipPath+ newname); + String oldPath=GDnewPath+"/"+zipPath1+newname; + bs.writeLog("oldPath-->"+oldPath); + String newPath=GDnewPath+"/"+uuid.toString()+newname; + bs.writeLog("newPath-->"+newPath); +// fileCopyRightWay(oldPath,newPath); + try { + copyFileUsingFileChannels(new File(oldPath), new File(newPath)); + }catch (Exception e){ + e.printStackTrace(); + } + bs.writeLog("执行完重命名-->"); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + bs.writeLog("进入正文方法---33==OFD==否压缩" + zip); + int index = filerealpath.lastIndexOf("/"); + int index2 = imagefilename.lastIndexOf("."); + String zipPath = filerealpath.substring(index + 1); //未压缩文件名 + String newname = imagefilename.substring(index2); + + bs.writeLog("进入正文方法---344==="+zipPath+"===="+newname); + + + File f = new File(GDnewPath+"/"+zipPath+newname); + + //复制文件到新文件夹下 + if(! f.exists()) { + bs.writeLog("进入正文方法--55==OFD==否压缩" + zip); + InputStream instream = null; + try { + instream = new FileInputStream(new File(filerealpath)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + OutputStream out1 = null; + try { + out1 = new FileOutputStream(new File(GDnewPath+"/"+zipPath+newname)); + bs.writeLog("进入正文方法--66==OFD==否压缩" ); + int read = 0; + byte[] bytes = new byte[2048]; + while((read = instream.read(bytes)) != -1) { + out1.write(bytes, 0, read); + } + out1.flush(); + instream.close(); + out1.close(); + bs.writeLog("uuid.toString2()-->"+uuid.toString()); + String oldPath=GDnewPath+"/"+zipPath+newname; + bs.writeLog("oldPath2-->"+oldPath); + String newPath=GDnewPath+"/"+uuid.toString()+newname; + bs.writeLog("newPath2-->"+newPath); +// fileCopyRightWay(oldPath,newPath); + try { + copyFileUsingFileChannels(new File(oldPath), new File(newPath)); + }catch (Exception e){ + e.printStackTrace(); + } + bs.writeLog("执行完重命名2-->"); + } + catch (Exception e) { + e.printStackTrace(); + + } + + } + } + } + + + } + return uuid.toString(); + } + + + + + +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/ZipFile.java b/src/com/engine/workflow/web/danganfiles/DA/util/ZipFile.java new file mode 100644 index 0000000..5134210 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/ZipFile.java @@ -0,0 +1,144 @@ +package com.engine.workflow.web.danganfiles.DA.util;;//package com.api.sfj.DA.util; + +import org.apache.tools.zip.ZipEntry; +import org.apache.tools.zip.ZipOutputStream; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.Properties; +import java.util.zip.CRC32; +import java.util.zip.CheckedOutputStream; + +/** + * 文件压缩 + * zip + */ +public class ZipFile { +// public static void main(String[] args) +// throws Exception { +// File f = new File("D:\\WEAVER\\20200928144159323"); +// ZipOutputStream out = new ZipOutputStream(new FileOutputStream( +// "d:\\WEAVER\\20200928144159323.zip")); +// zip(out, f, null); +// System.out.println("zip done"); +// out.close(); +// } + public static void zip(ZipOutputStream out, File f, String base) + throws Exception { + System.out.println("zipping " + f.getAbsolutePath()); + if (f.isDirectory()) { + File[] fc = f.listFiles(); + if (base != null) + out.putNextEntry(new ZipEntry(base + "/")); + base = base == null ? "" : base + "/"; + for (int i = 0; i < fc.length; i++) { + zip(out, fc[i], base + fc[i].getName()); + } + } else { + out.putNextEntry(new ZipEntry(base)); + FileInputStream in = new FileInputStream(f); + int b; + while ((b = in.read()) != -1) + out.write(b); + in.close(); + } + } + + /** + * linux压缩文件 + * @param srcPathName + * @param zipFileName + */ + public static void zipu(String srcPathName, String zipFileName) + { + File file = new File(srcPathName); + File zipFile = new File(zipFileName); + if (!file.exists()) throw new RuntimeException(srcPathName + "不存在!"); + try + { + FileOutputStream fileOutputStream = new FileOutputStream(zipFile); + CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream, new CRC32()); + ZipOutputStream out = new ZipOutputStream(cos); + Properties pro=System.getProperties(); + String osName=pro.getProperty("os.name"); + if("Linux".equals(osName)||"linux".equals(osName)){ + out.setEncoding("GBK");//设置文件名编码方式 + }else{ + out.setEncoding(System.getProperty("sun.jnu.encoding"));//设置文件名编码方式 + } + + String basedir = ""; + compress(file, out, basedir); + out.close(); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /* + * inputFileName 输入一个文件夹 + * zipFileName 输出一个压缩文件夹 + */ + private static void compress(File file, ZipOutputStream out, String basedir) + { + /* 判断是目录还是文件 */ + if (file.isDirectory()) + { + // System.out.println("压缩:" + basedir + file.getName()); + compressDirectory(file, out, basedir); + } + else + { + // System.out.println("压缩:" + basedir + file.getName()); + compressFile(file, out, basedir); + } + } + + /** 压缩一个目录 */ + private static void compressDirectory(File dir, ZipOutputStream out, String basedir) + { + if (!dir.exists()) return; + + File[] files = dir.listFiles(); + for (int i = 0; i < files.length; i++) + { + /* 递归 */ + compress(files[i], out, basedir + dir.getName() + "/"); + } + } + + /** 压缩一个文件 */ + private static void compressFile(File file, ZipOutputStream out, String basedir) + { + if (!file.exists()) + { + return; + } + try + { + BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); + ZipEntry entry = new ZipEntry(basedir + file.getName()); + Properties pro=System.getProperties(); + String osName=pro.getProperty("os.name"); + if("Linux".equals(osName)||"linux".equals(osName)) { + entry.setUnixMode(644); + } + out.putNextEntry(entry); + int count; + byte data[] = new byte[8192]; + while ((count = bis.read(data, 0, 8192)) != -1) + { + out.write(data, 0, count); + } + bis.close(); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.java b/src/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.java new file mode 100644 index 0000000..587f8a5 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/ZipUtil.java @@ -0,0 +1,67 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +import org.apache.tools.zip.ZipEntry; +import org.apache.tools.zip.ZipOutputStream; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.OutputStream; + +public class ZipUtil { + + /** + * @param inputFileName + * 输入一个文件夹 + * @param zipFileName + * 输出一个压缩文件夹,打包后文件名字 + * @throws Exception + */ + public OutputStream zip(String inputFileName, String zipFileName) throws Exception + { + return zip(zipFileName, new File(inputFileName)); + } + + private static OutputStream zip(String zipFileName, File inputFile) throws Exception + { + ZipOutputStream out = new ZipOutputStream(new FileOutputStream( + zipFileName)); + out.setEncoding("GBK");//解决linux乱码 + zip(out, inputFile, ""); + out.close(); + return out; + } + + private static void zip(ZipOutputStream out, File f, String base) throws Exception + { + if (f.isDirectory()) + { // 判断是否为目录 + File[] fl = f.listFiles(); + // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/")); +// out.putNextEntry(new ZipEntry(base + "/")); + ZipEntry zipEntry=new ZipEntry(base + System.getProperties().getProperty("file.separator")); + zipEntry.setUnixMode(755);//解决linux乱码 + out.putNextEntry(zipEntry); +// base = base.length() == 0 ? "" : base + "/"; + base = base.length() == 0 ? "" : base + System.getProperties().getProperty("file.separator"); + for (int i = 0; i < fl.length; i++) + { + zip(out, fl[i], base + fl[i].getName()); + } + } + else + { // 压缩目录中的所有文件 + // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base)); + ZipEntry zipEntry=new ZipEntry(base); + zipEntry.setUnixMode(644);//解决linux乱码 + out.putNextEntry(zipEntry); + FileInputStream in = new FileInputStream(f); + int b; + while ((b = in.read()) != -1) + { + out.write(b); + } + in.close(); + } + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/demo.java b/src/com/engine/workflow/web/danganfiles/DA/util/demo.java new file mode 100644 index 0000000..ee02233 --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/demo.java @@ -0,0 +1,11 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +/** + * @author:CL + * @date:2023/4/3 15:28 + */ +public class demo { + public static void main(String[] args) { + + } +} diff --git a/src/com/engine/workflow/web/danganfiles/DA/util/test.java b/src/com/engine/workflow/web/danganfiles/DA/util/test.java new file mode 100644 index 0000000..07c74ed --- /dev/null +++ b/src/com/engine/workflow/web/danganfiles/DA/util/test.java @@ -0,0 +1,133 @@ +package com.engine.workflow.web.danganfiles.DA.util; + +import javax.activation.MimetypesFileTypeMap; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.Iterator; +import java.util.Map; + +/** + * Created by Intellij IDEA. + * + * @Date: 2021/11/8 16:26 + * @Author: Judy + * @Description: + */ +public class test { + /** + * 上传图片 + * @param urlStr + * @param textMap + * @param fileMap + * @param contentType 没有传入文件类型默认采用application/octet-stream + * contentType非空采用filename匹配默认的图片类型 + * @return 返回response数据 + */ + public static String formUpload(String urlStr, Map textMap, + Map fileMap, String contentType) { + String res = ""; + HttpURLConnection conn = null; + // boundary就是request头和上传文件内容的分隔符 + String BOUNDARY = "---------------------------123821742118716"; + try { + URL url = new URL(urlStr); + conn = (HttpURLConnection) url.openConnection(); + conn.setConnectTimeout(5000); + conn.setReadTimeout(30000); + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setUseCaches(false); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Connection", "Keep-Alive"); + // conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)"); + conn.setRequestProperty("Content-Type","multipart/form-data; boundary=" + BOUNDARY); + OutputStream out = new DataOutputStream(conn.getOutputStream()); + // text + if (textMap != null) { + StringBuffer strBuf = new StringBuffer(); + Iterator iter = textMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = (Map.Entry) iter.next(); + String inputName = (String) entry.getKey(); + String inputValue = (String) entry.getValue(); + if (inputValue == null) { + continue; + } + strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n"); + strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"\r\n\r\n"); + strBuf.append(inputValue); + } + out.write(strBuf.toString().getBytes()); + } + // file + if (fileMap != null) { + Iterator iter = fileMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = (Map.Entry) iter.next(); + String inputName = (String) entry.getKey(); + String inputValue = (String) entry.getValue(); + if (inputValue == null) { + continue; + } + File file = new File(inputValue); + String filename = file.getName(); + + //没有传入文件类型,同时根据文件获取不到类型,默认采用application/octet-stream + contentType = new MimetypesFileTypeMap().getContentType(file); + //contentType非空采用filename匹配默认的图片类型 + if(!"".equals(contentType)){ + if (filename.endsWith(".png")) { + contentType = "image/png"; + }else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".jpe")) { + contentType = "image/jpeg"; + }else if (filename.endsWith(".gif")) { + contentType = "image/gif"; + }else if (filename.endsWith(".ico")) { + contentType = "image/image/x-icon"; + } + } + if (contentType == null || "".equals(contentType)) { + contentType = "application/octet-stream"; + } + StringBuffer strBuf = new StringBuffer(); + strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n"); + strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"; filename=\"" + filename + "\"\r\n"); + strBuf.append("Content-Type:" + contentType + "\r\n\r\n"); + out.write(strBuf.toString().getBytes()); + DataInputStream in = new DataInputStream(new FileInputStream(file)); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + in.close(); + } + } + byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes(); + out.write(endData); + out.flush(); + out.close(); + // 读取返回数据 + StringBuffer strBuf = new StringBuffer(); + BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); + String line = null; + while ((line = reader.readLine()) != null) { + strBuf.append(line).append("\n"); + } + res = strBuf.toString(); + reader.close(); + reader = null; + } catch (Exception e) { + System.out.println("发送POST请求出错。" + urlStr); + e.printStackTrace(); + } finally { + if (conn != null) { + conn.disconnect(); + conn = null; + } + } + return res; + } +} diff --git a/src/rebel.xml b/src/rebel.xml new file mode 100644 index 0000000..a7abe20 --- /dev/null +++ b/src/rebel.xml @@ -0,0 +1,16 @@ + + + + + + shoufagongwen + + + + + + +