Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileObjectServiceImpl.java
@@ -1,8 +1,10 @@
package com.vci.web.service.impl;
import com.vci.file.dto.VciFileObjectDTO;
import com.vci.file.lcstatuspck.FileLCStatus;
import com.vci.file.pagemodel.VciFileObjectVO;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.dto.VciFileObjectDTO;
import com.vci.lcstatuspck.FileLCStatus;
import com.vci.pagemodel.VciFileObjectVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
@@ -14,12 +16,15 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.web.model.VciFileObjectDO;
import com.vci.model.VciFileObjectDO;
import com.vci.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;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -28,8 +33,8 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import static com.vci.file.constant.VciFileLangCodeConstant.FILE_RELEASED;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static com.vci.constant.VciFileLangCodeConstant.FILE_RELEASED;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
/**
 * 文件对象服务
@@ -60,8 +65,20 @@
    /**
    * 版本和数据对象工具类
    */
    @Autowired
    @Resource
    private RevisionModelUtil revisionModelUtil;
    /**
     * 文件的卷服务
     */
    @Resource
    private VciFileVolumeServiceI vciFileVolumeServiceI;
    /**
     * 平台的客户端
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * 查询所有的文件对象
@@ -113,7 +130,7 @@
     * @throws VciBaseException 拷贝属性出错的时候会抛出异常
     */
    @Override
    public  VciFileObjectVO vciFileObjectDO2VO(VciFileObjectDO vciFileObjectDO) throws VciBaseException {
    public VciFileObjectVO vciFileObjectDO2VO(VciFileObjectDO vciFileObjectDO) throws VciBaseException {
              VciFileObjectVO vo = new VciFileObjectVO();
        if(vciFileObjectDO != null){
          BeanUtil.convert(vciFileObjectDO,vo);
@@ -496,10 +513,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();
    }