| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.LinkedMultiValueMap; |
| | | import org.springframework.util.MultiValueMap; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Autowired(required = false) |
| | | private DevInfMapper dinfMapper; |
| | | |
| | | @Resource |
| | | private RestTemplate restTemplate; |
| | | private final RestTemplate restTemplate; |
| | | |
| | | @Autowired |
| | | public DevActmTestparamService(RestTemplate restTemplate) { |
| | | this.restTemplate = restTemplate; |
| | | } |
| | | |
| | | //读取Actm一体机参数 |
| | | public Object getActmParam(int devId) { |
| | | public Object getActmParam(int devId,int index) { |
| | | 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); |
| | | //将请求头部和参数合成一个请求 |
| | | MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); |
| | | paramMap.add("batteryStorageIndex",index); |
| | | ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); |
| | | if(dto.getCode().equals("200")){ |
| | | DevActmTestparam actmParam=new DevActmTestparam(); |
| | | copyActmDTO(dto.getData(),actmParam); |
| | |
| | | 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); |
| | | paramMap.add("batteryStorageIndex",param.getBatteryStorageIndex()); |
| | | paramMap.add("moduleCode",param.getModuleCode()); |
| | | paramMap.add("workMode",param.getWorkMode()); |
| | | paramMap.add("batteryType",param.getBatteryType()); |
| | | paramMap.add("batteryNumber",param.getBatteryNumber()); |
| | | paramMap.add("ntcCount",param.getNtcCount()); |
| | | paramMap.add("testBatteryArray",param.getTestBatteryArray()); |
| | | paramMap.add("voltage",param.getVoltage()); |
| | | paramMap.add("current",param.getCurrent()); |
| | | ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); |
| | | return dto; |
| | | } |
| | | |
| | | //批量设置Actm均衡仪参数 |
| | | public Object setActmParamPl(List<ActmResDto> params) { |
| | | public Object setActmParamPl2(ActmResDto param) { |
| | | Map<Integer,Object> map=new HashMap<>(); |
| | | int size=param.getDevIds().size(); |
| | | try { |
| | | ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); |
| | | CountDownLatch latch = new CountDownLatch(params.size()); |
| | | for (ActmResDto param:params) { |
| | | CountDownLatch latch = new CountDownLatch(size); |
| | | for (Integer devId:param.getDevIds()) { |
| | | poolExecutor.execute(() -> { |
| | | ResultA200Dto dto= (ResultA200Dto) setActmParam(param); |
| | | map.put(param.getDevId(),dto); |
| | | param.setDevId(devId); |
| | | ResultActmDto dto= (ResultActmDto) setActmParam(param); |
| | | map.put(devId,dto); |
| | | latch.countDown(); |
| | | }); |
| | | } |
| | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return new Response().set(1,true,"批量设置Actm均衡仪参数"); |
| | | return new Response().setII(1,true,map,"批量设置Actm均衡仪参数"); |
| | | } |
| | | |
| | | //批量设置Actm均衡仪参数 |
| | | public Object setActmParamPl(ActmResDto param) { |
| | | Map<Integer,Object> map=new HashMap<>(); |
| | | int size=param.getDevIds().size(); |
| | | for (Integer devId:param.getDevIds()) { |
| | | param.setDevId(devId); |
| | | ResultActmDto dto= (ResultActmDto) setActmParam(param); |
| | | map.put(devId,dto); |
| | | } |
| | | return new Response().setII(1,true,map,"批量设置Actm均衡仪参数"); |
| | | } |
| | | |
| | | |
| | |
| | | case 4:url=url+"/stopTest";break; //停止 |
| | | } |
| | | paramMap.add("batteryStorageIndex",index); |
| | | ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap); |
| | | ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); |
| | | return dto; |
| | | } |
| | | |
| | | |
| | | //批量控制Actm均衡仪 |
| | | public Response controllActmParamPl(List<ActmPlContDto> actmPlContDtos) { |
| | | public Response controllActmParamPl2(List<ActmPlContDto> actmPlContDtos) { |
| | | Map<Integer,Object> map=new HashMap<>(); |
| | | try { |
| | | ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); |
| | |
| | | return new Response().set(1,true,"批量设置Actm均衡仪参数"); |
| | | } |
| | | |
| | | //批量控制Actm均衡仪 |
| | | public Response controllActmParamPl(List<Integer> devIds, int index, int type) { |
| | | Map<Integer,Object> map=new HashMap<>(); |
| | | for (Integer devId:devIds) { |
| | | ResultActmDto dto= (ResultActmDto) controllerActmParam(devId,index,type); |
| | | if(type==1){ |
| | | UpdateWrapper wrapper=new UpdateWrapper(); |
| | | wrapper.eq("dev_id",devId); |
| | | wrapper.set("batch_state",1); |
| | | dinfMapper.update(null,wrapper); |
| | | } |
| | | map.put(devId,dto); |
| | | } |
| | | return new Response().setII(1,true,map,"批量设置Actm均衡仪参数"); |
| | | } |
| | | |
| | | //将dto拷贝至param |
| | | private void copyActmDTO(Object data, DevActmTestparam actmParam) { |
| | | ActmResDto dto= (ActmResDto) data; |
| | |
| | | actmParam.setMaxBatteryNumber(dto.getMaxBatteryNumber()); |
| | | actmParam.setMaxNtcCount(dto.getMaxNtcCount()); |
| | | } |
| | | |
| | | //设置电池组数与电池节数 |
| | | public Object setActmBatteryStorageNumber(ActmResDto param) { |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("dev_id",param.getDevId()); |
| | | wrapper.last("limit 1"); |
| | | DevInf dinf=dinfMapper.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.postforform_dataActm(restTemplate,url,paramMap); |
| | | return dto; |
| | | } |
| | | //批量设设置电池组数与电池节数 |
| | | public Object setActmBatteryStorageNumberPl(ActmResDto param) { |
| | | Map<Integer,Object> map=new HashMap<>(); |
| | | int size=param.getDevIds().size(); |
| | | for (Integer devId:param.getDevIds()) { |
| | | param.setDevId(devId); |
| | | ResultActmDto dto= (ResultActmDto) setActmBatteryStorageNumber(param); |
| | | map.put(devId,dto); |
| | | } |
| | | return new Response().setII(1,true,map,"批量设设置电池组数与电池节数"); |
| | | } |
| | | } |