Merge branch 'prod/20260407' into test

This commit is contained in:
曹鹏飞 2026-04-09 17:30:32 +08:00
commit 846efe55bc
12 changed files with 157 additions and 63 deletions

View File

@ -125,22 +125,6 @@
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alimt20181012</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.3.9</version>
<exclusions>
<exclusion>
<artifactId>dom4j</artifactId>
<groupId>org.dom4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>

View File

@ -0,0 +1,24 @@
package com.nflg.mobilebroken.admin.config;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.repository.service.ILanguageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@Slf4j
@Component
public class SystemConfig {
@Resource
private ILanguageService languageService;
@PostConstruct
public void initData() {
languageService.list().forEach(language -> {
Constant.LANGUAGE_ALIYUN_MAP.put(language.getCode(),language.getTranslateCode());
});
}
}

View File

@ -71,4 +71,12 @@ public class TestController extends ControllerBase{
public ApiResult<String> deepseekTranslate(@RequestParam String text, @RequestParam String targetLanguage) {
return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", targetLanguage, "html"));
}
/**
* 抛错
*/
@GetMapping("throwError")
public void throwError() {
VUtils.trueThrowBusinessError(true).throwMessage("抛错");
}
}

View File

@ -11,7 +11,6 @@ import com.nflg.mobilebroken.admin.annotation.ApiMark;
import com.nflg.mobilebroken.admin.publisher.TicketEventPublisher;
import com.nflg.mobilebroken.admin.service.ShengWangService;
import com.nflg.mobilebroken.admin.service.SsePushService;
import com.nflg.mobilebroken.admin.service.impl.AliYunTranslate;
import com.nflg.mobilebroken.common.constant.*;
import com.nflg.mobilebroken.common.exception.NflgException;
import com.nflg.mobilebroken.common.pojo.ApiResult;
@ -24,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.AliYunTranslate;
import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;

View File

@ -0,0 +1,24 @@
package com.nflg.mobilebroken.cfs.config;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.repository.service.ILanguageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@Slf4j
@Component
public class SystemConfig {
@Resource
private ILanguageService languageService;
@PostConstruct
public void initData() {
languageService.list().forEach(language -> {
Constant.LANGUAGE_ALIYUN_MAP.put(language.getCode(),language.getTranslateCode());
});
}
}

View File

@ -1,5 +1,10 @@
package com.nflg.mobilebroken.common.constant;
import cn.hutool.setting.Setting;
import java.util.HashMap;
import java.util.Map;
public class Constant {
public static final String FROM_APP = "app";
@ -83,7 +88,6 @@ public class Constant {
public static final String DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CLOSE_GONGFU = "TitleTicketCloseGongfu";
/**
* 事业部部长
*/
@ -173,4 +177,5 @@ public class Constant {
public static final Integer TICKET_TYPE_MOBILE_BROKEN = 0;
public static final Integer TICKET_TYPE_GONGFU = 1;
public static final Map<String, String> LANGUAGE_ALIYUN_MAP = new HashMap<>();
}

View File

@ -7,11 +7,13 @@ import com.nflg.mobilebroken.repository.entity.Device;
import com.nflg.mobilebroken.repository.entity.GongfuDevice;
import com.nflg.mobilebroken.repository.service.IDeviceService;
import com.nflg.mobilebroken.repository.service.IGongfuDeviceService;
import com.nflg.mobilebroken.repository.service.ILanguageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@ -24,6 +26,9 @@ public class SystemConfig {
@Resource
private IGongfuDeviceService deviceService;
@Resource
private ILanguageService languageService;
@PostConstruct
public void initData() {
log.info("初始化产品线列表");
@ -46,5 +51,8 @@ public class SystemConfig {
.collect(Collectors.toSet())
);
log.info("产品线列表:{}", StrUtil.join(",", Constant1.PRODUCT_LINE));
languageService.list().forEach(language -> {
Constant.LANGUAGE_ALIYUN_MAP.put(language.getCode(),language.getTranslateCode());
});
}
}

View File

@ -32,6 +32,11 @@ public class TicketSolutionAudit implements Serializable {
*/
private Long ticketId;
/**
* 部门id
*/
private Long deptId;
/**
* 部门名称
*/

View File

@ -1,6 +1,7 @@
package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
@ -75,10 +76,16 @@ public class TicketSolutionAuditServiceImpl extends ServiceImpl<TicketSolutionAu
List<TicketSolutionAudit> forAdd = new ArrayList<>();
List<TicketSolutionAudit> forUpdate = new ArrayList<>();
Ticket ticket = ticketService.getById(request.getTicketId());
List<DictionaryItem> dictionaryItems = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SOLUTION_REVIEW_DEPARTMENT);
request.getDepartments().forEach(detp -> {
TicketSolutionAudit audit = new TicketSolutionAudit();
if (Objects.isNull(detp.getId())) {
DictionaryItem dept = dictionaryItems.stream()
.filter(item -> StrUtil.equals(item.getName(), detp.getDeptName()))
.findFirst()
.orElse(null);
audit.setTicketId(Long.valueOf(request.getTicketId()));
audit.setDeptId(Objects.isNull(dept) ? null : dept.getId().longValue());
audit.setDeptName(detp.getDeptName());
audit.setUserId(detp.getUserId());
audit.setCreateTime(LocalDateTime.now());

View File

@ -112,6 +112,22 @@
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alimt20181012</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.3.9</version>
<exclusions>
<exclusion>
<artifactId>dom4j</artifactId>
<groupId>org.dom4j</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>

View File

@ -6,6 +6,8 @@ import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.constant.STATE;
import com.nflg.mobilebroken.common.exception.NflgException;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.starter.service.impl.AliYunTranslate;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Value;
@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import javax.annotation.Resource;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.sql.SQLException;
@ -30,6 +33,9 @@ import java.util.stream.Collectors;
@Slf4j
public class GlobalRestControllerAdvice {
@Resource
private AliYunTranslate aliYunTranslate;
@Value("${spring.servlet.multipart.max-file-size}")
private DataSize maxFileSize;
@ -52,6 +58,13 @@ public class GlobalRestControllerAdvice {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMessage());
} else {
log.error("业务错误: ", ex);
String languageCode = MultilingualUtil.getLanguage();
if (!StrUtil.equals(languageCode, Constant.DEFAULT_LANGUAGE_CODE)) {
String aliyunCode = Constant.LANGUAGE_ALIYUN_MAP.get(languageCode);
if (StrUtil.isNotBlank(aliyunCode)) {
return ResponseEntity.ok().body(ApiResult.error(ex.getState(), aliYunTranslate.translateWord(ex.getMessage(), aliyunCode)));
}
}
return ResponseEntity.ok().body(ApiResult.error(ex.getState(), ex.getMessage()));
}
}

View File

@ -1,4 +1,4 @@
package com.nflg.mobilebroken.admin.service.impl;
package com.nflg.mobilebroken.starter.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;