【优化】添加多语言支持

This commit is contained in:
曹鹏飞 2026-04-07 10:53:39 +08:00
parent b3c625ce72
commit 2cf145f982
7 changed files with 18 additions and 18 deletions

View File

@ -165,7 +165,7 @@ public class TicketController extends ControllerBase {
// return ApiResult.success(Arrays.asList("技术设计问题", "装配工艺问题", "焊接质量问题", "机组装配质量问题", "电控问题" // return ApiResult.success(Arrays.asList("技术设计问题", "装配工艺问题", "焊接质量问题", "机组装配质量问题", "电控问题"
// , "工况方案问题", "客户操作不当", "原材料配件质量问题", "QC检验遗漏/误差", "部件/整机外观", "安装问题", "调试问题" // , "工况方案问题", "客户操作不当", "原材料配件质量问题", "QC检验遗漏/误差", "部件/整机外观", "安装问题", "调试问题"
// , "外购件质量问题", "运输问题", "非故障问题/参数咨询")); // , "外购件质量问题", "运输问题", "非故障问题/参数咨询"));
return ApiResult.success(dictionaryItemService.getListByDictionaryCodeAndType(Constant.DICTIONARY_TICKET_QUESTION,"移动破") return ApiResult.success(dictionaryItemService.getListByDictionaryCodeAndType(Constant.DICTIONARY_TICKET_QUESTION, "移动破")
.stream() .stream()
.map(DictionaryItem::getName) .map(DictionaryItem::getName)
.collect(Collectors.toList()) .collect(Collectors.toList())
@ -611,7 +611,7 @@ public class TicketController extends ControllerBase {
.setDeviceAddress(ticket.getDeviceAddress()) .setDeviceAddress(ticket.getDeviceAddress())
.setImages(images) .setImages(images)
// .setFiles(files) // .setFiles(files)
.setMeasures(ticketSolutionService.getSolutionMeasures(Long.valueOf(ticket.getId())).getMeasures()); .setMeasures(ticketSolutionService.getSolutionMeasures(Long.valueOf(ticket.getId()),Constant.DEFAULT_LANGUAGE_CODE).getMeasures());
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
variables.put("ticket", vo); variables.put("ticket", vo);
// 渲染HTML // 渲染HTML
@ -932,7 +932,7 @@ public class TicketController extends ControllerBase {
@GetMapping("getSolutionMeasures") @GetMapping("getSolutionMeasures")
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案措施") @ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案措施")
public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) { public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) {
return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId)); return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId, MultilingualUtil.getLanguage()));
} }
/** /**
@ -944,7 +944,7 @@ public class TicketController extends ControllerBase {
@ApiMark(moduleName = "工单管理", apiName = "保存工单解决方案措施") @ApiMark(moduleName = "工单管理", apiName = "保存工单解决方案措施")
public ApiResult<Void> saveSolutionMeasures(@Valid @RequestBody SolutionMeasuresSaveRequest request) { public ApiResult<Void> saveSolutionMeasures(@Valid @RequestBody SolutionMeasuresSaveRequest request) {
Ticket ticket = ticketSolutionService.saveSolutionMeasures(request); Ticket ticket = ticketSolutionService.saveSolutionMeasures(request);
List<SolutionReviewDepartmentVO> audits = ticketSolutionAuditService.getByTicket(request.getTicketId()); List<SolutionReviewDepartmentVO> audits = ticketSolutionAuditService.getByTicket(request.getTicketId(),MultilingualUtil.getLanguage());
audits.forEach(audit -> { audits.forEach(audit -> {
if (Objects.equals(audit.getState(), 0)) { if (Objects.equals(audit.getState(), 0)) {
adminMessageService.add( adminMessageService.add(
@ -978,7 +978,7 @@ public class TicketController extends ControllerBase {
@GetMapping("getSolutionReviewDepartment") @GetMapping("getSolutionReviewDepartment")
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门") @ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门")
public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Integer ticketId) { public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Integer ticketId) {
return ApiResult.success(ticketSolutionAuditService.getByTicket(Long.valueOf(ticketId))); return ApiResult.success(ticketSolutionAuditService.getByTicket(Long.valueOf(ticketId),MultilingualUtil.getLanguage()));
} }
/** /**
@ -1239,7 +1239,7 @@ public class TicketController extends ControllerBase {
} }
} }
//解决方案审核 //解决方案审核
List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(Long.valueOf(ticketId)) List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(Long.valueOf(ticketId),MultilingualUtil.getLanguage())
.stream() .stream()
.filter(vo -> StrUtil.isNotBlank(vo.getUserName())) .filter(vo -> StrUtil.isNotBlank(vo.getUserName()))
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -602,7 +602,7 @@ public class TicketController extends ControllerBase {
**/ **/
@GetMapping("getSolutionMeasures") @GetMapping("getSolutionMeasures")
public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) { public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) {
return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId)); return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId,MultilingualUtil.getLanguage()));
} }
/** /**

View File

@ -157,7 +157,7 @@ public class TicketController extends ControllerBase {
// return ApiResult.success(Arrays.asList("技术设计问题", "装配工艺问题", "焊接质量问题", "机组装配质量问题", "电控问题" // return ApiResult.success(Arrays.asList("技术设计问题", "装配工艺问题", "焊接质量问题", "机组装配质量问题", "电控问题"
// , "工况方案问题", "客户操作不当", "原材料配件质量问题", "QC检验遗漏/误差", "部件/整机外观", "安装问题", "调试问题" // , "工况方案问题", "客户操作不当", "原材料配件质量问题", "QC检验遗漏/误差", "部件/整机外观", "安装问题", "调试问题"
// , "外购件质量问题", "运输问题", "非故障问题/参数咨询")); // , "外购件质量问题", "运输问题", "非故障问题/参数咨询"));
return ApiResult.success(dictionaryItemService.getListByDictionaryCodeAndType(Constant.DICTIONARY_TICKET_QUESTION,"工服") return ApiResult.success(dictionaryItemService.getListByDictionaryCodeAndType(Constant.DICTIONARY_TICKET_QUESTION, "工服")
.stream() .stream()
.map(DictionaryItem::getName) .map(DictionaryItem::getName)
.collect(Collectors.toList()) .collect(Collectors.toList())
@ -588,7 +588,7 @@ public class TicketController extends ControllerBase {
.setTicketArea(areaName) .setTicketArea(areaName)
.setImages(images) .setImages(images)
// .setFiles(files) // .setFiles(files)
.setMeasures(ticketSolutionService.getSolutionMeasures(ticket.getId()).getMeasures()); .setMeasures(ticketSolutionService.getSolutionMeasures(ticket.getId(), Constant.DEFAULT_LANGUAGE_CODE).getMeasures());
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
variables.put("ticket", vo); variables.put("ticket", vo);
Map<String, Object> base = new HashMap<>(); Map<String, Object> base = new HashMap<>();
@ -929,7 +929,7 @@ public class TicketController extends ControllerBase {
@GetMapping("getSolutionMeasures") @GetMapping("getSolutionMeasures")
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案措施") @ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案措施")
public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) { public ApiResult<SolutionMeasuresVO> getSolutionMeasures(@Valid @RequestParam @NotNull Long ticketId) {
return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId)); return ApiResult.success(ticketSolutionService.getSolutionMeasures(ticketId, Constant.DEFAULT_LANGUAGE_CODE));
} }
/** /**
@ -940,7 +940,7 @@ public class TicketController extends ControllerBase {
@GetMapping("getSolutionReviewDepartment") @GetMapping("getSolutionReviewDepartment")
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门") @ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门")
public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Long ticketId) { public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Long ticketId) {
return ApiResult.success(ticketSolutionAuditService.getByTicket(ticketId)); return ApiResult.success(ticketSolutionAuditService.getByTicket(ticketId,MultilingualUtil.getLanguage()));
} }
/** /**
@ -1203,7 +1203,7 @@ public class TicketController extends ControllerBase {
} }
} }
//解决方案审核 //解决方案审核
List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(ticketId) List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(ticketId,MultilingualUtil.getLanguage())
.stream() .stream()
.filter(vo -> StrUtil.isNotBlank(vo.getUserName())) .filter(vo -> StrUtil.isNotBlank(vo.getUserName()))
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -22,7 +22,7 @@ import java.util.List;
*/ */
public interface ITicketSolutionAuditService extends IService<TicketSolutionAudit> { public interface ITicketSolutionAuditService extends IService<TicketSolutionAudit> {
List<SolutionReviewDepartmentVO> getByTicket(Long ticketId); List<SolutionReviewDepartmentVO> getByTicket(Long ticketId,String languageCode);
void saveSolutionReviewDepartment(SolutionReviewDepartmentSaveRequest request); void saveSolutionReviewDepartment(SolutionReviewDepartmentSaveRequest request);

View File

@ -17,7 +17,7 @@ import com.nflg.mobilebroken.repository.entity.TicketSolution;
*/ */
public interface ITicketSolutionService extends IService<TicketSolution> { public interface ITicketSolutionService extends IService<TicketSolution> {
SolutionMeasuresVO getSolutionMeasures(Long ticketId); SolutionMeasuresVO getSolutionMeasures(Long ticketId,String language);
Ticket saveSolutionMeasures(SolutionMeasuresSaveRequest request); Ticket saveSolutionMeasures(SolutionMeasuresSaveRequest request);

View File

@ -51,8 +51,8 @@ public class TicketSolutionAuditServiceImpl extends ServiceImpl<TicketSolutionAu
private IAdminUserService adminUserService; private IAdminUserService adminUserService;
@Override @Override
public List<SolutionReviewDepartmentVO> getByTicket(Long ticketId) { public List<SolutionReviewDepartmentVO> getByTicket(Long ticketId,String languageCode) {
List<DictionaryItem> items = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SOLUTION_REVIEW_DEPARTMENT, Constant.DEFAULT_LANGUAGE_CODE); List<DictionaryItem> items = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SOLUTION_REVIEW_DEPARTMENT, languageCode);
List<SolutionReviewDepartmentVO> vos = baseMapper.getByTicket(ticketId); List<SolutionReviewDepartmentVO> vos = baseMapper.getByTicket(ticketId);
items.forEach(item -> { items.forEach(item -> {
if (vos.stream().noneMatch(vo -> vo.getDeptName().equals(item.getName()))) { if (vos.stream().noneMatch(vo -> vo.getDeptName().equals(item.getName()))) {

View File

@ -61,12 +61,12 @@ public class TicketSolutionServiceImpl extends ServiceImpl<TicketSolutionMapper,
private IDeviceService deviceService; private IDeviceService deviceService;
@Override @Override
public SolutionMeasuresVO getSolutionMeasures(Long ticketId) { public SolutionMeasuresVO getSolutionMeasures(Long ticketId,String language) {
TicketDTO ticket = ticketService.getDto(ticketId); TicketDTO ticket = ticketService.getDto(ticketId);
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
List<DictionaryItem> initial = new ArrayList<>(); List<DictionaryItem> initial = new ArrayList<>();
if (Objects.equals(ticket.getState(), TicketState.Processing.getState()) || Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())) { if (Objects.equals(ticket.getState(), TicketState.Processing.getState()) || Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())) {
initial = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SOLUTION_MEASURES, Constant.DEFAULT_LANGUAGE_CODE); initial = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SOLUTION_MEASURES, language);
} }
List<TicketSolution> solutions = lambdaQuery().eq(TicketSolution::getTicketId, ticketId).orderByAsc(TicketSolution::getId).list(); List<TicketSolution> solutions = lambdaQuery().eq(TicketSolution::getTicketId, ticketId).orderByAsc(TicketSolution::getId).list();
Map<Integer, List<TicketSolution>> groupedSolutions = solutions.stream().collect(Collectors.groupingBy(TicketSolution::getDictionaryItemId, LinkedHashMap::new, Collectors.toList())); Map<Integer, List<TicketSolution>> groupedSolutions = solutions.stream().collect(Collectors.groupingBy(TicketSolution::getDictionaryItemId, LinkedHashMap::new, Collectors.toList()));