From e7b5d17cb8da5551901295bc4b4280166d2a5527 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 30 Mar 2025 18:50:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 4 +- .../src/controller/Ticket.php | 44 ++++++++++++++++++ .../src/view/common/ticket_flow.html | 5 +- public/tpl.docx | Bin 0 -> 17076 bytes 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 public/tpl.docx diff --git a/composer.json b/composer.json index e0a615a..a789983 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,9 @@ "zoujingli/think-plugs-center": "^1.0", "zoujingli/think-plugs-account": "^1.0", "ext-json": "*", - "phpoffice/phpspreadsheet": "^4.0" + "topthink/think-orm": "^3.0", + "phpoffice/phpspreadsheet": "^4.0", + "phpoffice/phpword": "^1.3" }, "repositories": { "jerryyan/think-plugs-cms": { diff --git a/plugs/think-plugs-ticket/src/controller/Ticket.php b/plugs/think-plugs-ticket/src/controller/Ticket.php index cf021ce..6bb7d3b 100644 --- a/plugs/think-plugs-ticket/src/controller/Ticket.php +++ b/plugs/think-plugs-ticket/src/controller/Ticket.php @@ -3,6 +3,8 @@ namespace plugin\ticket\controller; use app\custom\model\CustomMessage; +use PhpOffice\PhpWord\Settings; +use PhpOffice\PhpWord\TemplateProcessor; use plugin\inspection\model\InspectionStaff; use plugin\ticket\model\ApprovalInstance; use plugin\ticket\model\ApprovalProcess; @@ -507,4 +509,46 @@ class Ticket extends Controller $this->fetch(); } } + + public function repair_ticket_create_template() + { + $data = $this->_vali([ + 'id.require'=>'请指定工单ID!', + ]); + $ticket = TicketTicket::query()->where('id', '=', $data['id'])->findOrEmpty(); + if ($ticket->isEmpty()) { + $this->error('未找到工单信息'); + } + $view_content = $ticket->content; + if ($ticket->source_type != 1) { + $views = $ticket->views; + if (empty($views) || sizeof($views) == 0) { + $this->error("该工单未被核验"); + } + $view_content = $views[0]->content; + } + $template = new TemplateProcessor(public_path()."/tpl.docx"); + $template->setValue('today', date('Y/m/d')); + $template->setValue('ticket_address', $ticket->ticket_region.$ticket->ticket_address); + $template->setValue('ticket_gc_content', $ticket->gc_content); + $template->setValue('ticket_zf_content', $ticket->zf_content); + $template->setValue('ticket_ys_content', $ticket->ys_content); + $template->setValue('ticket_work_days', $ticket->work_days); + $template->setValue('ticket_view_content', $view_content); + + $tempFile = tempnam(sys_get_temp_dir(), 'phpword_'); + $template->saveAs($tempFile); + + // 2. 设置下载头 + $downloadFilename = 'output.docx'; // 用户下载时显示的文件名 + header("Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + header("Content-Disposition: attachment; filename=\"" . basename($downloadFilename) . "\""); + header("Content-Length: " . filesize($tempFile)); + header("Content-Transfer-Encoding: binary"); + @readfile($tempFile); + + // 3. 删除临时文件(可选) + unlink($tempFile); + exit(); + } } \ No newline at end of file diff --git a/plugs/think-plugs-ticket/src/view/common/ticket_flow.html b/plugs/think-plugs-ticket/src/view/common/ticket_flow.html index 8d297bd..1be2cf1 100644 --- a/plugs/think-plugs-ticket/src/view/common/ticket_flow.html +++ b/plugs/think-plugs-ticket/src/view/common/ticket_flow.html @@ -195,7 +195,10 @@ {if $ticket.repairs && sizeof($ticket.repairs) > 0}
-
维修信息
+
+ 维修信息 + 生成派工单模板 +
{foreach $ticket.repairs as $repair}
diff --git a/public/tpl.docx b/public/tpl.docx new file mode 100644 index 0000000000000000000000000000000000000000..0490ca03301a539f790733fbc16712b11ec6deac GIT binary patch literal 17076 zcmeHu1y^0mvh~I#xVu{j&c@v>I0OR0-QC^Y-QC^Y-QC>-1eYKIKF+!Kz9aXH?+?7U z7~Nwpdd=#+d(G~ys;-ig0s}__Kmwov001!{R-ZQ000aQYfB*nc0nni8LROac2A1|( zN-ow0b{cff7Uo2`;Gk650MPg6|L^)=JOcIcV={dVNFqPQe+li=O0L)PL$jRu4xv!X z^L95-Rs?9(7FBf_&DJ9e79iJe2um8C^Ej1l4N$ z{mL|e2~g~Hh9Y0%*Uj6xThOkBiDpu0Q>x|Ab>8M4;ZTi%CG3_jxSoN{Ut-@A7?x!O z^ISXKusO!}?ZY!eWX0naAjg2LJ7V#$j1^`GF^H1Zo1jjC?lJxted2yRk0{wmik82A zpWlLT9EgL(Ctm!i3(T>VjWe|vU0)CRN?G+}_Y)zyiY6V+$FMzCDBGvfSrj#oGmPA% zXq1c=77_It!8VUqEjzMxEb$}RnFq%`kQneJ=xV$3@M_=V=K%$G<_kClWG9kB$VtMy zhI2TddY@_TXUe1HRXibuBlf3g;r%AOFf?=3s;lkda(?9{R~Ft?+p`>p=JS^2+s zD*oxGm&Zy=fiWTlUiiKdk9TmbQIpJWXbOLq)_(yJVtV#TLyRqHeA}c7rJHXEB4Bno z8etY%OzXg3_%sA`R_Upw5~!KmgsUvuZgEjv_mvc!oc@llV!aKX_H?cL(oZU3DfxmF zJBpS>{avINUw4*AT`~ai$F=ln9{I@7vJTOUApTw{jTOVIAwQ2!X+;T<tkI-$YvTydc8kb=+E6Jrvp0gB#%r_POaZz8p!2W5vm{Yps zvVQ;oB;5f38_kxOEn{0JMJiSm7oa{i5*Ct>Yuur? zhJlHMrN zV1q*qS1yIzY@op4;Cs;ra;M?J#Q-EK&;o2|TtGBBg_2h9X>oqxQaUnAU_Jq6keHC~ zhWIaIadWm<1{{SXF6CDI^|BRZ+uHp{bW*aQSN9s-hosX6Met@r|Hp7Sb7Q1|;eaS}+d;EzIp#md40+5puii0rEQ zSc1OtK&RZaU3RcQ3p#Qnd6zHtuRW*r#g2GH$$Yrgd0WyZ_3GAD`HTMTMZuuIZ%YeF&z9EsDumjq2WzFX1R+W10~oi zJ}^TBf>4XLF4HNT#mYMgxl+6ecg#;d+s|3kROL7?O#fUbp@lXLl%R_MI^vgVN6yP4 z(9Iv;t%L<)W8}6f!Hzf_mdQ`9CTlVTBTixaNSh5Q|7ym4({0{gHA&D?aB@J8g+-!T zlQlgN4)s=I1f3(+oNaw>y}Ny0+)Ki>dbK|e|7AxVU;&WUX$lx32ou)sno*D8rJ>x_)EB zQ{&^c&COxP;q}w|aZhdrDc%hrtybS!)#s_=vJk(Bif#F35X0@s4TH<(lmMgtb82e0}^hmI=@)hd03boSlm1++m_x)@;rj~+$3U7WOn$K;DYe@vRW&k%B4kQ7UFWeqWxvpMq-I-*7ZnQATTlt2GYowH7r6WA^t4!2=6bAL% zK&rg-6-q0@1S%epQcA`WVf@F8e!U_y+}BNtn5h;^ql*vnoy(RB1U97Kmzmn)K#FZ) zw?WSLKzVqKz4f<^5fO%HS(2p{2GX2ZH`mEX-D9=swk&zOP>-T)OjleV4(?y7(z4$2 zT7H!dWn*#3qulr*!)+r)sTLoA+v&nU5|Nbvs5yG@jC>_j_fON(WHawFb#ODeiM{}b zP3B92C=d%X5D)fk{71mTQnPgoXYCx^iVmlF740}?^ka+(c-PurpLp!hQ@x|9L>&1r z?9d}!RuJg16A#t|rp;z`okI;`NCc(j#j;gtM4fUu1_*3IMM{UQ<!Tn`{P-MfU?3pxy-FVzBJf03OXOh~Q}-h#({K+EWF=*WMpIW?O^dCSUWeJtR*3d|fi^(&Y|LVY`Jg0y4Z#Ce zsgGuCbmV)Yo%*B&V;PIpo6F7d+TolVs@r-mqxjOLxKjzcMqe`JXE9$T=S+iaSV|AB zR8*0|;9Q5F@GmQUV<3wT1XFOuJC8~9?>zUEmAVF}+WR(O46SRj3nMqFydr7Z>Cy3+ zlu)rCre3yXRbC-YU7~~a#Ry4k0M8S{xI3RB%XR7=Oy(;nlB|1xnJ1Woeaqo%M8qAY z`djBrtDBdCa35p1zt1{--e#0B0Liv+1aIzkN(?QguU*`WD(Q%HD3O%aipPxio7wA` z;b~Qs8e3vh<~ObwC%F%i8_QN0E>_movEjqw?3?|9KQ9iW#H_>9`>(@$Pt5rS--j@q zHh3iI_|80Iq$U8JgG@*o_mlf|4f!b|CE_n%0umC5{VsJ)0Ly>%L?g}OgCKDpAH8GSJm3D^ILvB zH|INC4BU4t2ox$DQ+U=)W-7~wqg0RMD>%@ye6*@^mh;J_?(=ln)d?H=7@EzL zvOq8m3{Yv1==yAttT_jCx>lHNks+=^K zR>{uZSBruK>@UGaN4#mJhTat@$lMDZA}R-EtV<7qps5L-pe`Xo7xI7RMdY@>0``Az z2NE3NZ#$Ri3P3rxCk^6dJL7;sbQ>-F6hA4Flr$v8WTc4(XDJ&Lf!$XQ!MExd26@V? z9N~{+<|>weTO8>8P>G=7<~ux=9>2htH0MJHOH`I4fJSLoo~gXqhli+|P~fW{tBTYM zeVlT~Q~n)ADXygb$3}rph|$6LH36x3Es24X92g0a6Yh(lKB77|(J=QSani!Hb~fEH zL)q#cmW-mR{A8(fDu6|L@`MJ&5KCEE?n|A4s3N#GsQ^=oTnPa7B`ce-(OJJg+TOp; z6?Zav&6;TB>qKIVFB-hv*9C$yL20Fh@<^QEp4{BflnndHItlz@NkJ%+v@zwPq;uxfaqmM+s zNQF)lhUqaC$tvR7Y1C%U(Y-bj4qj9z+ckfk&AE#F)X{_*mGzy9SeDoI z@!gmB-@Xh^h;i&4NC04x2mnBTC&TZou{SobFrfdvX8hei`>Jk+D~9Gtf6GVnT=~7R zEGz^sKLL%c1{L+wM;E**(Kfw_^Wc;id}L5!7wP~(Vp%|P7UUe{ z?OZ9p-DqFZ9Jby8$r7bcqJV)$bU*Rp4h|e*LN%|hUwadXvTv>r1rK#>m}a-t514io zQ0||9?!(HVDlP9c)9@{ayCkax0h-Kf)}!&@w|Okpu^8wm)Ep&VmIo%r1`3c4Icl+6 zI-gR;CLjX$LSyrKUKOToz7;KMo~QuEmuxy*s}{>>?>+)9J!jE!+cFYH2%gx#^U0N2c9G^U)Q<*F-UfwCRozAng zg9cy??6KI7R48{0SSCdy_o$0H&pABZjpAj#uWjEY_w_O{&5+rN>gfTaE#7&{yLB*l zAX?j+Z@&gkx8CX-<&i?0)4Y=z7}ZMSp9)GJ=)Le46c8YAk@WrJh_fo-B{(r|KBitK zdPo~LFh{GuADH3EI0)>)ld{Y2nYpJpP# zAa#ih;JyEJ*e4jco++90}fOf0Mh#yXCL{dt&5ZUu{H)(3hIh`bs16Vplcpy73$kY|6i`ngMD zVcVS2)p7!`rJ4Aj)qn+p>QpG6DJjsfUS^FeEqV^ntR)w{LiisiA-gFOkjxC*VGHqu zMF)v`zwWbc=Y;HUhCikDU}I(?5K(-wg2rYZSh6oADvnDUx)P9 zkI`Vd7etZ{PnX9ttjVgWftJ@kL$M?ixJ4y-?nNY;bohx6&f=8i-e?sD)JH(#U@j;m z1qtyaFmeXZmT*ZERSUIH)DMrG1WpUO;R?b%!N@#r$`Lg0mvGxtj zwS3eQ4!d5-LeH8;S8e#b$9w;BC8dHa6FZoc{|2~)bxJ(9R^!ldAygYbxaByuCm3$tUXn@&Il%}_}nJ1)sr8FqtZSzFNL1y?f3$2rh2M*5yh`5gL#g8P;pYNLLEX3|~As-fJsxUHCAs zw+I39@tK#5DeRc66cXibU>k;Pesa=ZWUf1xc;Tp4j?k_ucx(jpx~2J)EL^xbB$_~y zkNo<>MP^IUO?Zh_o9?ovqAd@utQi^8PGQ`zzYY~$)WQz)y#upDiKuL5RA`UShSc7E%?8izmfsOaXi!I;F{>GTN=o$K zkawfiutZ1}>nyu%Mk~IRjPZEp@23_-P1&B1p6avX2xJ|F=W8$~Q87+tqR?>ZQ;S~& z^pTno${y1a!5u7)&3X&E5v*e$$q+~&0=~0QB(X$+3Ku;b%hTpW($4c1kJ9n zIMj+3%{dG+R)RtWyyJt&`A{A!Xr3VKMXUznt7M>oC7XZlMh+s(%4>hTw~ zf~|5^t_H!n)pN{r%OZJW*9Ms!^_!Co&m}wDiC3^SP9^Okjk|QUD*56Bo~rG6$ym?4 zuf<#ml4~VRxI9HK+LmTDHv>n#?V(GDUhg~JfA5K;shlS0sy{T^9zNT4zGg(u)TT}*Ao)*^Q zyIWXJNv^G*H5Qp@SXv}iU6Wkg8-*h^BrnfnhG{5f$kND+aa)`;YC7?ZxO8Y9m89_+ zh8~*jN0JrFI2Dw&3haK}gPqQ)T$S#$FtR*ovIVndW^Q>al3q_5Xg~Lfty(@8+R&du z)5_D7t+qIsZ=hu_rZI%LIU!PYAN>CH{!=uMg^f1Eemq>B-o(KeR`nEC@jOpwco5qa zJJ_fmugg6X?@5ZRCj*W0R^d3ZpZQM`jPNPfTSA^krdZ&{=!j&8Dlu+#F7Ydxo6w=-+|)Qa1t=6HtzzOKGpqm6n~UV|82#K+=t zUubz<)Ozx+A*`ZN91X+|Phq_6q|(XqX;ClK1Ff0@HVBOKIk{%w3%Up!_`k=tKE9X&b7{>JTFEb| zzcpWEcb`DXtu{eZJU?0| zvxz}W;=DXWZ^7fnA}wx8vT@20Wvu;t$1JtHXG$$o_*$|@H+$)9x7pPm)>s}WA-*k0 zy<#g|8+JK_)M<;bL%9>`_)W!n={≶UGn?O=<{59!kG3EW3=K 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 literal 0 HcmV?d00001