From 8302a7e8cf26ad05e1aca6c5214e49579c2b1f27 Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Fri, 13 Mar 2026 13:50:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=85=E9=81=93=E4=BC=98=E5=8C=96=201?= =?UTF-8?q?=E3=80=81=E7=A7=BB=E5=8A=A8=E7=A0=B4=E5=92=8C=E5=B7=A5=E6=9C=8D?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9A=84=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=B7=A5=E5=8D=95=E6=A0=87=E9=A2=98=E7=9A=84?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=88=97=EF=BC=8C=E5=8F=AF=E5=90=A6=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=88=B0=E5=B7=A5=E5=8D=95=E5=88=97=E8=A1=A8=E4=B8=8A?= =?UTF-8?q?=EF=BC=8C=E6=88=96=E8=80=85=E5=A2=9E=E5=8A=A0=E4=B8=AA=E5=A4=87?= =?UTF-8?q?=E6=B3=A8=E5=88=97=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index f0cecc88..db356f73 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -2,7 +2,9 @@ package com.nflg.mobilebroken.admin.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.itextpdf.text.pdf.BaseFont; import com.nflg.mobilebroken.admin.annotation.ApiMark; @@ -21,6 +23,7 @@ import com.nflg.mobilebroken.repository.entity.*; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import com.nflg.mobilebroken.starter.service.UniPushService; +import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; @@ -40,6 +43,7 @@ import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; @@ -145,6 +149,11 @@ public class TicketController extends ControllerBase { @Resource private ITBaseAreaService areaService; + @Resource + private DeepSeekTranslate deepSeekTranslate; + @Resource + private ILanguageService languageService; + /** * 获取问题类型 * @return 问题类型列表 @@ -289,10 +298,25 @@ public class TicketController extends ControllerBase { */ @PostMapping("searchTicket") @ApiMark(moduleName = "工单管理", apiName = "搜索工单") - public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request) { - + public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request, HttpServletRequest request2) { + // 20260311 工单标题,在列表页面把它的翻译列展示出来 + String languageCode = request2.getHeader("language"); + Language language; + if (StrUtil.isNotBlank(languageCode)) { + language = languageService.lambdaQuery().eq(Language::getCode, languageCode).one(); + } else { + language = null; + } return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> { d.setEvaluate(getTicketEvaluateForList(Math.toIntExact(d.getId()))); + // 标题字符串不含中文才翻译 + if (ObjectUtil.isNotEmpty(d.getTitle()) && !Validator.hasChinese(d.getTitle())) { + String text = d.getTitle().replaceAll("
", ","); + if (language != null && language.getName() != null) { + String titleTranslate = deepSeekTranslate.translateWord(text, "auto", language.getName(), "text"); + d.setTitleTranslate(titleTranslate); + } + } return d; })); }