From fd6a8550df3595b579ce84d8e9734c8e28dc1fca Mon Sep 17 00:00:00 2001 From: "zhanglei@ap-leasing.com.cn" Date: Fri, 18 Mar 2022 16:06:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E5=B9=B3=E5=8F=B0=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=EF=BC=88=E8=8D=89=E7=A8=BF=E7=89=88=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessProjectTempInfo.jsp | 28 +-- .../WEB-INF/lib/sunecm-url-encode-1.1.jar | Bin 0 -> 7928 bytes WebContent/WEB-INF/lib/sunecm_outer-1.3.jar | Bin 0 -> 26365 bytes config/icms.properties | 8 +- .../ample/icms/{query => bean}/ImageAttr.java | 2 +- .../icms/{query => bean}/ImageBaseData.java | 49 +++++- .../icms/{query => bean}/ImageBatch.java | 21 +-- src/com/ample/icms/bean/ImageBizInfo.java | 14 ++ src/com/ample/icms/bean/ImageBizType.java | 22 +++ src/com/ample/icms/bean/ImageMetaData.java | 12 ++ .../ample/icms/{query => bean}/ImageRoot.java | 4 +- .../ample/icms/{query => bean}/ImageTree.java | 3 +- src/com/ample/icms/check/ImageCheck.java | 16 ++ src/com/ample/icms/query/ImageMetaData.java | 10 -- src/com/ample/icms/query/ImageQuery.java | 4 +- src/com/ample/icms/scan/ImageScan.java | 27 +++ src/com/ample/icms/scan/ImageUpload.java | 20 +++ src/com/ample/icms/service/ImageService.java | 163 ++++++++++++++++++ src/com/ample/icms/util/PropertiesUtil.java | 38 ++++ src_core/com/tenwa/util/test.java | 146 +++++++++++++--- 20 files changed, 523 insertions(+), 64 deletions(-) create mode 100644 WebContent/WEB-INF/lib/sunecm-url-encode-1.1.jar create mode 100644 WebContent/WEB-INF/lib/sunecm_outer-1.3.jar rename src/com/ample/icms/{query => bean}/ImageAttr.java (98%) rename src/com/ample/icms/{query => bean}/ImageBaseData.java (57%) rename src/com/ample/icms/{query => bean}/ImageBatch.java (78%) create mode 100644 src/com/ample/icms/bean/ImageBizInfo.java create mode 100644 src/com/ample/icms/bean/ImageBizType.java create mode 100644 src/com/ample/icms/bean/ImageMetaData.java rename src/com/ample/icms/{query => bean}/ImageRoot.java (80%) rename src/com/ample/icms/{query => bean}/ImageTree.java (94%) create mode 100644 src/com/ample/icms/check/ImageCheck.java delete mode 100644 src/com/ample/icms/query/ImageMetaData.java create mode 100644 src/com/ample/icms/scan/ImageScan.java create mode 100644 src/com/ample/icms/scan/ImageUpload.java create mode 100644 src/com/ample/icms/service/ImageService.java create mode 100644 src/com/ample/icms/util/PropertiesUtil.java diff --git a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/BusinessProjectTempInfo.jsp b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/BusinessProjectTempInfo.jsp index 9cd2fed8b..caf84bd30 100644 --- a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/BusinessProjectTempInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/BusinessProjectTempInfo.jsp @@ -58,7 +58,8 @@ dwTemp.genHTMLObjectWindow(CurPage.getParameter("FlowUnid")); dwTemp.replaceColumn("customer_info", "", CurPage.getObjectWindowOutput()); String sButtons[][] = { - {"ReadOnly".equals(rightType)?"false":"true","","Button","保存","保存","save()","","","","btn_icon_saveNew",""} + {"ReadOnly".equals(rightType)?"false":"true","","Button","保存","保存","save()","","","","btn_icon_saveNew",""}, + {"ReadOnly".equals(rightType)?"false":"true","","Button","资料清单","资料清单","openFileList()","","","","btn_icon_saveNew",""} }; %><%@ include file="/Frame/resources/include/ui/include_info.jspf"%> @@ -174,15 +175,22 @@ function openFileList(){ let url = getRequestUrl(); - let param = getRequestParam(); - post(url,param); + let params = getRequestParam(); + post(url,params); } function getRequestUrl(){ - let url = RunJavaMethod("","",""); + let url = RunJavaMethod("com.ample.icms.query.ImageQuery","getRequestUrl",""); return url; } function getRequestParam(){ - let param = RunJavaMethod("","",""); + let appCode = 'BQCW-000010'; + let appName = '业务申请'; + let code = 'ECM0002'; + if(("<%=sPhaseNo%>"=="0010") && ("<%=FlowNo%>"=="BusinessApplyFlow" || "<%=FlowNo%>" == "BusinessChangeFlow")){ + code = 'ECM0001'; + } + let busiNo = '<%=sFlowUnid%>'; + let param = RunJavaMethod("com.ample.icms.query.ImageQuery","getRequestParam","appCode="+appCode+",appName="+appName+",code="+code+",busiNo="+busiNo); return param; } /** @@ -190,18 +198,18 @@ * @param URL * @param PARAMS */ - function post(URL, PARAMS) { + function post(URL, param) { let temp_form = document.createElement("form"); temp_form.action = URL; temp_form.target = "_blank"; temp_form.method = "post"; temp_form.style.display = "none"; - for (let param in PARAMS) { + let opt = document.createElement("textarea"); - opt.name = param; - opt.value = PARAMS[param]; + opt.name = 'data'; + opt.value = param; temp_form.appendChild(opt); - } + document.body.appendChild(temp_form); temp_form.submit(); } diff --git a/WebContent/WEB-INF/lib/sunecm-url-encode-1.1.jar b/WebContent/WEB-INF/lib/sunecm-url-encode-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..fc1f2057580a26654f1608a9497e528beff1a647 GIT binary patch literal 7928 zcmb7p1yo#FvvuR{ZXpod-6goYOOW91ZXvh@hu}0Wf#41S8g~MuacEouqyq#3f&AoU zX7bIvneWYCz0O^I*Q(mP?z#7zQ?<6b5*$1#0DuetR4S6G0RF>J0Pp}68Epwx1yx!0 z`!N7O{Wn)+K*fV=BO)S-$%DK7!@z$Sf4Hhhs4B?HXlb*l$eycAj4La#vdv;Bu`*3f zOgCzB%yVzqy0OSBPs!^5Vqs`mFO+@TbK^Aelr*(G^Oz)#R4&oC65>5m(c=kt zUMijA2Xd#zeU4*}Q_}Q^BM>=Hx#aO{_ig_ppZ}dY{6jt#E>7&fXZ*iC(0}vr@N)Ju zceng6o`iq#v~%|GayNIju=+1C6#p1w{KL&p*hK|L46))A=o# zp#cEPqyPZNzeJEU_psvQVY6^F_wdNm_tQ6CAowo2H`!(G8%}1XjEEQ}3*tgg!d8F{ z4PPjPFH)X?Nmt&4!Hddrvwlp&SJ_gZ?m%c# z__U($A|leGdUH`Ro53`Ua%e^PFiqfkBt~v9?W0x*iijOZ%QqWtvgd`3z)4(|<*rgL z-{eV97D!JZFdYOI@R98Y*IY-2+c;GWaWdy`Z5b#l zejXa&7oQ_I457u`7c}OOy2YdIVu7r{?zGf?2tEB0`l>eQRuncI6K07OXvVXLHsl`^ z>NeOU9|GIZ(b0*Ro#VfZXy1z3Ms3CGI-ZZIW;ESXmchpspz+j%$;VX7!9fmunS05W zC3q0W)NEuV8W?KB&AR_(l-l*mb5#J-#Q8^^m@bf=~OK*(;=n1#;?*Of^CHZ zBuR7JwU;*>D_UL=2St*j=|KdOwQ7Kh($oq7$F7hJ zF1V6RksR6#x4MYoY87=6qr*b>jXF9$&q?3r=w-d?53fk};LFCa1FO6MUBlmw3F+=s zuBX-Xa=Vw`YwCQ?@6*4VZELg+mbigmOn9$wk+NXbIK63t<8+5gg)`pa!BO~yjO5YB z%umlqHb7TaT`%=$zdaqof@T9+Jn2bVH!*9WLYd^-jr^7u+ul>eg|6BDhC&R};DOdP z%J^4NAfUW5iT(CTxFd~!{EL?*cR9mhoZnxkn7Plnpt=rWKpPxlr32+OVR6)(;`0p2 zR)-u`xjSMmjZPVyO$ku;bhqMx$cf<^Blj1OLTrsIl>Vs zz(6iCGYj3sF}181Q`^UeA|RzR)l}=v9y0gor|)@GH+-~>y+TSKt>cnM z(tCqKfc0K!?}=nd?e*!A1+=6@TkgC~oTEhgV3su*D%Uj#QPak!9V}f)#l2_QX1`{3 z8@K$15mL^5sK&T^8Wv^S>W}h0399xjjvlhX1sgrqhK56e*Omh^huN*hVyOvlrZ@;% zGj6BtZb_83K+TJ0E={ymQJC{?SU*#Py0w>{r)E`KI>|T$#o;NSN zUM-r6=+nyYr>4_k!-FgIQMlrrn?b#LQHx&B3=Knh2A(KU*gy>9BP*6SIN9uHFf;!0 zH(WI#Y!3Z?i1`|y!a~*4TBiBmKl$QnCL*MGc40r2CR{Iv67ClhV*y0rV*Wh!HkeBT z%t`s`+TvTzC=n*J1a+t0;=;xE~LZu@K>4W9(mN!JWuAT z3LOY_Q#>cBwD3;0#c@Y$`4}&^`GSg#H6dgMW23dK&S{T$^3Lce@DgQt4FwY47-!|I zcD~?Uj}_c8R$l-=jzV|1Up2QBVm>^3F?E$}9wW;&*p(L9956l&j`g0!{lce86-Or{ zg(M(B+6-^c_|5q3vs@{Yy!L)`I(lQEA(%gsd4|@OLQK|mDu_P~sS;|G@_e0#UoVwAxKJ`7wKf7F<=Wm8Ha*5R zmC#N3j@nX+qEcKk)u0?%Ix4_IG?nyLm+3udXWyJ$W4IKGP7;~#g5OaTcb_QPI&=MM zH@9Y7n>pKl()--5>y%GJ!sX~}$`_VsmAb&EbMk0YC=R!^@_k^FHDRf9eF{yaXEx7h zRU)2(kbmMBk4Kr3Rc!j6Ld&^8@@tvxDoevtp((vNTjg{u1bsN5z7k1?kXINDJC&Ox zex6nwg?F--So7k?=X}&!9CLBaQ;a*yGEl}56sEOz3FBH^xowaLf5APPw_XNg&5wF^ zn%TH}K7fc7G`LuGsyMVspVcT8pADDJUTvpPMtRbfn^-8H;OyWwqku)mGHpI23TL_u zG$qJaQmc$g7A;j70xbM5zWU3x93>BfFdtWtwaks=jm8JK;5&EK*Md_St08QYmh$|E zGu&AenOsxPAJ1y1p2^0>fl$0DPsZ2{1G>t+GYVW-Qu@~;87&DFrhsq>G8r0-Gb5dL zI4)&H<5Ze$Z0pLC_T0SHliKq+c7n}wHU8WbvI4ut$}t|0?#}+f8sfb1-DC8(Gfm9# z(g`^&zzVlHKKzB87PHc+bcJ00b)Px!Zn-&=^3UZ|V1tST{R))h$#(I|q^VNf=4w?% zaC4QhgE2U(HfJZB0+-hhO-A_XVcnBhi?%4)^$W^E0m`9b-`o$=TL`(uP?%ip!^*FW zo8s~p+UrW$)Ct>Vvg@s6xg=`+xttz^&ikX;k^PLG!j;0~GKs}&Sy1$BLiNMR8eG#N zcYfBwW#OpFb|Y(zZ4utMnszXBNyOf6WKEVM?nIQ`Vp!xTw|q}Mq;GUR2sZ#DSQCv_} z-A)1X6hi9+d&qoX=8dK5`&hhkB1)XEo!***w+RJYH;h&Mc?tgVg3vh8#An=jWhA`G z21%EvoS_Qax}5>CXBK!DgXXLDKIN2NElhztZu8a)#_K7aqiY+-r8s243A$>#SXD8Sxa~jF;W4n4O>Gn*^qgWy3cOj+1dw3e~Wk z&wA?ZNofVLv3d2zVhx1AA%EAg!@dW37c}~-I7SUKH#~XtHfwDMYN#JK%v^sgV#4fj z<(m~Th)m0;XloUK%x!=KOrW5ic+QVK<`~bB<3w)^a;BLuH$ovmVb#Yv>4nEOGw9J*&VLx&1{a7L(`SArrZ|lha6`>3DKF5 z^W}A*TOGmgcUa_rG&_d7;+^AV)JgPfdefVec;IC;+Dj6lVe4|R19K2in3pcYbw0B7 z+Y?f)PAnt0)=h@m zOt!=t-l;!wE~5AWRlp|bk+YWQ-KKj%2&o_szNN3~)7K_}a-|vA3#!`L1oQa5r~`2H z$K^yDbf^&_vmm(~G3#TCGO@9n#oqNx+biVnNWV8CKdbdgbi5TR7y!WGVMzRcRqN7L z5AB1UvyF_eg_WzPos09&^4%%vohpa}d+41*3gQitp<-OPeh05rT@tnu4jiKt4lW#Z zXS(4ag8+jYY8L{T2s|2W_&_h*C)6&qt!QH6I?wxWYk4OHchJi(m}Y3*q{dA|5VJwK z;bA6VdbRR6jiy1ZmWL1t-a*m~x>l-@og+=Eq~BfjO1YYs&-CEyCp6kV&9mN#Gi2m> z!tVf-5L&+}jJ z08WQ{=nM)3`}kSXg;@sGGZ+JN=yb1f2~nG9CPTXN86wuS(j8mRZAC z@#g?H3DWSom}inKGLqCN+KvR7lL#%Tj$78-z35my*E945fuH*HY;vJ}H`v4^C!HZt zC-Wiw(2ve9V6!lV8-32cPKoXZUafkZ-rsFdhQJVqQ9%&5U=eAJpRQ6wzWkJ5yAK;l zi_FHfDT?#t^eV_l9X?+1VCZ!;7ESzihA@q^vivo6s<|>1qd93+IR1NTFrZuihha}S!nNnP@_3~50$n4hk}A^$L4zu%maJiW2x}jz(Y2rvQ8)Y@nzJ=3 zr3Z^;&4QvKgrp*9obpRfVPJ|zYhL&Xjrb~OLv+2ZD`5fsL)4$qGgXb+IZ@FeND08TPtI4hG@Du^ zN(^HR=2@Yd$|9!_ZkTE=vEd*XEX%;qmoM0@-awegj2x@0$QUEd=9Y-F@C(QF=@A^9 z=Ra1Rmb6r-zs~8^=1V1`pdd@YNzyzqoK&c8cT_OSSx_`I%$rrrYH#WYWKRvg-=F?| ze?8tPr*`l6Ikl=Sx{3hRA?uqXpGry zweeChgg){^38nfgbkb$#mS;~Io*O2V)fge_wdw7~YH+siG6YXLMD~#-c<;Vb7x{V_ zwdzXDMkys%I{8?AI&FgK$}q;Bw*-8=%ETS-d63tb@V?gaDDxQlHM3Htd`}9!8~O?Z z3})OMGr#f`wK`YnsloRghO~_5rD*Xpe=D_|Ce>sKwO?D@;sagBWn{6gv3-7+f;vrCZ&fKdT#=+ za`y!W9(Djo*pCwvc~59!C!vanInzyw@e%Tzi`dVLGBX8e%RuS~q-T_lkS~cCAKg4V z@B;QE+qzQfr4%v8(X{5t!qtMSdD?6jJ;*SmYfqlsI5iJU|3K$$gF><5GJw3 z#li&q$~~u%)a0CX(X^2klc{_vG{WDl1=e$&^Cx=~uN6SNaA0$LeLhz>I*@+Qi-z&I zGUSQjVzr5dDvq$&&b^x!a4;Vnzl8Eyzta{NMNwD(lK-RPtovP^VSP}P(W=kEx#6pQ zcT?%i_OWiRw@ovel=*$OJv=C-Vs12P1n$SfTmv%d^eI5`tn3Z7vmGLLcvGSeuvk(7 z2{vJhqh(Ko&VttC>EAgyo=YtEQ`*fjmlD2p-C%=~!APBnnUBHr#O&tm&R>V4S8XFu zsVr}(=B4%Q>ws=)oEXvFQ+=#8X&5dw2GhUU?(Dl)icHOni%NV)i2smE{5T-C3p0?Y zTMAd8#)jd&Qbw}Q+=`h|(mS@4dn|3HxuED-%$fIDi zx5^mxD#j#>1CO23%ZWE43YcTYDWAE@TblL9BVX$gaDIGmq4{sPGTncZ9 z3q$DG1`a;Ez~@>y$WxER8^grJ0?!N+;wfU>xeH1*A090BA>USznwQghODy>ed@}M3 zIt+=cCrsKG5C*moUNqs;%<~)Z1UzD|lk+%(JhROCI=dTpt8A6>9Cazw1c7}U?GQ-% zil9t5A1KU?FRTNC?iYxC+$Z`D^XCP+D*oC2>|ufSA_4%M|8jw)D1r1;V80QfUJfn0FFzl4<2K7*FMH-iyzI zyDpmZrijaw=UT-sC@-dYy18J`+p-01nyWjn*1H30@9(d!zyRk>Bm$CnxA^L|XcPn= z0Xm(5PgKKlwO)s--yT&=IB?oh36FDhoC8Y~0;ILNe58WM{NJtkj zUB`nqeMjp1q0tuU+a8#y+nmFs!$jn20{QNNqfmmV!TNP+F((8AgcOOTq!n&5-CkE` zC%3uf22b#3_YNGySD9os^2!4Fc&c1HWjBvF2duxboY<%5Q>39m0@oWd8$gzm94SKG z-!BwRyB{BYY+*$MZU@L9Oylq1J92!wbZ0=?-{k{E%rAScayhhPGbXdj)puC$%`s3nxKD4ft#cvovf=4cj|G8px&+5+F2q z(pY5Pw7OCVpDgjRTE1_`PMd*3q^X6GgaL^EnlC%B91_rFDWAXE+lz?Ij~o_G)vwae z0U?C&g>Kbpyp++WUkqmnt<4ghbH%trCs~<39!$||dHLqlcTm&JuVr2Vfd(nB_62J7 zoSUxXuxQ5M-KC0M6uMrul8jv@EIrHdc#lQ{f7xoT+FU~5WZnfizwxIQ7VxMh)ZVdH z+lk!N6sU}fAdYP1&8HZFX>5^^#IBfOWNBNivllG89h9i{hVmd)ddh<M*E)!P)Iw6fq2kTtj!z$Rq{c}F&80DW{;CXVq71CK;%*(EcA7m6?eVl= zzD$Igv=eS=dL1gl;Vi3nnYHTGq!B^#@rP_asAN{^{O}}DP1NUcLCd`4+R*X$jgQB2 zTfmUb&w*912Z=iW?RGMF#Gqd*1(fOD+Ak30dB(M z=u17=xD5upngw~>>O{TBQ@#(4 zvo1d1n0W0w%(1=o45S>b3euL&G~psQ3uZxO#Fuz!yHA%gw1A6!Teed`ad z-y{E168mS2AEMYV4B>yo_(LN5XQ&?{*)J&X{|o95$?SK;zZcDZ$1DkL`J5I{{4sd=b8J{d9AL5@Nm=v0O$|DzK4UKitNYT{{u7#px^)i literal 0 HcmV?d00001 diff --git a/WebContent/WEB-INF/lib/sunecm_outer-1.3.jar b/WebContent/WEB-INF/lib/sunecm_outer-1.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..20846b19b6e66bf1a3aa6b049a5613c1a6ca0e7c GIT binary patch literal 26365 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 v^WEZ)BM5#e4&55T?7q%##^ imageBatchs ; +} diff --git a/src/com/ample/icms/query/ImageRoot.java b/src/com/ample/icms/bean/ImageRoot.java similarity index 80% rename from src/com/ample/icms/query/ImageRoot.java rename to src/com/ample/icms/bean/ImageRoot.java index 28a51f67f..e933fc91b 100644 --- a/src/com/ample/icms/query/ImageRoot.java +++ b/src/com/ample/icms/bean/ImageRoot.java @@ -1,10 +1,12 @@ -package com.ample.icms.query; +package com.ample.icms.bean; import com.thoughtworks.xstream.annotations.XStreamAlias; @XStreamAlias("root") public class ImageRoot { + @XStreamAlias("BASE_DATA") private ImageBaseData imageBaseData; + @XStreamAlias("META_DATA") private ImageMetaData imageMetaData; public ImageRoot(ImageBaseData imageBaseData, ImageMetaData imageMetaData) { diff --git a/src/com/ample/icms/query/ImageTree.java b/src/com/ample/icms/bean/ImageTree.java similarity index 94% rename from src/com/ample/icms/query/ImageTree.java rename to src/com/ample/icms/bean/ImageTree.java index f5c7389e4..985b87a72 100644 --- a/src/com/ample/icms/query/ImageTree.java +++ b/src/com/ample/icms/bean/ImageTree.java @@ -1,9 +1,10 @@ -package com.ample.icms.query; +package com.ample.icms.bean; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import java.util.List; + @XStreamAlias("VTREE") public class ImageTree { diff --git a/src/com/ample/icms/check/ImageCheck.java b/src/com/ample/icms/check/ImageCheck.java new file mode 100644 index 000000000..806ae5dde --- /dev/null +++ b/src/com/ample/icms/check/ImageCheck.java @@ -0,0 +1,16 @@ +package com.ample.icms.check; + +import com.ample.icms.service.ImageService; + +public class ImageCheck extends ImageService { + public void getResult(){ + String result = doPost(); + if(result.contains("200")){ + //true + }else if(result.contains("-1")){ + //error + }else{ + //false + } + } +} diff --git a/src/com/ample/icms/query/ImageMetaData.java b/src/com/ample/icms/query/ImageMetaData.java deleted file mode 100644 index 63419c284..000000000 --- a/src/com/ample/icms/query/ImageMetaData.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.ample.icms.query; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import java.util.List; - -@XStreamAlias("META_DATA") -public class ImageMetaData { - public List imageBatchs; -} diff --git a/src/com/ample/icms/query/ImageQuery.java b/src/com/ample/icms/query/ImageQuery.java index 46bfa33a6..f9a223bca 100644 --- a/src/com/ample/icms/query/ImageQuery.java +++ b/src/com/ample/icms/query/ImageQuery.java @@ -1,5 +1,7 @@ package com.ample.icms.query; -public class ImageQuery { +import com.ample.icms.service.ImageService; + +public class ImageQuery extends ImageService { } diff --git a/src/com/ample/icms/scan/ImageScan.java b/src/com/ample/icms/scan/ImageScan.java new file mode 100644 index 000000000..b7ddb3bb6 --- /dev/null +++ b/src/com/ample/icms/scan/ImageScan.java @@ -0,0 +1,27 @@ +package com.ample.icms.scan; + +import com.ample.icms.bean.ImageBaseData; +import com.ample.icms.service.ImageService; + +public class ImageScan extends ImageService { + private String oneBatch; + @Override + public void addBaseData(){ + base = new ImageBaseData(); + base.setUserCode("admin"); + base.setUserName("admin"); + base.setOrgCode("0005"); + base.setComCode("0005"); + base.setOrgName("安鹏国际融资租赁(深圳)有限公司"); + base.setRoleCode("admin"); + base.setOneBatch(oneBatch); + } + public String getOneBatch() { + return oneBatch; + } + + public void setOneBatch(String oneBatch) { + this.oneBatch = oneBatch; + } + +} diff --git a/src/com/ample/icms/scan/ImageUpload.java b/src/com/ample/icms/scan/ImageUpload.java new file mode 100644 index 000000000..4e7023d75 --- /dev/null +++ b/src/com/ample/icms/scan/ImageUpload.java @@ -0,0 +1,20 @@ +package com.ample.icms.scan; + +import com.sunyard.insurance.ecm.socket.client.AutoScanApi; + +public class ImageUpload { + public void doUpload(){ + String zipPath = "C:/Users/ivanl/Desktop/影像系统/ECM4.0Demo/ECM4.0Demo/第三方上传/1111.zip"; + try { + // " sunyard#licenseKey" :sunyard为接入系统ID,licenseKey为接入系统授权密钥 + AutoScanApi autoScanApi = new AutoScanApi("192.168.7.71",8081,"anpeng#IU2VHdejDpUFzhoeT7tUSII3"); +// // "10I" : 业务类型 +// // zipPath :要上传批次文件的zip包的路径 +// // returnMsg : 第三方上传的返回状态 + String returnMsg = autoScanApi.ScanImageFile("FBO2022031100000001", zipPath); + System.out.println(returnMsg); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/com/ample/icms/service/ImageService.java b/src/com/ample/icms/service/ImageService.java new file mode 100644 index 000000000..1fb2f7c5c --- /dev/null +++ b/src/com/ample/icms/service/ImageService.java @@ -0,0 +1,163 @@ +package com.ample.icms.service; + +import com.ample.icms.bean.ImageBaseData; +import com.ample.icms.bean.ImageBatch; +import com.ample.icms.bean.ImageMetaData; +import com.ample.icms.bean.ImageRoot; +import com.ample.icms.util.PropertiesUtil; +import com.sunyard.insurance.encode.client.EncodeAccessParam; +import com.thoughtworks.xstream.XStream; +import org.apache.log4j.Logger; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.SimpleHttpConnectionManager; +import org.apache.commons.httpclient.methods.PostMethod; + +public class ImageService { + public Logger logger = Logger.getLogger(this.getClass()); + protected String appCode; + protected String appName; + protected String code; + protected String busiNo; + protected ImageBaseData base; + protected ImageBatch batch; + protected ImageMetaData metaData; + public void addBaseData(){ + base = new ImageBaseData(); + base.setUserCode("admin"); + base.setUserName("admin"); + base.setOrgCode("0005"); + base.setComCode("0005"); + base.setOrgName("安鹏国际融资租赁(深圳)有限公司"); + base.setRoleCode("admin"); + } + public void addBatch(){ + batch = new ImageBatch(); + batch.setAppCode(this.appCode); + batch.setAppName(this.appName); + batch.setBusiNo(this.busiNo); + } + public void addMetaData(){ + metaData = new ImageMetaData(); + metaData.imageBatchs = new ArrayList<>(); + metaData.imageBatchs.add(batch); + } + public ImageRoot createData(){ + addBaseData(); + addBatch(); + addMetaData(); + ImageRoot root = new ImageRoot(base,metaData); + return root; + } + public String getRequestXML(){ + XStream xs = new XStream(); + xs.processAnnotations(ImageRoot.class); + String xml = xs.toXML(createData()); + xml = xml.replace("__","_"); + xml = "\n" + xml; + logger.info("\n"+xml+"\n"); + return xml; + } + + public String transformXMLtoParam(String code ,String xml) throws Exception { + int time = Integer.parseInt(PropertiesUtil.get("useful_life")); + String secretKey = PropertiesUtil.get("secret_key"); + String param = EncodeAccessParam.getEncodeParam("format=xml&code="+code+"&xml="+xml, time, secretKey); + return param; + } + + public String doPost(){ + String result="0000"; + PostMethod postMethod = null; + HttpClient httpClient = null; + try { + postMethod = new PostMethod(PropertiesUtil.get("secret_key")); + // 设置格式 + postMethod.getParams().setContentCharset("UTF-8"); + postMethod.setParameter("data", getRequestParam()); + // ICMS影像系统通过referer来验证白名单,所以必须将ip填写在这里 + //todo + postMethod.setRequestHeader("Referer", "http://172.16.20.212/imaging"); + httpClient = new HttpClient(); + // 执行postMethod + int statusCode = httpClient.executeMethod(postMethod); + System.out.println("结果状态:"+statusCode); + if (statusCode == HttpStatus.SC_OK) { + byte[] bodydata = postMethod.getResponseBody(); + //取得返回值 + result = new String(bodydata, "UTF-8"); + System.out.println("影像系统返回结果:" + result); + } + }catch (HttpException e) { + //协议发生异常,URL不合法请检查URL! + e.printStackTrace(); + } catch (IOException e) { + //请检查网络是否通畅,检查网线是否插好! + e.printStackTrace(); + } catch(Exception e){ + e.printStackTrace(); + }finally { + if (postMethod != null) { + try { + postMethod.releaseConnection(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (httpClient != null) { + try { + ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); + } catch (Exception e) { + e.printStackTrace(); + } + httpClient = null; + } + } + return result; + } + + public String getRequestUrl(){ + return PropertiesUtil.get("url"); + } + + public String getRequestParam() throws Exception { + return transformXMLtoParam(this.code,this.getRequestXML()); + } + + public String getAppCode() { + return appCode; + } + + public void setAppCode(String appCode) { + this.appCode = appCode; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getBusiNo() { + return busiNo; + } + + public void setBusiNo(String busiNo) { + this.busiNo = busiNo; + } +} diff --git a/src/com/ample/icms/util/PropertiesUtil.java b/src/com/ample/icms/util/PropertiesUtil.java new file mode 100644 index 000000000..cace56276 --- /dev/null +++ b/src/com/ample/icms/util/PropertiesUtil.java @@ -0,0 +1,38 @@ +package com.ample.icms.util; + +import com.amarsoft.are.ARE; + + +import java.io.IOException; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.ConcurrentHashMap; + +public class PropertiesUtil { + private static Map attributes; + + public static void load() { + attributes = new ConcurrentHashMap(); + Properties prop = new Properties(); + try { + prop.load(PropertiesUtil.class.getResourceAsStream("/icms.properties")); + for(Map.Entry entry : prop.entrySet()) { + if(entry.getKey() == null || entry.getValue() == null) { + continue; + } + attributes.put(entry.getKey().toString(), entry.getValue().toString()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void destroy() { + if(attributes != null) attributes.clear(); + } + + public static String get(String propName) { + if(attributes == null) load(); + return attributes.get(propName); + } +} diff --git a/src_core/com/tenwa/util/test.java b/src_core/com/tenwa/util/test.java index 750066547..36807e4e3 100644 --- a/src_core/com/tenwa/util/test.java +++ b/src_core/com/tenwa/util/test.java @@ -1,31 +1,133 @@ package com.tenwa.util; -import com.tenwa.flow.treeview.action.BaseInitTreeView; +import com.ample.icms.query.*; +import com.sunyard.insurance.ecm.socket.client.AutoScanApi; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.SimpleHttpConnectionManager; +import org.apache.commons.httpclient.methods.PostMethod; +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; -import jbo.app.tenwa.doc.LB_DOCATTRIBUTE; -import jbo.app.tenwa.doc.LB_DOCRELATIVE; +import java.io.File; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; public class test { + public static void main(String[] args){ + String zipPath = "C:/Users/ivanl/Desktop/11111.zip"; + try { + // " sunyard#licenseKey" :sunyard为接入系统ID,licenseKey为接入系统授权密钥 + AutoScanApi autoScanApi = new AutoScanApi("192.168.7.71",8088,"anpeng#IU2VHdejDpUFzhoeT7tUSII3"); +// // "10I" : 业务类型 +// // zipPath :要上传批次文件的zip包的路径 +// // returnMsg : 第三方上传的返回状态 + String returnMsg = autoScanApi.ScanImageFile("BQCW-000010", zipPath); + System.out.println(returnMsg); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void main1(String[] args) { + ImageQuery query = new ImageQuery(); + query.setAppCode("BQCW-000010"); + query.setAppName("业务申请"); + query.setBusiNo("FBO2022031100000001"); + query.setCode("ECM0013"); - public static void main(String[] args) { - String sql = "select se.seriesid,se.seriesname from (" - + "SELECT seriesid,max(seriesname) seriesname,max(brandid) brandid FROM vi_car_data where 1=1 group by seriesid" - + ") se WHERE se.seriesname IS NOT NULL AND se.brandid='#brandid' ORDER BY se.seriesname DESC"; - - System.out.println(sql.substring(sql.toUpperCase().lastIndexOf("WHERE"), sql.length())); - System.out.println(sql.substring(0, sql.toLowerCase().lastIndexOf("where"))); - - - sql = "SELECT DISTINCT O.ID, O.DOC_NAME,r.id " + "FROM O, " - + LB_DOCRELATIVE.CLASS_NAME + " R " - + "WHERE O.RELATIVE_ID = R.ID " - + "AND O.ID NOT IN (SELECT A.LIBRARY_ID FROM " - + LB_DOCATTRIBUTE.CLASS_NAME + " A) " - + "AND R.ObjectType='BusinessApplyFlow' and R.proj_id=:projid " + "AND o.DOC_NATURE='01' " - + "ORDER BY SERIAL_NUM"; - - System.out.println(sql); - + String result=""; + PostMethod postMethod = null; + HttpClient httpClient = null; + try { + String param =query.getRequestParam(); + System.out.println("加密后数据:"+param); + postMethod = new PostMethod("http://192.168.7.71:8081/SunICMS/servlet/RouterServlet"); + // 设置格式 + postMethod.getParams().setContentCharset("UTF-8"); + postMethod.setParameter("data", param); + postMethod.setRequestHeader("Referer", "http://172.16.20.212/imaging"); + httpClient = new HttpClient(); + // 执行postMethod + int statusCode = httpClient.executeMethod(postMethod); + System.out.println("结果状态:"+statusCode); + if (statusCode == HttpStatus.SC_OK) { + byte[] bodydata = postMethod.getResponseBody(); + //取得返回值 + result = new String(bodydata, "UTF-8"); + System.out.println("结果" + result); + } else { + } + }catch (HttpException e) { + //协议发生异常,URL不合法请检查URL! + e.printStackTrace(); + } catch (IOException e) { + //请检查网络是否通畅,检查网线是否插好! + e.printStackTrace(); + } catch(Exception e){ + e.printStackTrace(); + }finally { + if (postMethod != null) { + try { + postMethod.releaseConnection(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (httpClient != null) { + try { + ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); + } catch (Exception e) { + e.printStackTrace(); + } + httpClient = null; + } + } } + + // private static ArrayList bookList = new ArrayList(); + + public static void dom4j() { + // 解析books.xml文件 + // 创建SAXReader的对象reader + SAXReader reader = new SAXReader(); + try { + // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。 + Document document = reader.read(new File("src/res/books.xml")); + // 通过document对象获取根节点bookstore + Element bookStore = document.getRootElement(); + // 通过element对象的elementIterator方法获取迭代器 + Iterator it = bookStore.elementIterator(); + // 遍历迭代器,获取根节点中的信息(书籍) + while (it.hasNext()) { + System.out.println("=====开始遍历某一本书====="); + Element book = (Element) it.next(); + // 获取book的属性名以及 属性值 + List bookAttrs = book.attributes(); + for (Attribute attr : bookAttrs) { + System.out.println("属性名:" + attr.getName() + "--属性值:" + + attr.getValue()); + } + Iterator itt = book.elementIterator(); + while (itt.hasNext()) { + Element bookChild = (Element) itt.next(); + System.out.println("节点名:" + bookChild.getName() + "--节点值:" + bookChild.getStringValue()); + } + System.out.println("=====结束遍历某一本书====="); + } + } catch (DocumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + + + }