Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileObjectServiceImpl.java
@@ -1,5 +1,7 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.file.dto.VciFileObjectDTO;
import com.vci.file.lcstatuspck.FileLCStatus;
import com.vci.file.pagemodel.VciFileObjectVO;
@@ -15,7 +17,11 @@
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.web.model.VciFileObjectDO;
import com.vci.web.model.VciFileVolumeDO;
import com.vci.web.service.VciFileObjectServiceI;
import com.vci.web.service.VciFileVolumeServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,8 +66,20 @@
    /**
    * 版本和数据对象工具类
    */
    @Autowired
    @Resource
    private RevisionModelUtil revisionModelUtil;
    /**
     * 文件的卷服务
     */
    @Resource
    private VciFileVolumeServiceI vciFileVolumeServiceI;
    /**
     * 平台的客户端
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * 查询所有的文件对象
@@ -496,10 +514,27 @@
    public BaseResult deleteFiles(Collection<String> fileOids) throws VciBaseException {
        Collection<VciFileObjectVO> fileObjectVOS = listVciFileObjectByOids(fileOids);
        if(!CollectionUtils.isEmpty(fileObjectVOS)){
            //我们暂时不删除文件,防止删除错了
            VciBaseUtil.switchCollectionForOracleIn(fileObjectVOS).stream().forEach(fileObjectVOList->{
                vciFileObjectMapper.batchDeleteByOids(fileObjectVOList.stream().map(VciFileObjectVO::getOid).collect(Collectors.toList()));
            });
            //删除仓库中的文件
            //获取文件仓位置
            VciFileVolumeDO vciFileVolumeDO = vciFileVolumeServiceI.getUploadVolume();
            String volumeName = vciFileVolumeDO.getName();
            VolumeServicePrx volumnCorbaService = platformClientUtil.getVolumeService(volumeName);
            if(volumnCorbaService == null){
                throw new VciBaseException("没有获取到卷服务");
            }
            Set<String> filePathSet = fileObjectVOS.stream().map(VciFileObjectVO::getFilePath).collect(Collectors.toSet());
            String[] filePathArr = new String[filePathSet.size()];
            filePathSet.toArray(filePathArr);
            try {
                volumnCorbaService.deleteAllFiles(filePathArr);
            } catch (PLException e) {
                logger.error("卷服务删除仓库中的文件失败:", e);
                logger.error("卷服务删除失败的文件:"+ WebUtil.getJSONStringWithDateFormat(filePathSet));
            }
        }
        return BaseResult.success();
    }