diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java index 37233b81..95b1ec11 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java @@ -3,7 +3,6 @@ package com.jero.modules.laws.marketStandard.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; @@ -20,6 +19,7 @@ import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetailExcel import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; +import com.jero.modules.laws.utils.DateValidateUtil; import com.jero.modules.laws.utils.ValidUtil; import com.jero.modules.quartz.entity.QuartzJob; import org.apache.commons.collections4.CollectionUtils; @@ -236,13 +236,19 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl op = listIdsStandard.stream().filter(o-> + Objects.equals(o.getStandardNumber(),p.getStandardNumber())).findFirst(); + if(!op.isPresent()){ + s.append("标准编号不存在,"); + continue; + }else{ + checkStandar(listStandardIds, listStandardIdRepeat, p, s, op); + } + } + checkDate(p, s); + if(!StringUtils.isBlank(s.toString())){ m.append("第").append(i + 4).append("行,").append(s.toString(), 0, s.toString().length() - 1) .append("
"); @@ -251,6 +257,69 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listStandardIds, List listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s, Optional op) { + if(!op.isPresent()){ + return; + } + LawsMarketStandardDetail obj = op.get(); + String id = obj.getStandardId(); + p.setStandardId(id); + if(!CollectionUtils.isEmpty(listStandardIds) && listStandardIds.contains(id)){ + s.append("标准编号已存在,"); + }else if(!CollectionUtils.isEmpty(listStandardIdRepeat) && listStandardIdRepeat.contains(id)){ + s.append("标准编号重复,"); + }else{ + // 验证标准名称 + if(!Objects.equals(obj.getStandardName(),p.getStandardName())){ + s.append("标准名称错误,"); + } + // 验证标准英文名称 + if(!StringUtils.isEmpty(obj.getStandardEnglishName()) + && !Objects.equals(obj.getStandardEnglishName(), p.getStandardEnglishName())){ + s.append("标准英文名称错误,"); + } + // 验证类型 + if(!Objects.equals(obj.getType(),p.getType())){ + s.append("类型错误,"); + } + } + listStandardIdRepeat.add(id); + } + + private void checkDate(LawsMarketStandardDetail p, StringBuilder s) { + // 验证字典值是否满足条件 + StringBuilder dict = lawsCommonService.validateFieldByDict(p); + if(!StringUtils.isBlank(dict)){ + s.append(dict); + } + String format = "yyyy-MM-dd"; + // 新生产车实施日期 + if(!StringUtils.isEmpty(p.getNewProductImplDate())){ + String[] str = p.getNewProductImplDate().split(","); + for (String s1 : str) { + if (!DateValidateUtil.isValidDate(s1, format)) { + s.append("新生产车实施日期格式错误(请输入年-月-日格式),"); + break; + } + } + } + // 新认证车实施日期 + if(!StringUtils.isEmpty(p.getNewAuthImplDate())){ + String[] str = p.getNewAuthImplDate().split(","); + for (String s1 : str) { + if (!DateValidateUtil.isValidDate(s1, format)) { + s.append("新认证车实施日期格式错误(请输入年-月-日格式),"); + break; + } + } + } + // 注册日期 + if(!StringUtils.isEmpty(p.getRegistrationDate()) && + !DateValidateUtil.isValidDate(p.getRegistrationDate(), format)){ + s.append("注册日期格式错误(请输入年-月-日格式),"); + } + } + @Nullable private List getLawsMarketStandardDetailExcels(MultipartFile file, ImportParams params) throws Exception { List listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel( @@ -263,40 +332,6 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listIdsStandard, List listStandardIds, List listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s) { - if(!StringUtils.isBlank(p.getStandardNumber())){ - Optional op = listIdsStandard.stream().filter(o-> - Objects.equals(o.getStandardNumber(),p.getStandardNumber())).findFirst(); - if(!op.isPresent()){ - s.append("标准编号不存在,"); - }else{ - LawsMarketStandardDetail obj = op.get(); - String id = obj.getStandardId(); - p.setStandardId(id); - if(!CollectionUtils.isEmpty(listStandardIds) && listStandardIds.contains(id)){ - s.append("标准编号已存在,"); - }else if(!CollectionUtils.isEmpty(listStandardIdRepeat) && listStandardIdRepeat.contains(id)){ - s.append("标准编号重复,"); - }else{ - // 验证标准名称 - if(!Objects.equals(obj.getStandardName(),p.getStandardName())){ - s.append("标准名称错误,"); - } - // 验证标准英文名称 - if(!StringUtils.isEmpty(obj.getStandardEnglishName()) - && !Objects.equals(obj.getStandardEnglishName(), p.getStandardEnglishName())){ - s.append("标准英文名称错误,"); - } - // 验证类型 - if(!Objects.equals(obj.getType(),p.getType())){ - s.append("类型错误,"); - } - } - listStandardIdRepeat.add(id); - } - } - } - @NotNull private List getStandardIds(String manifestId) { LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/utils/DateValidateUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/utils/DateValidateUtil.java new file mode 100644 index 00000000..905c7510 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/utils/DateValidateUtil.java @@ -0,0 +1,29 @@ +package com.jero.modules.laws.utils; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; + +/** + * @author lqt + * @version 1.0 + * @date 2024/7/24 9:29 + */ +public class DateValidateUtil { + + /** + * 验证日期是否匹配 + * @param dateStr 输入日期 + * @param formatPattern 期望的日期格式 yyyy-MM-dd + * @return + */ + public static boolean isValidDate(String dateStr, String formatPattern) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(formatPattern); + try { + LocalDate.parse(dateStr, formatter); + return true; + } catch (DateTimeParseException e) { + return false; + } + } +} diff --git a/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls b/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls index 556e76f9..b944fbc0 100644 Binary files a/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls and b/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls differ