<properties>
<validator>6.0.16.Final</validator>
</properties>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${validator}</version>
</dependency>
@Override
public String importData(List<TnMdMarcTemp> detailList,String identify) {
if (StringUtils.isNull(detailList) || detailList.size() == 0) {
throw new ServiceException("导入的数据不能为空;");
}
String check = check(detailList);
if(!StringUtils.isBlank(check)){
return check;
}
StringBuffer failureMsg = new StringBuffer();
for (int i = 0; i < detailList.size(); i++) {
TnMdMarcTemp detail = detailList.get(i);
if (StringUtils.isNull(detail.getWerks())){
return failureMsg.append("导入的数据错误;").toString();
}
Set<ConstraintViolation<TnMdMarcTemp>> result;
if((detail.getMtart().equals("Z006"))){
result = Validation.buildDefaultValidatorFactory().getValidator().validate(detail);
}
else{
result = Validation.buildDefaultValidatorFactory().getValidator().validate(detail, TnMdMarcTemp.Finance.class);
}
if (!result.isEmpty()) {
String message = result.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(",", "第" + (i + 1) + "行",";"));
failureMsg.append(message);
}
detail.setIdentify(identify);
}
if (StringUtils.isBlank(failureMsg)){
return null;
}
return failureMsg.toString();
}
}
package com.tn.mdm.mdm.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tn.mdm.common.annotation.Excel;
import com.tn.mdm.common.core.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.groups.Default;
public class TnMdMarcTemp extends BaseEntity {
public static final long serialVersionUID = 1L;
public interface Finance extends Default {}
public Long id;
public String taskId;
@Excel(name = "期间标识")
@Length(max = 1,message = "期间标识长度不可超过1个字符")
public String iprkz;
@Excel(name = "标准价")
@Length(max = 11,message = "标准价长度不可超过11个字符")
@Pattern(regexp = "^$|^[0-9]{1}\\d*(\\.[0-9]{0,3})?$",message = "标准价长度最多输入三位小数的数字且不为负数")
public String stprs;
@Excel(name = "评估类(必填)")
@NotBlank(message ="评估类不能为空",groups = {Finance.class})
public String bklas;
@Excel(name = "物料来源(必填)")
@NotBlank(message = "物料相关的源不可为空",groups = {Finance.class})
@Length(max = 1,message = "物料相关的源长度不可超过1个字符")
public String hkmat;
}