diff --git a/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java index c389ce9a..eee8c3fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java @@ -75,6 +75,7 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl formType = Arrays.asList(lawsPartRelevance.getFormType().split(",")); if(formType.contains("1")){ if(StringUtils.isBlank(lawsPartRelevance.getSystemCode())){ - throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? "功能系统码 cannot be empty" : "功能系统码不能为空")); } @@ -138,10 +138,12 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl formType = Arrays.asList(lawsPartRelevance.getFormType().split(",")); if(formType.contains("1")){ if(StringUtils.isBlank(lawsPartRelevance.getSystemCode())){ - throw new JeroBootException(ResultCommon.EMPTY_COMMON,"systemCode"); + throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "功能系统码 cannot be empty" : "功能系统码不能为空")); } if(StringUtils.isBlank(lawsPartRelevance.getDecisionRequirement())){ - throw new JeroBootException(ResultCommon.EMPTY_COMMON,"decisionRequirement"); + throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "技术特性判定要求 cannot be empty" : "技术特性判定要求不能为空")); } } // 需要做名称+功能系统码唯一性校验 @@ -183,21 +185,35 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl list = Arrays.asList(lawsPartRelevance.getRegPartNameCn().split(",")); + list.sort(null); + String fndGpc = String.join(",", list); + lawsPartRelevance.setRegPartNameCn(fndGpc); + lawsPartRelevance.setFndGpc(fndGpc); + } + List listCode = listLawsPartRelevance.stream().map(o->o.getFndGpc() + "_" +o.getSystemCode()).collect(Collectors.toList()); + QueryWrapper queryLawsPartRelevance = new QueryWrapper<>(); + queryLawsPartRelevance.select("CONCAT(fnd_gpc,'_',system_code) as fnd_gpc"); + queryLawsPartRelevance.in("CONCAT(fnd_gpc,'_',system_code)",listCode); + List listOld = list(queryLawsPartRelevance); List lawsPartPmmPartitionInfoList = lawsPartPmmPartitionInfoService.list(); + Set setAlready = new HashSet<>(); // 校验数据 for (int i = 0; i < listLawsPartRelevance.size(); i++) { LawsPartRelevance lawsPartRelevance = listLawsPartRelevance.get(i); StringBuilder s = new StringBuilder(); // 校验必填项 - StringBuilder g = ValidUtil.validateReturnBuilder(lawsPartRelevance); + StringBuilder g = ValidUtil.validateReturnBuilderIsNotBlank(lawsPartRelevance); if(!StringUtils.isEmpty(g.toString())){ s.append(g.toString()); } if(!StringUtils.isBlank(lawsPartRelevance.getRegPartNameCn())){ // 验证关键零部件名称是否正确 if(CollectionUtils.isEmpty(lawsPartPmmPartitionInfoList)){ - s.append("关键零部件名称不存在"); + s.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "关键零部件名称 does not exist" : "关键零部件名称不存在"); }else{ List lawsPartPmmPartitionInfoListSub = lawsPartPmmPartitionInfoList .stream().filter(o->Objects.equals(o.getRegPartNameCn(), @@ -205,21 +221,42 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl formType = Arrays.asList(lawsPartRelevance.getFormType().split(",")); + if(formType.contains("1")){ if(StringUtils.isBlank(lawsPartRelevance.getSystemCode())){ - s.append("功能系统码不能为空,"); + s.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "功能系统码 cannot be empty" : "功能系统码不能为空"); } if(StringUtils.isBlank(lawsPartRelevance.getDecisionRequirement())){ - s.append("技术特性判定要求不能为空,"); + s.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "技术特性判定要求 cannot be empty" : "技术特性判定要求不能为空"); } } + // 校验是否存在 + String code = lawsPartRelevance.getFndGpc() + "_" + lawsPartRelevance.getSystemCode(); + if(!CollectionUtils.isEmpty(listOld)){ + long l = listOld.stream().filter(o->Objects.equals(o.getFndGpc() + "_" + o.getSystemCode(), + code)).count(); + if(l > 0){ + throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "名称与功能系统码 already exists" : "名称与功能系统码已存在")); + } + } + // 校验重复 + if(!CollectionUtils.isEmpty(setAlready) && !StringUtils.isBlank(code)){ + long l = setAlready.stream().filter(o->Objects.equals(o,code)).count(); + if(l > 0){ + throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? + "名称与功能系统码 duplicate" : "名称与功能系统码重复")); + } + } + setAlready.add(code); + if(!StringUtils.isBlank(s.toString())){ m.append(MessageUtils.getMessage(ResultCommon.ROW_N_IMPORT,i + 4)).append(",") .append(s.toString(), 0, s.toString().length() - 1).append("
");