whyclxw
2024-09-03 ca46c59e66ab37c12d4770f46aff8c631743f28c
actm
1 文件已重命名
2个文件已添加
5个文件已修改
1 文件已复制
283 ■■■■ 已修改文件
src/main/java/com/whyc/controller/DevA200TestparamController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/DevActmTestparamController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/A200ResDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ActmResDto.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ResultA200Dto.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ResultActmDto.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevA200TestparamService.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevActmTestparamService.java 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/TestparamHttpUtil.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/DevA200TestparamController.java
@@ -1,5 +1,6 @@
package com.whyc.controller;
import com.whyc.dto.A200ResDto;
import com.whyc.dto.Response;
import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam;
import com.whyc.service.DevA200TestparamService;
@@ -28,14 +29,20 @@
    @ApiOperation(value = "设置a200均衡仪参数")
    @PostMapping("setA200Param")
    public Response setA200Param(@RequestBody DevActmTestparam param){
        return service.setA200Param(param);
    public Object setA200Param(@RequestBody A200ResDto param,@RequestParam int devId){
        return service.setA200Param(param,devId);
    }
    @ApiOperation(value = "控制a200均衡仪")
    @GetMapping("controllA200Param")
    public Response controllA200Param(@RequestParam int devId){
        return service.controllA200Param(devId);
    @ApiOperation(value = "启动a200均衡仪放电/充电")
    @GetMapping("startA200Param")
    public Object startA200Param(@RequestParam int devId,@RequestParam int type){
        return service.startA200Param(devId,type);
    }
    @ApiOperation(value = "停止a200均衡仪放电/充电")
    @GetMapping("stopA200Param")
    public Object stopA200Param(@RequestParam int devId){
        return service.stopA200Param(devId);
    }
    @ApiOperation(value = "批量控制a200均衡仪")
src/main/java/com/whyc/controller/DevActmTestparamController.java
@@ -1,7 +1,7 @@
package com.whyc.controller;
import com.whyc.dto.ActmResDto;
import com.whyc.dto.Response;
import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam;
import com.whyc.service.DevActmTestparamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -18,22 +18,28 @@
    @Autowired
    private DevActmTestparamService service;
    @ApiOperation(value = "读取actm均衡仪参数")
    @ApiOperation(value = "读取actm一体机参数")
    @GetMapping("getActmParam")
    public Response getActmParam(@RequestParam int devId){
    public Object getActmParam(@RequestParam int devId){
        return service.getActmParam(devId);
    }
    @ApiOperation(value = "设置actm均衡仪参数")
    @PostMapping("setActmParam")
    public Response setActmParam(@RequestBody DevActmTestparam param){
        return service.setActmParam(param);
    public Object setActmParam(@RequestBody ActmResDto param, @RequestParam int devId){
        return service.setActmParam(param,devId);
    }
    @ApiOperation(value = "控制actm均衡仪")
    @GetMapping("controllActmParam")
    public Response controllActmParam(@RequestParam int devId){
        return service.controllActmParam(devId);
    @ApiOperation(value = "启动actm均衡仪放电/充电")
    @GetMapping("startActmParam")
    public Object startActmParam(@RequestParam int devId,@RequestParam int type){
        return service.startActmParam(devId,type);
    }
    @ApiOperation(value = "停止actm均衡仪放电/充电")
    @GetMapping("stopActmParam")
    public Object stopActmParam(@RequestParam int devId){
        return service.stopActmParam(devId);
    }
    @ApiOperation(value = "批量控制actm均衡仪")
@@ -41,4 +47,5 @@
    public Response controllActmParamPl(@RequestParam List<Integer> devIds){
        return service.controllActmParamPl(devIds);
    }
}
src/main/java/com/whyc/dto/A200ResDto.java
@@ -1,10 +1,7 @@
package com.whyc.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.io.Serializable;
public class A200ResDto implements Serializable {
src/main/java/com/whyc/dto/ActmResDto.java
New file
@@ -0,0 +1,41 @@
package com.whyc.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ActmResDto {
    @ApiModelProperty(value = "模组需要,从0开始")
    private Integer batteryStorageIndex;
    @ApiModelProperty(value = "模组编号")
    private String moduleCode;
    @ApiModelProperty(value = "工作模式[0-充电   1-放电   2-均衡]")
    private Integer workMode;
    @ApiModelProperty(value = "电池类型[0-铁锂 1-三元锂 2-钛酸锂 3-锰酸锂]")
    private Integer batteryType;
    @ApiModelProperty(value = "当前配置的电芯数量")
    private Integer batteryNumber;
    @ApiModelProperty(value = "当前配置的温度传感器数量")
    private Integer ntcCount;
    @ApiModelProperty(value = "测试电池列表[测试电池列表是将待测电芯编号用逗号分隔的字符串。例如:1,2,4,6 表示测试1#、2#、4#、6#电芯,其余没有包含的电芯不进行测试]")
    private String testBatteryArray;
    @ApiModelProperty(value = "电压阈值")
    private Double voltage;
    @ApiModelProperty(value = "工作电流")
    private Double current;
    @ApiModelProperty(value = "可配置的最大电芯数量[只读]")
    private Integer maxBatteryNumber;
    @ApiModelProperty(value = "可配置的最大温度传感器数量[只读]")
    private Integer maxNtcCount;
}
src/main/java/com/whyc/dto/ResultA200Dto.java
copy from src/main/java/com/whyc/dto/ResultDto.java copy to src/main/java/com/whyc/dto/ResultA200Dto.java
File was copied from src/main/java/com/whyc/dto/ResultDto.java
@@ -3,8 +3,9 @@
import lombok.Data;
@Data
public class ResultDto {
public class ResultA200Dto {
    String code;
    String msg;
    A200ResDto data;
    int count;
}
src/main/java/com/whyc/dto/ResultActmDto.java
File was renamed from src/main/java/com/whyc/dto/ResultDto.java
@@ -3,8 +3,9 @@
import lombok.Data;
@Data
public class ResultDto {
public class ResultActmDto {
    String code;
    String msg;
    A200ResDto data;
    int count;
}
src/main/java/com/whyc/service/DevA200TestparamService.java
@@ -5,19 +5,24 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.A200ResDto;
import com.whyc.dto.Response;
import com.whyc.dto.ResultDto;
import com.whyc.dto.ResultA200Dto;
import com.whyc.mapper.DevA200TestparamMapper;
import com.whyc.mapper.DevInfMapper;
import com.whyc.pojo.db_lithium_ram_db.DevA200Testparam;
import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam;
import com.whyc.pojo.db_lithium_ram_db.DevInf;
import com.whyc.util.ActionUtil;
import com.whyc.util.TestparamHttpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class DevA200TestparamService {
@@ -38,7 +43,7 @@
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/getTestParameter";
        String results = restTemplate.postForObject(url, null, String.class);
        ResultDto dto= ActionUtil.getGson().fromJson(results,ResultDto.class);
        ResultA200Dto dto= ActionUtil.getGson().fromJson(results, ResultA200Dto.class);
        if(dto.getCode().equals("200")){
            DevA200Testparam a200Param=new DevA200Testparam();
            copyA200DTO(dto.getData(),a200Param);
@@ -48,23 +53,50 @@
            updateWrapper.eq("dev_id",devId);
            mapper.update(a200Param,updateWrapper);
        }
        //System.out.println(results);
         /*ResultDto dto= JSONObject.parseObject(results,ResultDto.class);
        A200ResDto a200= JSONObject.parseObject(dto.getData().toString(),A200ResDto.class);*/
        //System.out.println(dto.toString());
        return dto;
    }
    //设置a200均衡仪参数
    public Response setA200Param(DevActmTestparam param) {
        return new Response().set(1,true,"设置a200均衡仪参数");
    public Object setA200Param(A200ResDto param,int devId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        String paramJson=JSONObject.toJSONString(param);
        paramMap.add("testParameter",paramJson);
        ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap);
        return dto;
    }
    //控制a200均衡仪
    public Response controllA200Param(int devId) {
        return new Response().set(1,true,"控制a200均衡仪");
    //启动a200均衡仪放电/充电
    public Object startA200Param(int devId,int type) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/startTest";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        paramMap.add("testType",type);
        ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap);
        return dto;
    }
    //停止a200均衡仪放电/充电
    public Object stopA200Param(int devId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/stopTest";
        String results = restTemplate.postForObject(url, null, String.class);
        ResultA200Dto dto= ActionUtil.getGson().fromJson(results, ResultA200Dto.class);
        return dto;
    }
    //批量控制a200均衡仪
    public Response controllA200ParamPl(List<Integer> devIds) {
        return new Response().set(1,true,"批量控制a200均衡仪");
@@ -114,4 +146,6 @@
        a200Param.setChargePower(dto.getChargePower());
        a200Param.setBatteryTemperatureProtect(dto.getBatteryTemperatureProtect());
    }
}
src/main/java/com/whyc/service/DevActmTestparamService.java
@@ -1,11 +1,24 @@
package com.whyc.service;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.ActmResDto;
import com.whyc.dto.Response;
import com.whyc.dto.ResultActmDto;
import com.whyc.mapper.DevActmTestparamMapper;
import com.whyc.mapper.DevInfMapper;
import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam;
import com.whyc.pojo.db_lithium_ram_db.DevInf;
import com.whyc.util.ActionUtil;
import com.whyc.util.TestparamHttpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.List;
@@ -14,22 +27,93 @@
    @Autowired(required = false)
    private DevActmTestparamMapper mapper;
    //读取actm均衡仪参数
    public Response getActmParam(int devId) {
    @Autowired(required = false)
    private DevInfMapper dinfMapper;
        return new Response().set(1,new DevActmTestparam(),"读取actm均衡仪参数");
    }
   //设置actm均衡仪参数
    public Response setActmParam(DevActmTestparam param) {
        return new Response().set(1,true,"设置actm均衡仪参数");
    @Resource
    private RestTemplate restTemplate;
    //读取Actm一体机参数
    public Object getActmParam(int devId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/getTestParameter";
        String results = restTemplate.postForObject(url, null, String.class);
        ResultActmDto dto= ActionUtil.getGson().fromJson(results, ResultActmDto.class);
        if(dto.getCode().equals("200")){
            DevActmTestparam actmParam=new DevActmTestparam();
            copyActmDTO(dto.getData(),actmParam);
            actmParam.setDevId(devId);
            //actmParam.setReturnCode(Integer.parseInt(dto.getCode()));
            UpdateWrapper updateWrapper=new UpdateWrapper();
            updateWrapper.eq("dev_id",devId);
            mapper.update(actmParam,updateWrapper);
        }
        return dto;
    }
    //控制actm均衡仪
    public Response controllActmParam(int devId) {
        return new Response().set(1,true,"控制actm均衡仪");
    //设置Actm均衡仪参数
    public Object setActmParam(ActmResDto param, int devId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        String paramJson= JSONObject.toJSONString(param);
        paramMap.add("testParameter",paramJson);
        ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap);
        return dto;
    }
   //批量控制actm均衡仪
    //启动Actm均衡仪放电/充电
    public Object startActmParam(int devId,int type) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/startTest";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        paramMap.add("testType",type);
        ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap);
        return dto;
    }
    //停止Actm均衡仪放电/充电
    public Object stopActmParam(int devId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=dinfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/stopTest";
        String results = restTemplate.postForObject(url, null, String.class);
        ResultActmDto dto= ActionUtil.getGson().fromJson(results, ResultActmDto.class);
        return dto;
    }
    //批量控制Actm均衡仪
    public Response controllActmParamPl(List<Integer> devIds) {
        return new Response().set(1,true,"批量控制actm均衡仪");
        return new Response().set(1,true,"批量控制Actm均衡仪");
    }
    //将dto拷贝至param
    private void copyActmDTO(Object data, DevActmTestparam actmParam) {
        ActmResDto dto= (ActmResDto) data;
        actmParam.setBatteryStorageIndex(dto.getBatteryStorageIndex());
        actmParam.setModuleCode(dto.getModuleCode());
        actmParam.setWorkMode(dto.getWorkMode());
        actmParam.setBatteryType(dto.getBatteryType());
        actmParam.setBatteryNumber(dto.getBatteryNumber());
        actmParam.setNtcCount(dto.getNtcCount());
        actmParam.setTestBatteryArray(dto.getTestBatteryArray());
        actmParam.setVoltage(dto.getVoltage());
        actmParam.setCurrent(dto.getCurrent());
        actmParam.setMaxBatteryNumber(dto.getMaxBatteryNumber());
        actmParam.setMaxNtcCount(dto.getMaxNtcCount());
    }
}
src/main/java/com/whyc/util/TestparamHttpUtil.java
New file
@@ -0,0 +1,23 @@
package com.whyc.util;
import com.whyc.dto.ResultA200Dto;
import org.springframework.http.*;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
public class TestparamHttpUtil {
    //post请求传入form-data 格式
    public static Object postforform_data( RestTemplate restTemplate,String url,  MultiValueMap<String, Object> paramMap){
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 设置以表单的方式提交
        headers.add("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE);
        HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers);
        ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class );
        String results= response.getBody();
        Object dto= ActionUtil.getGson().fromJson(results, ResultA200Dto.class);
        return dto;
    }
}