From c9ed712d29daf6da7f846c58ba867f327c8ec46d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 25 Apr 2025 11:00:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=BE=E5=A4=87=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 14 ++--- .../cfs/controller/TiketController.java | 7 ++- .../common/pojo/request/TicketAddRequest.java | 5 +- .../common/pojo/vo/ComponentInfo.java | 12 ++-- .../repository/entity/Ticket.java | 4 +- .../repository/service/ITBasePartService.java | 5 ++ .../service/impl/TBasePartServiceImpl.java | 58 +++++++++++++++++++ .../service/impl/TicketServiceImpl.java | 2 +- .../main/resources/mapper/DeviceMapper.xml | 2 +- 9 files changed, 89 insertions(+), 20 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 c2866689..b592dd6f 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 @@ -7,10 +7,7 @@ import com.itextpdf.text.pdf.BaseFont; import com.nflg.mobilebroken.admin.annotation.ApiMark; import com.nflg.mobilebroken.admin.publisher.TicketEventPublisher; import com.nflg.mobilebroken.admin.service.SsePushService; -import com.nflg.mobilebroken.common.constant.MessageSubType; -import com.nflg.mobilebroken.common.constant.MessageType; -import com.nflg.mobilebroken.common.constant.STATE; -import com.nflg.mobilebroken.common.constant.TicketState; +import com.nflg.mobilebroken.common.constant.*; import com.nflg.mobilebroken.common.exception.NflgException; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; @@ -492,12 +489,13 @@ public class TicketController extends ControllerBase { .filter(url->url.endsWith(".jpg") || url.endsWith(".png") || url.endsWith(".jpeg")) .collect(Collectors.toList()); } + TBasePart part = partService.getByIdAndLanguage(ticket.getComponentId(), Constant.DEFAULT_LANGUAGE_CODE); TicketPdfVO vo = new TicketPdfVO() .setNo(ticket.getNo()) .setTitle(ticket.getTitle()) .setDeviceNo(ticket.getDeviceNo()) .setModelNo(device.getModelNo()) - .setComponent(ticket.getComponent()) + .setComponent(Objects.nonNull(part)?part.getPartName():"") .setUseTime(ticket.getUseTime()) .setDescription(ticket.getDescription()) .setState(ticket.getState()) @@ -580,6 +578,7 @@ public class TicketController extends ControllerBase { // } List handleIds=StrUtil.split(ticket.getHandle(),",").stream().map(Integer::parseInt).collect(Collectors.toList()); List cqms=adminUserService.getCQMIds(); + TBasePart part = partService.getByIdAndLanguage(ticket.getComponentId(), Constant.DEFAULT_LANGUAGE_CODE); TicketInfoVO vo = new TicketInfoVO() .setId(ticket.getId()) .setNo(ticket.getNo()) @@ -588,7 +587,7 @@ public class TicketController extends ControllerBase { .setDeviceAddress(ticket.getDeviceAddress()) .setModelNo(device.getModelNo()) .setDeviceType(device.getDeviceType()) - .setComponent(ticket.getComponent()) + .setComponent(Objects.nonNull(part)?part.getPartName():"") .setUseTime(ticket.getUseTime()) .setDescription(ticket.getDescription()) .setState(ticket.getState()) @@ -947,7 +946,8 @@ public class TicketController extends ControllerBase { createCell(row5, 1, normalStyle, ticket.getQuestion()); createCell(row5, 5, centerStyle, "问题部位"); addMergedRegion(sheet,5, 5, 6, 11); - createCell(row5, 6, normalStyle, ticket.getComponent()); + TBasePart part = partService.getByIdAndLanguage(ticket.getComponentId(), Constant.DEFAULT_LANGUAGE_CODE); + createCell(row5, 6, normalStyle, Objects.nonNull(part) ? part.getPartName() : ""); //第六行 Row row6 = sheet.createRow(6); row6.setHeightInPoints(height); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index 0d58a1c7..984bc872 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -114,8 +114,8 @@ public class TiketController extends ControllerBase { * @return 设备部件列表 **/ @GetMapping("getAllDeviceComponents") - public ApiResult> getAllDeviceComponents() { - return ApiResult.success(partService.lambdaQuery().select(TBasePart::getPartName).eq(TBasePart::getEnable, true).list().stream().map(TBasePart::getPartName).collect(Collectors.toList())); + public ApiResult> getAllDeviceComponents() { + return ApiResult.success(partService.getAllDeviceComponents(MultilingualUtil.getLanguage())); } /** @@ -201,6 +201,7 @@ public class TiketController extends ControllerBase { List adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList())); handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(",")); } + TBasePart part = partService.getByIdAndLanguage(ticket.getComponentId(), MultilingualUtil.getLanguage()); TicketInfoVO vo = new TicketInfoVO() .setId(ticket.getId()) .setNo(ticket.getNo()) @@ -208,7 +209,7 @@ public class TiketController extends ControllerBase { .setDeviceNo(ticket.getDeviceNo()) .setDeviceAddress(ticket.getDeviceAddress()) .setModelNo(Objects.nonNull(device)?device.getModelNo():"已删除") - .setComponent(ticket.getComponent()) + .setComponent(Objects.nonNull(part) ? part.getPartName() : "") .setUseTime(ticket.getUseTime()) .setDescription(ticket.getDescription()) .setState(ticket.getState()) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketAddRequest.java index 858b0a28..b6506c68 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketAddRequest.java @@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.List; @@ -14,8 +15,8 @@ public class TicketAddRequest { private String deviceNo; //问题部位 - @NotBlank(message = "问题部位不能为空") - private String component; + @NotNull(message = "问题部位id不能为空") + private Integer componentId; //使用时长,单位小时 private Integer useTime; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java index 0b9a787a..a81820e7 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java @@ -5,9 +5,13 @@ import lombok.Data; @Data public class ComponentInfo { - //部位名称 - private String name; + /** + * 部件id + */ + private int id; - //语言对应的名称 - private String languageValue; + /** + * 当前语言对应的部件名称 + */ + private String name; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java index 3df68a18..74b97f8c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java @@ -38,9 +38,9 @@ public class Ticket implements Serializable { private String deviceNo; /** - * 问题部位 + * 问题部件id,t_base_part表的id */ - private String component; + private Integer componentId; /** * 使用时长,单位:小时 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBasePartService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBasePartService.java index 7602cafa..aac1dc45 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBasePartService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBasePartService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.dto.ExportPartDTO; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; +import com.nflg.mobilebroken.common.pojo.vo.ComponentInfo; import com.nflg.mobilebroken.repository.entity.TBasePart; import org.apache.ibatis.annotations.Param; @@ -24,4 +25,8 @@ public interface ITBasePartService extends IService { List exportPart(@Param("partNo")String partNo, @Param("partName") String partName); List getSimpleList(String name); + + List getAllDeviceComponents(String language); + + TBasePart getByIdAndLanguage(Integer componentId, String language); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBasePartServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBasePartServiceImpl.java index 1fe6ab87..3226c2e1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBasePartServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBasePartServiceImpl.java @@ -3,15 +3,22 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.dto.ExportPartDTO; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; +import com.nflg.mobilebroken.common.pojo.vo.ComponentInfo; +import com.nflg.mobilebroken.repository.entity.TBaseLanguageData; import com.nflg.mobilebroken.repository.entity.TBasePart; import com.nflg.mobilebroken.repository.mapper.TBasePartMapper; +import com.nflg.mobilebroken.repository.service.ITBaseLanguageDataService; import com.nflg.mobilebroken.repository.service.ITBasePartService; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -25,6 +32,8 @@ import java.util.stream.Collectors; @Service public class TBasePartServiceImpl extends ServiceImpl implements ITBasePartService { + @Resource + private ITBaseLanguageDataService languageDataService; public Page selectListByPage(@Param("query") PageBaseQuery query){ return this.getBaseMapper().getListByPage(new Page(query.getPage(),query.getPageSize()), query); @@ -44,4 +53,53 @@ public class TBasePartServiceImpl extends ServiceImpl getAllDeviceComponents(String language) { + List parts = lambdaQuery().eq(TBasePart::getEnable, 1).list(); + List languageData = languageDataService.lambdaQuery() + .eq(TBaseLanguageData::getLanguageCode, language) + .in(TBaseLanguageData::getSourceId, parts.stream().map(TBasePart::getId).collect(Collectors.toList())) + .list(); + List vos = new ArrayList<>(); + parts.forEach(part -> { + ComponentInfo vo = new ComponentInfo(); + vo.setId(part.getId()); + TBaseLanguageData l = languageData.stream() + .filter(data -> Objects.equals(data.getSourceId().intValue(), part.getId()) && StrUtil.isNotBlank(data.getLanguageValue())) + .findFirst() + .orElseGet(() -> languageDataService.lambdaQuery() + .eq(TBaseLanguageData::getSourceId, part.getId().longValue()) + .eq(TBaseLanguageData::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .one()); + if (Objects.nonNull(l) && StrUtil.isNotBlank(l.getLanguageValue())) { + vo.setName(l.getLanguageValue()); + } else { + vo.setName(part.getPartName()); + } + vos.add(vo); + }); + return vos; + } + + @Override + public TBasePart getByIdAndLanguage(Integer componentId, String language) { + TBasePart part = getById(componentId); + TBaseLanguageData languageData = languageDataService.lambdaQuery() + .eq(TBaseLanguageData::getLanguageCode, language) + .eq(TBaseLanguageData::getSourceId, componentId) + .one(); + if (Objects.nonNull(languageData) && StrUtil.isNotBlank(languageData.getLanguageValue())){ + part.setPartName(languageData.getLanguageValue()); + }else { + languageData = languageDataService.lambdaQuery() + .eq(TBaseLanguageData::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .eq(TBaseLanguageData::getSourceId, componentId) + .one(); + if (Objects.nonNull(languageData) && StrUtil.isNotBlank(languageData.getLanguageValue())){ + part.setPartName(languageData.getLanguageValue()); + } + } + return part; + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index 1e87199a..0289fff1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -72,7 +72,7 @@ public class TicketServiceImpl extends ServiceImpl impleme .setNo(no) .setDeviceNo(request.getDeviceNo()) .setDeviceAddress(request.getDeviceAddress()) - .setComponent(request.getComponent()) + .setComponentId(request.getComponentId()) .setUseTime(request.getUseTime()) .setTitle(request.getTitle()) .setDescription(request.getDescription()) diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index 8ba5b290..6d29eae3 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -101,7 +101,7 @@