lxw
2023-12-14 ccfb7dd5574724024bc2c48d3ca36f9c8b6896d4
src/main/java/com/whyc/service/FgcdFiledownloadService.java
@@ -7,8 +7,16 @@
import com.whyc.pojo.FgcdFiledownload;
import com.whyc.pojo.Response;
import com.whyc.util.CmdUtil;
import com.whyc.util.FileDirPath;
import com.whyc.util.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class FgcdFiledownloadService {
@@ -102,7 +110,7 @@
    }
    //下载指定电池组的文件列表
    public Response doloadFileList(int devId, int battIndex, String downloadFlag) {
        boolean bl=sendCmd(CmdUtil.CMD_READFILE,battIndex,0,downloadFlag,devId);
        boolean bl=sendCmd(CmdUtil.CMD_DOLADFILE,battIndex,0,downloadFlag,devId);
        if(bl){
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",devId);
@@ -120,4 +128,41 @@
        FgcdFiledownload fgcd=mapper.selectOne(queryWrapper);
        return new Response().setII(1,fgcd!=null,fgcd,"下载成功返回数据");
    }
    //取消下载文件(当前要下载的都会取消下载)
    public Response cancleFileList(int devId) {
        boolean bl=sendCmd(CmdUtil.CMD_DOLADCANCLE,0,0,null,devId);
        return new Response().set(1,bl);
    }
    //读取指定设备服务器文件列表
    public Response getDevFileName(int devId,String battName) {
        String fileDirName = FileDirPath.getFileDirName();
        String root=fileDirName+ File.separator+"FDFiles"+File.separator+devId+File.separator+battName;
        List list = new ArrayList<>();
        File file=new File(root);
        if(file == null || !file.exists()){
            return new Response().setII(1,false,list,"文件不存在");
        }
        list= FileUtil.getStaticFilePath(file,list,fileDirName);
        return new Response().setII(1,list!=null,list,"读取指定设备服务器文件列表");
    }
   //判断文件是否在服务器上
    public Response JudgeDevFileName(int devId, String battName, String fileNames) {
        Map<String,Integer>map=new HashMap<>();
        String[] fileNameList=fileNames.split(",");
        String fileDirName = FileDirPath.getFileDirName();
        String root=fileDirName+ File.separator+"FDFiles"+File.separator+devId+File.separator+battName+File.separator;
        if(fileNameList!=null&&fileNameList.length>0){
            for (String fileName:fileNameList) {
                String filePath=root+fileName;
                File file=new File(filePath);
                if (file == null || !file.exists()) {
                    map.put(fileName,0);
                }else{
                    map.put(fileName,1);
                }
            }
        }
        return new Response().setII(1,true,map,"判断文件是否在服务器上");
    }
}