package com.vci.web.controller;
|
|
import com.vci.constant.FrameWorkLangCodeConstant;
|
import com.vci.dto.VciFileObjectDTO;
|
import com.vci.pagemodel.VciFileObjectVO;
|
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.BaseResult;
|
import com.vci.starter.web.util.LangBaseUtil;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.web.service.VciFileObjectServiceI;
|
import com.vci.web.service.VciFileUploadServiceI;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.MediaType;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
|
import static com.vci.starter.web.util.Lcm.Charsets.UTF_8;
|
|
/**
|
* 文档上传控制器
|
*
|
* @author dangsn
|
* @date 2020-08-04
|
*/
|
@RestController
|
@RequestMapping("/vciFileUploadController")
|
public class VciFileUploadController {
|
|
/**
|
* 文件上传业务层
|
*/
|
@Autowired
|
private VciFileUploadServiceI vciFileUploadServiceI;
|
|
/**
|
* 文件的对象服务
|
*/
|
@Autowired
|
private VciFileObjectServiceI fileObjectService;
|
|
/**
|
* 前端页面单文件上传。(先数据,后文件模式上传)
|
* @param file 上传的文件
|
* @param fileObjectDTO 文件信息传输对象
|
* @return 文件信息显示对象
|
*/
|
@PostMapping("/uploadFile")
|
public BaseResult<VciFileObjectVO> uploadFile(MultipartFile file, VciFileObjectDTO fileObjectDTO){
|
try {
|
if (file != null ) {
|
return vciFileUploadServiceI.uploadFile(file, fileObjectDTO);
|
} else {
|
return BaseResult.fail(FrameWorkLangCodeConstant.UPLOAD_FAIL, new String[]{"无上传的文件"});
|
}
|
}catch (Throwable e) {
|
throw new VciBaseException(e.getMessage(),new String[0],e);
|
}
|
}
|
|
/**
|
* 供其他服务调用的文件上传接口。(分片上传)
|
* @param multipartFile 片文件
|
* @param offSet 文件偏移位置
|
* @param fileOid 文件主键
|
* @return 文件信息显示对象
|
*/
|
@PostMapping(value = "/uploadFileForOtherService",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
public BaseResult<VciFileObjectVO> uploadFileForOtherService(@RequestPart("file") MultipartFile multipartFile,
|
@RequestParam("offSet") long offSet,
|
@RequestParam("fileOid") String fileOid){
|
return vciFileUploadServiceI.uploadFileForOtherService(multipartFile, offSet, fileOid);
|
}
|
|
/**
|
* 其他服务上传文件之前初始化文件信息
|
* @param vciFileObjectDTOList 文件信息传输对象集合所在对象
|
* @return 文件信息显示对象
|
*/
|
@PostMapping("/initUploadFileInfo")
|
public BaseResult<VciFileObjectVO> initUploadFileInfo(@RequestBody VciFileObjectDTO vciFileObjectDTOList){
|
return vciFileUploadServiceI.initUploadFileInfo(vciFileObjectDTOList.getVciFileObjectDTOList());
|
}
|
|
/**
|
* 将原业务数据下的所有文件共享到其他的业务类型下
|
* @param sourceBtmName 原业务类型
|
* @param sourceBusinessOid 原业务数据主键
|
* @param btmName 业务类型
|
* @param businessOid 业务数据主键
|
* @return 文件信息显示对象
|
*/
|
@PostMapping("/shareFilesFromBO")
|
public BaseResult<VciFileObjectVO> shareFilesToBO(String sourceBtmName, String sourceBusinessOid,
|
String btmName, String businessOid){
|
return vciFileUploadServiceI.shareFilesToBO(sourceBtmName, sourceBusinessOid, btmName, businessOid);
|
}
|
|
/**
|
* 将文件共享到其他的业务类型下
|
* @param fileOids 文件主键
|
* @param btmName 业务类型
|
* @param businessOid 业务数据主键
|
* @return 共享后的文件显示对象
|
*/
|
@PostMapping("/shareFileFromFile")
|
public BaseResult shareFilesToBO(String fileOids, String btmName, String businessOid){
|
return vciFileUploadServiceI.shareFilesToBO(VciBaseUtil.str2List(fileOids), btmName, businessOid);
|
}
|
|
/**
|
* 将原业务数据下的非表单相关文件共享到其他的业务类型下
|
* @param sourceBtmName 原业务类型
|
* @param sourceBusinessOid 原业务数据主键
|
* @param btmName 业务类型
|
* @param businessOid 业务数据主键
|
* @return 文件信息显示对象
|
*/
|
@PostMapping("/shareAnnexFilesToBO")
|
public BaseResult<VciFileObjectVO> shareAnnexFilesToBO(String sourceBtmName, String sourceBusinessOid,
|
String btmName, String businessOid){
|
return vciFileUploadServiceI.shareAnnexFilesToBO(sourceBtmName, sourceBusinessOid, btmName, businessOid);
|
}
|
|
/**
|
* 删除文件
|
* @param oids 文件的主键
|
* @return 执行结果
|
*/
|
@DeleteMapping("/deleteFiles")
|
public BaseResult deleteFiles(String oids){
|
return fileObjectService.deleteFiles(VciBaseUtil.str2List(oids));
|
}
|
|
/**
|
* 删除文件
|
* @param oids 文件的主键
|
* @return 执行结果
|
*/
|
@PostMapping("/deleteFilesPost")
|
public BaseResult deleteFilesPost(String oids){
|
return deleteFiles(oids);
|
}
|
|
/**
|
* 读取上传文件的内容
|
* @param file 文件的对象
|
* @return 内容
|
*/
|
@PostMapping("/readUploadFile")
|
@VciUnCheckRight
|
public BaseResult<String> readUploadFile(MultipartFile file){
|
try {
|
return BaseResult.success(new String(file.getBytes(),UTF_8));
|
} catch (IOException e) {
|
return BaseResult.fail(LangBaseUtil.getErrorMsg(e));
|
}
|
}
|
|
}
|