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