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集合就行了。