From 7f06469cca1b1d1f8441d87e2f1cb8f3e1dd6ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 9 Sep 2025 16:50:49 +0800 Subject: [PATCH 01/14] =?UTF-8?q?feat:=20bug-564=20=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=EF=BC=8C=E7=AE=A1=E7=90=86=E7=AB=AF=EF=BC=8C?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E8=B5=84=E6=96=99=E7=AE=A1=E7=90=86=E8=BF=99?= =?UTF-8?q?=E9=87=8C=EF=BC=8C=E8=AE=BE=E7=BD=AE=E9=BB=98=E8=AE=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E8=AE=BE=E7=BD=AE=E9=94=99=E4=BA=86=EF=BC=8C?= =?UTF-8?q?=E6=83=B3=E5=8F=96=E6=B6=88=E5=8F=96=E6=B6=88=E4=B8=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/request/FileDefaultConfigRequest.java | 2 -- .../impl/ProductModelFileItemServiceImpl.java | 18 ++++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java index 93ff1a5b..13b98c40 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java @@ -2,7 +2,6 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; -import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @@ -18,6 +17,5 @@ public class FileDefaultConfigRequest { /** * 配置项 */ - @NotEmpty private List items; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java index a68f4b3c..117bc9a1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java @@ -72,14 +72,16 @@ public class ProductModelFileItemServiceImpl extends ServiceImpl { - if (Objects.nonNull(item.getFileItemId())) { - lambdaUpdate() - .set(ProductModelFileItem::getShowInList, true) - .eq(ProductModelFileItem::getId, item.getFileItemId()) - .update(); - } - }); + if (CollectionUtil.isNotEmpty(request.getItems())) { + request.getItems().forEach(item -> { + if (Objects.nonNull(item.getFileItemId())) { + lambdaUpdate() + .set(ProductModelFileItem::getShowInList, true) + .eq(ProductModelFileItem::getId, item.getFileItemId()) + .update(); + } + }); + } } @Override From 19f5d2205e56cd49c0bb3a0fcc85dad5d398ceba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 10 Sep 2025 09:51:08 +0800 Subject: [PATCH 02/14] =?UTF-8?q?feat:=20bug-564=20=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=EF=BC=8C=E7=AE=A1=E7=90=86=E7=AB=AF=EF=BC=8C?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E8=B5=84=E6=96=99=E7=AE=A1=E7=90=86=E8=BF=99?= =?UTF-8?q?=E9=87=8C=EF=BC=8C=E8=AE=BE=E7=BD=AE=E9=BB=98=E8=AE=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E8=AE=BE=E7=BD=AE=E9=94=99=E4=BA=86=EF=BC=8C?= =?UTF-8?q?=E6=83=B3=E5=8F=96=E6=B6=88=E5=8F=96=E6=B6=88=E4=B8=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/entity/ProductModelFileItem.java | 2 +- .../service/IProductModelFileItemService.java | 3 +++ .../impl/ProductModelFileItemServiceImpl.java | 7 +++++++ .../service/impl/ProductModelFileServiceImpl.java | 14 ++++++++------ .../mapper/ProductModelFileItemMapper.xml | 2 +- .../resources/mapper/ProductModelFileMapper.xml | 2 +- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java index 75a872dc..f518f08c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java @@ -32,7 +32,7 @@ public class ProductModelFileItem implements Serializable { private Integer modelId; /** - * 产品机型id + * 产品机型文件id */ private Integer modelFileId; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java index eb169c44..8e84c169 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java @@ -5,6 +5,7 @@ import com.nflg.mobilebroken.common.pojo.request.FileDefaultConfigRequest; import com.nflg.mobilebroken.common.pojo.request.ProductModelFileItemAddRequest; import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; +import javax.validation.constraints.NotEmpty; import java.util.List; /** @@ -24,4 +25,6 @@ public interface IProductModelFileItemService extends IService getPublishedByLanguage(Integer modelId); + + void removeByFileIds(@NotEmpty List ids); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java index 117bc9a1..5cf23c64 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java @@ -88,4 +88,11 @@ public class ProductModelFileItemServiceImpl extends ServiceImpl getPublishedByLanguage(Integer modelId) { return baseMapper.getPublishedByLanguage(modelId); } + + @Override + public void removeByFileIds(List ids) { + remove(new LambdaQueryWrapper() + .in(ProductModelFileItem::getModelFileId, ids) + ); + } } \ No newline at end of file diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java index 4209be3f..1ddd02d7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java @@ -116,6 +116,7 @@ public class ProductModelFileServiceImpl extends ServiceImpl StrUtil.equals(language.getCode(), item.getLanguageCode())) - .map(item -> { - return new FileDefaultConfigItemVO() - .setId(item.getId()) - .setName(item.getName()) - .setSelected(item.getShowInList()); - }).collect(Collectors.toList())); + .map(item -> new FileDefaultConfigItemVO() + .setId(item.getId()) + .setName(item.getName()) + .setSelected(item.getShowInList()) + ).collect(Collectors.toList()) + ); vos.add(vo); }); return vos; diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileItemMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileItemMapper.xml index 4e1738f5..20a949ee 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileItemMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileItemMapper.xml @@ -7,6 +7,6 @@ from product_model_file pmf inner join product_model_file_item pmfi on pmfi.model_file_id=pmf.id where pmf.state=1 and pmf.enable=1 and pmf.model_id=#{modelId} - order by pmfi.language_code,pmfi.show_in_list desc + order by pmfi.language_code,pmfi.show_in_list desc,pmfi.id desc diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileMapper.xml index 4dfe1a86..4a80e666 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductModelFileMapper.xml @@ -2,7 +2,7 @@ diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml index 6f21784b..9f2809dd 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml @@ -31,6 +31,9 @@ and a.start_warranty_date >= #{query.warrantyStartDate} and start_warranty_date <= #{query.warrantyEndDate} + + and concat(a.customer_name,a.device_no) LIKE concat('%', #{query.key}, '%') + - + select a.product_line,b.model_part_name,b.create_by,b.create_time from gongfu_device_component a - join gongfu_device_component_detail b on a.id=b.device_component_id - join t_base_part c on b.model_part_id=c.id + join gongfu_device_component_detail b on a.id=b.device_component_id + join gongfu_device_part c on b.model_part_id=c.id - select * from gongfu_device_part where 1=1 - - + select * from gongfu_device_part + + + + From 3c148bca39dbc7a621a76534368f60056122dae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 27 Jan 2026 11:31:11 +0800 Subject: [PATCH 08/14] =?UTF-8?q?feat:=20bug-1278=20=E6=9C=BA=E5=9E=8B?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=90=8D=E7=A7=B0=E5=9C=A8=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=88=B6=E7=BA=A7=E4=B8=8B=E4=B8=8D=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductModelController.java | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java index c1c617c6..cb250503 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java @@ -275,6 +275,14 @@ public class ProductModelController extends ControllerBase { */ @PostMapping("/addParamsIndexName") public ApiResult addParamsIndexName(@Valid @RequestBody ProductModelParamsNameAddRequest request) { + VUtils.trueThrowBusinessError(Objects.nonNull(request.getModelParamsId()) + && StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE) + && productModelParamsItemService.lambdaQuery() + .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId()) + .eq(ProductModelParamsItem::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .eq(ProductModelParamsItem::getIndexName, request.getIndexName()) + .exists() + ).throwMessage("指标名称已存在"); if (Objects.isNull(request.getModelParamsId())) { request.setModelParamsId(productModelParamsService.add(request.getModelId(), IdUtil.getSnowflakeNextIdStr())); } @@ -292,6 +300,13 @@ public class ProductModelController extends ControllerBase { VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空"); ProductModelParams info = productModelParamsService.getById(request.getModelParamsId()); VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据"); + VUtils.trueThrowBusinessError(StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE) + && productModelParamsItemService.lambdaQuery() + .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId()) + .eq(ProductModelParamsItem::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .eq(ProductModelParamsItem::getIndexName, request.getNewIndexName()) + .exists() + ).throwMessage("指标名称已存在"); if (Objects.equals(info.getState(), PublishState.Published.getState())) { Integer oldId = request.getModelParamsId(); request.setModelParamsId(productModelParamsService.add(request.getModelId(), info.getBatchNumber())); @@ -330,6 +345,14 @@ public class ProductModelController extends ControllerBase { VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空"); ProductModelParams info = productModelParamsService.getById(request.getModelParamsId()); VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据"); + VUtils.trueThrowBusinessError(StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE) + && productModelParamsItemService.lambdaQuery() + .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId()) + .eq(ProductModelParamsItem::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .eq(ProductModelParamsItem::getIndexName, request.getIndexName()) + .eq(ProductModelParamsItem::getName, request.getName()) + .exists() + ).throwMessage("参数名称重复"); if (Objects.equals(info.getState(), PublishState.Published.getState())) { Integer oldId = request.getModelParamsId(); request.setModelParamsId(productModelParamsService.add(request.getModelId(), info.getBatchNumber())); @@ -364,6 +387,15 @@ public class ProductModelController extends ControllerBase { VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空"); ProductModelParams info = productModelParamsService.getById(request.getModelParamsId()); VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据"); + VUtils.trueThrowBusinessError(StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE) + && productModelParamsItemService.lambdaQuery() + .ne(ProductModelParamsItem::getId,request.getModelParamsItemId()) + .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId()) + .eq(ProductModelParamsItem::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE) + .eq(ProductModelParamsItem::getIndexName, request.getIndexName()) + .eq(ProductModelParamsItem::getName, request.getName()) + .exists() + ).throwMessage("参数名称重复"); if (Objects.equals(info.getState(), PublishState.Published.getState())) { Integer oldId = request.getModelParamsId(); request.setModelParamsId(productModelParamsService.add(request.getModelId(), info.getBatchNumber())); @@ -625,6 +657,7 @@ public class ProductModelController extends ControllerBase { , @Valid @RequestParam(value = "file") @NotNull MultipartFile file) { ProductModel model = productModelService.getById(modelId); VUtils.trueThrowBusinessError(Objects.isNull(model)).throwMessage("无效的" + modelId); + List repeats=new ArrayList<>(); try (InputStream inputStream = file.getInputStream(); org.apache.poi.ss.usermodel.Workbook workbook = new XSSFWorkbook(inputStream)) { Sheet sheet = workbook.getSheetAt(0); String no = StrUtil.trim(sheet.getRow(1).getCell(1).getStringCellValue()); @@ -658,8 +691,15 @@ public class ProductModelController extends ControllerBase { dto.setMain(StrUtil.equals(cell3.getStringCellValue(), "是")); Cell cell4 = row.getCell(4); dto.setCompare(StrUtil.equals(cell4.getStringCellValue(), "是")); - datas.add(dto); + if (datas.stream().anyMatch(d -> StrUtil.equals(d.getIndexName(), dto.getIndexName()) + && StrUtil.equals(dto.getName(), d.getName()))) { + repeats.add(dto.getIndexName() + "->" + dto.getName()); + } else { + datas.add(dto); + } } + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(repeats)) + .throwMessage("以下参数名称重复:" + StrUtil.join(",", repeats)); // log.info("导入的数据是:{}", JSONUtil.toJsonStr(datas)); VUtils.trueThrowBusinessError(CollectionUtil.isEmpty(datas)).throwMessage("数据不能为空"); List languages = languageService.getLanguages(); From 8d215772fe4b737511bdb96f5b71cf8fe63d0f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 27 Jan 2026 16:06:03 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E5=B7=A5=E6=9C=8D=E8=B0=83=E6=95=B420260?= =?UTF-8?q?126=201=E3=80=81=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=85=88=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E6=89=80=E6=9C=89=E7=9A=84=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=A7=BB=E9=99=A4=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E4=B8=8D=E5=86=8D=E7=BB=91=E5=AE=9A=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=94=B9=E4=B8=BA=E7=BB=91=E5=AE=9A=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BA=BF=EF=BC=9B=204=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nflg/mobilebroken/repository/mapper/DeviceMapper.java | 2 +- .../mobilebroken/repository/service/impl/DeviceServiceImpl.java | 2 +- .../src/main/resources/mapper/DeviceMapper.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java index 3f326c5b..1340f8a5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java @@ -47,5 +47,5 @@ public interface DeviceMapper extends BaseMapper { List getAgents(); - List getComponents1(String modelNo, String language); + List getComponents1(String productLine, String language); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index aeb19adc..6ea40f1e 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -39,7 +39,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme if (Objects.equals(vo.getType(), 0)) { vo.setComponents(baseMapper.getComponents(vo.getModelNo(), MultilingualUtil.getLanguage())); } else { - vo.setComponents(baseMapper.getComponents1(vo.getModelNo(), MultilingualUtil.getLanguage())); + vo.setComponents(baseMapper.getComponents1(vo.getProductLine(), MultilingualUtil.getLanguage())); } } return Optional.ofNullable(vo).orElse(new DeviceInfoVO()); diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index ae46e199..238556f3 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -144,6 +144,6 @@ inner join gongfu_device_component dc ON dc.id = dcd.device_component_id INNER JOIN gongfu_device_part p ON dcd.model_part_id = p.id LEFT JOIN gongfu_device_part_language_data ld ON dcd.model_part_id = ld.source_id - WHERE p.enable=1 AND dc.`enable` = 1 AND dc.model_no=#{modelNo} AND ld.language_code=#{language} + WHERE p.enable=1 AND dc.`enable` = 1 AND dc.product_line=#{productLine} AND ld.language_code=#{language} From e0571e24b35f11b7a1b7896c17f0ad41f0ac2402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 27 Jan 2026 16:28:16 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E5=B7=A5=E6=9C=8D=E8=B0=83=E6=95=B420260?= =?UTF-8?q?126=201=E3=80=81=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=85=88=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E6=89=80=E6=9C=89=E7=9A=84=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=A7=BB=E9=99=A4=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E4=B8=8D=E5=86=8D=E7=BB=91=E5=AE=9A=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=94=B9=E4=B8=BA=E7=BB=91=E5=AE=9A=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BA=BF=EF=BC=9B=204=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pojo/vo/SolutionMeasuresVO.java | 5 +++++ .../gongfu/controller/DeviceComponentController.java | 1 + .../gongfu/pojo/vo/GongFuDeviceTypeVO.java | 2 ++ .../repository/service/impl/DeviceServiceImpl.java | 1 + .../service/impl/TicketSolutionServiceImpl.java | 10 ++++++++++ 5 files changed, 19 insertions(+) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/SolutionMeasuresVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/SolutionMeasuresVO.java index 3c090dfd..ad323261 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/SolutionMeasuresVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/SolutionMeasuresVO.java @@ -20,4 +20,9 @@ public class SolutionMeasuresVO { // 是否审核通过,默认为null,表示未审核;false:不通过,true:通过 private Boolean approved; + + /** + * 部件列表 + */ + private List components; } diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java index 1b40e339..a752ece2 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java @@ -108,6 +108,7 @@ public class DeviceComponentController extends ControllerBase { .findFirst() .orElseGet(() -> { GongFuDeviceTypeVO v = new GongFuDeviceTypeVO() + .setId(p.getId()) .setProductLine(p.getProductLine()); datas.add(v); return v; diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/GongFuDeviceTypeVO.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/GongFuDeviceTypeVO.java index 8eb831c3..c4a2d629 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/GongFuDeviceTypeVO.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/GongFuDeviceTypeVO.java @@ -11,6 +11,8 @@ import java.util.List; @Accessors(chain = true) public class GongFuDeviceTypeVO { + private Long id; + /** * 产品线 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index 6ea40f1e..361a7bdb 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; +import com.nflg.mobilebroken.common.pojo.vo.ComponentInfo; import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceVO; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java index 3c8cea02..19622797 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java @@ -8,6 +8,7 @@ import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.constant.TicketState; import com.nflg.mobilebroken.common.pojo.dto.TicketDTO; import com.nflg.mobilebroken.common.pojo.request.SolutionMeasuresSaveRequest; +import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.SolutionMeasuresDataItemVO; import com.nflg.mobilebroken.common.pojo.vo.SolutionMeasuresItemVO; import com.nflg.mobilebroken.common.pojo.vo.SolutionMeasuresVO; @@ -56,6 +57,9 @@ public class TicketSolutionServiceImpl extends ServiceImpl Date: Tue, 27 Jan 2026 16:40:34 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E5=B7=A5=E6=9C=8D=E8=B0=83=E6=95=B420260?= =?UTF-8?q?126=201=E3=80=81=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=85=88=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E6=89=80=E6=9C=89=E7=9A=84=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=A7=BB=E9=99=A4=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E4=B8=8D=E5=86=8D=E7=BB=91=E5=AE=9A=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=94=B9=E4=B8=BA=E7=BB=91=E5=AE=9A=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BA=BF=EF=BC=9B=204=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gongfu/controller/DeviceComponentController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java index a752ece2..cee742e4 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/DeviceComponentController.java @@ -100,7 +100,6 @@ public class DeviceComponentController extends ControllerBase { .like(StrUtil.isNotBlank(query.getProductLine()), GongfuDeviceComponent::getProductLine, query.getProductLine()) .list(); List details = deviceComponentDetailService.list(); - details.forEach(d -> d.setId(d.getDeviceComponentId())); List datas = new ArrayList<>(); productLines.forEach(p -> { GongFuDeviceTypeVO vo = datas.stream() From 04d2482850cacf629144a6a6301fdff6c107392c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 27 Jan 2026 17:17:03 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E5=B7=A5=E6=9C=8D=E8=B0=83=E6=95=B420260?= =?UTF-8?q?126=201=E3=80=81=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=85=88=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E6=89=80=E6=9C=89=E7=9A=84=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=A7=BB=E9=99=A4=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E4=B8=8D=E5=86=8D=E7=BB=91=E5=AE=9A=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=94=B9=E4=B8=BA=E7=BB=91=E5=AE=9A=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BA=BF=EF=BC=9B=204=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/mobilebroken/gongfu/controller/TicketController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java index 9ec34595..abe09fe7 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java @@ -669,6 +669,7 @@ public class TicketController extends ControllerBase { .setDeviceAddress(ticket.getDeviceAddress()) .setModelNo(device.getModelNo()) .setDeviceType(device.getDeviceType()) + .setComponentId(ticket.getComponentId()) .setComponent(Objects.nonNull(part) ? part.getPartName() : "") .setUseTime(ticket.getUseTime()) .setDescription(ticket.getDescription()) From 381b9ec5f87c19da2257f82ec2f0c926b6e63152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 27 Jan 2026 17:46:03 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E5=B7=A5=E6=9C=8D=E8=B0=83=E6=95=B420260?= =?UTF-8?q?126=201=E3=80=81=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=85=88=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E6=89=80=E6=9C=89=E7=9A=84=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=A7=BB=E9=99=A4=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E4=B8=8D=E5=86=8D=E7=BB=91=E5=AE=9A=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=94=B9=E4=B8=BA=E7=BB=91=E5=AE=9A=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BA=BF=EF=BC=9B=204=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TranslateController.java | 23 +++++++++++++++++-- .../cfs/controller/TranslateController.java | 20 ++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java index 092d11aa..87efff73 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java @@ -1,14 +1,22 @@ package com.nflg.mobilebroken.admin.controller; +import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.request.TranslateWordRequest; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.Language; +import com.nflg.mobilebroken.repository.service.IDictionaryItemService; +import com.nflg.mobilebroken.repository.service.ILanguageService; import com.nflg.mobilebroken.starter.service.ITranslate; import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.Objects; /** * 翻译相关 @@ -23,6 +31,9 @@ public class TranslateController extends ControllerBase{ @Resource private DeepSeekTranslate deepSeekTranslate; + @Resource + private ILanguageService languageService; + /** * 文字翻译 * @param request 请求参数 @@ -39,8 +50,16 @@ public class TranslateController extends ControllerBase{ * @return 翻译结果 */ @PostMapping("deepseek") - public ApiResult deepseek(@RequestParam String text) { + public ApiResult deepseek(HttpServletRequest request, @RequestParam String text) { + String languageCode = request.getHeader("language"); + if (StrUtil.isBlank(languageCode)) { + return ApiResult.success(""); + } + Language language = languageService.lambdaQuery().eq(Language::getCode, languageCode).one(); + if (Objects.isNull(language)) { + return ApiResult.success(""); + } text = text.replaceAll("
", ","); - return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", AdminUserUtil.getLanguageName(), "text")); + return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", language.getName(), "text")); } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java index 1cdd983e..972985b4 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java @@ -1,7 +1,10 @@ package com.nflg.mobilebroken.cfs.controller; +import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.util.AppUserUtil; +import com.nflg.mobilebroken.repository.entity.Language; +import com.nflg.mobilebroken.repository.service.ILanguageService; import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -9,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Objects; /** * 翻译相关 @@ -20,13 +25,24 @@ public class TranslateController extends ControllerBase { @Resource private DeepSeekTranslate deepSeekTranslate; + @Resource + private ILanguageService languageService; + /** * deepseek翻译 * @param text 要翻译的文本 * @return 翻译结果 */ @PostMapping("deepseek") - public ApiResult deepseek(@RequestParam String text) { - return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", AppUserUtil.getLanguageName(), "text")); + public ApiResult deepseek(HttpServletRequest request, @RequestParam String text) { + String languageCode = request.getHeader("language"); + if (StrUtil.isBlank(languageCode)) { + return ApiResult.success(""); + } + Language language = languageService.lambdaQuery().eq(Language::getCode, languageCode).one(); + if (Objects.isNull(language)) { + return ApiResult.success(""); + } + return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", language.getName(), "text")); } } From e6be9a5b481b650fffa5b131105e6d8e12de0c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 28 Jan 2026 11:11:05 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=AD=90=E8=B4=A6=E5=8F=B7=E5=90=8E=E6=9C=AA=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?isPrimary=E5=AD=97=E6=AE=B5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/service/impl/AppUserApplyforServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java index 963658e1..93822a90 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java @@ -219,7 +219,8 @@ public class AppUserApplyforServiceImpl extends ServiceImpl