fix: 设备部件添加多语言支持
This commit is contained in:
parent
5c81feeb62
commit
c9ed712d29
|
|
@ -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<Integer> handleIds=StrUtil.split(ticket.getHandle(),",").stream().map(Integer::parseInt).collect(Collectors.toList());
|
||||
List<Integer> 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);
|
||||
|
|
|
|||
|
|
@ -114,8 +114,8 @@ public class TiketController extends ControllerBase {
|
|||
* @return 设备部件列表
|
||||
**/
|
||||
@GetMapping("getAllDeviceComponents")
|
||||
public ApiResult<List<String>> getAllDeviceComponents() {
|
||||
return ApiResult.success(partService.lambdaQuery().select(TBasePart::getPartName).eq(TBasePart::getEnable, true).list().stream().map(TBasePart::getPartName).collect(Collectors.toList()));
|
||||
public ApiResult<List<ComponentInfo>> getAllDeviceComponents() {
|
||||
return ApiResult.success(partService.getAllDeviceComponents(MultilingualUtil.getLanguage()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -201,6 +201,7 @@ public class TiketController extends ControllerBase {
|
|||
List<AdminUser> 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())
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -5,9 +5,13 @@ import lombok.Data;
|
|||
@Data
|
||||
public class ComponentInfo {
|
||||
|
||||
//部位名称
|
||||
private String name;
|
||||
/**
|
||||
* 部件id
|
||||
*/
|
||||
private int id;
|
||||
|
||||
//语言对应的名称
|
||||
private String languageValue;
|
||||
/**
|
||||
* 当前语言对应的部件名称
|
||||
*/
|
||||
private String name;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ public class Ticket implements Serializable {
|
|||
private String deviceNo;
|
||||
|
||||
/**
|
||||
* 问题部位
|
||||
* 问题部件id,t_base_part表的id
|
||||
*/
|
||||
private String component;
|
||||
private Integer componentId;
|
||||
|
||||
/**
|
||||
* 使用时长,单位:小时
|
||||
|
|
|
|||
|
|
@ -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<TBasePart> {
|
|||
List<ExportPartDTO> exportPart(@Param("partNo")String partNo, @Param("partName") String partName);
|
||||
|
||||
List<String> getSimpleList(String name);
|
||||
|
||||
List<ComponentInfo> getAllDeviceComponents(String language);
|
||||
|
||||
TBasePart getByIdAndLanguage(Integer componentId, String language);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<TBasePartMapper, TBasePart> implements ITBasePartService {
|
||||
|
||||
@Resource
|
||||
private ITBaseLanguageDataService languageDataService;
|
||||
|
||||
public Page<TBasePart> selectListByPage(@Param("query") PageBaseQuery query){
|
||||
return this.getBaseMapper().getListByPage(new Page<PageBaseQuery>(query.getPage(),query.getPageSize()), query);
|
||||
|
|
@ -44,4 +53,53 @@ public class TBasePartServiceImpl extends ServiceImpl<TBasePartMapper, TBasePart
|
|||
.map(TBasePart::getPartName)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ComponentInfo> getAllDeviceComponents(String language) {
|
||||
List<TBasePart> parts = lambdaQuery().eq(TBasePart::getEnable, 1).list();
|
||||
List<TBaseLanguageData> languageData = languageDataService.lambdaQuery()
|
||||
.eq(TBaseLanguageData::getLanguageCode, language)
|
||||
.in(TBaseLanguageData::getSourceId, parts.stream().map(TBasePart::getId).collect(Collectors.toList()))
|
||||
.list();
|
||||
List<ComponentInfo> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
.setNo(no)
|
||||
.setDeviceNo(request.getDeviceNo())
|
||||
.setDeviceAddress(request.getDeviceAddress())
|
||||
.setComponent(request.getComponent())
|
||||
.setComponentId(request.getComponentId())
|
||||
.setUseTime(request.getUseTime())
|
||||
.setTitle(request.getTitle())
|
||||
.setDescription(request.getDescription())
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@
|
|||
</update>
|
||||
|
||||
<select id="getComponents" resultType="com.nflg.mobilebroken.common.pojo.vo.ComponentInfo">
|
||||
SELECT dcd.model_part_name AS 'name', ld.language_value AS 'languageValue'
|
||||
SELECT p.id, if(LENGTH(ld.language_value)>0,ld.language_value,p.part_name) AS 'name'
|
||||
FROM device_component_detail dcd
|
||||
INNER JOIN t_base_part p ON dcd.model_part_id = p.id
|
||||
LEFT JOIN t_base_language_data ld ON dcd.model_part_id = ld.source_id
|
||||
|
|
|
|||
Loading…
Reference in New Issue