导入文件,对导入信息进行唯一评定,重复评定。

可以用一个List集合来收集导入的同一字段属性的信息,然后每次都判断该集合中是否已经包含有该数据。

比如判断:编码,或者名称是否重复。

            //检查数据是否符合规范
            List<String> codeList = new ArrayList<>();
            List<String> nameList = new ArrayList<>();
            //记录错误位置
            List<String> errorMsg = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                GhaKbHospitalTypeDictionary ghaKbHospitalTypeDictionary = list.get(i);
                if (StringUtils.isEmpty(ghaKbHospitalTypeDictionary.getHospitalTypeName())) {
                    errorMsg.add("表中第" + (i + 2) + "行”省份名称“内容不能为空!");
                }
                if (ghaKbHospitalTypeDictionary.getHospitalTypeCode() == null) {
                    errorMsg.add("表中第" + (i + 2) + "行”省份编码“内容不能为空!");
                }
                if (nameList.contains(ghaKbHospitalTypeDictionary.getHospitalTypeName())) {
                    errorMsg.add("表中第" + (i + 2) + "行”省份名称“内容重复!");
                } else {
                    nameList.add(ghaKbHospitalTypeDictionary.getHospitalTypeName());
                }
                if (codeList.contains(ghaKbHospitalTypeDictionary.getHospitalTypeCode())) {
                    errorMsg.add("表中第" + (i + 2) + "行”省份编码“内容重复!");
                } else {
                    codeList.add(ghaKbHospitalTypeDictionary.getHospitalTypeCode());
                }
            }
            if (errorMsg.size() > 0) {
                return AjaxResult.error(String.valueOf(errorMsg));
            }

如果是判断二个字段,不能同时相同,比如,1,a 不能有 1, a.   但是可以有1,b 或者2,a .

则可创建一个包含二个属性的DTO,然后重写该二个属性的equal方法,再用contain判断。

@Setter
@Getter
public class JudgeNameDTO {

    /**维度编号**/
    private String extentCode;

    /**章节名称,或章节编号**/
    private String chapterCodeName;

    public JudgeNameDTO(String extentCode, String chapterCodeName) {
        this.extentCode = extentCode;
        this.chapterCodeName = chapterCodeName;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        JudgeNameDTO that = (JudgeNameDTO) o;
        return Objects.equals(extentCode, that.extentCode) && Objects.equals(chapterCodeName, that.chapterCodeName);
    }

    @Override
    public int hashCode() {
        return Objects.hash(extentCode, chapterCodeName);
    }
}
            //检查数据是否符合规范
            List<JudgeNameDTO> judgeNameDTOSCode = new ArrayList<>();
            List<JudgeNameDTO> judgeNameDTOSName = new ArrayList<>();
            //记录错误位置
            List<String> errorMsg = new ArrayList<>();
            for (int i = 0; i<list.size(); i++){
                GhaKbTitleExportDTO ghaKbTitleExportDTO = list.get(i);
                if (StringUtils.isEmpty(ghaKbTitleExportDTO.getTitleCode())){
                    errorMsg.add(excelTitle + "表第" + (i+2) + "行”维度标题“内容不能为空!");
                }
                if (StringUtils.isEmpty(ghaKbTitleExportDTO.getTitleName())){
                    errorMsg.add(excelTitle + "表第" + (i+2) + "行”维度名称“内容不能为空!");
                }
                if (!(StringUtils.isEmpty(ghaKbTitleExportDTO.getChapterTitle()) && StringUtils.isEmpty(ghaKbTitleExportDTO.getChapterName()))){
                    if (StringUtils.isEmpty(ghaKbTitleExportDTO.getChapterName())){
                        errorMsg.add(excelTitle + "表第" + (i+2) + "行”章节名称或章节标题“内容不能为空!");
                    }
                }
                JudgeNameDTO judgeNameDTO = new JudgeNameDTO(ghaKbTitleExportDTO.getTitleCode(), ghaKbTitleExportDTO.getChapterTitle());
                if (judgeNameDTOSCode.contains(judgeNameDTO)){
                    errorMsg.add(excelTitle + "表第" + (i+2) + "行”章节标题“内容重复!");
                }else {
                    judgeNameDTOSCode.add(judgeNameDTO);
                }
                JudgeNameDTO judgeNameDTO1 = new JudgeNameDTO(ghaKbTitleExportDTO.getTitleCode(), ghaKbTitleExportDTO.getChapterName());
                if (judgeNameDTOSName.contains(judgeNameDTO1)) {
                    errorMsg.add(excelTitle + "表第" + (i+2) + "行”章节名称“内容重复!");
                }else {
                    judgeNameDTOSName.add(judgeNameDTO1);
                }
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值