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