whyclxw
2024-09-03 ecf48a2c6d5752809e5810f35a33ba65cd843c13
批量启动/停止a200
2个文件已修改
57 ■■■■ 已修改文件
src/main/java/com/whyc/controller/DevA200TestparamController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevA200TestparamService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/DevA200TestparamController.java
@@ -45,12 +45,16 @@
        return service.stopA200Param(devId);
    }
    @ApiOperation(value = "批量控制a200均衡仪")
    @GetMapping("controllA200ParamPl")
    public Response controllA200ParamPl(@RequestParam List<Integer> devIds){
        return service.controllA200ParamPl(devIds);
    @ApiOperation(value = "批量启动a200均衡仪")
    @PostMapping("startA200ParamPl")
    public Response startA200ParamPl(@RequestBody List<Integer> devIds,@RequestParam int type){
        return service.startA200ParamPl(devIds,type);
    }
    @ApiOperation(value = "批量停止a200均衡仪")
    @PostMapping("stopA200ParamPl")
    public Response stopA200ParamPl(@RequestBody List<Integer> devIds){
        return service.stopA200ParamPl(devIds);
    }
}
src/main/java/com/whyc/service/DevA200TestparamService.java
@@ -6,6 +6,7 @@
import com.whyc.dto.A200ResDto;
import com.whyc.dto.Response;
import com.whyc.dto.ResultA200Dto;
import com.whyc.factory.ThreadPoolExecutorFactory;
import com.whyc.mapper.DevA200TestparamMapper;
import com.whyc.mapper.DevInfMapper;
import com.whyc.pojo.db_lithium_ram_db.DevA200Testparam;
@@ -23,6 +24,9 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Service
public class DevA200TestparamService {
@@ -97,8 +101,43 @@
        return dto;
    }
    //批量控制a200均衡仪
    public Response controllA200ParamPl(List<Integer> devIds) {
    //批量启动a200均衡仪
    public Response startA200ParamPl(List<Integer> devIds,int type) {
        Map<Integer,Object> map=new HashMap<>();
        try {
            ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor();
            CountDownLatch latch = new CountDownLatch(devIds.size());
            for (int devId:devIds) {
                poolExecutor.execute(() -> {
                    ResultA200Dto dto= (ResultA200Dto) startA200Param(devId,type);
                    map.put(devId,dto);
                    latch.countDown();
                });
            }
            latch.await(10, TimeUnit.MINUTES);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return new Response().set(1,true,"批量控制a200均衡仪");
    }
    //批量启动a200均衡仪
    public Response stopA200ParamPl(List<Integer> devIds) {
        Map<Integer,Object> map=new HashMap<>();
        try {
            ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor();
            CountDownLatch latch = new CountDownLatch(devIds.size());
            for (int devId:devIds) {
                poolExecutor.execute(() -> {
                    ResultA200Dto dto= (ResultA200Dto) stopA200Param(devId);
                    map.put(devId,dto);
                    latch.countDown();
                });
            }
            latch.await(10, TimeUnit.MINUTES);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return new Response().set(1,true,"批量控制a200均衡仪");
    }