whyclxw
2024-09-03 ca46c59e66ab37c12d4770f46aff8c631743f28c
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均衡仪参数");
    @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);
    }
   //设置actm均衡仪参数
    public Response setActmParam(DevActmTestparam param) {
        return new Response().set(1,true,"设置actm均衡仪参数");
        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());
    }
}