From 5c7de5f6dc63674176309137d96216dc41719851 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 15:45:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillAllServiceImpl.java | 2 +- .../java/com/iformall/utils/WordUtil.java | 94 +++++++++--------- .../contract-word-template/settle.docx | Bin 55550 -> 55066 bytes 3 files changed, 49 insertions(+), 47 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 6543e8dd0..e72acfd82 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -844,7 +844,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { } wordDocTableVo.setParams(rowsParams); wordDocTableVo.setTableIndex(0); - wordDocTableVo.setRowIndex(1); + wordDocTableVo.setRowIndex(2); String templatePath = "contract-word-template/settle.docx"; String filepath = fmUploadDir; diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index 6d5b447b3..d253a8ca6 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -99,59 +99,61 @@ public class WordUtil { public static void insertValueToTable(XWPFDocument xwpfDocument, WordDocTableVo wordDocTableVo) throws Exception { List tableList = xwpfDocument.getTables(); XWPFTable table = tableList.get(wordDocTableVo.getTableIndex()); - List rows = table.getRows(); - int rowIndex = wordDocTableVo.getRowIndex(); - XWPFTableRow tmpRow = rows.get(rowIndex); + addOrRemoveRow(table,wordDocTableVo.getParams().size(),wordDocTableVo.getRowIndex()); + int row = wordDocTableVo.getRowIndex(); for (List stringList : wordDocTableVo.getParams()) { - table.addRow(tmpRow,rowIndex); - rowIndex++; - //替换新行内容 - XWPFTableRow tableRow = rows.get(rowIndex); + row++; for (int i = 0; i < stringList.size(); i++) { - tableRow.getTableCells().get(i).setText(stringList.get(i)); + table.getRow(row).getCell(i).setText(stringList.get(i)); } } - tmpRow.getTableCells().get(0).setText("aaaa"); - -// //模板的那一行 -// XWPFTableRow tmpRow = rows.get(2); -// List tmpCells = null; -// List cells2 = null; -// XWPFTableCell tmpCell = null; -// tmpCells = tmpRow.getTableCells(); -// -// String cellText = null; -// String cellTextKey = null; -// Map totalMap = null; -// for (int i = 0, len = params.size(); i < len; i++) { -// Map map = params.get(i); -// // 创建新的一行 -// XWPFTableRow row = table.createRow(); -// // 获取模板的行高 设置为新一行的行高 -// row.setHeight(tmpRow.getHeight()); -// cells = row.a(); -// for (int k = 0, klen = tmpCells.size(); k < klen; k++) { -// tmpCell = tmpCells.get(k); -// XWPFTableCell cell = cells.get(k); -// cellText = tmpCell.getText(); -// if (StringUtils.isNotBlank(cellText)) { -// //转换为mapkey对应的字段 -// cellTextKey = cellText.replace("$", "").replace("{", "").replace("}", ""); -// if (map.containsKey(cellTextKey)) { -// // 填充内容 并且复制模板行的属性 -// setCellText(tmpCell,cell,map.get(cellTextKey)); -// } -// } -// } -// -// } -// // 删除模版行 -// table.removeRow(2); + table.removeRow(wordDocTableVo.getRowIndex()); } + /* + * @param table 对应表格 + * @param add 增加或删除行数 if add>0 增加行 add<0 删除行 + * @param fromRow 添加开始行位置(fromRow-1是模版行) + */ + public static void addOrRemoveRow(XWPFTable table, int add,int fromRow) { + XWPFTableRow row = table.getRow(fromRow-1); + if(add>0) + { + while(add>0) + { + copyPro(row,table.insertNewTableRow(fromRow)); + add--; + } + } + else + { + while(add<0) + { + table.removeRow(fromRow-1); + add++; + } + } + } - - + public static void copyPro(XWPFTableRow sourceRow,XWPFTableRow targetRow) { + //复制行属性 + targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr()); + List cellList = sourceRow.getTableCells(); + if(null==cellList) + { + return ; + } + //添加列、复制列以及列中段落属性 + XWPFTableCell targetCell = null; + for(XWPFTableCell sourceCell:cellList) + { + targetCell = targetRow.addNewTableCell(); + //列属性 + targetCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr()); + //段落属性 + targetCell.getParagraphs().get(0).getCTP().setPPr(sourceCell.getParagraphs().get(0).getCTP().getPPr()); + } + } } \ No newline at end of file diff --git a/mallinkService/src/main/resources/contract-word-template/settle.docx b/mallinkService/src/main/resources/contract-word-template/settle.docx index b5e4b9e329426aef03d04a4083420601127045ab..6739c66a2a4ebeac6ec8b3bb495af7db8f8a205f 100644 GIT binary patch delta 24642 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 F`d=g^L@NLQ delta 25128 zcmc$_X;f2Nmo6MYI%%RPpddt1L8Vja6d@565jhxJdWed&F(A?f2y8%lgs2?h2ueVt zlTLwvbO{g|73n((LP(-WD~UkZLP&1TTX&4A`tGUvPStqp-d`EnWAC}vo@>o#J#)@y zXO@fb-io{#lLU^eXNsq8g+SIVAdu}42qf6|{vF*rzOI27H=h6o>9HlX*b7ouUR4SiM&4Sg!Hb&r%PA)vxbQKx;r+G#^0ixU8)kf*0~~X-`=l-} zyo8=t%-XU@C}w;;4CH#aUq~{tJfM9l)s_5yPtWs{{?l22f7b5FuqE~c^+!IHP;e)`qxK<9<+CEy|aZ_cz(HR(krp-eqTswD62? z&Z+p&)8=2@eE?LDt+z6PXS$)o;y$8Hysp;fI0yM@h#4ygws;|{x1z8dqP7! zQ?$mn;-e4_zrEiRR9v?d@bb!p<@s1@Kx9-8{Zp!@$au-ToMgazFOBEfpaP6 zQpd*G*2=qrUflE!v8pr37yJ1~hgO-&J?}Rbsuaa_tF~)^+rSMJBDxNL3jTBJ*NZX7 z)KlCIABzYN$(;{Ll6Jmzep_Np{1L4?8xK!fK3FPx=9zxM_~%VYmpf(?YZG-D4?kAv zoL`JuK9n1)Zzj{@xm|a4r7zlH%hvka!0Rye;mqAH#CLSAu0EF86V>J@@%TEldhopp zEDu#7+OC3JTNMYGI_;X__NttdTQlOOncJS$?Gqz#0tMJuodEcNn3m-D|8!2#0sx; z?rH1fuPWMeAh;e}K%Y}@Ym3~fW`F!Qvp!GzZ&j49Cm-(sLd>i>VoqjYt!KD87WMxkC7m;p@A&M*X)i!JaW+}cN_QcGm5aj_c8G1YYuy$-Q zO{30bUKjFJF<@KJX~S$^u>!#JYLiX2PiWB2*nUriURlo7iGrkAEjOeJms(Li@Br!;(k!;XQ^eHQP~GTKgNeunlN?ud~`B;7nYae zxt`*gE}Cif{9J+QvpWac!jZwZLnVnt;XNVW){_dN2dlxxZMQRniY<4tA* zc76EQa#e;0fcW~mML79YFmD)f{9J<0>Ey$$XHKeZk(85G-X66oT428IsreR-L(xOu z)gDzu>&bffY~Nlsrl#hCTc`0&H&j~MzwH;cRzGiV<7iG*FDZLfBf&m$bvTD&W9=)C zF*x}6=`TB@dw1iAioNPHNwyYsoHG{@(BY?l+_|1P&s+e;j07B^-!+m^n?F~Vk;)P(b-p3bDu%XWF1d%eMRF$% zk`_~>f;Gp0SJO(ub)=`}AJLff9YeueDinve9l{l9IXI*pNdMeC|8V50M?J~Bq;#wI ziQ`&@N1Yta_suFv+W6gh!&FN+A<-_~7G+bM)^y}uPp7kF-PLQ&vikO}H-0xl`sqrq zD|Ji1&9}VW)0V8+<~(L};>ShNKjfJ@j}HvCR6Ad+51$284n1-2ns3KcvItKOcHTkTbHoy5-ikla1_xl%rGUY_<)T za+k9Vx0qfDdl>iGvP*O^I;Ki4tN+?G=gc;C--^bE4%q`QGY+p)NEquUH{n&Pl&g0V zs|O0&FZwvE{Q(G9R{EBosyu!*@horM!JFOwp=*ivr5Q=zbzY|^;z`m)kJ}@s;$Oz} z#jllJRf@vsJseVe<7TOUCMbw=_1PZ_$|k;;*vA`ZpC2WkNohU%-iSO712Ogg42L0W$^R-)rNlgLo7A#heI)3~h*T4G9P8@Z&VEc!=^;$wZa&*``PMG~bzkbqw+Z7QN z+x_6;ht0r_);0%}tC^!W25hkny}c4T1gP4{Y= z%=YL0MF$tNe5wY=*jesXrkkKj)#z`IH?Y?4=P#r`b`$G#mRVfQN_4B}@o!S#D7CD{ zefIV_4HXSMfpxrV(D||T(f0WHUuC|glb`DC{lDH1YzvO9QL+c-=#f2cxLxOmVuU1Z ze3|o4^jbAjwQG{ZN9HzWzJ6s``$Ntz{qd_%{GOBj6aPf4nd(Q3OG)OtdYMt%{J^Vp ztkK%d!KcKhYbZCg3RF^iib zg{_QNG4E?aJ}X}?{_W;x_+Un5mPOs0wC6yVe8JDo{@lf6x9%G4hhIHECES7E z`=Jmbdxuc2HuvEq+*84qzGApR>mIn(p6yAQs;ac{=Z#>{@d8omwH~O0vzI>z@D3W*}|=h_o0NKm6kG&m(u$ ziVodzdiLt`E4{p~-Ai#jPTYIx*X~#kFKvBfn4-D$_3JeTRKr)Mq!8$?au9xBRy6Kd zzvWHs{k``+C0nOr_h{d&p8Iif~inw*Z6c zf*0InUw#$H*?DOn0aymcmjT{kU|XGJx4JAUDSv$WZ6CUKTGV`W91@2miWY4Dv3^iN zP3MT?`Hj9q!R@_S3wc(qGq(@!Pt%qAjSgH%!aIeg#T(CQ1T^Wif4I}R%ULYOLC)*w zeM;Yp7QOWuq3h-i6RbcuIZG$d3QyAq!{mQ%$ia!wa!_@=6je2yN z%-K?-7$S5#RHCV;EFZvcA1i<0UxcFK;7!$UM!1Jd<}4X_xtWn1mG~%%pXw5Wt{4gD)D5nsp{kcZ=Moc zAyvnL`DuXo4s$DYN+g>d-%O5yp8(BVS^ifyD@dYV4r0Iqc5Mqnz8Z4@=f?6#sfK1gE?p{h`ud&FA+?#W3hJ_PvI4TO}gc_km@7D;3#~GPX$L9dpM%qt|%}Yg8wf10!7Bsg1gdg;xW= zl?p8*I}l?iIqFIxKI^@OaRVkkGl)u-6XccH|fzVuOs#EJaj%G?&P@ zPW`C6RqEuqhSJ7=b79Ge-F;#h0-zu z^fPS;+^1%^QKOLSHOSL;0C)qaDxb1f^DcTrzN>_I(t*u_z)sdErB|lBiRC#HTJfOT zv)sUXN86-fEsGC{hO2v5b%tZ;81>E$)DAi7$T}Z#W}sZ>M>D(-G-ro#uwYmr*iS@J zEvDQ!Wz610xDJRf9-l?YnH==Zof%bCe^+Z4kfNlVa`#ie8Q^-$%kMSqgG$wW_QCp5 z+-Z&t@-^`lM74?!kul#e;6wVGaf*Bh<;4`4=hP=okzspGS+qg7N6<*(c;-^e3$<}Z zP018Yf;w-+hsc>|$QSpmE(u)K?4rQdDK2<#V5pd(l>TFg zJ19k8TL8ieXuQE4SOO;wbauVPW^A;d~D=D48xzOcnD*+&;h+V3K#xW~l{LrA`*PPR?G`8y&IqLbhxb zCU^V;MBJ98$$7k)T?*gJ8`YcS27qR0*^&*5+0gW7`hUK!${vT#(w& zr2pMoj^c=}zSc}ex@}OoO_&$+G*l2Y^dho5dHn=b5K5qbqrjzInGggW_=~IHGG~Oq z3E3=(*o{TgrwJQKt}N@*I;>4ax6`U*f{SETjlarNjOQX{*@5B58T1}j@rcU-+bPP+Hi{KR&e+plQTlZ3(q+~JAnNR z>m$o;#GLp>`~as zCCc)=@%KdC>Inw{_ON)*N`ZM7iIKo1Q6xi3Me4?|_Uc~fZm^dHrT4aX;p1Em4*}?k zvDV&pk`Sm;%-!#-Oc8{e_*Ac$nKbX{pwG&?m1JuuWt$i0o)>Rds~p4KH4n-@O^%RzaA`oN+T>#$3A(IU>o z{}wb=&G`~zj%j@vx&_SG(BkT_Gdh7pl%jqGwUcx2?EucVc-CeA1Bww@soJVNq#D@j zwSJ4Wx;ZhD6&&UjUgT}~X0{UBqq*t0arRtQ7$33|^mVESF#9bAA`y;_j_fQ>$S`R? z*ARSM!0Sf{e|^U?e9RP_BrY?d__kh&5XE&1{4G{@drxlughlDQH*B3}MWEgV;@gHy z#W-szJ2pIfNd#qaJQ7#JT5@3ZMn&k%@*&#_H(!z6fgPTty+azqtDDd^SoKI#IEGbJ zwuGlw0|OC?o{CTALe+^{yzQen7(K<}3OCn@&w>Doy z>;lDlTdDDj`&oL|hNju#sg2Gh)&<rJ(Zax-kwugO;J4}|S- znpKiMPJUi*{`A>1wP)D|kX2pKTX(F2mnvc-z{ovIf^G40I?@DX0TNi_42#7Q)+SGt zdzxjNYHPWf0XHfr=0hanlk}0>Ul^40v?6-N1{awZni>qFXUq^|Da{X&UoWXme1rEv zYl|Q`!jXtHX*&-!2$>ZLD(>P#Vsu-vJ$?cc)A)zkg|Itwr}uoX#a$K#(r(&60RC~? zPGRwAuEv8Qp!H|`ey*%7&ew+$)`^gX5Pa@AJ=-nkr+fBJ>Lv?_2&jCk`a z2u_iHT-@v*Gmpx?gy=uiv`1+e;Wul?V=1pLc1{-YsL;AxyxB!Vu*$`(2R1ugV(!hTQ0 z$BZ9|h2Jwh^#6I6|H#OH_I85z7kJ^n^W?ui_^X3yCIIYl6#Y$qfU|~$BCL|udDd?; zqhL%Bf}Y2?_M0zoWW>UwHn*Q^Ee=7yY06xb>XqF%I*X7UTwtL4;*N zCItZmCnxiFNO<`mF9O4dEUf_C`;ky0HDKcgDU{iZ=R=Zv=YRDHaT<`ne%10JMV0T(7@ z0UMhzK4edh$p7EyKyNpBlP4HF_43~x`CkSG1S97P4vdnB6MP5?1_MDp1m5KNe{DX% zzq;c8i6?+R7vcZO$p131AU-+|iF{kUZI{1E* z?9OtJ9{zWcxlG6*NDh?W&*T018@mcb)5Lk&5o4%b?qEKvfzF4tc~v9EsyKI&%`-Z9 z+xr@k>S^+8ZDeZqlItMB{!J75#E(hp#E+|AUViF3H{f%u9O#2y=R@KQHXrjLGoN|F z0$Nze5^TvsMUcO~EHd4s%(33gxU=~t;(({_#wnb9+S%&OOy1Ucg?de#9xKc%XuT$v zeU`cUf>-E!lZqJIH>6v-(quUB^ELJ1(-j9FOxj77ezUwR^7|+^Two7mjmG0{F`SVcIB0t? zJ~qEH6S@Gz0TLz_@Vb0&xE2c$bGLk<6lY8=FBIMUwv-}W<6!zNMzJ>WrHhutQh1)u zE1{u?51};f4hpBCpKDfv)#EsVrvzSJ=F7wQ-E*dwGza>vP|GQo6ks6A=z-YSVPXN$R+UP z6gt;CTLBDb>L#gbj0B#?sLEIOuOP(09c@an6V1na4cdZ2F)756+#(0Zi$c>bs!f9Z z7i~B1pq}yCn;=VeBZzq$QH>s~W(i0uwzC-}y#nmS`k4gNF?t=7yWg-CG6Q~%{xxAzS%ZYLhR1EG%G1*XzNwMqHfozaLp&&mTnbFX*)Mr0XL5{a5) zT*X&4M24od@#uz@!D4%CbfU^lVDjP51L%E^7?BFfy5K=vdXQ}zc$RbKjp9IArQ@8c zG>Ad_%dc_DYjdp&dv|7DK1Q>jciGKWeHJ3*9)@lbx3N50bFDrS_e-}E1s*(|`r{O0 ztdl-c_tn(SjgxXxA~_9Sl!O6T|k-jC4P3URy3 zb#Z?5ci%@$G|(mEZ9$RYDXiWpj|Fq~6_fiWrW;3biZ%6MARF3-lIC7QNqLr`y*`N%=nkiL*H>CyiU68uI<@r(HOh1)3D+q%3pkO^QGsfiP0N+Gf6`@%W z#Qs=hn~NT6C?mAD6(;6Qb1st$`sK`meqkDoXJ)lS>5!( z93Nh_a<-;l^SE0p7wKimgnC2FFr92bqla-e(J zYm3T)*nGz_N(e;CQZ_WXrfjEfIx3c@!Lt4yPm070EFv8;#v;*)9u&oFV&|aE}A6wcRDN;57-y6~DFp@{lI_3M>quFL;a_>mB zjM)6uCh!)^{gkupT02m!+txdlLBU7t&7KY>Hi8+f@0;oj>h7yuW^C0oKxe*)C?&NQ zT1pb<%5Em}PU19K!R@9{&K2<3OM7g2>$F#ZHkxik=`Zy(E`L@u=?TG9JQba~4Q=jSJFx{xJA%jz3X(Vxtm=)rkRn2g3<*(V6t5A7R$5+(bCcXX(m-u!a2Z?}h{jp^!u!=$N<0*j!KldF{0wHQD*nw7pVTuc7^P z&MxahWw)wb_*G-K&!RSVYFc zddMMU@AH$YHz+L!Fgpz`y@ejI(m2wfGRu7eV{#~a|C4T$8&mjQ`Pqd<<0wb-Qmz48 zmRy0|zQ}y{_7Sx`$AY2UbmZ9Gek(r@`9`4P_@t)OQSn#2K3G*vJo_gye!!dhJkx`_ z&jF9$*L1ErZqdYy4oxI)<$AFSJ0cY7moFT3beSdT)Q(JLYSqv2R0e{1Qx^}3d|2T_ zJ}Xakl4zAC* z2(xj6&Q|nrb*p*wvjwdcsjkE&lVjn&N6?|yf4;+9nwEKURJ4l>Y7{Qih6HcsBBII< z4nb4(kqL6n&fcR+NnPchWa%FONv=`m*6V!UlT1S*-4yAZff`U792mUD)=1!*F*2@? z60MRskZ(9w0RT>dLa)6L+uT^Dsrgd~7|xPKZd(!uvlycJn>~fEy^U=$8OMahP;dgB&uC)CVCWw3}=IBYsGQO^jnJ>^D4)>11>Y2^?7 zCem}*q5^RXG4|kcZDUOX7#64%8soCv zh{@Zbt6Vs4fDra(Ix6z(Oa-FX*FR!qculnHxB?H$gbNY(t(apE;*VmhrN6+5QAb%-#vU zDDQL)0gA`bnHkZfz1S=UCn{Ij^!7TZ*OJwSQfRa-26@Zp2KEvwNy7!{l4_2&vD&9i z^QOqHFQ8L+3QUrFl(jg)$t%RV^h}>Lz#O{rc-7he#?Y#AH`;lWXu1D}eW13lqo5OD zH5=jnWctT>kD!A^B14{OYyvE;J8F;6pdg!82DW7H-7JTTg0_rL2#H2>rm61vp|R5H z9)#nMDMbp=?zvY!F-j@TdNWr3!?l=`4@ zq2gTLAXy@iraXg!=CI*UF$~0Zd;)FkvJ;rxDrfGmLGe`rk>2{&)USgLY(Rm? zRMF-hcH4;ripI@~EyBI zD40l$GHSBxsDT24v9#^dIe zI**Qd8$X|f*0AE6?HjEWvR(lb)Y#BkFD#Ro{v8k%SI%0e%!2iJmPg_ zm$0TXa@XADu`i!_Uu=UFsBteC7?+RVOjKBV9i6@4(xZ19^%zZ;q~cj;+SLhyOm3UE zLlC~iMN=7lYGdP6$Q|3dm=mJD(nbl5XzfLE48r$>iM3xrd5L-+CKn3;oUmb?(p&wy z8P>x;d=^W&Dq0*)X83YD#y?mKjZyCP!A)cw)r<7SqFM!5i1RIcVcWuo)I_{xU`~28 z5W~8mg2)vyIHXqhmfSQ@fhj;EMY_H^+0TXg1|`pV>z@}|7n9I(jMHM zLDAeHGMX$m%iwVU8N)Uj4gv1-)D2WF6Zm&<5#B##$LkOC|Mual1BDb)gUC?EU~;4i zaYkTQsol7DC~`57fw^Yglz{Xo@}faW5-7WgW?B#$-QX+S{SGpV>w;ZQA>DSaK)YM@7)!MfFye!^FQW5|vayO|M z7Q=^NOdZ>vc;5GVG=F7=Bo6Kdib#+B$~;F@)dtFl`b3s~nQI`B<6ZAU#GnJz-lbU$ zmFmX0Q-4m{LcR>~1dG?NKXKN61VEE_cp0C6>>6A=S6`mb+L%g7eNo_5qwv!i<*m3@ z3l~kI_I&IaIqaiTUVboD3aj?S{?57cZjj~v*E9o8e1QgcC+vLMRW<;BM#rEjp*RO% zfu_BbpbzYEm=B)ZI$Z5&$JO!}*6-bAk43iyXUmh{rZPs`3`ww29sNXKwE^Erh!_}b zGlWCw;KgHssT>8>0~u`&fAj~4_N^es=CAX{hsRsrfOFbV1E((e{woC-qkRXQm6(uMr%jlN7@$GiFAey1M?X^uk`fPwR+xta4TLWy}9u$sblJ*ATO2sa?g zZTs_%a>44?AUr2t4~X7R>V&+rI3jzd=GbZ2Zm!;DEbkQd8YgEo!oZs*x37V<${wuV zSXB7lKB=F5a?!*Z&DKDTu9AhGt(v;4?7s}2WdJG;o`6(!#V!!IKCr5?RmNx9j%x&j z1-k`A3P>ym20obTm6VcOd)RARq!*1W#TqBl32}A0I?YTkiC6nEZ zcY-#>l}h&cx7(8jWP~>^rw44uQYe+J8AC$Tgqp%uS|Uu&hqR@OC8$>+NkbWw$wOc# zrpVe=EbSO8g2<$e#WOu91R?JEI{el8T66;vilww0`$YM7}kLp8TfvV=QM+xIoJo6 z*nCJw#WpNp4~DR7>4;>WG?>?EOioz+%BpCC#*&2b_H5q{qzq_ZUO33TMIS?WIfkiN z(B0$9%vc=9r3d%0Srntfvv1f3Bm;yxzVKR6z;3}TZEe6Cbc7g^QCrDEq^zK!s-B~q zwHn?&HmU;(9=cAhhEd3J-lLNTc`Z#DZ3I!Swtt17dARyD9h2uYpZQ`WR;;*W+~xDR zDHwTf*O55P!cH-qP+jD=H%G;oJ&@*^V^ODN|LpYX2g2f2)xnkxI3Ln-5v~9NM_VVg z*=ub}sgv@oiL!|=N)az!&xdxlkmEU-KCz`J0c|~)9m|j^R_iwyFG|;ZryqW1-BGz4 zzKU7Of&3D91ooD&sLfVp-W_!apyFEr@p+g6={U|Qi;)D9G@Ja-W_9>QbYvf7slm2_ ziVThTm&05?x+QNX?lOo3?gT2!IJO$2VlbF;9UrcxMuH9z<0%Z40$NNEo>_>UUM@=P zjE=C1omd~FEZ1!m=gfGocx})`q;!sVydNj!%Ocai;Um9;iLbHQ!zSWvBqjS0SXbsP ztZc39!dgo%Z$C_E4vq|MBYlC`rUZ6xe0ZStwzg^pYifC{7V6v4m)>qZFy4WCK7L0dY$^N&WwDXCNLyz%~5tQ+Mer8M-D`Ssrg z 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 G-TwmD1&k5^ From 3609927ea76d65888ff8c37586955660025a4d99 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 16:27:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillSettleServiceImpl.java | 2 -- .../java/com/iformall/utils/WordUtil.java | 23 +++++-------------- .../main/resources/mapper/WxBillAllMapper.xml | 12 +++++----- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index 9216cc8f8..c2980aab8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -12,8 +12,6 @@ import com.iformall.service.ExcelService; import com.iformall.service.WxBillSettleService; import com.iformall.service.WxFlowService; import com.iformall.utils.DateUtils; -import org.apache.commons.collections.CollectionUtils; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index d253a8ca6..e37f45469 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -3,14 +3,10 @@ package com.iformall.utils; import cn.afterturn.easypoi.word.WordExportUtil; import com.iformall.domain.vo.WordDocTableVo; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.Assert; -import org.springframework.util.CollectionUtils; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; @@ -119,18 +115,13 @@ public class WordUtil { */ public static void addOrRemoveRow(XWPFTable table, int add,int fromRow) { XWPFTableRow row = table.getRow(fromRow-1); - if(add>0) - { - while(add>0) - { + if(add>0) { + while(add>0) { copyPro(row,table.insertNewTableRow(fromRow)); add--; } - } - else - { - while(add<0) - { + }else { + while(add<0) { table.removeRow(fromRow-1); add++; } @@ -141,14 +132,12 @@ public class WordUtil { //复制行属性 targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr()); List cellList = sourceRow.getTableCells(); - if(null==cellList) - { + if(null==cellList) { return ; } //添加列、复制列以及列中段落属性 XWPFTableCell targetCell = null; - for(XWPFTableCell sourceCell:cellList) - { + for(XWPFTableCell sourceCell:cellList) { targetCell = targetRow.addNewTableCell(); //列属性 targetCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr()); diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index 4bbb3b381..3f9189da8 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -56,24 +56,24 @@ shopInfo,bill.comments,bill.price_detail,updatetime,bill.freeze from ( select id,merchant_id,shop_id,tenant_id,'租金' name,1 bill_type_value,'租金' - bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' + bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' price_detail,updatetime,freeze from wx_bill_rent where tenant_id=#{tenantId} and is_preview = 0 union all select id,merchant_id,shop_id,tenant_id,'租赁押金' name,2 bill_type_value,'租赁押金' - bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' + bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime,freeze from wx_bill_rent_deposit where tenant_id=#{tenantId} union all select id,merchant_id,shop_id,tenant_id,'物业费' name,3 bill_type_value,'物业费' - bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' + bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' price_detail,updatetime,freeze from wx_bill_property where tenant_id=#{tenantId} and is_preview = 0 union all select id,merchant_id,shop_id,tenant_id,'物业押金' name,4 bill_type_value,'物业押金' - bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' + bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime,freeze from wx_bill_property_deposit where tenant_id=#{tenantId} union all @@ -85,13 +85,13 @@ from wx_bill_daily where tenant_id=#{tenantId} union all select id,merchant_id,shop_id,tenant_id,name,7 bill_type_value,concat('其他费用-',name) as bill_type,0 as - need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, + need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime, rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime,freeze from wx_bill_other where tenant_id=#{tenantId} union all select id,merchant_id,shop_id,tenant_id,comments as name,8 bill_type_value,concat('其他押金-',comments) as bill_type,0 as - need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, + need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime, rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime,freeze from wx_bill_other_deposit where tenant_id=#{tenantId} ) bill