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;
|
|
|
@Service
|
public class DevActmTestparamService {
|
@Autowired(required = false)
|
private DevActmTestparamMapper mapper;
|
|
@Autowired(required = false)
|
private DevInfMapper dinfMapper;
|
|
@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 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均衡仪放电/充电
|
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均衡仪");
|
}
|
|
//将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());
|
}
|
|
}
|