yuxc
2024-07-02 dd678ba29a3631558ab0c0c90b5be73ae489324b
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileUploadServiceImpl.java
@@ -1,5 +1,6 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.file.constant.VciFileDefaultValueConstant;
import com.vci.file.constant.VciFileLangCodeConstant;
@@ -145,8 +146,6 @@
     */
    @Override
    public BaseResult uploadFile(MultipartFile multipartFile, VciFileObjectDTO fileObjectDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(fileObjectDTO.getFileDocClassify(), "文档类型编号");
        String sourceFileName = multipartFile.getOriginalFilename();
        String fileExtension = getFileExtension(sourceFileName);
        String fileNameNoExtension = getFileNameNoExtension(sourceFileName);
@@ -254,15 +253,15 @@
            }
            InputStream in = null;
            if("filePathField".equalsIgnoreCase(vciFileObjectDO.getFileDocClassify())){
                vciFileObjectDO.setFilePath(vciFileVolumeDO.getId().toLowerCase() + ":/" + vciFileObjectDO.getFilePath() + "." + vciFileObjectDO.getFileExtension());
                vciFileObjectDO.setFilePath(vciFileVolumeDO.getId() + ":/" + vciFileObjectDO.getFilePath() + "." + vciFileObjectDO.getFileExtension());
            }else {
                vciFileObjectDO.setFilePath(vciFileVolumeDO.getId().toLowerCase() + ":/" + vciFileObjectDO.getFilePath());
                vciFileObjectDO.setFilePath(vciFileVolumeDO.getId() + ":/" + vciFileObjectDO.getFilePath());
            }
            try{
                long currentTime = volumnCorbaService.getCurrrentTimeMillions();
                in = multipartFile.getInputStream();
                long fileSize = multipartFile.getSize();
                int blockSize = (int)webProperties.getBlockLength()*1024;
                int blockSize = webProperties.getBlockLength()*1024;
                byte[] buffer = new byte[blockSize];
                long temp =0L;
                for(temp = 0L; temp < fileSize - (long)blockSize; temp += (long)blockSize) {
@@ -303,6 +302,18 @@
            sourceFileObject.setFileSize(vciFileObjectDO.getFileSize());
            vciFileObjectMapper.updateByPrimaryKey(sourceFileObject);
            //没办法删除之前的文件,
            String volumeName = vciFileVolumeDO.getName();
            VolumeServicePrx volumnCorbaService = platformClientUtil.getVolumeService(volumeName);
            if(volumnCorbaService == null){
                throw new VciBaseException("没有获取到卷服务");
            }
            try {
                volumnCorbaService.deleteFile(sourceFileObject.getFilePath());
            } catch (PLException e) {
                e.printStackTrace();
                System.out.println("删除仓库中的文件失败:"+e.getMessage());
            }
        }else {
            vciFileObjectMapper.insert(vciFileObjectDO);
        }