From d1dda7f9fa356165a64bd0fef484182398dab2b0 Mon Sep 17 00:00:00 2001 From: ForeverSmiYng Date: Mon, 9 Mar 2026 14:35:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=90=E6=9E=9C=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/template20260226001test010.xlsx | Bin 30725 -> 30739 bytes public/标准文件转代码Data.xlsx | Bin 43654 -> 41927 bytes src/sql.ts | 580 +++++++++++++++++++------ 3 files changed, 444 insertions(+), 136 deletions(-) diff --git a/public/template20260226001test010.xlsx b/public/template20260226001test010.xlsx index eb34e3d998eb048a84112bb5b27c0e7a5e77fbe0..4f6ca050344585ff96bd796ad6393eeaa94e0722 100644 GIT binary patch delta 25257 zcmb5!Q+T9Zw>SFO9d&HGW81dTv2CMb+crAv*tTukX2(1Iyld_CzH5Kq!9J<0>aIDf z?t{91^&ex7pljfSYvAe)U@+Shx5k7WU|K+#x&#&QX}F{~*iBvCxj8lxSF*LZC&Fc) zeKUmYY_KvxO{V+QRy!t#*0~XGdq9m!fdh&d7P&vh9hpd81$8-a$XEc(!I9Cd~Ds1AkyP_4ni9gh9K(YX+ zG=1o3=tGQ4-#omqV_y_6;ZruHC!ijNc>)2Bh&_ryJ{?HWRX+Ut(SAzmrX`;ep>;~F zYXO`MF0H7+M(YCB3&THe3_hA0n@{DzNvAdgz^G~4iP(Bo3VvW$^Nu+5d8B5Hiq1{i4v)iu> zzI}5~eWzpiHexJcl32)`Ef*@rKXb(U4l}?eF9iyg&|!~NX9!vi43md$bZ!d<1T+et z0E~bMV4!ugw#rglvndxv@%}vz;J@=}{)2|S!YkSRE6HQ^7l(BYG~OCT_q4th`SVLv z3x5ry$jwba4Z5f8;%bV%$@4=4P3HFlnaMI#=$|?4^`pzIzaOb@m!9^=GTEcV%dIu5 z!>fj|t%sK$rucqLMRqYmN(Kc$sniic5}r=q0n*R;$Lj4hWT@9y7<7t30MDD27P51d z4pgwV`>#yDrSHOzp$I>v;TqQtFrzeFXv|5S5M?8jeF2WcXT?#Et?$b1KjfySS8q=g zA|JA7b?9sUB)Jc2^ttp-sGpcyG>!%}HBW1psOI_^B~b!67IhJugPV`qhX*p^*O2pf z0iWzgcPl(gQ5h=1B6I>hSz;niR$$b7%7sQ9%BXJpn;tC_aUvQXA#)qy>yY}$U|?*C zBU>CiY#m$C;yF2H0!#u;$EdrRdeubEttAM*&c}#LkO?Qb3=fo&(e7O}-a#69UnE_| znGER|&woR0OHol}lEj)2@y&#y(RbnJ0Zu*^5=D1RNHE=Ti$1QBb@Erw%Qm7Z&&JI>#&%`mY8S_G;}B@PqN zy_o3~35!qkkc z$LJ>udu%USr0*(g2ogp^)*2oZM2>=+#{#v36>8!A=~D1-SLx3e^QI;uGV`T^(U3L7 ztq8GUC72nzuP+;Mdf&qH{(WU)8!ia|{5zle`OR`i!gCY(2Ky;nD9#>a00HL4c?|6k z6(gD6Tv{ZZjDaDenk^Zot07^SD8&45(PPLw#!xm^!2N$sJ~7K+VaY!?^$WT> z;t&WZ?Fbdd`b&zk9aEzhUr*}yVjPDy=n!elj8_RdENPQO+aGJvwULB zNklC{i&7%kOa48XOxJ+a=#vHC5<4cB>aiVrMGEe^HOI~1faL*}?UVP?ANGDv<8B{h z0~Y-562ir4U@tU-1FY^V!3uO%yeT2+O`uLFwg^J*>%MQJyxT}%%>~S!S?uTRmf32% zF`BqWnV@^mT;;-=!t96gRRFeiC^ELSEyd2M@zfBT-fpL$cX#spP&sA)T3e!1z=`PmU&I<7FQ&FUC<@W(L(a6JuYz-SH zoRoh-ay6s0m1jFWMEQb+tB69XuwJBE${V^-__s=U9McFSpK9C~dO&aFvC zGchU@>hpZRGx6irLSQs;zoL-PqnO2`?fs>EBIsu5MZEO7TTmn97(gN1@c7QjG3!77 zU3CUo^)V7%xI5=HGt*1PFyq?r-up( zz^!82Z3jNdW8_Yj4M=MHK}f~Pl`>}RPHtvRL%0YYKN7KL7iYM3pZ zxREz89f9omyIJ-2EE>~X?T90sT0V6mI)%J>Yy;~;g&cEdH;V_o2dsDgvp%J>y#vep zBTfA5%8y-^7r^!}2mEYJe2~@Fs@q;$km6`DlR1~Zm4N`s1afsGcZBT+5O~fwLFXz& zmS&-C91FypCN}I(xR7+SVOc88*fl~D2Yyu{@pIqp(w;y3v-ClI_Vh`LxxgP-#TeM2 zqZwH}!~Jm|BE%BwDR7NJOwLx+MURb4mRbP}Ytbb3x&X#yG{v5p%EU73gRo_r^Z^|T zf5MXCpfm)Anx0|*%N*Z|68kFgQrz%?>HSGPX$sN!W;#qOON*u!KHii%pjR)eaRWNm zF~X7Ipqg4<*3`wgC(T)94L(h_i=;c_RiHDoHA*8i&-x20NBwg~CJZ4hslocZ!;FmE zvHF9vAi#()^_YuEO##nYSu3Rg`rzpCvL2lE56rn>*ln!UTOH>5%Koji0X*w7VIuTF z2R_z+eFDS%nx&i6PqB5{-!=_H>$kKH{xnkdkc{hEaRJ=xn`&`OO>dGc$mQoQ%N38q zTDil}wGnlo&if7aknYVlzlm%)1L|PY7w`b?ZGtthMk!{Hr^A*!knYFWYH@7uBJoXb z7u6aU!;mgnoB}R+F1gX|td|6I*yGJHdULKGRu#8v+MwZ8zyqJ4SWW~qo(Tap<{DKl z6^Rvt80u;w`(PSL*scVjm$9kmyzmCaG7<&_80iZ-xs?$Fy|l3^N%oLfND1#nq^y9e zO==n9`2GsLbG^Wsl%FxFD*JKYjf`C?1nx?)B$d@{L=z4-nsVQAMN?O$mP-TKhJYxr zO7Y4}EZwNVhOFGHgO^xCylR47F)*PDfQTgr>J;CUOBt597_&R76=S*m2~!=?M^iB6 z;|f*~0`Y5WA01jD1?NUU_SR1F-@5_!*CsR$6;P@YQ7Y9q7Tol}a|LtDNMs%`zkBCK zxKn=wtUZEeSxjNrB}mojg?Z*ApYWiTjFyXwJbOQa>?J9W_LDEl+Dun;E7>VTJ<+=} z(z1_$or(}t)gu1T-voQYX2hTGT>B<97Zbkmh^?r+C3=cYw_x~ml>>0!*4%I{ z58`88PkgdBeggkZa{uGy>D!WT*O!-P@d$)~F`G3}lnwM_K17;W?fwwFMjQzN8jWOY zjbzdlow@m8B54N<2a**X=eYa~v}0QSHV4)VBB*o`bdkEVCXy<(=b%k@`9x+AV+n}i zn>41UY|o>~*uL2@>?xH&ib$OE6cyrva+q7|b=SA@T93tYzAe?HP<5Xzhnkqt(;wl0 z`IIEvE=n0YH{5SXL@?^t1+|PNzhjf~=nl1eC`u^4Cpu=8j!){|&tqw2)?AL+6CZqwo}5jN4Rt0NMH zWsMlcr-3O9J_d!SfnjQ45iKYPSF6>97O6^FL9FJfQa<1g6J>dj3J27_j4rnfm-;dd zwgiyPNNZt&%BzB&!CdqT>of@oBdN6XEuXC>M`$|LYEuy7j)tNQlMXJ;j|+4GDo(dK zs=W%=T|l8A)XN0zriDQjMQ9^EjLX7}zney`@>7?mr23kyPD#cBF+<(p-lhre6Kxyh zltrz|vC`8r3XEVn- zvIN>m^B5kgfX9TM{rMF(I2^PIs7)`*wmSFMXr{^*T1qQ(Tm050*E}Lv%r7RkzZe9S zyJf;ehJ)1$f&b0jpkRkq6#E6Mug-vdeZX!`-Ox=IZYv$0ZJZ^z&!@M)&pTk6@Xm^P zoeg@!w{<_P1bmdKOZ9rt=`j8r^K3i|sU(J#RooX?q?g!tP?VCQA0oE~pa7${+v0Bo zGqH|^s@I<&j*VT|9Z4R?$|~W9DMw^&6%XRr3X(vYx~4-6Zqg26E=1vL6uMwL`TNm) z0Htrhk4nGci?`o!A<0?Q22toUtaF!70ri&GChU zZ1`q2jfp+{q|s>p<{i0N3nETd2Xc39S{1JPhSkMB)BQ}l(E|_wSXIuiQmr-9g#*a) zN7~J~*Mo|hl0~M$wYTr;MnY_B;JK7|0C8A5D16}v*H0OacpMheeRV-i9Etu+I|3PL zPnH8^hxxczS~29Mjs=$~Ri#N%F?5^}sUR@tY#niaUqOHGv`*?;$z5?5mySaR*dh{k z`7Vi;gCh=>9{qGc>H!aQsnl?1ATv8-!8O0#ED9csYSRCdRk3Po_Y*YV)!}p)J&OJyizq(aC6oCEEP|vj`+))n44At!7 z8x)da(*w^X#I*$nWQS=v_FQE&l z?wSUDt3lP_@F{GzYYi@NC$q&^^WgpH86nsYStaGMGbtesU+H~=^7*N2VFi`rjmSNC zFHLLNt7Y{D2yk5n9?Xq$Nn7z}xQj?~LBa&Lt45GtcD~%Ul7{3c4B2yJ!vP^sgo^V9 z^}qVgPLg+ksE#`aHxB}dH+QW9(tBiZI&NDO`1%f^q~>no-V;IAhL+=PdQ7)`aPx5$ zvc>E5ac~r}_4)R4vIN+gszD42fW?B^L=i7_Ox=Ib6VbR zU>~bG2?0w=NTJ9x2%=*Xa~~sIZBfISQO7(1yx;HVj_`RMaz%hmh@!+ z{*!o}8=a%cuVP&X?w?|v`ERkFq&8){#){I3u>8qy$8TFhqvc|-5DoAhT{j+u@66{z!*t+} zJ14m?!8KwDZ8mIN{SWGgBa+)$7%6c$Vx>W1xo*Joxa4=)c79BeJe6|Q4AuP^3`+#- z4@%x;CrNKcy$>RynrT^fXdd93636tymZpg9gg5YYEx$$X>?lM?kHTwHE>SO}2M(zf zWo0ik4Nhhy<1v6ml9OoXj+t03QA`e9Jda(bZ!;5?qJ8Q9Auv+SW1VItRXIuJAA7U` zQU7!Ah|murR2nR|-oA}!O~3Cp&RoDjG^0ggnbO)`W=-VZ;F=A*ghr?~{)kEe{mgV@ znhglz=Gze_!q8?w%X-lf&mJ3q&x)=#NbM?A@c)7l+!!z4uENAlMxIKutb7M zMUN=oOF*fHI7f2pPLpx~r$q{`?8 z6kItJg|M6qQ5D+w9My)DdC0ND49{x?=1=w7niCw-+U($X_NW>PnmU&L(kx}6H-JT& zO~pwdh1Lhm4@75EdG#@p#raPIT~k`y-U2cvd>@W*Uc=aoIw8g(H}8VZwX`es=|g zHtE1@nhGo>b^F?mRgm735X?duGZkZ{Jhq+W$^{x=K94R0!I+~NBOXX91*G--(zSwg z-YQTCe_FWRqVQ#QaAC0jLO8t|*=~ zXkfZiFht+!h1`NA+Zcqdb~-eL!teYo3I;Rgq17fI$j5mSy<2(+ClZ`O(a< z!_-oMUju-ig&w}tysVO(X=bkbWALYJ2e;biCncy%jdP7umly;ib8MVni|K0oWR9X%Ob2&+r`d3D~SpAj8a!D<4Jx;)&{KMX?{@%M%LIcQR&L+75sTB1kh=i z-}!o(CLE_agBriRw)i0+9E=ErKru0g*@Yef5$i$-$w)R7bJ~*lHb^^6MA(|)UX7sw z0idR8ey6g$)oXVA-O-!9d3|S{O+ioRtX7^0TTN@#ufR<(pk@ZpB{hGj6kKVUO*3_B z)ZO&)ZHxjF__N#fi0EK+J-kHsP=clhc3|YqmmdWh;y%+c>^C@EBfB^FHS13&YJ)lf zXy;C>A!nq17s{3F4_Nh)Z;UY=0<9v-UP)o?gCWSAlFbszptc#~g;7cT0Ekt$9b*LdF z#**vRrUFl~8{NEPAD=owt0}RbYlSmCV-=0Cah!}QxT`oY`SIRb*QKq_#>XEW&?(Z~ zpZl{FwTk6`#&Tcr{}VoJ0*e9PuWb8(00e~b)gf@RqI0!PfJ1;!pvQvzx3H^3&=!iN zkpDwOSx+L_SW6~~-FgX*r4}jyC%Ld<`3&rs2)LFK#OcT;UIek8qIIllYnNN~IVd}g z(EJ9NxC$=zKF#rJed(vp;}zcx&qbt2%@}CJv}l4EjoqL1Z?ZJEdj%sK*7*ZrxZ~C_ zkmE#0G-OYZfGwXn-MeFE9mZs{X~cds4Kj)4xrb#9#;s^ln}einzNRX z7AH2QP|_uj#WQC^+`(_;;+4x#h#RvSjG6<`PeU#S2?Dw%+Z3~q?=2A&;q#VATIxn2 zk0!VvKN)=-Rya4^7AJw!N$Ta65yQB7!c+M}U3yvo=gWAW1o0Pnk?9n~3Is76e5e+W zM`-2-fTL;nR2LtdUd#v#VJSCu!w92(Zt;uyFcYpY&%tQ^x?#iYZj%~XDSF`g&_Cd? zg+b$n+qeAc89bJP00ntUX|`PXd#S^dXu|vBmhz0Lw6*UV9b$2;rm&s|q{Nr+=aUIV zBCRBSc()IUE#y*e^A@a{xcN6KyDh*OHB5*4fCVD!nuI={Ujr(4+V=CIhih{C-j&Mf z-;~6MMp_`rt1pKOi?C;vL*i|UW}8c9H?+iwZyjvcmCXB^gV=9L2AUjh@=qWtT6Pdlg3U(39k$q_ z0vu%OoD}AkMbGEH?fB?W<;SXck2s(mc}>Us(G)@m3_G3_3=1zUGY=a}zhD-g+1ZCu zMR?2=4_c2#?hpQTj&Z!ASN=OEEK6~)dX&CZWb~J$Ia@?xO+E%a{njr-6pl9MOqV#O z(mki}%nr_IjeTjTWe|I^7F-Mtcq~?g$OD}#n*J97%8gTgGn7-f#qKB zI@VnXcb?=|3NkHSN8F$*08cfn51vLTJZThkool>>gEupWgtuN5pdh(Re~{V|R{+CU zMbL(7q$u!6HC*q1t`-{rfN@AA(rO99kPFhq237#g^w@i*;nX)+j9>}*4dS*r;7KjE z5X)7>Q*XOp6o@~KhvkGiBwryqfD91#6w>e}^%C|x236rPToo#*+-<85@zEL}uMerx z8hA28=s<7IwvB9Ij9e#pCQQr`SdACE1V=z#!`>kd6S1Pzc|t@2)V)5rIPF5z9O_pO zDsLXkw{Dyp@gek{Hr+^<-%g{8y zCD^<%O2uf@!Z6H*&~UoY(SL^}WOMJYbH~2J<_?Ouy_+J!>r^s?^vaCp2HTr%2o0k{ z{`0#cZ8!?jn>R-eP~;xK)rh~DF=F{N>00kDr&Fc#;qh?$yfB82ulxCY@P75#i42Hm zj#sl7UAvw;E5YCV>GS8cX$rvo{^xR`#5HBtV!C!kgkZwidsj<5eSb z_3KLmPjCIaBxT&?QXr=ch}i1U7@)Hq;PY@!2hNS?s~qP}Sc0ClaEI{N1Ncw0pR@g2 zRlm^g_~&RT;Rqk~>mQ>QRl$!`!>9WnnwkGaGmb{h(g~;th}(Ct<6=9u5h5r}logbf z2d#4w>QBL`@z}&azv6@;*l*Jua~!X(%UrMGuFOlA!?n@W`+qHjiGqg6tZy$9ZSms# zuKfPv(1pH+2TeXAb0&5D4Dc*s+moN*CQ7-KOBf3H!MMkLe(G^P{>yfV1#K3HO9}0n zb*O8m1}_Aufn0I;$*E4q_N?;)LfHIR6u%%qrld+pY&`9id0SFKm?xv})9oQkeKqyS0*-_+kNc6?b>uxnqq5`fl z3CwOxG99I$t!yVaVSLVV#%=9naLst96y=#~45039kmqUbGB_ zjK6MXU8jk#iih*)Mc|&|O(Di<{7(CkU&HaV?t3|>bgI8ZB%?o~k2k+t`dnqkk`H)( zByOQi996CSQE2FMNCKy2vMhb3`&wQ@ksx zgQLH`%k5Icy(qj%liH=-nKf)EbCHo_(3LQ3_)hcMj9m2j%WtaIHkYdq!+vtl8*C1R3D!iKubf4mdn~=sRTPq!4O-zj05ag}8HMBT@zJ zn?Mjuiwr4L0L2-`v3b|roZJktY%fM4W>gfnv3fD{nfoY(J)&3~rUm-Em5LoFIL}@r zF{g}hbrzx21TL|yH~C(nVjE^Hk?~>CBl2WxJ74TE&D!zc)L0|3@=~Ckk30Y@SVS*z z`E=LZLh+Zrri4oE@BpOC{4kdm}P|%#}`HG)&0*LwC0gp0|!8CIVwDUvF;Yz=PFQ{Z0v{f<a=&y6WQBHjlRBdW)HsYo%MSP z&hAicWMkIU1;I{zT`*R1tOE2372zIot+t?xG$wIl=6)S{N_^_)94bfGv0p+FQkm{ju z`Y}656ZI#F&CtAg%P?Ui+UYl7=&`Tu^|rjkk){r=``+!TIKXBZAL%^W*W# z@rGPN=$U!d0rThQ%lUi8(3LKCr;oe)`%_){)@RGha|r^#jN9kw<@t3fW!L@r_V8lP z^|wxoWD$xdK@RmHL0*gHVS1k5)?CUawAlBYB58vT_@Hz!_4*f`ke+ zGl_W@gR@rP+OO|PQNTGWjxy{$C>xmm9wu^Hjk5~8Fc~cfW*7%C!w!J8oukB8L{MCl z$zOqYl{+CcLu;90_d?vy@1Ha$;3>odPXX^;yKf`AKLStc?f>eeZWYDZum$4r zz&gKsVm+#>Ug;Og9M5NadJVVRZb0W~7)2B=Yd0q+eL;Ka70Ap; zXKg4`7&Q@tIK&}gUs2i|hc1S3WsldUh-XP;i#Fb+`(NbZ8~#Hs$*Wn|EMUHye1*;K z|4S~b8no`re~}A_klMTwvC7N)Kagultgihh00z}zO%f48VUb~a&Znd#XE&N1+ECtv zx$!npKW(<+h_awx0B2xSo@;95D{S6JGDSC=6ZvnzY0O#evs@WxDqHXgEf$Wq&kOXf zB))@&P1Z)O{V`ur^)HiwI)Vg<=&6H=hE+yapb^$35L#BT-B!hvvrllFHiauq*QpIq z9!#N7iO~09|1_K%Ggo8e`x<}TTp|O@i3M4g`jt2IeU=Ba^)_{oXP-Yak>AT z`9aJfzx}vJ>8+i@f%hO!nIuMIoUT&m&He=jh0*&e3#=@{XAUDk5k;thMk5f$TpXdO z=*wHJ-SZ^&SJHg~fzg_RfR3(|Ftm{48Y7-!jbny@z`4n)x$3}3$zfS&%#_#-xw-yFF_(Y29WfBRlxY2SA+ zM(@Z)34?!hAHxHTc2KVKW(HXP@piqDvD4OR2KleI<3fMEEtikJ`X6uC|9YG8Z@^-o6%Ucsa@o#^x8Df$@_vi}X-h(aa6w zMc+m-?Uw00G*G=r`wRLt&fjulb3-xHagmYyW7)^a`L6AoVG7+ z+o*Fa|8k3c7+m_rt=fNb+t8E(=_w)}JE?C-ruW>AK(Qvi+_&U7>`N91MuC{dEYBuZnyi5*?m zx!q8twIo5m-wVzg^B`-mHM7(DwgmyQCD}s3^BQ0z`;ySaofAEuZkHlo;db1c+MBjc z4bk#+DmX%@A^wCZo%9oAN}st{NypJFmvU)Tp|Qb*cCwq2vP@i6uWnAH9z2{F>azci z2jD~7Cxc7mRcYFwxuB}>)3LWdA_@$X3u`ApWZay-z9q_2Tf>jI_@T85QUj$(EK>SM zyQLF+I>uMF?I$jG+vCy%(c2l$j^jnSy$?n5({mCqw>w|vb*Boy5W+s07R?usrQkue zAgc;;uEtp*6gV0}0yEs<6wMS3F&c&J2SAo?K!`T>b&zs^qzB1SK;{gzS_!~UC(ghk zOCp5H`AP}xSij&xzq<<*(KG1z=1q5lIn%QaB_PRU z0%ewg?}-pf-PLI3U&&VJvXHs``^h4gxKMu4-)F%e@VgVjIGbV33f1uX+}qq0l6SFv z%AIj+pVjTa8$}M}t2E_e@$4Fl&gpgB8BvR?`t(@`8cu#x(dXbb5+2&3YEbZqGYr>( z!liD?LgGKsyxPd9AgsyN0l0Q>R5bf8Ndy>yjiJEWk1nmNit3UW?~DaAlS&ZAl1fub z!C?Vh8No2gk7ewY?b!;bCEJres3mDjOjXpR3NyYx~QdP z0r_J>GHAuRU=SjDsp`vd*s>^&bV7>@%&_n=W$X`L@~^0ws(wsWfbG;E5;-dNO3}?l zzuoxS`V; z!dFtGpMqrn@VMfO`*JM`;Xe#%b=RZ9jJ(X8 z)j9pp8PMIN7z}j#_#zG_LXM;DuviXj_}#){81@4Qi5;wD|YB(VSmL= z!(MbGI07X7p-u3g+k(S;Q|6pF-P+)Bf}swo4b=!j&gVe*ob*yX^tUuty??-NsBJ}O z?S4yXyV7i&@ze$!-{g5U;(O~I#~kb(-j-*Kp|hpX*#h34KVH`Obi?>0u!c+YN7X(L zpYT5bFMDlmbX^~>OSYGtpKp&7<$%qfVMhycPfK*Rx?PWnWFtOgIoPWFAnsbtJu879XSIf78b<4`)91MIR2_ zzx87sEEC`n;1UMu5CNhA^-Y5=yz3;`rVAu8ZHoV`VZkaMQ#OgU91g$Ta*~HYQu7aF z|2~)+!EV3JKR>Kjls-YO#+RdULuzG6V_wJae7dq-J>+EjfPO&9QAFTaEl5X-?=$3x zDnSBX4B8h4DUfXT+khiN1E$3NbME=xa+{3aNYapq0ElLx$dFTkp>4r&ZcNCn5>W#r z{#np_dDPpwye#pl-iZ=Ys*$iAP(A>ADkh6SqjN^HYi^QFzO zkJM+qTop|nT_PJyyiqo@&vLc!mTTP572=sfXN0B?2@18TM%5ZRN!kbNh|B~V1<~@Q z4Qb`F1A@1s&G`q?VAvc(LzA)(95l2BB_<*i>0qF18@~|+-w9XS?Zcoyd6t2MtRFvl z!DuA@J&3|-H*|i=z_1(m6B%!;=q3gWgoD$j#ON!SjpIOs6gi0r8^g^;FlAH&YDWBh zRh)I0!H`^WLTRgqOg(xdG`Fq*!{6Qxm$+va0Lq9YgzP&n3rf87-AMr6?{M3YtlPBZ zx28N0^Uisu@Td?n;&!dLM@9#6X&22e)M5x4`Fjzx6Itz3hFkfFD~)Btg^m!MXQSOo zPzIx(qj_{DNLRaH9@8;z!4f9SIF0fqdILwK=}??laA>`y9z=B{&>!%d$%{N_zLakH zfY{L~go0@vl{3YR8q3D{)X+L0kN|HvR7U4sNoOa|ys>&o|zo^%?TK_TOrfe)Y z=*Fwp06EU@+F(MPuG1OCP{xdsO=GN3OgBkmlzb0hJ`7%+U^I38UZQds$!34fXlnc2 z^heoy;+*Oh)jqu(iPJNH)IsQlSu4w$Dks2MuNgj45p+O$S(U?oLnhNBjcKzVV4ld~ z$sv{vUAy^;Rhp61oacCHjj|llK2K;{4$?Sw2tg@Es*;9X9D3<=(k)KB2(wa2um@9H z5*N*xqKt!Orqb&x+sOvEoTAU{AOjkOGB)#5YVZ1!l30c^SVdqE)kuywsG3-_79)5iJ1NV5-86+OLi6kk*Oc!R3b)H$yb zh|NKS-oikZ_(r0_M#^lEoyRoJE`V^o2#UOuJA_|2`cI5DZ;^sONNN{-yXB8Di;T*1 z$RXw>Cfh!EX=lnA^JQabo@q9!jGlp5{V;CHP09k|W3;w`SK zNQWwHJ{$Tp76g8#ZK-QZyQBT%r4k}rg1>Y)pJ}uQ>$#)zlkPtYY|8mXSoN<0djmd! zmk$d-|F2Z15N_#SiIg$*cFZJdSk}cZ0SDeYBRMrg7C1xMn#c^DU zbmU2GL6Y zJkT;$H|^yfE4&o@wFp+!@KK_RS&+_%VS#`CT!T>`Hfc9tSdy<^+n<4zv)a_G?Z1mRU5d+p_hWieG9nVA=)3uOZu0NPV*}Glrc0$_J)Q(CRXo>S>k+ z?@b$iksDQJMm$3x7MTSFVBwm})(JA+y8q?ka!j0>tux0m`R2{JCv?hhQCDSIJa9qE z15{ap&jA0g9B77C?RYAIP%6}8oPEvevl#eMk*kP-Ng#hOgL7gcbIcGgKR0E+Y`D?^ z>Bm~c&ff-oyypE$@9AN=*h z-3;yDu_BSRK#hOIrAA=iirlyFN|{OpsQVDd56z&A9jyb@@fs3#_VC7*>UQ{Ou zT=FMWZY)~f003bjMQ?6ltZf-(kCoJ?DCDJd=CdD#o%|_T`oA9IH)tB&yRfU1f{76! z?AX62YN`k~d^J4Bh|&lfqqd!(dhi+o=Zld8IO?6DoL07uv82wCs14x4BR#mJFwrQZ zERq?+*8|YQ@>FFfRC|%y#NF6rV?9e;G^QnyN>dIlQtXvKJ0DR> z$fiI*2PCKhUp{hRC>fmVLkr<o8%NpCG$xw^=f;a%+9DIAE(-rX z$U>KFjK9=n*zH2BD2Yqd)*u+I{Z^|M8pFZ|Q!WTz^A>8XeT0A}Z)Bq(AP%bEFa0rE zmjnqIgdwnKf*o}MPD6>!0;w&JbuloP1HKi>HfKIR3~A&}R@t{#1`R4)D~h9@y538S z%P(Y%gB*krH_i8zh8dOxUQrRJ`i@jY<&Yo&9{y>E9eT-+y`5YyK)mD<5IQH#$VWp^ z08*>MKL~Er_Fp@qVx#);;T(y=mB|6W?8Q0=eq!M$F<=Iz51`@gTJ7e_$+I9wi$fmK z&8GCRo#8TjL(6hnRFB?376yQp4dchdPnHsON^vePc1H;#6_fK-^Lzx+g?L*}g1lzB zuR8_*LCFQq3U9&^?hkxv!Ngh9`Ne^O&)})L2yL#iw1-a?!yjcuN{t~IB-{qr9GCp% zUa!1@v&DkK)vRegZ|Np8#MeG&8rj2Eqg>7=af4p8!xBlNfPvf~0;npR9LF>nyx4SjpbEI<4=-9-7 zD;xT6TiVU_kGHdp2Lu2>H~cGpj#8VCu5BOw&e_!cc>Z|0;(PmZ`nYkxcU9H@aGKI~ z#@1xJwJI4^*crQ&2rX{*sA(8ww(T0_858Ijm!n8ls~#jM0|L1kQqFf-rMu3{$5gw6H4FXgpLY<@*gB)Go@C+KiO0(flKL@_pD@A(kb2(*M1YmFq3 zP}Sp&!R?fYW!KWkg5Km49|;d!RJZ{boT z5?K&8@-58q+`M|a?3mn3=w3QxmgPp%?61HOF39WqNtdaL3SVcaW2;rirkMymE(ZpWQ@eNzM7u>by0)kZ#vVde0`QeQ!Ckz#Bk%<61Gl5OxAsaH*T)G* z)jZH5M2wM0QOTt{hDnFl7b&l%kSG29Cah;KhGB5}J(~7BhVv;p(B^7HT*e>GB7jmN zZMj>;9ky0+d_{;n1wASDZv>>l1?!mx{e^}ePm~m_@U4wOX6m6OOwnN?oD=Bz7 z^;!wvPk$pWNIHvN30D&9IdRslWOm_@JhV@OGTN2O2213o(sRO4WwdWYx>GZ8Xq4xY zP0_ub>3Owe*tX=>t>pHB<@2g3CP4Nj#+51tt0XL?vXUZWwd9(J#D&=JPxc5fq#(8ube@mnhspB35!uK6#=pzWvZFZF-GIt9BZWk}fc&TAvbTwKNON7~Yomf@L zrVr+@Io50eO9YywmkmIbu}dXB<0NWat~wx){%+SC{kIKSs%e?pqI-Bkcu)t`$D4nX z=NjBY5y<_KX&ivDgzy)@j%gxZ+UhV+UM!n5e}R3CLcemDUA0ZPq8*!%mP_&0C2u{* znF8-;E1o~S%y=V13j=a$Un!J!($>e*)%AI7>-Rto$-@C)&T3fg>SdvA4V_OntLx>c zPq(S-!|rbA?CgoIs_XOmDr4)4cFK0M^Wk3wI0tp?bbE;NxAW*uhpz&hlZsR^0b<@9 znSI)3>&@Nu`Sx_^3C4{IsFVm+o^G(5j_z*be;@U5&YZvkzLF@_cOakyem+9L9_v5j z{!mo(Z8dm4B$LZ{B#-+iB(j-DigCy4p(GY0tFpD1=bE`~AQx2SX#=@t=-Mb4PIIj2w=s zsDy=~vL}at&MRNZS9IEVzXD_o{R=YOLJ<{w2}3hZV`J@P<_tVTy{Kt-5W%OJy5nq- z{;;(!?$Qe;_hov?ea-q8KPO}V%GCcs)$0cdx+IEg72}11D2q%uMT7|8cIs2F-rx-S zlR2EuUqzJNg2>fwI%=xSc=KF^yMuusJ~G%jC^TlGv2+US{^AlWP6SA{6=5s5CPfU1 zT~9h|*^e%w1`#wGWJ;5kOrWP-5kMZuex>|}h?s0DoF3538i|r*zRX>wZA2#9%It+mcmTxWFtPP{ zRvSDf>q0A))sS0l)cP5rj2K;-ib@ah*YwkAKErKpN-;F?$}#{{^N*@m%3@mCpT!@Z zvh2o{$_1MYEq4T<$4x7dq@Y;PkWUahschWeuNFw#1&j~BP4#0F(eb*G+CzRrcJ2Gw zyWyMEqf{alcx0oROqgl`85O99c>|Y+XHD`kHf##@ZYD%h9qAh^KdqjIj3Ffgq{Wzm zh(+XIL=xDt2UZ7=_$ex=G)`#!h5#+Y5L8cytp4|P9!EyNts-V92YntP(bpBta%sU; zaVY-rLNAdK@&nE94ojoubvGt3qZp$GJEn^dt@FX))_EDGUg`lMtKlUjm z;2`QE0DLXRz{M<%rxM33ZVg>Y)K}!zVw4Uy)e4rlIUlB{%+`(`$;#x39?@{nUJ)-P zZKCTdROXGaxx7rVf6H8u!OO5 z4?~NFHW>zwQe3Q=j))+evQbo4{)z1&1b~hIU6$=l(&D>0AHs6w%AqAtE$rlM9ppwDXL9#QJH?lsmhI?qi+9Ia6De~i(-sNOXG2mZHHnl zVLOjN_2|7~kyWpTqSrPFM>mE+fwoDD$+)+0p|`Lo;d+b^%EN|dvw$YoHJ<&cf)yjsCah)qMh&-0^kn?b)7q<-h%2~v z)Yq5W>!rQlUEUujLqktpfcN_`KE63V2#Y$~f9a z?vbL6YwUbEW52&B6cj2DOxz9z-Q!m->aH)A{Z1W5Nr?~m=J+|Mi&dBr@r2dp+oosN zlj&xw=O>BGbY!^y4NZ5|fu3+(tQZY8U|Y5)|$NVBR9|&MnW+4x5ny zdxkt^qUwY;34DMirHs{-y%!fLP2XT|Rdd)kydj!GP&`?sbO}S@=|J&qU1@cl`9;}$ z?3D;GO2WnTDVPC24vkgE4D2^WG#H(0bxlG!Yawf<(dZ402&QjraMlv4lKnT#U9iE9 zP?w>k(%GkWmV(MUE0kliRCm2Fb>Rb&{_D6IqaXFL+_-p%5_Z4Ksp*kjeq%EX=Tq?@ zGs9nJx4lmH5iEtuVI&BMVgX)+QMvqB9de_T190qpD#p2^LC$@TGL2BO@D35-a_Qr_ z`EqN{=fLV8xg*6XRwAQ;(6)(b{pvWEeozRY!1{e+M9mCo4M&A;s@1P2 zbk)Rulw5PR$=m!jum5|VFf+r`R`s;I@$qs)aO3yar4BaRyiTRkKAln_zp{!G7o9_l z;IxsNEi=%gZ}pR<)&Q7-|EH^~4vVVmw{&+ah=g=^cS}fjgGhtGF!Uh=q+@81?(Qxr zMUaM}OO)<%khtjk-RpPX`C~uN?7j9nXa3mhIcM+RTH`CTl4h!RLhz9{2xCXOg;j@m zhcC_N=m_TmR2qA&?TbvNiMFC1=rOmnyU1f(RV#f!j^t%Z^YjBq5g?rMn4=C+eYA(| zr=c!!Lg%prxDFlS!%?QDQjzOxRgfFg)sPGQlxfz92rM#;U)!vq!F5J=Ea)>VKLDS5 zB^QDA5-vu?p_2ZZqz0y=T2PQGECULlL zIm&9dY_x%HE>bamGYNt@n1Fg$GoHa^*?GL5sgyTauhDX@3{v`o(CB*5mhj`W*@{JYIuTE((43U?P@T)1Luch(P zZ>X=H;nHTviP|g(4m_85vg~Z}f_T_65jcqs`e~2WyjMwI zz$SX~gc$_8Cs{VG+?zCX827|hdOv~_=NXG4jLtiIRnbRkn`&9AtwQ4DS@ZoVRkbph z93FLoah-#KH8r^j^3(9jQVQdJ(`JKooy)6~tJ@)zo+P7D#1dVrgnl^^PbbwgGT$}QSXe{1USBD`=bPqi=F7opaSbG} zNHK!UhNlQu2N)rr%J~_4lTaSB?JU-Y3hk}hkjHZjZ&4y`WlrI5qGHjC z($9A-87AZ@8xx%4X~*K4(!<}r7XwbRAkq2L{S?9QMDmf_s2+tryzo_BPvu`|I?9K` zVV>ga^%~@4l4w&sMSoO}{y*w5?N|XWJgi|c3@Ji9VU%E@ot0mHomFwHGm1FfE)!%a zOfxNe>Gh}{vo8jmjE5=DH{pM)ht_$PAt9}}4*JLr{D(;-HPy5VZlIQ6Q_?ri3!&Ov zj%gZZ3_z%W5lB&=<6DM<%-mqJ=$&pwX2btUstY+wV1mA+nk{-4+uy4F z*+)#IX(VQIj1>(4pU${{vbCZd;hB?P|-E2`^`^3@GP><@Gthc1C`2_QVYaPg!MWDP?Zk~BYf#DmqaG!@zu0OF#2(cH=Z|_c%6Cv!I?Vr{dR%15 zccD}nicQSXjs<0km(L;s-^~udl?B}0-JVAYY>#8F*BR(x z^}v2Ho$aBGi5$_Pe=RArA$rNMO0zkLX^kZFC?D64@-dckZ;u?;*qc@=?FOawNbPZK ze}IptY*12_L;-XdB~}a{g~R00{PNrG{b+u1x3zG4ZLQ_uX6O9I{r6)?5Jcm}Y~j(**04HuM8>BZfB`iKA_Dd=Ora zedThL3^Ncdq;cKMN{Txbi%-afy}UeGNqM^dwkt`gm{%ihI+c%wTJ6DAhbX0K#${v= zJ81yea>yqT(0aM7DXtT2Hs##2t> zih+q#2a-5<%h$bd^zim9c__DqBzKAyT9?)e%6-+GoeCIp%G0HKO2bu%=7qt zCCSPMM8oab47H}?N=GV2*U_gZ4$qhO{BKHumEn6xS6rS?mCW{cca%wg6tteJ$(3b= zu`IAR!xCZ%uLrlf7-|W!5IrXe7M=6*yKq>zt3Y}fKSWL`Vtm(b1ur_(j9~MilHwl8 z(n=S~I*@Qza&;Po*OA7n0-}mFNk_NVw4K&G7$a1CS6LlD`zGx(XJGHCkpF{YVd5^( zV7%7GFv4|-bB3Hv6Z0hIjbf#1q6y)0R~M1}lk9yVYEXnsZjqOWP>F&2Y7H*;a*Y&3 zCY#V8%SPFfNzG#AS3LP5olE7 zxj;O9YvfZ4YU8U$XTcBAG=9{v>?TixI7Y0lP#XJdJ1;C$ z$d*Fq7FO7qdInhRG43rA<;JajNjbIRgS6~8({|KdnYMeT&-BIuSEdjFj$e2js=_w1 zKVg2Hqtw%n5LwqrEYy`zB|=}=M>Ehz> zM~`&BI!{aDJ)Vl<*yxm%446J_y^5$PRFW-fE?=DJD|0&pHIzSCyC~vGBcM|T5pGJp z%EAL9xoFw01sjNX3OGv&{oFe6>UJ68L0D6Rr0FZ6cE0VOZy}?A?C3KAQa8g%@=9Yr zj0=M>#)R5R#|sLbQMoq+iAR)4tvyZl5~eFr5{c!)Q*h1NPvW->(8-08@JqsZ1;gCk zTsY&2#`8Z$`KbxdU%mfkKkdLGg zN@?@Yy&(yzB1X%+3^bk<6*Sxpmka8amxvm({a&-FcAn^ST@r~x(g@uZQb|mz7AWZ5v(2eM!Q0KM?38+O zGp`^siAcNNF@_{>&UfqFiz(p5ePfv)p482U3`VUDMV_yNz;vI78kxC~XG zHUX0?9oS^mGUAxbEbv%yNl7fZ!kTm(tT{3J#8hgiX~LYU2L<|@aR+gPEcU_$!@-9P zqX&Ij8H0`Crnu2_l9P+}s?Wc@RsG~t#81Y1k-o#2PZ|K&_z8MiO}e9@g-smw{ua@o_tJH$W^y zEzH|mX8UwEEVd&Y6%vB&f2{yHZ#XR;y9@bP+tUU-{A_)&aC8PeE&<&LNUjknK(6-$P}l^>+JaHvf&F?Mq2!)jBAP`QIxnbR zNKVdE9>)q_rKP`ZXDTOBl*wgO)CrO^3&!t;i` z2u1X!UKz4(@GPjADe(N4M6%#J?O;t0+v~_B!fgB$O`_N>rUSc7} zokFE@Cde372j50_v@N}9f5qCqfa=r2$;HL(umUO24L)7S)aFxry?KMStwVn+vVW$H zP247^Y*`@yRnQ?ioOR9qHX!{BXOms2?Bo@7cGfUDf=ImUvoFkCz=kG<$7xiD)+b?+ z9zDAixDFnyRv%`A*~U8oE#m%<4$4~`$)A(Dtw&|_J;E4R_~R1fy?H|NSc|CN*jO21 zG4E@d1anzuh;K7n$P^3NNg~ZP^egG-HbTWqD|v^Xl)56l+*)Hcc}m!GX#g%Wka}4; zK!(C|yl3A}LR+~M4rH4b8Q`&0&W^5fGZ?cVi;tJ8SV%Rs>~lV)Mf%Y4rnFxE%!y3w zwt$v`(59=r*gJ}L;&LJ9;HXzRrie@ny_+NpD&RbBP9hr0N7rZcA}OLO4h!blBrj6o zfmB>wMw>sVku%oS^)c8;24#$N&!aGlvDRxk|J(_mDNDDF3^2G8uY3Ef{^pMT197#K zu4-`4<$M$L1+bqm>+07-Jy|qnX^Fkt(vxVpAJS%^4OlVXwfZam=%pIM_WcZ7C=0@4u z|3cN+p~2zKyJPbt<|wBn+|u={Ff?+8Qtk|)d0L^3;UIdctOqoA6fjv~(kF)bc&OaB zTs%qF-Ah6KMd}HbFZU~a^%~nWlAkn%0BC;O8yjOfEFAWX^k~}F+j)1a-!`EZ+{(~g zB&<$MkQtm&of6^XWX0c?aw~d-EJg|r_IPibzr&i3lh1TS5V{?$rZ-MuG6+g&xNS0{ z1*}_B)6Og+k)UDdiGg^G? zpfkTCG4j%ZHec}#EsdfbZGLNI46Q%T5`mbgaDptB(47m7>in22L2OY3ubq>sqEa`7 zQg9W*h0+@Fd15A$N;kvOC~q7O^oh|&b*EC>MG$xK&Bi==4c}+>NeI_sGdj8b@G4I| zPg3W*ZHh5v-)Nhjg_Q)pOIu-$;@Zc!e|o6pbZUDi7(+>JXZ8yIO|JDuI^u^4sYq4VL7%wbx)?B8Ns z?L(Z6SJ8Ad>UAxO=xL0c;QYYiPZ+~wTUve%OJ~2mIi8C*(SNNEn&(W`PD>=oEd@rt-a*7Qz%+)OnfvViudQ!eU)qPi&f**LoXkkJzgbwO>cE}6QzYRw> zNk0>-(5dd0_7`f!hGBeB3+RsA!vZSQ?JOG;=kzc3G`gN2U@}F=mUbZigiXeTF9%#f z_%=n~v>PfsqsXnxeVNaW(`%qkr-3WY>?+kH`vK*4z>=^L=^e>Ts^I46XtDZ}*rs<- zP6-`}%*UFn#e*FqX!OrHhY;6{3N{f5>*HnCnu{&DZ0 zPcGpeqyoAeSTzdAhLf$e zRU`aG>A*%Q7BK*M0)=gtb1{%`)34#UGM4UUPhVh0&msZyunz6G-Tamz?NgYrKP-&B ztn4;|)m)SBBZ6=G%&dfr?`O(ZLD5`R8yYy5O`3RoVU6!rjY=mrVfP)Zl<~+8Lx>C7 zx-TUKNU>`n!z{WxZK|C&2j6^1KRcq25N+9=HGWPp5i$ni$(*6V*>AXZ6JMQ?bP*N5 z{7xei<_!P6$ScEGvNp&O^n9!ui9hxDbsOlj(7VZ1@f5>PyrGQsEjRYIlo3$_LDb*Q zN^e7B1D|0OzV$9{0{A>bQHTdyFzHUqQJoD6rHS&_&sAlJ&P2Cl@JAS?@UW%R5pdHi z?#5!F+!XSFJ7xez%*RCRX+dorjBnp`;z;zgx$rP14rtw%!-Q3Tepiezz)X{VyjeHU?p(0dtI=nN0JQ+@NrL$;E`sZ5)4=!)eZ4eP?F2uuM}lfks8idMAbMp zj2G0G<6JB?z?~AY&m}!Om&dM~99rJYXP}ArMyy5%gt5e+$aIxwA{%gM7~g-2MC(q? zR%WA%VQo1JK*fJa(p=N3DQbKj9$@cNmVmP`+-|{KfFmSMoS)UH{eHOEu)1H8^nTt| z=&fE>;tzDDnb(}~kr(lI`n<1_p+@xUlDW#3JBgHr_4Kl;Kt0;JA|IQ~vr)F!14a+s zGk7cxk9$jR9m?sBMzAz?V=?Asg486;$Hh-PjnTH|!cFZ?f1bh$pc?+hh;jd1~xMsFB1y`^(6sGjc>bJ+PBmMo=1Md&kfS%TeFqU{n;2b@x z!Uch7`}w`o=@0TZKr3){Bw;LEPmMjfQ1TOXXKb|tIK6*vf^kzpCff&kfED0Mwl#$fI zrMQMCncdygx}Arp()&dy^#rLi0O!TE#ARXa`@k4z);m#&yZzJ>7vC4G^jW|15j4ld zTivfx!=q4p%$7TRuU5Ay*`hFig17;NENmDa+e-TpYTMA)-3DMqqT@WBCH9C`;f1jZ z8>RT^Vne*^(LH)v^Utjrhw=QpA-Vp+4`!miw|NSEmU%;ieVga6#vi;%IlF(J97bKQ zi9K9?5_cTN^~FbUSbkBh(@mWes?X1=YwkkNKoDci&l+HU{vuqJB^^78>E{YS9gh8p zf`j8D_B;!Sy_TkHvo6m_+rM`ne2oNQpJEZulmrhBniT5!@t~d2LTCZG^^)uo=U_(}2!0Fe zr~e1yT22_QTBrwz@~@)|F*<{`ypSy|uLZWIG?AK7NE;GNPZw&_oLsrc|IA!QA#MBJ z6$sR77;m|CBH+1qB2;oB{^!zMOIw!w|M04^yZv)FOO3DSF1}D;9V#%~2idq{5!_Lo zx}~h&F{}pJuUfq4O64uIAMFB?<&a(r$V<(;W0hzN>vc@2;F_TC8-SW zQ#%UI-g)0+rDoxqU2g`g61}AS)h3EU~$86cqlSH0euS&ubivE{7G5%w^TN!ox=m6@i?F3Iaz7Ff;U9A6C| z$!=xAr`l}%>An} zBz(J!+fuBxRXS%i%URW3{gpv0PV7U50=}(Vsn`cSxuy~X$q)M{a1O;@+&f9^DMPx< zk~X+i{=x^Z8LB6#@ED)PvKT~PBN{n0byTVKXgMoQNwrPZw0!Zs3usyvTdsJCI;&Q) zuoi{sD5!pA*--+L^FwN?Nt3!)?-2b zqU`h5WQC>r@%pD>jttJ!;D^w*JZXHPWfw3mPLW}o*1|E6L=Gx4IO4y?%`LvT#>FXg zF4EoYL0QkT)pGw;xVV!X%jVF`7J1R^v#^{|DkCFsS=Yq(PWkP{?>EMLA)a2}A9eZq zgsPP~%qDd#YSup3IGhXoe73IzL!nH$(7SOTx{DujZZI6|3^e-?xoZ4;rP$yewRZ>i ze`2FB5|D`-S{yzj!KXn2T_xcwARk?M;Kw1Cu8@EJJs|q+C-`fKwi`b@B_zs?jpE-M z?2p@7aPV+ck1eV;WX6r2{O>D1931xV(Z|m}fCmV%yD)qUMBSYqeiah#PEY>tjj_L2 z2;{T7De|AdeF%$(6vbaR0UX?uKb-%|I>Za1Mkaw|dk|CnEqDDlNJsb&==&q+zpKIi zKa;)09}p{unBs3W!oQiQtKv<@&q(e*kgw$g%(c delta 25190 zcmZ77V{m0r_a^Yzwr$(C)3I$k9pBitZFOwhX2<9_9b1!rXKH5N|F>Ip);+uGo?E|q z_E~EuT?2<)1J`W-K#&{N{Ihh}FQ%Iw50G+T%-`P&dj_i(tR zag_sxoR9bccjkw-J!xv!2qUS@6H0ib88KMLa0G~qfyp|` zF^xLH!aWFyNfz&dD)(koffIv@Z;Yl)o-taIje7@wXNGND^1U>TNAH=Q)KJD*r zZ#Xk?$fL4bVGbV0-7MbPFW2CtR(7L9s+tC>*!#EtMvGc@36*s7?u^uGy|>s-CaOgo zUOko!1+?;)z-|=@feAodit^~YyP9;e2dwtX|hD> zw($xNt<3MYr{eJ#1bZ>se;PL&73wB9q9MhlWUSpf_mTj7Wd*lTf2lWZF6buPif?Pm z3;Y6nT6tpJmIyGF@`+KMqjOWKi355JEFjhAyvS(O_oo%c0%_i9pZxTsC0a)+#y*^o zral616WNeSUig`Z>_=Hs!!I=Jl-Y&JCM!U`Ui+##Vjep_YCUwMXXk$3o+`;@a_V(C zo?X*=P>9pJTPH^hIFz^3V1Dk4SR`-4Aa(?In&mq_n;x@+W(GU}vhQB_ zcr+fUXz8Q$0|$8XDxNiImB>_;8uT+^_+$Xxo6e?6Y1>J*tt18mRPdsKm?MV{Gc#^i z4vO=~l&Ot!_4HmL9+X(sQsPe+z$w0-$#SGa-k60R6P7c6tIM-SxcR?aNBLlH3I{(U zfdWd62dqHYRNjY-QwQHCu>kT<4x(0gb|aYyJ4$C?TMM%CS^P2%lkWHFRhoxi*EKxV zV}VU;dHe6M2X8^z2{*QEq`6#`*=ZM??#A4B>ZYZF$q{%;HygBV`Y1!RCsm%gS>XqU zY=nc|>JHrML#`rSQ^l)(^JH~*VQ2?&We

t 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 delta 19888 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 NtfLhMh@=1j001mn!@vLl diff --git a/src/sql.ts b/src/sql.ts index bd20c06..9389aeb 100644 --- a/src/sql.ts +++ b/src/sql.ts @@ -737,6 +737,9 @@ async function generateTemplate(data) { let ml_sheet = workbook.getWorksheet('目录'); let yz01_sheet = workbook.getWorksheet('预总01表'); let f01_sheet = workbook.getWorksheet('辅01表'); + let f02_sheet = workbook.getWorksheet('辅02表'); + let f03_sheet = workbook.getWorksheet('辅03表'); + yz01_sheet.headerFooter.oddHeader = yz01_sheet.headerFooter.oddHeader.replace(/×××/g, data.name); // 更新封面 fm_sheet.getRow(2).getCell(1).value = data.name; @@ -913,15 +916,15 @@ async function generateTemplate(data) { fee: addNumbers(a.fee, toFiniteNumber(b?.fee)) }; }, { person_num: 0, work_day: 0, fee: 0 }); - sheet_4.getRow(3).getCell(4).value = sumObj.person_num; - sheet_4.getRow(3).getCell(5).value = sumObj.work_day; - sheet_4.getRow(3).getCell(6).value = sumObj.fee; - sheet_4_1.getRow(4).getCell(4).value = '/'; - sheet_4_1.getRow(4).getCell(5).value = '/'; - sheet_4_1.getRow(4).getCell(6).value = '/'; - sheet_4_1.getRow(4).getCell(7).value = sumObj.person_num; - sheet_4_1.getRow(4).getCell(8).value = sumObj.work_day; - sheet_4_1.getRow(4).getCell(9).value = sumObj.fee + sheet_4.getRow(3).getCell(4).value = numberFormatter(sumObj.person_num, 0); + sheet_4.getRow(3).getCell(5).value = numberFormatter(sumObj.work_day, 2); + sheet_4.getRow(3).getCell(6).value = numberFormatter(sumObj.fee, 2); + sheet_4_1.getRow(3).getCell(4).value = '/'; + sheet_4_1.getRow(3).getCell(5).value = '/'; + sheet_4_1.getRow(3).getCell(6).value = '/'; + sheet_4_1.getRow(3).getCell(7).value = numberFormatter(sumObj.person_num, 0); + sheet_4_1.getRow(3).getCell(8).value = numberFormatter(sumObj.work_day, 2); + sheet_4_1.getRow(3).getCell(9).value = numberFormatter(sumObj.fee, 2); } if (ci.method5) { ml_sourceRows.push(ml_sheet.getRow(13)); @@ -929,7 +932,7 @@ async function generateTemplate(data) { sheet_5.headerFooter.oddHeader = sheet_5.headerFooter.oddHeader.replace(/×××/g, ci.name).replace(/预 i-5 表/g, `预 ${index + 1}-5 表`).replace(/第i合同/g, ci.name); sheet_5.getRow(3).getCell(4).value = '/'; sheet_5.getRow(3).getCell(5).value = '/'; - sheet_5.getRow(3).getCell(6).value = (ci.method5.addtional?.reduce((a, b) => a + b.m5.fee, 0) || 0) + (ci.method5.reserve?.fee || 0); + sheet_5.getRow(3).getCell(6).value = numberFormatter((ci.method5.addtional?.reduce((a, b) => a + b.m5.fee, 0) || 0) + (ci.method5.reserve?.fee || 0), 2); } // 更新目录的第三部分 @@ -976,35 +979,25 @@ async function generateTemplate(data) { targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; if (sobj.method1) { - targetRow.getCell(4).value = sobj.method1.fee; + targetRow.getCell(4).value = numberFormatter(sobj.method1.fee, 2); m1Sum += sobj.method1.fee; } if (sobj.method2) { - targetRow.getCell(5).value = sobj.method2.fee; + targetRow.getCell(5).value = numberFormatter(sobj.method2.fee, 2); m2Sum += sobj.method2.fee; } if (sobj.method3) { - targetRow.getCell(6).value = sobj.method3.fee; + targetRow.getCell(6).value = numberFormatter(sobj.method3.fee, 2); m3Sum += sobj.method3.fee; } if (sobj.method4) { - targetRow.getCell(7).value = sobj.method4.fee; + targetRow.getCell(7).value = numberFormatter(sobj.method4.fee, 2); m4Sum += sobj.method4.fee; } - targetRow.getCell(8).value = sobj.fee; + targetRow.getCell(8).value = numberFormatter(sobj.fee, 2); serviceSum += sobj.fee; }); if (sobj.method1 || sobj.method2) { - let det1 = sobj.method1 ? sobj.method1.det.map(m => m.major) : []; - let det2 = sobj.method2 ? sobj.method2.det.map(m => m.major) : []; - let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => { - return { - major: m, - mth1: det1.includes(m) ? sobj.method1.det[det1.indexOf(m)] : null, - mth2: det2.includes(m) ? sobj.method2.det[det2.indexOf(m)] : null, - }; - }); - cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { targetRow.getCell(1).value = num_2++; targetRow.getCell(2).value = serviceX.code; @@ -1014,85 +1007,221 @@ async function generateTemplate(data) { targetRow.getCell(6).value = '/'; targetRow.getCell(7).value = '/'; if (sobj.method1) { - targetRow.getCell(8).value = sobj.method1.basicFee; - targetRow.getCell(9).value = sobj.method1.fee; + targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method1.fee, 2); cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { targetRow.getCell(1).value = num_2_1++; targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; - targetRow.getCell(4).value = sobj.method1.cost; + targetRow.getCell(4).value = numberFormatter(sobj.method1.cost, 2); targetRow.getCell(5).value = '/'; - targetRow.getCell(6).value = sobj.method1.basicFee_basic; + targetRow.getCell(6).value = numberFormatter(sobj.method1.basicFee_basic, 2); targetRow.getCell(7).value = '/'; - targetRow.getCell(8).value = sobj.method1.basicFee_optional; - targetRow.getCell(9).value = sobj.method1.basicFee; + targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method1.basicFee, 2); }); } if (sobj.method2) { - targetRow.getCell(10).value = sobj.method2.basicFee; - targetRow.getCell(11).value = sobj.method2.fee; + targetRow.getCell(10).value = numberFormatter(sobj.method2.basicFee, 2); + targetRow.getCell(11).value = numberFormatter(sobj.method2.fee, 2); cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { targetRow.getCell(1).value = num_2_2++; targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; - targetRow.getCell(4).value = sobj.method2.area; + targetRow.getCell(4).value = numberFormatter(sobj.method2.area, 3); targetRow.getCell(5).value = '/'; - targetRow.getCell(6).value = sobj.method2.basicFee_basic; + targetRow.getCell(6).value = numberFormatter(sobj.method2.basicFee_basic, 2); targetRow.getCell(7).value = '/'; - targetRow.getCell(8).value = sobj.method2.basicFee_optional; - targetRow.getCell(9).value = sobj.method2.basicFee; + targetRow.getCell(8).value = numberFormatter(sobj.method2.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method2.basicFee, 2); }); } }); - allDet.forEach((m, mindex) => { - let majorX = majorList[m.major]; - cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { - targetRow.getCell(1).value = num_2++; - targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); - targetRow.getCell(3).value = majorX.name; - if (m.mth1) { - targetRow.getCell(4).value = m.mth1.serviceCoe; - targetRow.getCell(5).value = m.mth1.majorCoe; - targetRow.getCell(6).value = m.mth1.processCoe; - targetRow.getCell(7).value = m.mth1.proportion; - targetRow.getCell(8).value = m.mth1.basicFee; - targetRow.getCell(9).value = m.mth1.fee; - targetRow.getCell(10).value = 0; - targetRow.getCell(11).value = 0; - cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { - targetRow.getCell(1).value = num_2_1++; - targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); + if (serviceX.mutiple) { + const maxProNum = Math.max(sobj.method1 ? sobj.method1.proAmount : 0, sobj.method2 ? sobj.method2.proAmount : 0); + for (let pi = 1; pi <= maxProNum; pi++) { + const m1PI = sobj.method1 ? sobj.method1.det.filter(m => m.proNum == pi) : []; + const m2PI = sobj.method2 ? sobj.method2.det.filter(m => m.proNum == pi) : []; + let m1PISum = m1PI.reduce((a, b) => { + return { + cost: addNumbers(a.cost, toFiniteNumber(b.cost)), + basicFee_basic: addNumbers(a.basicFee_basic, toFiniteNumber(b.basicFee_basic)), + basicFee_optional: addNumbers(a.basicFee_optional, toFiniteNumber(b.basicFee_optional)), + basicFee: addNumbers(a.basicFee, toFiniteNumber(b.basicFee)), + fee: addNumbers(a.fee, toFiniteNumber(b.fee)), + } + }, { cost: 0, basicFee_basic: 0, basicFee_optional: 0, basicFee: 0, fee: 0 }); + let m2PISum = m2PI.reduce((a, b) => { + return { + area: addNumbers(a.area, toFiniteNumber(b.area)), + basicFee_basic: addNumbers(a.basicFee_basic, toFiniteNumber(b.basicFee_basic)), + basicFee_optional: addNumbers(a.basicFee_optional, toFiniteNumber(b.basicFee_optional)), + basicFee: addNumbers(a.basicFee, toFiniteNumber(b.basicFee)), + fee: addNumbers(a.fee, toFiniteNumber(b.fee)), + } + }, { area: 0, basicFee_basic: 0, basicFee_optional: 0, basicFee: 0, fee: 0 }); + cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { + targetRow.getCell(1).value = num_2++; + targetRow.getCell(2).value = serviceX.code + '-' + pi; + targetRow.getCell(3).value = '项目' + pi; + targetRow.getCell(4).value = '/'; + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = '/'; + targetRow.getCell(7).value = '/'; + if (m1PI.length) { + targetRow.getCell(8).value = numberFormatter(m1PISum.basicFee, 2); + targetRow.getCell(9).value = numberFormatter(m1PISum.fee, 2); + cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { + targetRow.getCell(1).value = num_2_1++; + targetRow.getCell(2).value = serviceX.code + '-' + pi; + targetRow.getCell(3).value = '项目' + pi; + targetRow.getCell(4).value = numberFormatter(m1PISum.cost, 2); + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = numberFormatter(m1PISum.basicFee_basic, 2); + targetRow.getCell(7).value = '/'; + targetRow.getCell(8).value = numberFormatter(m1PISum.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m1PISum.basicFee, 2); + }); + } + if (m2PI.length) { + targetRow.getCell(10).value = numberFormatter(m2PISum.basicFee, 2); + targetRow.getCell(11).value = numberFormatter(m2PISum.fee, 2); + cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { + targetRow.getCell(1).value = num_2_2++; + targetRow.getCell(2).value = serviceX.code + '-' + pi; + targetRow.getCell(3).value = '项目' + pi; + targetRow.getCell(4).value = numberFormatter(m2PISum.area, 3); + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = numberFormatter(m2PISum.basicFee_basic, 2); + targetRow.getCell(7).value = '/'; + targetRow.getCell(8).value = numberFormatter(m2PISum.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m2PISum.basicFee, 2); + }); + } + }); + let det1 = m1PI.map(m => m.major); + let det2 = m2PI.map(m => m.major); + let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => { + let d1index = det1.indexOf(m); + let d2index = det2.indexOf(m); + return { + major: m, + mth1: d1index < 0 ? null : m1PI[d1index], + mth2: d2index < 0 ? null : m2PI[d2index], + }; + }); + allDet.forEach((m, mindex) => { + let majorX = majorList[m.major]; + cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { + targetRow.getCell(1).value = num_2++; + targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1); targetRow.getCell(3).value = majorX.name; - targetRow.getCell(4).value = m.mth1.cost; - targetRow.getCell(5).value = m.mth1.basicFormula; - targetRow.getCell(6).value = m.mth1.basicFee_basic; - targetRow.getCell(7).value = m.mth1.optionalFormula; - targetRow.getCell(8).value = m.mth1.basicFee_optional; - targetRow.getCell(9).value = m.mth1.basicFee; + if (m.mth1) { + targetRow.getCell(4).value = numberFormatter(m.mth1.serviceCoe, 3); + targetRow.getCell(5).value = numberFormatter(m.mth1.majorCoe, 3); + targetRow.getCell(6).value = numberFormatter(m.mth1.processCoe, 3); + targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2); + targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2); + targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2); + targetRow.getCell(10).value = ''; + targetRow.getCell(11).value = ''; + cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { + targetRow.getCell(1).value = num_2_1++; + targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1); + targetRow.getCell(3).value = majorX.name; + targetRow.getCell(4).value = numberFormatter(m.mth1.cost, 2); + targetRow.getCell(5).value = m.mth1.basicFormula; + targetRow.getCell(6).value = numberFormatter(m.mth1.basicFee_basic, 2); + targetRow.getCell(7).value = m.mth1.optionalFormula; + targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m.mth1.basicFee, 2); + }); + } else { + targetRow.getCell(4).value = numberFormatter(m.mth2.serviceCoe, 3); + targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3); + targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3); + targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2); + targetRow.getCell(8).value = ''; + targetRow.getCell(9).value = ''; + targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2); + targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2); + cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { + targetRow.getCell(1).value = num_2_2++; + targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1); + targetRow.getCell(3).value = majorX.name; + targetRow.getCell(4).value = numberFormatter(m.mth2.area, 3); + targetRow.getCell(5).value = m.mth2.basicFormula; + targetRow.getCell(6).value = numberFormatter(m.mth2.basicFee_basic, 2); + targetRow.getCell(7).value = m.mth2.optionalFormula; + targetRow.getCell(8).value = numberFormatter(m.mth2.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m.mth2.basicFee, 2); + }); + } }); - } else { - targetRow.getCell(4).value = m.mth2.serviceCoe; - targetRow.getCell(5).value = m.mth2.majorCoe; - targetRow.getCell(6).value = m.mth2.processCoe; - targetRow.getCell(7).value = m.mth2.proportion; - targetRow.getCell(8).value = 0; - targetRow.getCell(9).value = 0; - targetRow.getCell(10).value = m.mth2.basicFee; - targetRow.getCell(11).value = m.mth2.fee; - cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { - targetRow.getCell(1).value = num_2_2++; - targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); - targetRow.getCell(3).value = majorX.name; - targetRow.getCell(4).value = m.mth2.area; - targetRow.getCell(5).value = m.mth2.basicFormula; - targetRow.getCell(6).value = m.mth2.basicFee_basic; - targetRow.getCell(7).value = m.mth2.optionalFormula; - targetRow.getCell(8).value = m.mth2.basicFee_optional; - targetRow.getCell(9).value = m.mth2.basicFee; - }); - } + }); + } + } else { + let det1 = sobj.method1 ? sobj.method1.det.map(m => m.major) : []; + let det2 = sobj.method2 ? sobj.method2.det.map(m => m.major) : []; + let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => { + let d1index = det1.indexOf(m); + let d2index = det2.indexOf(m); + return { + major: m, + mth1: d1index < 0 ? null : sobj.method1.det[d1index], + mth2: d2index < 0 ? null : sobj.method2.det[d2index], + }; }); - }); + allDet.forEach((m, mindex) => { + let majorX = majorList[m.major]; + cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { + targetRow.getCell(1).value = num_2++; + targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); + targetRow.getCell(3).value = majorX.name; + if (m.mth1) { + targetRow.getCell(4).value = numberFormatter(m.mth1.serviceCoe, 3); + targetRow.getCell(5).value = numberFormatter(m.mth1.majorCoe, 3); + targetRow.getCell(6).value = numberFormatter(m.mth1.processCoe, 3); + targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2); + targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2); + targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2); + targetRow.getCell(10).value = ''; + targetRow.getCell(11).value = ''; + cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { + targetRow.getCell(1).value = num_2_1++; + targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); + targetRow.getCell(3).value = majorX.name; + targetRow.getCell(4).value = numberFormatter(m.mth1.cost, 2); + targetRow.getCell(5).value = m.mth1.basicFormula; + targetRow.getCell(6).value = numberFormatter(m.mth1.basicFee_basic, 2); + targetRow.getCell(7).value = m.mth1.optionalFormula; + targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m.mth1.basicFee, 2); + }); + } else { + targetRow.getCell(4).value = numberFormatter(m.mth2.serviceCoe, 3); + targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3); + targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3); + targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2); + targetRow.getCell(8).value = ''; + targetRow.getCell(9).value = ''; + targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2); + targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2); + cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { + targetRow.getCell(1).value = num_2_2++; + targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); + targetRow.getCell(3).value = majorX.name; + targetRow.getCell(4).value = numberFormatter(m.mth2.area, 3); + targetRow.getCell(5).value = m.mth2.basicFormula; + targetRow.getCell(6).value = numberFormatter(m.mth2.basicFee_basic, 2); + targetRow.getCell(7).value = m.mth2.optionalFormula; + targetRow.getCell(8).value = numberFormatter(m.mth2.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(m.mth2.basicFee, 2); + }); + } + }); + }); + } } if (sobj.method3) { cusInsertRowFunc(3 + num_3, [sheet_3.getRow(3)], sheet_3, (targetRow) => { @@ -1102,9 +1231,9 @@ async function generateTemplate(data) { targetRow.getCell(4).value = '/'; targetRow.getCell(5).value = '/'; targetRow.getCell(6).value = '/'; - targetRow.getCell(7).value = sobj.method3.basicFee; + targetRow.getCell(7).value = numberFormatter(sobj.method3.basicFee, 2); targetRow.getCell(8).value = '/'; - targetRow.getCell(9).value = sobj.method3.fee; + targetRow.getCell(9).value = numberFormatter(sobj.method3.fee, 2); }); sobj.method3.det.forEach((tobj, tindex) => { const taskX = taskList[tobj.task]; @@ -1113,11 +1242,11 @@ async function generateTemplate(data) { targetRow.getCell(2).value = taskX.code; targetRow.getCell(3).value = taskX.name + (taskX.desc ? `(${taskX.desc})` : ''); targetRow.getCell(4).value = taskX.basicParam; - targetRow.getCell(5).value = tobj.price; - targetRow.getCell(6).value = tobj.amount; - targetRow.getCell(7).value = tobj.basicFee; - targetRow.getCell(8).value = tobj.serviceCoe; - targetRow.getCell(9).value = tobj.fee; + targetRow.getCell(5).value = numberFormatter(tobj.price, 2); + targetRow.getCell(6).value = numberFormatter(tobj.amount, 2); + targetRow.getCell(7).value = numberFormatter(tobj.basicFee, 2); + targetRow.getCell(8).value = numberFormatter(tobj.serviceCoe, 3); + targetRow.getCell(9).value = numberFormatter(tobj.fee, 2); }); }); } @@ -1126,33 +1255,33 @@ async function generateTemplate(data) { targetRow.getCell(1).value = num_4++; targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; - targetRow.getCell(4).value = sobj.method4.person_num; - targetRow.getCell(5).value = sobj.method4.work_day; - targetRow.getCell(6).value = sobj.method4.fee; + targetRow.getCell(4).value = numberFormatter(sobj.method4.person_num, 0); + targetRow.getCell(5).value = numberFormatter(sobj.method4.work_day, 2); + targetRow.getCell(6).value = numberFormatter(sobj.method4.fee, 2); }); - cusInsertRowFunc(5 + num_4_1, [sheet_4_1.getRow(5)], sheet_4_1, (targetRow) => { + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { targetRow.getCell(1).value = num_4_1++; targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; targetRow.getCell(4).value = '/'; targetRow.getCell(5).value = '/'; targetRow.getCell(6).value = '/'; - targetRow.getCell(7).value = sobj.method4.person_num; - targetRow.getCell(8).value = sobj.method4.work_day; - targetRow.getCell(9).value = sobj.method4.fee; + targetRow.getCell(7).value = numberFormatter(sobj.method4.person_num, 0); + targetRow.getCell(8).value = numberFormatter(sobj.method4.work_day, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method4.fee, 2); }); sobj.method4.det.forEach((eobj, eindex) => { const expertX = expertList[eobj.expert]; - cusInsertRowFunc(5 + num_4_1, [sheet_4_1.getRow(5)], sheet_4_1, (targetRow) => { + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { targetRow.getCell(1).value = num_4_1++; targetRow.getCell(2).value = expertX.code; targetRow.getCell(3).value = expertX.name; targetRow.getCell(4).value = `${expertX.minPrice}~${expertX.maxPrice}`; targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}~${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`; - targetRow.getCell(6).value = eobj.price; - targetRow.getCell(7).value = eobj.person_num; - targetRow.getCell(8).value = eobj.work_day; - targetRow.getCell(9).value = eobj.fee; + targetRow.getCell(6).value = numberFormatter(eobj.price, 2); + targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0); + targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2); + targetRow.getCell(9).value = numberFormatter(eobj.fee, 2); targetRow.getCell(10).value = eobj.remark; }); }); @@ -1179,7 +1308,7 @@ async function generateTemplate(data) { targetRow.getCell(5).value = ''; targetRow.getCell(6).value = ''; targetRow.getCell(7).value = ''; - targetRow.getCell(8).value = ci.addtional.fee; + targetRow.getCell(8).value = numberFormatter(ci.addtional.fee, 2); }); ci.addtional.det.forEach((addobj, addindex) => { endRows++; @@ -1192,17 +1321,196 @@ async function generateTemplate(data) { if (addobj.m4) tmpArr.push(`按工时法计得${addobj.m4.fee}元`); if (addobj.m5) tmpArr.push(`按数量单价计得${addobj.m5.fee}元`); targetRow.getCell(4).value = tmpArr.join(';'); - targetRow.getCell(8).value = addobj.fee; + targetRow.getCell(8).value = numberFormatter(addobj.fee, 2); + if (addobj.m4) { + cusInsertRowFunc(4 + num_4, [sheet_4.getRow(4)], sheet_4, (targetRow) => { + targetRow.getCell(1).value = num_4++; + targetRow.getCell(2).value = addobj.ref; + targetRow.getCell(3).value = addobj.name; + targetRow.getCell(4).value = numberFormatter(addobj.m4.person_num, 0); + targetRow.getCell(5).value = numberFormatter(addobj.m4.work_day, 2); + targetRow.getCell(6).value = numberFormatter(addobj.m4.fee, 2); + }); + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { + targetRow.getCell(1).value = num_4_1++; + targetRow.getCell(2).value = addobj.ref; + targetRow.getCell(3).value = addobj.name; + targetRow.getCell(4).value = '/'; + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = '/'; + targetRow.getCell(7).value = numberFormatter(addobj.m4.person_num, 0); + targetRow.getCell(8).value = numberFormatter(addobj.m4.work_day, 2); + targetRow.getCell(9).value = numberFormatter(addobj.m4.fee, 2); + }); + addobj.m4.det.forEach((eobj, eindex) => { + const expertX = expertList[eobj.expert]; + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { + targetRow.getCell(1).value = num_4_1++; + targetRow.getCell(2).value = expertX.code; + targetRow.getCell(3).value = expertX.name; + targetRow.getCell(4).value = `${expertX.minPrice}~${expertX.maxPrice}`; + targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}~${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`; + targetRow.getCell(6).value = numberFormatter(eobj.price, 2); + targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0); + targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2); + targetRow.getCell(9).value = numberFormatter(eobj.fee, 2); + targetRow.getCell(10).value = eobj.remark; + }); + }); + } + if (addobj.m5) { + cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => { + num_5++; + targetRow.getCell(1).value = addobj.ref; + targetRow.getCell(2).value = addobj.name; + targetRow.getCell(3).value = '/'; + targetRow.getCell(4).value = '/'; + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = numberFormatter(addobj.m5.fee, 2); + }); + const tmpJSS = JSON.stringify(addobj.ref); + addobj.m5.det.forEach((eobj, eindex) => { + let ref = JSON.parse(tmpJSS); + ref.richText.push({ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: '-' + (eindex + 1) }); + cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => { + num_5++; + targetRow.getCell(1).value = ref; + targetRow.getCell(2).value = eobj.name; + targetRow.getCell(3).value = eobj.unit; + targetRow.getCell(4).value = numberFormatter(eobj.amount, 3); + targetRow.getCell(5).value = numberFormatter(eobj.price, 2); + targetRow.getCell(6).value = numberFormatter(eobj.fee, 2); + targetRow.getCell(7).value = eobj.remark; + }); + }); + } }); }); } + if (ci.reserve) { + endRows++; + cusInsertRowFunc(ci.services.length + 3 + endRows, [sheet_1.getRow(3)], sheet_1, (targetRow) => { + targetRow.getCell(1).value = ci.services.length + endRows; + targetRow.getCell(2).value = ci.reserve.ref; + targetRow.getCell(3).value = ci.reserve.name; + let tmpArr = []; + if (ci.reserve.m0) tmpArr.push(`按上述小计及附加工作费之和的${ci.reserve.m0.coe}计得${ci.reserve.m0.fee}元`); + if (ci.reserve.m4) tmpArr.push(`按工时法计得${ci.reserve.m4.fee}元`); + if (ci.reserve.m5) tmpArr.push(`按数量单价计得${ci.reserve.m5.fee}元`); + targetRow.getCell(4).value = tmpArr.join(';'); + targetRow.getCell(8).value = numberFormatter(ci.reserve.fee, 2); + }); + if (ci.reserve.m4) { + cusInsertRowFunc(4 + num_4, [sheet_4.getRow(4)], sheet_4, (targetRow) => { + targetRow.getCell(1).value = num_4++; + targetRow.getCell(2).value = ci.reserve.ref; + targetRow.getCell(3).value = ci.reserve.name; + targetRow.getCell(4).value = numberFormatter(ci.reserve.m4.person_num, 0); + targetRow.getCell(5).value = numberFormatter(ci.reserve.m4.work_day, 2); + targetRow.getCell(6).value = numberFormatter(ci.reserve.m4.fee, 2); + }); + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { + targetRow.getCell(1).value = num_4_1++; + targetRow.getCell(2).value = ci.reserve.ref; + targetRow.getCell(3).value = ci.reserve.name; + targetRow.getCell(4).value = '/'; + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = '/'; + targetRow.getCell(7).value = numberFormatter(ci.reserve.m4.person_num, 0); + targetRow.getCell(8).value = numberFormatter(ci.reserve.m4.work_day, 2); + targetRow.getCell(9).value = numberFormatter(ci.reserve.m4.fee, 2); + }); + ci.reserve.m4.det.forEach((eobj, eindex) => { + const expertX = expertList[eobj.expert]; + cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => { + targetRow.getCell(1).value = num_4_1++; + targetRow.getCell(2).value = expertX.code; + targetRow.getCell(3).value = expertX.name; + targetRow.getCell(4).value = `${expertX.minPrice}~${expertX.maxPrice}`; + targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}~${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`; + targetRow.getCell(6).value = numberFormatter(eobj.price, 2); + targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0); + targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2); + targetRow.getCell(9).value = numberFormatter(eobj.fee, 2); + targetRow.getCell(10).value = eobj.remark; + }); + }); + } + if (ci.reserve.m5) { + cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => { + num_5++; + targetRow.getCell(1).value = ci.reserve.ref; + targetRow.getCell(2).value = ci.reserve.name; + targetRow.getCell(3).value = '/'; + targetRow.getCell(4).value = '/'; + targetRow.getCell(5).value = '/'; + targetRow.getCell(6).value = numberFormatter(ci.reserve.m5.fee, 2); + }); + const tmpJSS = JSON.stringify(ci.reserve.ref); + ci.reserve.m5.det.forEach((eobj, eindex) => { + let ref = JSON.parse(tmpJSS); + ref.richText.push({ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: '-' + (eindex + 1) }); + cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => { + num_5++; + targetRow.getCell(1).value = ref; + targetRow.getCell(2).value = eobj.name; + targetRow.getCell(3).value = eobj.unit; + targetRow.getCell(4).value = numberFormatter(eobj.amount, 3); + targetRow.getCell(5).value = numberFormatter(eobj.price, 2); + targetRow.getCell(6).value = numberFormatter(eobj.fee, 2); + targetRow.getCell(7).value = eobj.remark; + }); + }); + } + } sheet_1.spliceRows(3, 1); sheet_1.getRow(ci.services.length + endRows + 3).getCell(1).value = ci.services.length + endRows + 1; - sheet_1.getRow(ci.services.length + endRows + 3).getCell(8).value = ci.fee; + sheet_1.getRow(ci.services.length + endRows + 3).getCell(8).value = numberFormatter(ci.fee, 2); sheet_1.mergeCells(2 + ci.services.length + endRows + 2, 2, 2 + ci.services.length + endRows + 2, 8); sheet_1.getRow(2 + ci.services.length + endRows + 2).height = 100; sheet_1.getRow(2 + ci.services.length + endRows + 2).getCell(2).border.right = { style: 'thin' }; + + if (sheet_2) { + sheet_2.spliceRows(4, 1); + sheet_2.mergeCells(3 + num_2, 2, 3 + num_2, 11); + sheet_2.getRow(3 + num_2).height = 100; + sheet_2.getRow(3 + num_2).getCell(2).border.right = { style: 'thin' }; + if (sheet_2_1) { + sheet_2_1.spliceRows(4, 1); + sheet_2_1.mergeCells(3 + num_2_1, 2, 3 + num_2_1, 9); + sheet_2_1.getRow(3 + num_2_1).height = 100; + sheet_2_1.getRow(3 + num_2_1).getCell(2).border.right = { style: 'thin' }; + } + if (sheet_2_2) { + sheet_2_2.spliceRows(4, 1); + sheet_2_2.mergeCells(3 + num_2_2, 2, 3 + num_2_2, 9); + sheet_2_2.getRow(3 + num_2_2).height = 100; + sheet_2_2.getRow(3 + num_2_2).getCell(2).border.right = { style: 'thin' }; + } + } + + if (sheet_3) { + sheet_3.spliceRows(3, 1); + sheet_3.mergeCells(2 + num_3, 2, 2 + num_3, 9); + sheet_3.getRow(2 + num_3).height = 100; + sheet_3.getRow(2 + num_3).getCell(2).border.right = { style: 'thin' }; + } + + if (sheet_4) { + sheet_4.spliceRows(4, 1); + sheet_4.getRow(2).height = 20.25; + sheet_4_1.spliceRows(4, 1); + sheet_4_1.mergeCells(3 + num_4_1, 2, 3 + num_4_1, 10); + sheet_4_1.getRow(3 + num_4_1).height = 100; + sheet_4_1.getRow(3 + num_4_1).getCell(2).border.right = { style: 'thin' }; + } + + if (sheet_5) { + sheet_5.spliceRows(4, 1); + sheet_5.getRow(2).height = 20.25; + } + for (let i = 1; i <= endRows; i++) { sheet_1.mergeCells(ci.services.length + 3 + i, 4, ci.services.length + 3 + i, 7); if (sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment) { @@ -1222,9 +1530,9 @@ async function generateTemplate(data) { targetRow.getCell(i * 7 + 1).value = sindex + 1; targetRow.getCell(i * 7 + 2).value = serviceX.code; targetRow.getCell(i * 7 + 3).value = serviceX.name; - targetRow.getCell(i * 7 + 4).value = s.contracts[i * 4]; - targetRow.getCell(i * 7 + 5).value = s.contracts[i * 4 + 1]; - targetRow.getCell(i * 7 + 6).value = s.contracts[i * 4 + 2]; + targetRow.getCell(i * 7 + 4).value = numberFormatter(s.contracts[i * 4], 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(s.contracts[i * 4 + 1], 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(s.contracts[i * 4 + 2], 2); siSum = addNumbers( siSum, toFiniteNumber(s.contracts[i * 4]), @@ -1234,7 +1542,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(i * 7 + 7).value = s.contracts[i * 4 + 3]; + targetRow.getCell(i * 7 + 7).value = numberFormatter(s.contracts[i * 4 + 3], 2); siSum = addNumbers(siSum, toFiniteNumber(s.contracts[i * 4 + 3])); } } @@ -1245,12 +1553,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); } else if (yz01Mod == 2) { - targetRow.getCell(yz01Num * 7 + 4).value = s.contracts[yz01Num * 4]; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(s.contracts[yz01Num * 4], 2); siSum = addNumbers(siSum, toFiniteNumber(s.contracts[yz01Num * 4])); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = s.contracts[yz01Num * 4]; - targetRow.getCell(yz01Num * 7 + 5).value = s.contracts[yz01Num * 4 + 1]; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(s.contracts[yz01Num * 4], 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(s.contracts[yz01Num * 4 + 1], 2); siSum = addNumbers( siSum, toFiniteNumber(s.contracts[yz01Num * 4]), @@ -1271,9 +1579,9 @@ async function generateTemplate(data) { targetRow.getCell(i * 7 + 1).value = allServices.length + 1; targetRow.getCell(i * 7 + 2).value = allAddtional[firstNum].code; targetRow.getCell(i * 7 + 3).value = allAddtional[firstNum].name; - targetRow.getCell(i * 7 + 4).value = allAddtional[i * 4]?.fee; - targetRow.getCell(i * 7 + 5).value = allAddtional[i * 4 + 1]?.fee; - targetRow.getCell(i * 7 + 6).value = allAddtional[i * 4 + 2]?.fee; + targetRow.getCell(i * 7 + 4).value = numberFormatter(allAddtional[i * 4]?.fee, 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(allAddtional[i * 4 + 1]?.fee, 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(allAddtional[i * 4 + 2]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allAddtional[i * 4]?.fee), @@ -1283,7 +1591,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(i * 7 + 7).value = allAddtional[i * 4 + 3]?.fee; + targetRow.getCell(i * 7 + 7).value = numberFormatter(allAddtional[i * 4 + 3]?.fee, 2); siSum = addNumbers(siSum, toFiniteNumber(allAddtional[i * 4 + 3]?.fee)); } } @@ -1294,12 +1602,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); } else if (yz01Mod == 2) { - targetRow.getCell(yz01Num * 7 + 4).value = allAddtional[yz01Num * 4]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allAddtional[yz01Num * 4]?.fee, 2); siSum = addNumbers(siSum, toFiniteNumber(allAddtional[yz01Num * 4]?.fee)); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = allAddtional[yz01Num * 4]?.fee; - targetRow.getCell(yz01Num * 7 + 5).value = allAddtional[yz01Num * 4 + 1]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allAddtional[yz01Num * 4]?.fee, 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allAddtional[yz01Num * 4 + 1]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allAddtional[yz01Num * 4]?.fee), @@ -1319,9 +1627,9 @@ async function generateTemplate(data) { targetRow.getCell(i * 7 + 1).value = allServices.length + endRows; targetRow.getCell(i * 7 + 2).value = allReserve[firstNum].code; targetRow.getCell(i * 7 + 3).value = allReserve[firstNum].name; - targetRow.getCell(i * 7 + 4).value = allReserve[i * 4]?.fee; - targetRow.getCell(i * 7 + 5).value = allReserve[i * 4 + 1]?.fee; - targetRow.getCell(i * 7 + 6).value = allReserve[i * 4 + 2]?.fee; + targetRow.getCell(i * 7 + 4).value = numberFormatter(allReserve[i * 4]?.fee, 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(allReserve[i * 4 + 1]?.fee, 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(allReserve[i * 4 + 2]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allReserve[i * 4]?.fee), @@ -1331,7 +1639,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(i * 7 + 7).value = allReserve[i * 4 + 3]?.fee; + targetRow.getCell(i * 7 + 7).value = numberFormatter(allReserve[i * 4 + 3]?.fee, 2); siSum = addNumbers(siSum, toFiniteNumber(allReserve[i * 4 + 3]?.fee)); } } @@ -1342,12 +1650,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); } else if (yz01Mod == 2) { - targetRow.getCell(yz01Num * 7 + 4).value = allReserve[yz01Num * 4]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allReserve[yz01Num * 4]?.fee, 2); siSum = addNumbers(siSum, toFiniteNumber(allReserve[yz01Num * 4]?.fee)); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = allReserve[yz01Num * 4]?.fee; - targetRow.getCell(yz01Num * 7 + 5).value = allReserve[yz01Num * 4 + 1]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allReserve[yz01Num * 4]?.fee, 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allReserve[yz01Num * 4 + 1]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allReserve[yz01Num * 4]?.fee), @@ -1361,13 +1669,13 @@ async function generateTemplate(data) { const yz01SumRow = yz01_sheet.getRow(allServices.length + endRows + 3); for (let i = 0; i < yz01Num; i++) { yz01SumRow.getCell(i * 7 + 1).value = allServices.length + endRows + 1; - yz01SumRow.getCell(i * 7 + 4).value = data.contracts[i * 4]?.fee; - yz01SumRow.getCell(i * 7 + 5).value = data.contracts[i * 4 + 1]?.fee; - yz01SumRow.getCell(i * 7 + 6).value = data.contracts[i * 4 + 2]?.fee; + yz01SumRow.getCell(i * 7 + 4).value = numberFormatter(data.contracts[i * 4]?.fee, 2); + yz01SumRow.getCell(i * 7 + 5).value = numberFormatter(data.contracts[i * 4 + 1]?.fee, 2); + yz01SumRow.getCell(i * 7 + 6).value = numberFormatter(data.contracts[i * 4 + 2]?.fee, 2); if (i == yz01Num - 1 && yz01Mod == 0) { yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.fee, 2); } else { - yz01SumRow.getCell(i * 7 + 7).value = data.contracts[i * 4 + 3]?.fee; + yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.contracts[i * 4 + 3]?.fee, 2); } } if (yz01Mod) { @@ -1375,11 +1683,11 @@ async function generateTemplate(data) { if (yz01Mod == 1) { yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.fee, 2); } else if (yz01Mod == 2) { - yz01SumRow.getCell(yz01Num * 7 + 4).value = data.contracts[yz01Num * 4]?.fee; + yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.contracts[yz01Num * 4]?.fee, 2); yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.fee, 2); } else { - yz01SumRow.getCell(yz01Num * 7 + 4).value = data.contracts[yz01Num * 4]?.fee; - yz01SumRow.getCell(yz01Num * 7 + 5).value = data.contracts[yz01Num * 4 + 1]?.fee; + yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.contracts[yz01Num * 4]?.fee, 2); + yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.contracts[yz01Num * 4 + 1]?.fee, 2); yz01SumRow.getCell(yz01Num * 7 + 6).value = numberFormatter(data.fee, 2); } } @@ -1438,9 +1746,9 @@ async function generateTemplate(data) { workbook.removeWorksheet('预i-4表'); workbook.removeWorksheet('预i-4-1表'); workbook.removeWorksheet('预i-5表'); - workbook.getWorksheet('辅01表').orderNo = ml_number + 2 + 11; - workbook.getWorksheet('辅02表').orderNo = ml_number + 3 + 11; - workbook.getWorksheet('辅03表').orderNo = ml_number + 4 + 11; + f01_sheet.orderNo = ml_number + 2 + 11; + f02_sheet.orderNo = ml_number + 3 + 11; + f03_sheet.orderNo = ml_number + 4 + 11; workbook._worksheets.forEach(sheet => { if (sheet) {