会返回下载提示的代码如下:
@RequestMapping("/importCar")
@ResponseBody
public ActionResult importCardInfoFromExcel(MultipartFile multExcel) throws IllegalStateException, IOException {
ActionResult result = new ActionResult();
try{
if(importing) {
result.setSuccess(false);
result.setMessage("正在导入数据,请勿重复点击!!!");
return result;
}
synchronized (lock) {
if (importing) {
result.setSuccess(false);
result.setMessage("正在导入数据,请勿重复点击!!!");
return result;
}
File excel = new File(FileUploadUtils.getUploadFileTempPath() + File.separator + SysCodeUtil.generateByUUID());
multExcel.transferTo(excel);
importing = true;
result = carInfoService.importCarInfo(excel, findCurrentUserId());
return result;
}
}catch (Exception e) {
result.setSuccess(false);
result.setMessage("导入数据失败");
Log.logInfo("调用导入车辆信息接口抛出异常: ");
Log.logException(e);
return result;
}
importing = false;
Log.logInfo("恢复导入操作标志位, importing: " + importing);
}
修复后的代码如下:
@RequestMapping("/importCar")
@ResponseBody
public void importCardInfoFromExcel(MultipartFile multExcel) throws IllegalStateException, IOException {
ActionResult result = new ActionResult();
try{
if(importing) {
result.setSuccess(false);
result.setMessage("正在导入数据,请勿重复点击!!!");
write(result);
return;
}
synchronized (lock) {
if (importing) {
result.setSuccess(false);
result.setMessage("正在导入数据,请勿重复点击!!!");
write(result);
return;
}
File excel = new File(FileUploadUtils.getUploadFileTempPath() + File.separator + SysCodeUtil.generateByUUID());
multExcel.transferTo(excel);
importing = true;
result = carInfoService.importCarInfo(excel, findCurrentUserId());
write(result);
}
}catch (Exception e) {
Log.logInfo("调用导入车辆信息接口抛出异常: ");
Log.logException(e);
result.setSuccess(false);
result.setMessage("导入数据失败!");
write(result);
}
importing = false;
Log.logInfo("恢复导入操作标志位, importing: " + importing);
}
private void write(ActionResult result) {
if (result == null) {
return;
}
PrintWriter writer = null;
try {
HttpServletResponse response = getServletResponse();
response.setContentType("text/html; charset=utf-8");
writer = response.getWriter();
writer.write(JsonUtils.object2Json(result));
writer.flush();
} catch (Exception e) {
Log.logInfo("数据写入响应流失败: ");
Log.logException(e);
} finally {
if (writer != null) {
try {
writer.close();
} catch (Exception e) {
Log.logInfo("响应流关闭失败!:");
Log.logException(e);
}
}
}
}