fix:87325

This commit is contained in:
梁琦涛
2024-07-24 09:50:15 +08:00
parent 24342a5746
commit 06521540b3
3 changed files with 105 additions and 41 deletions
@@ -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<LawsMarketS
if(!StringUtils.isEmpty(g.toString())){
s.append(g.toString());
}
// 验证字典值是否满足条件
StringBuilder dict = lawsCommonService.validateFieldByDict(p);
if(!StringUtils.isBlank(dict)){
s.append(dict);
}
// 验证标准编号
checkStandard(listIdsStandard, listStandardIds, listStandardIdRepeat, p, s);
if(!StringUtils.isBlank(p.getStandardNumber())){
Optional<LawsMarketStandardDetail> 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("<br>");
@@ -251,6 +257,69 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
return m;
}
private void checkStandar(List<String> listStandardIds, List<String> listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s, Optional<LawsMarketStandardDetail> 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<LawsMarketStandardDetailExcel> getLawsMarketStandardDetailExcels(MultipartFile file, ImportParams params) throws Exception {
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(
@@ -263,40 +332,6 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
return listLawsMarketStandardDetailExcel;
}
private void checkStandard(List<LawsMarketStandardDetail> listIdsStandard, List<String> listStandardIds, List<String> listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s) {
if(!StringUtils.isBlank(p.getStandardNumber())){
Optional<LawsMarketStandardDetail> 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<String> getStandardIds(String manifestId) {
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>();
@@ -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;
}
}
}