From 1d92805116a9cb5de03f638bf1422b6db191b88e Mon Sep 17 00:00:00 2001 From: xd <844539747@qq.com> Date: Wed, 19 Jun 2024 11:10:05 +0800 Subject: [PATCH] '123' --- ABAP_AS_WITH_POOL.jcoDestination | 4 +- BJD_20240619000073.xls | Bin 0 -> 13824 bytes BJD_20240619000099.xls | Bin 0 -> 13824 bytes BJD_20240619000115.xls | Bin 0 -> 13824 bytes RB_BJD_AHP20240619092621195275 | Bin 0 -> 13824 bytes RB_BJD_DHW20240619093313731913.xls | Bin 0 -> 13824 bytes RB_BJD_ENZ20240619091135080348 | Bin 0 -> 13824 bytes RB_BJD_GXW20240619091043295970 | Bin 0 -> 13824 bytes RB_BJD_IXK20240619091608786202 | Bin 0 -> 13824 bytes RB_BJD_RUH20240619094420010842.xls | Bin 0 -> 13824 bytes RB_BJD_SNP20240619093101696539.xls | Bin 0 -> 13824 bytes ruoyi-admin/pom.xml | 5 + .../controller/redBook/RedBookController.java | 100 +++++++++++------- .../ruoyi/web/utils/rbExcel/excelUtil.java | 94 +++++++++++++++- ruoyi-ui/src/api/redBook/redBook.js | 2 +- ruoyi-ui/src/views/redBook/productSelect.vue | 24 +---- .../statisticsQuot/statisticsQuot/index.vue | 5 - 17 files changed, 163 insertions(+), 71 deletions(-) create mode 100644 BJD_20240619000073.xls create mode 100644 BJD_20240619000099.xls create mode 100644 BJD_20240619000115.xls create mode 100644 RB_BJD_AHP20240619092621195275 create mode 100644 RB_BJD_DHW20240619093313731913.xls create mode 100644 RB_BJD_ENZ20240619091135080348 create mode 100644 RB_BJD_GXW20240619091043295970 create mode 100644 RB_BJD_IXK20240619091608786202 create mode 100644 RB_BJD_RUH20240619094420010842.xls create mode 100644 RB_BJD_SNP20240619093101696539.xls diff --git a/ABAP_AS_WITH_POOL.jcoDestination b/ABAP_AS_WITH_POOL.jcoDestination index 5af05ab..8dfc3c9 100644 --- a/ABAP_AS_WITH_POOL.jcoDestination +++ b/ABAP_AS_WITH_POOL.jcoDestination @@ -1,5 +1,5 @@ #for tests only ! -#Mon Jun 17 15:48:27 CST 2024 +#Wed Jun 19 10:12:57 CST 2024 jco.destination.pool_capacity=10 jco.client.lang=ZH jco.client.ashost=172.19.0.125 @@ -7,5 +7,5 @@ jco.client.saprouter= jco.client.user=RFC jco.client.sysnr=00 jco.destination.peak_limit=10 -jco.client.passwd=654321 +jco.client.passwd=dbTq!8PGYoMxt}M?DFv(:oQQUwH:qM9KKr$k^CHW9U;kE9uK jco.client.client=800 diff --git a/BJD_20240619000073.xls b/BJD_20240619000073.xls new file mode 100644 index 0000000000000000000000000000000000000000..47a4b4228e376e0df48da5c7c9a3e23638e255b0 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/BJD_20240619000115.xls b/BJD_20240619000115.xls new file mode 100644 index 0000000000000000000000000000000000000000..250d54b0b28cc15d7e1241a3abc3287f0ae654b2 GIT binary patch literal 13824 zcmeHO&ud&&6#njeZ;~0?=EtNzw4jWUf=$P0Qd^3~G%Z$0Yico#RS4*$Mp9aB329MO zI%-@<6%<{%=|aSny3tJ$16{ZfDsBXEk(T}g6{MTi@%zrpo0*mjMzEme+{eA&J?Gwc z&bi;cb7vN3e!9@Tc=qd!7jaV=MvOme1++Ek1N(Pnau+yWt4Yl8PWGwt@;_prkmp9W zotnIb7gKfaK z_Rg=S8Nf#T!1=Y)AL^L1k6RNDi&uG z_mNOv=24rsled~<)O@~w;ozA=SI7C%`S*rq2-{Acku)(r_7vg7^o5T&?K$kllXwO> zgaPzn5dGMOc7%u6*^USKDLR^t?!y>~))O?9^9SqmDQv9^HB50zZvrTi2Z$Sp4-@Yp zK1$p~+)XSKM~PdB2Z_VP3UMECmN-c~O*}%JC%!^t%y^x62Wxr{cHM9fu8Pu6ABV{T zaGqR!!dr5U-5#sizKBliciSD(g*>i(apmW+sRKKoH+`S!w^;kOX{wyl$%hNaChit* z9K6Mmg+#vAvA$!o=dC@<{V!0LmKfzw4rzaJXNCb2oSVm+#u2r}PP@e=%S*Ey$!gPh z%y0Q-Ing?o#u0Ux3&qG=i8UYbyTbbE9XUed(kY}IZq(^kxml+hrCE2~m`_&?q*5RU zvX@E`C0R?$bt^C5Bo8gj%@Ps|XQ4!zR53v#2 z8RDr^xtpg*zF4$;6$R_X8E^)i0cXG&a0Z+KXTTY72AlzBz!`7`oB?OR8E^)i0cXG& za0Z+KXTTY72AlzBz!`7`oB?OR8E^)i0cXG&a0YIB29!FeyhmjcDw|Syo=P=TzNG%w zq1;HN6)J;KIk;Ts&4kheiPV^lA z@$edVZskRpuGz}6G}OO)TjwF0bBNw&nHN4~aU9LmD@OejL}xdPVZ|?|smzRi94GNI zpNg%0lq|etF-bGWeDUL!E8fcP{q(POXEC&z*Q{6eG3x#wr-#E9!?f+dKZ|Dv{by?z NHv4JSH`h!4{{mONt%3jm literal 0 HcmV?d00001 diff --git a/RB_BJD_AHP20240619092621195275 b/RB_BJD_AHP20240619092621195275 new file mode 100644 index 0000000000000000000000000000000000000000..afbc2a166b52e063c250ba77351c5428cc38e027 GIT binary patch literal 13824 zcmeHO-;0!07=F$--|Wt$&hF0oql9AG5Okf^c1@A;$0`}DvMO$?1q(WB8=97~s1y`V zKfDMFiteHtFCx0CZt_N=g)X`Xlx~8ESfhWyAiUA0=XpCn`%%GNz2mD585>jwshDz`0dlU{xEw+J^6M!x!h|^YkE~ujx;^%=TTL z1w7c~>F4`Nitc)@A?&Gl7?$g)VQ;d`9 zO1{dY_B^`C-@{Di<6SdPo!ftHjGexIYvWM(5jgO7)CY+eM^j;p}8SKD5tjAjQ z8ALyZunwIFk6?i88vcrovYrihVw6Jb32NBDUcU6vlZBk`Vd664qr?Y@j}uoAw-Kwv z5#n0nKH@O3M%+o9CQcB~5RVY$d%WGcZ@S$UB=I-JYJTH@4=8ju@4iKLCoE+7EZ5Fe zp@${wP{8$1u6{Q~5B=Sz7HxqqfxNw5}FA<$h!~l9ElKmGiD) zE+qT{*n7PBhB>%6xs=Dvob+hrZkWn(g+R0d*Q>tKN@%H9v~sjGbF@-g(n^+kEH!_k z6=>;O6s?4oK2Oog(JK69rL?4`>NHbx6zySi6sgo4C7~b9Q4;zQNBN$kl<3S#JjrKs zQpOkdC(tlQ-pG@obU$}G>Su0?(qZ%D3b+EUfGgk%xB{+#E8q&a0HQc^;RQZ5Tl)xAc+PwhbCQwd$H}x$D>=W`o%ztdWwS=H%M2^Gl*bdC;gI<-WjkObfI11Ec-^Z)<= literal 0 HcmV?d00001 diff --git a/RB_BJD_DHW20240619093313731913.xls b/RB_BJD_DHW20240619093313731913.xls new file mode 100644 index 0000000000000000000000000000000000000000..70a56c625d05862bbe7ad22c74645c787d797bf2 GIT binary patch literal 13824 zcmeHOTZm0j82;8i`^=obZ~unYZOK_p4at3VHIr&;>ym#g&8GL)e#Xfdrn7XoM5cuMPnd+3 z6ZAi|05mdOpgsk(^+8 zwn#CN^%X0!#fr#6u`(OYt>?~nILY_vjW5rOxT`H67B{EQ!Y7~NR%=5q@{-A1Tim|v z%!&_b-t_SFw9SNxd(Vi~oNin~*wxx`Ar7}1b1(+0un_aH9Cf^S?*vry^_hfXxN)dq zWh~9DY>&b%LL&v2%fZzmho!7kaYTLScMNd=aRPBDaVl{HaW*kUY#@#&t|cxYZXu?L z2Z+J>a7Mt}1xI)42^Z4tlXG0&B8&RtDa&0d|3?Hw*ecIU4 zG;^Ku)yj|7@|ZGN_9^AX>0kucg69d2vZdV@U;UVmYwr_UUgqk?$ptBbluNmw-Z?Ww zhi3MT;jn5#Hc_f)wAkV$-}dCGdF>H?!}D#Q>k-=UO4LPg=*V7+dHfPEMG>5U^?bN+ zGNgR&lPVg_1_&(2xkt{6j%{j zv2T`7OO$&??l!TKJ8p)Tz#aX$Qcq@@?g3y3S3|rri91QMAuO2!rhqA63YY?>fGJ=K zm;$DNDPRhi0;Yf|U<#N5rhqA63YY?>fGJ=Km;$DNDPRhi0;Yf|U<#N5rhqA63YY?> zfGP0LDj-3T600dOk`k9G(U=lMDUp}*zYdAAlz_?J%o3H`msui5OPQs;oS0y)U=Cwk z`?D^QyVCxNSg==``dY6-?|Ldcox=!`#*GMy0>#vBu;X)*-6V?-b(&B)--Y90+W_Q3YTsoo0qSF2J}e28tDTpl0>@;NSK zLl)N;|Inzl)Oue##~B9vgdGU4*Q?D{Mbg01Mho2>bG$pTHR@NGwXnh zcF!+n>BTa9$MMxSKhid*WWxX^@iNLdiu>F9E4}4$NfV>g`kg_C+5V^&ft%K3^-WQB zh52vT<#w*;Wa`*yo^$;F!5&ZqUein@DbL+=&NpCX9eb&cy{nErKc_v*2m(51*}Kf%ZS~t`sc=jSFHQ$5A_l-Y zy~UpCSiTmsykn!^wfY=aI!{|78I(dPB<-0kDF%#iY>qP#CzL{qo!8RkrB;vh)SCVb zzvs1j%ymt5M9ucN?OijE<(;Z9r>{JWX^esyIB5L|PC0d4B?v55y6LUY)_7$-MJFqz_;A{Ko(of4K zuAXE$S3}+@awpM-aB&8l0cXG&a0Z+KXTTY72AlzBz!`7`oB?OR8E^)i0cXG&a0Z+K zXTTY72AlzBz!`7`oB?OR8E^)i0cXG&a0Z+KXW)TiK#7pb&s1Kdaxs;Gsl-WTTk3xu z%B)n9WD|?BP8YE#TeO8m{cXeoOFK)N*SdslW$UW{7K_m3zsbN}9OrccMQq10;v`<> z%FSPtvzyK=O{)E;yR{$EF{AW8$sF)8i{nUYo;T{BAlkcW4D-G*NpNQL!Xohl3WwxUImw#j}zA)42<0z0_}+ I>%aWp2G;AJaR2}S literal 0 HcmV?d00001 diff --git a/RB_BJD_GXW20240619091043295970 b/RB_BJD_GXW20240619091043295970 new file mode 100644 index 0000000000000000000000000000000000000000..478661d9025ca13644309405c493203809f1e5b3 GIT binary patch literal 13824 zcmeHO&u>&!7(MsBH|>l-e@x2{Ni<_k6D?!0D1=~vLd2wy0%@%%A;BqDYd~olAeu-V z0T%{HG;UnDVPT9bH6gkogeELpkU-d&m@bO(AJD|G0f%$G=cA+P#F{{&po0kd*xWAwC$Y(imRGSS^g<)qkS9_IDe!z!(pJo!>FAiUf-P}1k zas~N;%B)Y&)Eb7_>0%s<>Fp`va^kbZM~Tl7yNO$gW#S<5 z8R9UppSYhmNSq|@B_1cfK~&`F+1B=#vu#n7zEK>u_x>}=e4dBi5<3wVvwaP%)^E4* zHso>Zt6#4VjqTpN-}oNmS6O?)m@4PA^26nzn>)Z$1Rro@I+3rXtS4>uDQnMhPYdMI z5~Cc-A??p@&M;ttSy z0aw5ka0OfeSHKl;1zZ7Fz!h)>Tme_W6>tSy0aw5ka0OfeSHKl;1zZ7Fz!h)>Tme_W z6>tSy0aw5ka0MO!1(Y7CtW9N0DnnCwnM$Wr4yOLsp?piFPA+0qe(n-h<&d_rYP_9T zWbI(hvR#+4uN+>D-)0qh`EM#PjKlmKK?&RNHgO8?a_1Ial*yZ|EK9Zhr>pfmWOMe= z`xG<7$1IM68NFcCKSA{DW-%=I!Zhuf(U0IL-r}cXYagTvuUkxFj`05C qoyE|2=G=%fnsL|v^Yn1QVi>m__;>NFr~hp2!Z|OEd*=F2|91f8Pn*X8 literal 0 HcmV?d00001 diff --git a/RB_BJD_IXK20240619091608786202 b/RB_BJD_IXK20240619091608786202 new file mode 100644 index 0000000000000000000000000000000000000000..722866fdd01fef064f632da0ae75976c72a82f6a GIT binary patch literal 13824 zcmeHO--}gM7+w3Eb7$^Noga5bEkU_W2s+->88f6N9Yu>V#$={R1*7iRh@q(rDn&)N zUk{;z5%}bb48Ujw2R^qw>bG&nt?jb5g>Ar( z_RJMydawW&IllJM32k$hTv(5Byp0O>;r{miPHzRA*Th)r{Z69Oxa+kNaMNzt{9F>R zF#iu;Zl`-s+<+%N?f6H54=4d2XeKI|&da8qZ@|(9e7OPN-GDDl%jXzDK-W|}$$VRP zMHcYn6wf%niW0O{SBt2nWY5eHkO{z-GLr@vG2{ z)mVvUgdX%_1?x)eWnT{AWeieeT|vDy4DqImQOu^Vr-}24&kz?8pC>LRZXlM41H@It zAz~l#b>d6J{lx9W_laXf#hspPZT~pgW<}}eiQV?8KS`0lPV&V$)(-$JY1w_AT3 z^0@i+pT7-`Ze90=@!iHRv-T5XsvOhGi_^hk>d!L-AG2p7k*~R|pW5iptUb*YEs#q~ zjB+T4^nP+(h5;iSo5zQy3E5(+oy)T2rQVM8*1GKiE%{elmSrJ(Y!A4S8pgI~8pRFRp+q;0m|` zu7E4x3b+EUfGgk%xB{+#E8q&a0<_r z+QFLTyUydivUt^hi&g05!Bk)f2Y4Mq37fE=IF9$Yax*W=<;`Z6CENbn)7lT&m~Hev z&fM@(i(_v_&lvSj5bfP8h8aJYCO$LzVI0Ogyec;L0jjXuViI$R|Nl5Zrg2$9|C)Ce oL*tQCJ<4guUH=>DVVA`)W-IXD;#oug+1!OwUK-z->%aZq0R&x}g#Z8m literal 0 HcmV?d00001 diff --git a/RB_BJD_RUH20240619094420010842.xls b/RB_BJD_RUH20240619094420010842.xls new file mode 100644 index 0000000000000000000000000000000000000000..a63a33e5cb93f1b06fe1f08677ee5a2212849dba GIT binary patch literal 13824 zcmeHOUx-vy9RALoJG(Qf`)79jlTb_>LayW1t|?;v*_Dh|Srf!pPhdNx24s{;GbF^O?7-={n6BJ1KVpgnJLa=os_2sNP&Eg3)z&# zU$ZYYYb~|jR}kS$JkApMop}ciVtwUkrMT|c&e8qFflY(OqkTQgdV2ec_bjcY_dnuF z&=^*+4ETaf3-_Oxf|VUsertWsCq3D+C$xkeD=s{_oc+N2UXJ>$-zQdfS=que;GEs_ zt1-QpkBjVIJN~J*Ia4+aU<`Xv!G7G^*5BwYkMo)sQ@!5_bQ z!OQJb&&f34Nl)4TVc-Lbz&o0WQmXT!Dd!uoumN9cz;`#`^HcI!jv%0Gay;=|TX&5t z;E73|MiU@>07dc1(G zScX2`+ly{2!BR9MJcAyxPxEcs$M!731`JVfT|pgd*vv{7M>Lau7Zc|apCvv{e2%z) zxRzKV4ic9TUnRas+)FGI-zM%Nen>n-)EtsiuI)dk+>9uBx7chaz?T&K0*}90b~emp zxeKjUZ@2a~-TnnBjc#kdPv3$*DK4HC2 zT6vnQn5e&k zc4`G$`u-$s5iNa^5-US1cgu=tNx5IheMju%j$0iS@V)(9=_j+&_5ko0S3};J2inP?V(tCTB1!Dt8vM zB1c=9)!t4lFn2JgF|Ko1SLCkRZ!ilz-Jc3<#sOZ3QN%jDNgTslT)F8d#qXvwO9O20 zbhq|H+GiWRk1-y6#Ky5NrKgShCy4fLI)-WAm;^g>^kp2u8@wtu_d%+#+r}j3F#rE? xfK21`6#Z-7=@=UKoNQ4XGj92Ro*s7E7)EUc{@-|((|LToss|m literal 0 HcmV?d00001 diff --git a/RB_BJD_SNP20240619093101696539.xls b/RB_BJD_SNP20240619093101696539.xls new file mode 100644 index 0000000000000000000000000000000000000000..6f826845e2892b585a746d7de1be5229120f0445 GIT binary patch literal 13824 zcmeHOTW?HJ6#n*^GwqB^FVm_^LPn(t?I?ANxKxQtN?M{yC4?yzf|8~cf*7|4K|&;+ zym%1tt(%toV`UM&zwy&fVwlg?;S!l5 z?muA?+Lmd1UB}!DMzUwSD{>p=+@CO;7g^B^g_g!wyoaXZj+B6)by z1CIY6c!wl#NM<4>)VXHB`8rI>!>97_)p_{%fP9n@I8^q>cgx6w5Qw>}KwKhm(AtUik97h`ZAMp}Do?41Dq_ZnbR~LS8DF ztIfS@POtmW!kZqRnzx-Wv*)x}tu0L}341%9oaeA6tjBV!35dViuB~}p^5mUrQ;&kE~Vm)yqaT&3b z*hV}^>>x_q!O2$g-N`o83*IMo>sx=3BH!YXH(bwyVQjaeSg%X9zXUOSy!Q54Q~Rm~ zo0P9szDC<)%49gEm>*6DRn(tn2#&I+*B4(SSdZ)I6WU(pipI$WC4!Vox!}5QL5L2m z92>)7)r4%KSkGm##Y?X3$y0OsBUC@v_PKtc4X;RD1P6`mub9WvpCyXm)NA0wg_DqS zxlgKSFdHDS9OowE0?VT%&kd{yEjd2|%cmu}h$VMa@Y$i|Xvud@(C5*Tuc5$-(29Mt zd|IO1b8@$dfGJ=Km;$DNDPRhi z0;Yf|U<#N5rhqA63YY?>fGJ=Km;$DNDPRhi0;Yf|U<#N5rhqA63YY?>fGJ=Km;$E2 zf1!XRNJ`$OJgA}wZ>{!(IswTv~)cdg*H zWbsP>Cssi#f2RVgv4@{-B(VgY#4a4*$_>6qE^j!qFxmEJcgubV$E>6GF6M@}YaBa6 zdeA8U1d+WP#xUp`gT!Y>-+~_O<|nOlZ=?#_G$vuX`TvhSWb&7Z^e^)cW5_?UzejSK g@y-8Ydf1{dbm$8FT0FDqKb*T@znA=1>iVnyFZno|r2qf` literal 0 HcmV?d00001 diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 4edb9ec..dd07567 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -145,6 +145,11 @@ cxf-rt-transports-http-jetty 3.4.3 + + org.springframework + spring-test + 5.2.12.RELEASE + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java index 7f2e38d..7883790 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java @@ -29,12 +29,15 @@ import com.ruoyi.web.utils.ListSplitUtil; import com.ruoyi.web.utils.rbExcel.excelUtil; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.math.BigDecimal; import java.util.*; import java.util.concurrent.ExecutionException; @@ -260,52 +263,75 @@ public class RedBookController extends BaseController @DataSource(DataSourceType.MASTER) @Log(title = "生成询价单", businessType = BusinessType.INSERT) @PostMapping("/madeXjQuot") - public void madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot) + public AjaxResult madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot) throws Exception { - Quot xjquot = new Quot(); - xjquot.setQuotId(UUID.fastUUID().toString()); - String quotCode = redBookService.getCode("BJD"); - xjquot.setQuotCode(quotCode); - xjquot.setQuotApprovalStatus("0"); - xjquot.setQuotSalesmanCode(getUsername()); - xjquot.setQuotSalesmanBm(getLoginUser().getUser().getSapUserBm()); - xjquot.setQuotSalesmanName(getLoginUser().getUser().getNickName()); - xjquot.setQuotSalesmanDeptId(getLoginUser().getUser().getDept().getDeptId()+""); - xjquot.setQuotSalesmanDeptName(getLoginUser().getUser().getDept().getDeptName()); - xjquot.setCreateBy(getUsername()); - iQuotService.insertQuot(xjquot); + try{ + xjquot.setQuotId(UUID.fastUUID().toString()); + String quotCode = redBookService.getCode("BJD"); + xjquot.setQuotCode(quotCode); + xjquot.setQuotApprovalStatus("0"); + xjquot.setQuotSalesmanCode(getUsername()); + xjquot.setQuotSalesmanBm(getLoginUser().getUser().getSapUserBm()); + xjquot.setQuotSalesmanName(getLoginUser().getUser().getNickName()); + xjquot.setQuotSalesmanDeptId(getLoginUser().getUser().getDept().getDeptId()+""); + xjquot.setQuotSalesmanDeptName(getLoginUser().getUser().getDept().getDeptName()); + xjquot.setCreateBy(getUsername()); + iQuotService.insertQuot(xjquot); - /** 上传清单附件 **/ - /* String relation_id = xjquot.getQuotId(); - if(!StringUtils.isEmpty(relation_id)){ - if (!file.isEmpty()) - { - QuotFile quotFile= new QuotFile(); - quotFile.setFileId(UUID.fastUUID().toString()); + List list = quot.getSelectedResultData(); + File file = excelUtil.exportXjQuotExcel(response,xjquot,list); + MultipartFile multipartFile = convert(file); - String url = FileUploadUtils.uploadMinio(file,"quot-manage", "quot/"+relation_id); - int index = url.lastIndexOf("/")+1; - String fileName = url.substring(index);//获取文件名 + /** 上传清单附件 **/ + String relation_id = xjquot.getQuotId(); + if(!StringUtils.isEmpty(relation_id)){ + if (!multipartFile.isEmpty()) + { + QuotFile quotFile= new QuotFile(); + quotFile.setFileId(UUID.fastUUID().toString()); + String url = FileUploadUtils.uploadMinio(multipartFile,"quot-manage", "quot/"+relation_id); + int index = url.lastIndexOf("/")+1; + String fileName = url.substring(index);//获取文件名 - int index2 = url.indexOf("/quot/"); - String fileBucketName = url.substring(index2);//获取文件对应文件服务器中地址-供后面删除功能用 + int index2 = url.indexOf("/quot/"); + String fileBucketName = url.substring(index2);//获取文件对应文件服务器中地址-供后面删除功能用 - quotFile.setFileName(fileName); - quotFile.setFileBucketName(fileBucketName); - quotFile.setFileUrl(url); - quotFile.setFileSize(file.getSize()); - quotFile.setFileTime(DateUtils.getTime()); - quotFile.setFileType("quotXjFile"); - quotFile.setRelationId(relation_id); - quotFileService.insertQuotFile(quotFile); + quotFile.setFileName(fileName); + quotFile.setFileBucketName(fileBucketName); + quotFile.setFileUrl(url); + quotFile.setFileSize(multipartFile.getSize()); + quotFile.setFileTime(DateUtils.getTime()); + quotFile.setFileType("quotXjFile"); + quotFile.setRelationId(relation_id); + quotFileService.insertQuotFile(quotFile); + }else{ + return error("系统异常,生成清单附件为空!"); + } + }else{ + return error("系统异常,询价单号为空!"); } - }else{ - return error("系统异常,询价单号为空!"); - }*/ + }catch(Exception e){ + return error("系统异常"); + } + /** 上传清单附件 **/ - // return success(xjquot); + return success(xjquot); } + + /** + * File转MultipartFile + * @param file + * @return + * @throws IOException + */ + public static MultipartFile convert(File file) throws IOException { + FileInputStream input = new FileInputStream(file); + MultipartFile multipartFile = new MockMultipartFile("file", + file.getName(), "application/vnd.ms-excel;charset=UTF-8", input); + return multipartFile; + } + /** * 报价单提交 * @param quot diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/utils/rbExcel/excelUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/utils/rbExcel/excelUtil.java index 55b421b..67d6134 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/utils/rbExcel/excelUtil.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/utils/rbExcel/excelUtil.java @@ -9,9 +9,11 @@ import com.ruoyi.redBook.domain.OAQuotProduct; import com.ruoyi.web.utils.IdUtils; import jxl.HeaderFooter; import jxl.Workbook; +import jxl.format.*; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.BorderLineStyle; +import jxl.format.Colour; import jxl.format.VerticalAlignment; import jxl.write.Number; import jxl.write.*; @@ -23,10 +25,7 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.math.BigDecimal; import java.net.URL; import java.util.Date; @@ -665,4 +664,91 @@ public class excelUtil { } } + + + /** + * 生成询价单-清单附件 + * @param response + * @param quot + * @param list + */ + public static File exportXjQuotExcel(HttpServletResponse response, Quot quot, List list){ + File excelFile = null; + try { + excelFile = new File(quot.getQuotCode()+".xls"); + WritableWorkbook wwb = Workbook.createWorkbook(excelFile); + + // 新建一张表 + WritableSheet wsheet = wwb.createSheet("报价单", 0); + Label label = new Label(0, 0, ""); + int i= 0; + //产品信息 + WritableFont wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE, Colour.WHITE); + WritableCellFormat wff_merge = new WritableCellFormat(wf_merge); + wff_merge.setAlignment(Alignment.CENTRE); + wff_merge.setBackground(jxl.format.Colour.GREY_50_PERCENT); // 设置单元格的背景颜色 + + wsheet.setRowView(i,400); + label = new Label(0, i, "产品型号",wff_merge); + + wsheet.addCell(label); + label = new Label(1, i, "规格",wff_merge); + wsheet.addCell(label); + label = new Label(2, i, "电压",wff_merge); + wsheet.addCell(label); + label = new Label(3, i, "单位",wff_merge); + wsheet.addCell(label); + label = new Label(4, i, "数量",wff_merge); + wsheet.addCell(label); + + // 列宽 + wsheet.setColumnView(0, 18); + wsheet.setColumnView(1, 18); + wsheet.setColumnView(2, 18); + wsheet.setColumnView(3, 18); + wsheet.setColumnView(4, 18); + + i++; + //数据 + WritableCellFormat cellFormat=new WritableCellFormat(); + cellFormat.setAlignment(Alignment.LEFT); + + int j=1; + + for(Iterator it = list.iterator(); it.hasNext();) + { + OAQuotProduct s = it.next(); + wsheet.setRowView(i,400); + label = new Label(0, i, s.getName_1(),wff_merge); + label.setCellFormat(cellFormat); + wsheet.addCell(label); + label = new Label(1, i, s.getSpec(),wff_merge); + label.setCellFormat(cellFormat); + wsheet.addCell(label); + label = new Label(2,i, s.getVoltage(),wff_merge); + label.setCellFormat(cellFormat); + wsheet.addCell(label); + label = new Label(3,i, s.getStu(),wff_merge); + label.setCellFormat(cellFormat); + wsheet.addCell(label); + label = new Label(4,i, String.valueOf(s.getCount()),wff_merge); + label.setCellFormat(cellFormat); + wsheet.addCell(label); + i++; + j++; + } + wwb.write(); + wwb.close(); + + } catch (RowsExceededException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (WriteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return excelFile; + } } diff --git a/ruoyi-ui/src/api/redBook/redBook.js b/ruoyi-ui/src/api/redBook/redBook.js index 9726e89..bac7bdb 100644 --- a/ruoyi-ui/src/api/redBook/redBook.js +++ b/ruoyi-ui/src/api/redBook/redBook.js @@ -108,7 +108,7 @@ export function saveQuot(data) { data: data }) } -//生成报价单 +//生成询价单 export function madeXjQuot(data) { return request({ url: '/redBook/redBook/madeXjQuot', diff --git a/ruoyi-ui/src/views/redBook/productSelect.vue b/ruoyi-ui/src/views/redBook/productSelect.vue index c92935c..52f16b6 100644 --- a/ruoyi-ui/src/views/redBook/productSelect.vue +++ b/ruoyi-ui/src/views/redBook/productSelect.vue @@ -8,7 +8,7 @@ 搜索 - + 生成询价单 生成报价单 保存 清空信息 @@ -784,27 +784,7 @@ handleMadeXjQuotClick() { this.form.selectedResultData = this.selectedResultData; madeXjQuot(this.form).then(response => { - //this.$modal.msgSuccess("生成询价单成功,单号:"+response.data.quotCode); - // 处理返回的文件流 - const content = response; - const blob = new Blob([content]); - const fileName = "RB_BJD_"+this.getTodayCourse()+".xls"; - if ("download" in document.createElement("a")) { - // 非IE下载 - const elink = document.createElement("a"); - elink.download = fileName; - elink.style.display = "none"; - elink.href = URL.createObjectURL(blob); - document.body.appendChild(elink); - elink.click(); - URL.revokeObjectURL(elink.href); // 释放URL 对象 - document.body.removeChild(elink); - }else { - // IE10+下载 - navigator.msSaveBlob(blob, fileName); - } - - + this.$modal.msgSuccess("生成询价单成功,单号:"+response.data.quotCode); }); }, diff --git a/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue b/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue index 6b651bb..8289cd3 100644 --- a/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue +++ b/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue @@ -84,11 +84,6 @@ - - -