批量導入顯示判空校驗信息返回代碼實現

1.相關代碼如下
controller層:

@RequestMapping(value = "/batchInsertBlacklist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    @ApiOperation(value = "黑名單導入", notes = "黑名單導入")
    public Result<String> batchInsertBlacklist(@RequestBody TwmCompanyBlacklistInfoImport twmCompanyBlacklistInfo) {
        List<TwmCompanyBlacklistInfoSave> twmCompanyBlacklistInfoSaves = twmCompanyBlacklistInfo.getTwmCompanyBlacklistInfoSave();
        // 獲取登陸信息
        for (TwmCompanyBlacklistInfoSave companyBlacklistInfoSave : twmCompanyBlacklistInfoSaves) {
            AntUserInfo antUserInfo = SessionHelper.getAntUserInfo();
            companyBlacklistInfoSave.setInputManName(antUserInfo.getUsername());
            companyBlacklistInfoSave.setTopOrganizationCode(antUserInfo.getTopOrganizationCode());
        }
        return twmCompanyBlacklistInfoFacadeService.batchInsertTwmCompanyBlacklistInfo(twmCompanyBlacklistInfoSaves);
    }

service層:

@Override
    public Result<String> batchInsertTwmCompanyBlacklistInfo(List<TwmCompanyBlacklistInfoSave> twmCompanyBlacklistInfoSave) {
        List<String> errorMessage = new ArrayList<>();
        Integer num = 0; //記錄黑名單問題的行數
        Set<String> hashSet = new HashSet<>();
        //參數校驗
        List<String> stringList = validParam(twmCompanyBlacklistInfoSave, errorMessage, num, hashSet);
        if(CollectionUtils.isEmpty(stringList)){
            for (TwmCompanyBlacklistInfoSave companyBlacklistInfoSave : twmCompanyBlacklistInfoSave) {
                //對圖片處理
                if(StringUtils.isNotBlank(companyBlacklistInfoSave.getFileUrl())
                        && companyBlacklistInfoSave.getFileUrl().contains("group2")) {
                    companyBlacklistInfoSave.setFileUrl(companyBlacklistInfoSave.getFileUrl().substring(companyBlacklistInfoSave.getFileUrl().indexOf("group2"),companyBlacklistInfoSave.getFileUrl().indexOf("?")));
                }
                twmCompanyBlacklistInfoService.insertTwmCompanyBlacklistInfo(companyBlacklistInfoSave);
            }
        }
        if(CollectionUtils.isNotEmpty(stringList)) {
            return  ResultOper.errorResult(StringUtils.join(stringList, ";<br/>"));
        }
        return new Result<String>(BaseConstants.SUCCESS, "導入成功", twmCompanyBlacklistInfoSave.size() + "", null, BaseConstants.SYS_SUCCESS);
    }
//參數校驗
        List<String> stringList = validParam(twmCompanyBlacklistInfoSave, errorMessage, num, hashSet);

參數校驗代碼私有方法實現如下:

//參數校驗
    private List<String> validParam(List<TwmCompanyBlacklistInfoSave> twmCompanyBlacklistInfoSave,List<String> errorMessage,Integer num,Set<String> hashSet){
        for (TwmCompanyBlacklistInfoSave companyBlacklistInfoSave : twmCompanyBlacklistInfoSave) {
            num ++;
            TwmCompanyBlacklistInfoQuery twmCompanyBlacklistInfoQuery = new TwmCompanyBlacklistInfoQuery();
            //白名單
            if(null != companyBlacklistInfoSave.getType()
                    && 1 == companyBlacklistInfoSave.getType()){
                if(StringUtils.isBlank(companyBlacklistInfoSave.getTemplateCode())){
                    errorMessage.add("第"+num+"條模板編號不能爲空");
                }
                if(StringUtils.isBlank(companyBlacklistInfoSave.getBlacklistType())){
                    errorMessage.add("第"+num+"條客戶類型不能爲空");
                }
                twmCompanyBlacklistInfoQuery.setType(companyBlacklistInfoSave.getType());
                twmCompanyBlacklistInfoQuery.setTemplateCode(companyBlacklistInfoSave.getTemplateCode());
            }else {
                //黑名單
                twmCompanyBlacklistInfoQuery.setType(0);
            }
            twmCompanyBlacklistInfoQuery.setCompanyName(companyBlacklistInfoSave.getCompanyName());
            twmCompanyBlacklistInfoQuery.setTopOrganizationCode(companyBlacklistInfoSave.getTopOrganizationCode());
            PageModel<TwmCompanyBlacklistInfo> twmCompanyBlacklistInfoPageModel = twmCompanyBlacklistInfoService.listTwmCompanyBlacklistInfo(twmCompanyBlacklistInfoQuery);
            if(StringUtils.isBlank(companyBlacklistInfoSave.getCompanyName())){
                errorMessage.add("第"+num+"條公司名稱不能爲空");
            }
            if(StringUtils.isBlank(companyBlacklistInfoSave.getBusinessLicenseNo())){
                errorMessage.add("第"+num+"條營業執照號不能爲空");
            }
            if(StringUtils.isBlank(companyBlacklistInfoSave.getCauseRemark())){
                errorMessage.add("第"+num+"條原因備註不能爲空");
            }
            if(CollectionUtils.isNotEmpty(twmCompanyBlacklistInfoPageModel.getDatas())
                    && StringUtils.isNotBlank(companyBlacklistInfoSave.getCompanyName())){
                errorMessage.add("第"+num+"條當前公司內的公司名稱不能重複");
            }
            hashSet.add(companyBlacklistInfoSave.getCompanyName()+"|"+companyBlacklistInfoSave.getTopOrganizationCode());
        }
        if(twmCompanyBlacklistInfoSave.size() > hashSet.size()){
            errorMessage.add("excel列表中公司名稱重複");
        }
        return errorMessage;
    }

導入效果如下:
在這裏插入圖片描述
在這裏插入圖片描述
備註:
由於excel解析是前端做的,所以後端無需做excel校驗,只需接收一個list集合就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章