whycxzp
2025-04-30 d19e91bcc4ed9ab08e8be375fb5fc0f7e874a6a9
src/main/java/com/whyc/service/DevActmTestParamService.java
@@ -2,15 +2,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.ActmPlContDto;
import com.whyc.dto.ActmResDto;
import com.whyc.dto.Response;
import com.whyc.dto.ResultActmDto;
import com.whyc.dto.*;
import com.whyc.factory.ThreadPoolExecutorFactory;
import com.whyc.mapper.DevActmTestParamMapper;
import com.whyc.mapper.DevInfMapper;
import com.whyc.mapper.DevLithiumInfMapper;
import com.whyc.pojo.db_lithium_ram_db.DevActmTestParam;
import com.whyc.pojo.db_lithium_ram_db.DevInf;
import com.whyc.pojo.db_lithium_ram_db.DevLithiumInf;
import com.whyc.util.TestParamHttpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,7 +29,7 @@
    private DevActmTestParamMapper mapper;
    @Autowired(required = false)
    private DevInfMapper devInfMapper;
    private DevLithiumInfMapper devLithiumInfMapper;
    private final RestTemplate restTemplate;
@@ -46,15 +43,16 @@
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=devInfMapper.selectOne(wrapper);
        DevLithiumInf dinf= devLithiumInfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/getTestParameter";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        paramMap.add("batteryStorageIndex",index);
        ResultActmDto dto= (ResultActmDto) TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        ResultActmBaseDto dto= TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        if(dto.getCode().equals("200")){
            DevActmTestParam actmParam=new DevActmTestParam();
            copyActmDTO(dto.getData(),actmParam);
            ResultActmDto ActmDto = (ResultActmDto) dto;
            copyActmDTO(ActmDto.getData(),actmParam);
            actmParam.setDevId(devId);
            UpdateWrapper updateWrapper=new UpdateWrapper();
            updateWrapper.eq("dev_id",devId);
@@ -65,11 +63,11 @@
    //设置Actm均衡仪参数
    public Object setActmParam(ActmResDto param) {
    public ResultActmBaseDto setActmParam(ActmResDto param) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",param.getDevId());
        wrapper.last("limit 1");
        DevInf dinf=devInfMapper.selectOne(wrapper);
        DevLithiumInf dinf= devLithiumInfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
@@ -82,7 +80,7 @@
        paramMap.add("testBatteryArray",param.getTestBatteryArray());
        paramMap.add("voltage",param.getVoltage());
        paramMap.add("current",param.getCurrent());
        ResultActmDto dto= (ResultActmDto) TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        ResultActmBaseDto dto= TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        return dto;
    }
@@ -96,7 +94,7 @@
            for (Integer devId:param.getDevIds()) {
                poolExecutor.execute(() -> {
                    param.setDevId(devId);
                    ResultActmDto dto= (ResultActmDto) setActmParam(param);
                    ResultActmBaseDto dto = setActmParam(param);
                    map.put(devId,dto);
                    latch.countDown();
                });
@@ -113,7 +111,7 @@
        Map<Integer,Object> map=new HashMap<>();
        for (Integer devId:param.getDevIds()) {
            param.setDevId(devId);
            ResultActmDto dto= (ResultActmDto) setActmParam(param);
            ResultActmBaseDto dto= setActmParam(param);
            map.put(devId,dto);
        }
        return new Response().setII(1,true,map,"批量设置Actm均衡仪参数");
@@ -121,11 +119,11 @@
    //启动,暂停,继续,停止actm均衡仪
    public Object controlActmParam(int devId,int index,int type) {
    public ResultActmBaseDto controlActmParam(int devId,int index,int type) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        wrapper.last("limit 1");
        DevInf dinf=devInfMapper.selectOne(wrapper);
        DevLithiumInf dinf= devLithiumInfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
@@ -136,7 +134,7 @@
            case 4:url=url+"/stopTest";break;         //停止
        }
        paramMap.add("batteryStorageIndex",index);
        Object dto= TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        ResultActmBaseDto dto= TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        return dto;
    }
@@ -149,7 +147,7 @@
            CountDownLatch latch = new CountDownLatch(actmPlContDtos.size());
            for (ActmPlContDto actmPlContDto:actmPlContDtos) {
                poolExecutor.execute(() -> {
                    ResultActmDto dto= (ResultActmDto) controlActmParam(actmPlContDto.getDevId(),actmPlContDto.getIndex(),actmPlContDto.getType());
                    ResultActmBaseDto dto= controlActmParam(actmPlContDto.getDevId(),actmPlContDto.getIndex(),actmPlContDto.getType());
                    map.put(actmPlContDto.getDevId(),dto);
                    latch.countDown();
                });
@@ -165,14 +163,14 @@
    public Response controlActmParamPl(List<Integer> devIds,  int index,  int type) {
        Map<Integer,Object> map=new HashMap<>();
        for (Integer devId:devIds) {
                ResultActmDto dto= (ResultActmDto) controlActmParam(devId,index,type);
                if(type==1){
                    UpdateWrapper wrapper=new UpdateWrapper();
                    wrapper.eq("dev_id",devId);
                    wrapper.set("batch_state",1);
                    devInfMapper.update(null,wrapper);
                }
                map.put(devId,dto);
            ResultActmBaseDto dto= controlActmParam(devId,index,type);
            if(type==1){
                UpdateWrapper wrapper=new UpdateWrapper();
                wrapper.eq("dev_id",devId);
                wrapper.set("batch_state",1);
                devLithiumInfMapper.update(null,wrapper);
            }
            map.put(devId,dto);
        }
        return new Response().setII(1,true,map,"批量控制Actm均衡仪");
    }
@@ -193,17 +191,17 @@
        actmParam.setMaxNtcCount(dto.getMaxNtcCount());
    }
    //设置电池组数与电池节数
    public Object setActmBatteryStorageNumber(ActmResDto param) {
    public ResultActmBaseDto setActmBatteryStorageNumber(ActmResDto param) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",param.getDevId());
        wrapper.last("limit 1");
        DevInf dinf=devInfMapper.selectOne(wrapper);
        DevLithiumInf dinf= devLithiumInfMapper.selectOne(wrapper);
        String url="http://"+dinf.getDevIp()+":8080/webService/setBatteryStorageNumber";
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        paramMap.add("batteryStorageNumber",param.getBatteryStorageNumber());
        paramMap.add("batteryNumber",param.getBatteryNumber());
        ResultActmDto dto= (ResultActmDto) TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        ResultActmBaseDto dto= TestParamHttpUtil.postForFormDataActm(restTemplate,url,paramMap);
        return dto;
    }
    //批量设设置电池组数与电池节数
@@ -212,7 +210,7 @@
        int size=param.getDevIds().size();
        for (Integer devId:param.getDevIds()) {
            param.setDevId(devId);
            ResultActmDto dto= (ResultActmDto) setActmBatteryStorageNumber(param);
            ResultActmBaseDto dto= setActmBatteryStorageNumber(param);
            map.put(devId,dto);
        }
        return new Response().setII(1,true,map,"批量设设置电池组数与电池节数");