修复文件上传的问题。
This commit is contained in:
parent
16df86e3a7
commit
0ad42d00a9
|
@ -45,37 +45,42 @@ public class ImportBIDataController
|
|||
ReportType type = request.getReportType();
|
||||
boolean hasCaption = request.isHasCaption();
|
||||
int sheetIndex = request.getSheetIndex();
|
||||
int importedCount = 0;
|
||||
|
||||
try
|
||||
{
|
||||
if ( type == ReportType.TelsalerAttachingRateReport )
|
||||
{
|
||||
importBITelsalerAttachingRate( filePath, sheetIndex, hasCaption );
|
||||
importedCount = importBITelsalerAttachingRate( filePath, sheetIndex, hasCaption );
|
||||
}
|
||||
else if ( type == ReportType.TelsalerRenewalRateReport )
|
||||
{
|
||||
importBITeslsalerRenewalRate( filePath, sheetIndex, hasCaption );
|
||||
importedCount = importBITeslsalerRenewalRate( filePath, sheetIndex, hasCaption );
|
||||
}
|
||||
else if ( type == ReportType.DepartmentAttachingRenewalRateReport )
|
||||
{
|
||||
importBIDepartmentArchievement( filePath, sheetIndex, hasCaption );
|
||||
importedCount = importBIDepartmentArchievement( filePath, sheetIndex, hasCaption );
|
||||
}
|
||||
|
||||
response.setImportedCount(importedCount);
|
||||
response.setSuccess(true);
|
||||
response.setMessage("导入成功");
|
||||
}
|
||||
catch ( IOException error )
|
||||
{
|
||||
String message = "加载文件错误,错误消息:" + error.getMessage();
|
||||
response.setSuccess( false );
|
||||
response.setMessage( message );
|
||||
|
||||
logger.error(message, error);
|
||||
|
||||
logger.error( message, error );
|
||||
}
|
||||
catch ( InvalidFormatException error )
|
||||
{
|
||||
String message = "Excel文件格式错误,错误消息:" + error.getMessage();
|
||||
response.setSuccess( false );
|
||||
response.setMessage( message );
|
||||
|
||||
logger.error(message, error);
|
||||
|
||||
logger.error( message, error );
|
||||
}
|
||||
catch ( PersistenceException error )
|
||||
{
|
||||
|
@ -83,17 +88,18 @@ public class ImportBIDataController
|
|||
response.setSuccess( false );
|
||||
response.setMessage( message );
|
||||
|
||||
logger.error(message, error);
|
||||
logger.error( message, error );
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
private static void importBITelsalerAttachingRate( String filePath, int sheetIndex,
|
||||
private static int importBITelsalerAttachingRate( String filePath, int sheetIndex,
|
||||
boolean hasCaption ) throws PersistenceException, IOException, InvalidFormatException
|
||||
{
|
||||
SqlSession session = null;
|
||||
int importedCount = 0;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -102,7 +108,7 @@ public class ImportBIDataController
|
|||
sheetIndex, hasCaption );
|
||||
|
||||
session = MybatisUtils.getSqlSessionBatch();
|
||||
ImportBIArchievementDataMapper mapper =
|
||||
ImportBIArchievementDataMapper mapper =
|
||||
session.getMapper( ImportBIArchievementDataMapper.class );
|
||||
|
||||
mapper.cleanTelsalerAttachingRateData();
|
||||
|
@ -110,6 +116,7 @@ public class ImportBIDataController
|
|||
for ( BITelsalerAttachingRateRecord record : records )
|
||||
{
|
||||
mapper.insertTelsalerAttachingRateDataToDB( record );
|
||||
importedCount++;
|
||||
}
|
||||
|
||||
session.commit();
|
||||
|
@ -123,14 +130,17 @@ public class ImportBIDataController
|
|||
|
||||
throw error;
|
||||
}
|
||||
|
||||
return importedCount;
|
||||
}
|
||||
|
||||
private static void importBITeslsalerRenewalRate( String filePath, int sheetIndex,
|
||||
private static int importBITeslsalerRenewalRate( String filePath, int sheetIndex,
|
||||
boolean hasCaption ) throws PersistenceException, IOException, InvalidFormatException
|
||||
{
|
||||
ArrayList<BITelsalerRenewalRateRecord> records = null;
|
||||
SqlSession session = null;
|
||||
ImportBIArchievementDataMapper mapper = null;
|
||||
int importedCount = 0;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -146,6 +156,7 @@ public class ImportBIDataController
|
|||
for ( BITelsalerRenewalRateRecord record : records )
|
||||
{
|
||||
mapper.insertTelsalerRenewalRateDataToDB( record );
|
||||
importedCount++;
|
||||
}
|
||||
|
||||
session.commit();
|
||||
|
@ -159,14 +170,17 @@ public class ImportBIDataController
|
|||
|
||||
throw error;
|
||||
}
|
||||
|
||||
return importedCount;
|
||||
}
|
||||
|
||||
private static void importBIDepartmentArchievement( String filePath, int sheetIndex,
|
||||
private static int importBIDepartmentArchievement( String filePath, int sheetIndex,
|
||||
boolean hasCaption ) throws PersistenceException, IOException, InvalidFormatException
|
||||
{
|
||||
ArrayList<BIDepartmentArchievementRecord> records = null;
|
||||
SqlSession session = null;
|
||||
ImportBIArchievementDataMapper mapper = null;
|
||||
int importedCount = 0;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -180,6 +194,7 @@ public class ImportBIDataController
|
|||
for ( BIDepartmentArchievementRecord record : records )
|
||||
{
|
||||
mapper.insertDepartmentAttachingRenewalRateDataToDB( record );
|
||||
importedCount++;
|
||||
}
|
||||
|
||||
session.commit();
|
||||
|
@ -191,5 +206,7 @@ public class ImportBIDataController
|
|||
session.rollback();
|
||||
}
|
||||
}
|
||||
|
||||
return importedCount;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
* @Author: Kane
|
||||
* @Date: 2023-01-22 23:11:26
|
||||
* @LastEditors: Kane
|
||||
* @LastEditTime: 2023-10-06 01:48:39
|
||||
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/FileUpload/FileUpload.java
|
||||
* @LastEditTime: 2023-10-16 10:51:36
|
||||
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java
|
||||
* @Description: 用于接受上传文件的Controller。
|
||||
*
|
||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||
|
@ -12,6 +12,9 @@
|
|||
package com.cpic.xim.web.controllers.fileupload;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.util.Vector;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -39,45 +42,46 @@ public class FileUpload
|
|||
@RequestMapping( path = "/file-upload.do" )
|
||||
@ResponseBody
|
||||
public FileUploadResult getUploadFile( @RequestParam( "task-name" ) String taskName,
|
||||
@RequestParam( "files" ) MultipartFile[] files, HttpServletRequest request )
|
||||
@RequestParam( "files" ) MultipartFile file, HttpServletRequest request )
|
||||
{
|
||||
// session id用来创建临时目录,避免重复
|
||||
String sessionID = request.getSession().getId();
|
||||
FileUploadResult result = new FileUploadResult();
|
||||
Vector<String> fileNames = new Vector<String>();
|
||||
int fileCount = files.length;
|
||||
|
||||
// 防御验证
|
||||
if ( files.length == 0 )
|
||||
{
|
||||
result.setSuccess( false );
|
||||
result.setMessage( "此接口用于上传文件!" );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
result.setSuccess( true );
|
||||
result.setMessage( "上传成功!" );
|
||||
|
||||
for ( MultipartFile file : files )
|
||||
// 检查文件长度,如果为0则跳过
|
||||
if ( file.isEmpty() )
|
||||
{
|
||||
result.setSuccess( false );
|
||||
result.setMessage( "不允许上传空文件。" );
|
||||
}
|
||||
else
|
||||
{
|
||||
// 检查文件长度,如果为0则跳过
|
||||
if ( file.isEmpty() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// 保存文件到临时目录
|
||||
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
||||
String filePath =
|
||||
request.getServletContext().getRealPath( "/temp/upload/" + sessionID );
|
||||
String fileName = file.getOriginalFilename();
|
||||
String fileName = String.valueOf(milliSecond) + file.getOriginalFilename();
|
||||
File destFile = new File( filePath, fileName );
|
||||
|
||||
// 把上传文件的绝对路径保存,返回给前端
|
||||
fileNames.add( destFile.getAbsolutePath() );
|
||||
}
|
||||
try
|
||||
{
|
||||
file.transferTo( destFile );
|
||||
// 把上传文件的绝对路径保存,返回给前端
|
||||
fileNames.add( destFile.getAbsolutePath() );
|
||||
|
||||
result.setFileList( fileNames );
|
||||
result.setSuccess(true);
|
||||
result.setMessage("上传成功");
|
||||
result.setFileList(fileNames);
|
||||
}
|
||||
catch ( IOException error )
|
||||
{
|
||||
result.setSuccess(false);
|
||||
result.setMessage("上传失败,原因:" + error.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue