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();