lxw
2023-11-09 72f8d13b6446dbf3b532c75134a267f09b681f96
读取设备下载操作
3个文件已修改
2个文件已添加
162 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/FgcdFiledownloadController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/FgcdFiledownload.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/FgcdFiledownloadService.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/CmdUtil.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/CommonUtil.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/FgcdFiledownloadController.java
@@ -1,11 +1,37 @@
package com.whyc.controller;
import com.whyc.pojo.Response;
import com.whyc.service.FgcdFiledownloadService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("filedownload")
@RestController
@Api(tags = "文件下载")
public class FgcdFiledownloadController {
    @Autowired
    private FgcdFiledownloadService service;
    @ApiOperation(value = "读取电池组列表")
    @GetMapping("readBattList")
    public Response readBattList(@RequestParam int devId,@RequestParam int battCount){
        return service.readBattList(devId,battCount);
    }
    @ApiOperation(value = "读取电池组指定文件列表")
    @GetMapping("readFileList")
    public Response readFileList(@RequestParam int devId,@RequestParam int fileIndex,@RequestParam int battIndex){
        return service.readFileList(devId,fileIndex,battIndex);
    }
    @ApiOperation(value = "下载指定电池组的文件列表")
    @GetMapping("downloadFileList")
    public Response downloadFileList(@RequestParam int devId,@RequestParam int battIndex,@RequestParam String downloadFlag){
        return service.doloadFileList(devId,battIndex,downloadFlag);
    }
}
src/main/java/com/whyc/pojo/FgcdFiledownload.java
@@ -48,6 +48,9 @@
    @ApiModelProperty(value = "需要下载文件索引")
    private Integer fileIndex;
    @ApiModelProperty(value = "需要读取电池组索引")
    private Integer battIndex;
    @ApiModelProperty(value = "文件名1")
    private String fileName1;
src/main/java/com/whyc/service/FgcdFiledownloadService.java
@@ -1,7 +1,115 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.whyc.mapper.FgcdFiledownloadMapper;
import com.whyc.pojo.FgcdFiledownload;
import com.whyc.pojo.Response;
import com.whyc.util.CmdUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class FgcdFiledownloadService {
    @Autowired(required = false)
    private FgcdFiledownloadMapper mapper;
    //发送命令
    //机房命令操作设备时的cmd和ack校验  test_type  -->默认启动测试的类型
    public boolean sendCmd(int cmd,int param1,int param2,String downloadFlag,int devId)
    {
        int ack = cmd;
        int stopTime=40;
        switch(cmd) {
            case CmdUtil.CMD_READBATT: ack =CmdUtil.CMD_READBATT_ACK ; break;
            case CmdUtil.CMD_READFILE: ack =CmdUtil.CMD_READFILE_ACK ; break;
            case CmdUtil.CMD_DOLADFILE: ack =CmdUtil.CMD_DOLADFILE_ACK ; break;
            case CmdUtil.CMD_DOLADCANCLE: ack =CmdUtil.CMD_DOLADCANCLE_ACK ; break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",cmd);
        if(cmd==CmdUtil.CMD_READBATT){
            updateWrapper.set("readbattcount",param1);
        }
        if(cmd==CmdUtil.CMD_READFILE){
            updateWrapper.set("file_index",param1);
            updateWrapper.set("batt_index",param2);
        }
        if(cmd==CmdUtil.CMD_DOLADFILE){
            String[] fileFlag=downloadFlag.split(",");
            updateWrapper.set("batt_index",param1);
            if(fileFlag!=null){
                for (String flag:fileFlag) {
                    updateWrapper.set("download_flag"+(Integer.valueOf(flag)+1),1);
                }
            }
        }
        updateWrapper.eq("dev_id",devId);
        int flag=mapper.update(null,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",devId);
            for(int n=0; n<stopTime; n++)
            {
                FgcdFiledownload fgcd=mapper.selectOne(queryWrapper);
                if(fgcd!=null){
                    if (fgcd.getOpCmd() == ack) {
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else {
                    break;
                }
            }
        }
        return res_exe;
    }
    //读取电池组列表
    public Response readBattList(int devId,int battCount) {
        boolean bl=sendCmd(CmdUtil.CMD_READBATT,battCount,0,"",devId);
        if(bl){
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",devId);
            FgcdFiledownload fgcd=mapper.selectOne(queryWrapper);
            return new Response().setII(1,bl,fgcd,"读取成功返回数据");
        }else{
            return new Response().set(1,bl,"读取失败");
        }
    }
    //读取电池组指定文件列表
    public Response readFileList(int devId, int fileIndex, int battIndex) {
        boolean bl=sendCmd(CmdUtil.CMD_READFILE,fileIndex,battIndex,"",devId);
        if(bl){
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",devId);
            FgcdFiledownload fgcd=mapper.selectOne(queryWrapper);
            return new Response().setII(1,bl,fgcd,"读取成功返回数据");
        }else{
            return new Response().set(1,bl,"读取失败");
        }
    }
    //下载指定电池组的文件列表
    public Response doloadFileList(int devId, int battIndex, String downloadFlag) {
        boolean bl=sendCmd(CmdUtil.CMD_READFILE,battIndex,0,downloadFlag,devId);
        if(bl){
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",devId);
            FgcdFiledownload fgcd=mapper.selectOne(queryWrapper);
            return new Response().setII(1,bl,fgcd,"下载成功返回数据");
        }else{
            return new Response().set(1,bl,"下载失败");
        }
    }
}
src/main/java/com/whyc/util/CmdUtil.java
New file
@@ -0,0 +1,16 @@
package com.whyc.util;
public class CmdUtil {
    //读取电池组
    public static final int CMD_READBATT=209;
    public static final int CMD_READBATT_ACK=210;
    //读取电池组文件
    public static final int CMD_READFILE=161;
    public static final int CMD_READFILE_ACK=162;
    //下载文件
    public static final int CMD_DOLADFILE=163;
    public static final int CMD_DOLADFILE_ACK=164;
    //取消下载文件
    public static final int CMD_DOLADCANCLE=165;
    public static final int CMD_DOLADCANCLE_ACK=166;
}
src/main/java/com/whyc/util/CommonUtil.java
New file
@@ -0,0 +1,9 @@
package com.whyc.util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
public class CommonUtil {
}