| | |
| | | package com.zy.acs.manager.core; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.acs.manager.common.domain.TaskDto; |
| | | import com.zy.acs.manager.core.service.MainService; |
| | | import com.zy.acs.manager.core.service.MapService; |
| | | import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam; |
| | | import com.zy.acs.manager.manager.entity.*; |
| | | import com.zy.acs.manager.manager.enums.BusStsType; |
| | | import com.zy.acs.manager.manager.enums.LocStsType; |
| | | import com.zy.acs.manager.manager.enums.TaskStsType; |
| | | import com.zy.acs.manager.manager.enums.TaskTypeType; |
| | | import com.zy.acs.manager.manager.service.*; |
| | | import com.zy.acs.manager.system.controller.BaseController; |
| | | import com.zy.acs.manager.system.service.ConfigService; |
| | | import com.zy.acs.framework.common.Cools; |
| | | import com.zy.acs.framework.common.R; |
| | | import com.zy.acs.framework.common.SnowflakeIdWorker; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by vincent on 2023/6/20 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/test") |
| | | public class TestController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BusService busService; |
| | | @Autowired |
| | | private MainService mainService; |
| | | @Autowired |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | @Autowired |
| | | private AgvModelService agvModelService; |
| | | @Autowired |
| | | private AgvService agvService; |
| | | @Autowired |
| | | private AgvDetailService agvDetailService; |
| | | @Autowired |
| | | private TaskService taskService; |
| | | @Autowired |
| | | private CodeService codeService; |
| | | @Autowired |
| | | private MapService mapService; |
| | | |
| | | |
| | | /* |
| | | TRUNCATE man_bus; |
| | | TRUNCATE man_task; |
| | | TRUNCATE man_action; |
| | | UPDATE man_loc SET loc_sts = 16 WHERE loc_sts = 18; |
| | | UPDATE man_loc SET loc_sts = 15 WHERE loc_sts = 17; |
| | | */ |
| | | |
| | | @Value("${auto.move}") |
| | | private Boolean autoMove; |
| | | @Value("${auto.demo}") |
| | | private Boolean autoDemo; |
| | | @Value("${auto.demo1}") |
| | | private Boolean autoDemo1; |
| | | @Value("${auto.demo2}") |
| | | private Boolean autoDemo2; |
| | | @Value("${auto.size}") |
| | | private Integer autoSize; |
| | | @Autowired |
| | | private LocService locService; |
| | | @Autowired |
| | | private ConfigService configService; |
| | | |
| | | // http://localhost:9090/test/auto/move |
| | | @GetMapping("/auto/move") |
| | | public R autoMove() { |
| | | this.autoMove = !this.autoMove; |
| | | return R.ok().add(Cools.add("autoMove", this.autoMove)); |
| | | } |
| | | |
| | | @Scheduled(cron = "0/1 * * * * ? ") |
| | | private void move1() throws InterruptedException { |
| | | if (!this.autoMove) { return; } |
| | | Agv agv = agvService.selectByUuid("1"); |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); |
| | | if (taskService.count(new LambdaQueryWrapper<Task>() |
| | | .eq(Task::getAgvId, agv.getId()) |
| | | .and(i -> { |
| | | i.eq(Task::getTaskSts, TaskStsType.WAITING.val()) |
| | | .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val()) |
| | | .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val()); |
| | | })) > 0) { |
| | | return; |
| | | } |
| | | if (!agvService.judgeEnable(agv.getId())) { |
| | | return; |
| | | } |
| | | Code randomCode = this.getRandomCode(agvDetail); |
| | | if (null == randomCode) { |
| | | return; |
| | | } |
| | | if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) { |
| | | System.out.println(agv.getUuid() + "开始走行演示..."); |
| | | } |
| | | } |
| | | // @Scheduled(cron = "0 */3 * * * ? ") |
| | | @Scheduled(cron = "0/1 * * * * ? ") |
| | | private void move2() throws InterruptedException { |
| | | if (!this.autoMove) { return; } |
| | | Agv agv = agvService.selectByUuid("2"); |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); |
| | | if (taskService.count(new LambdaQueryWrapper<Task>() |
| | | .eq(Task::getAgvId, agv.getId()) |
| | | .and(i -> { |
| | | i.eq(Task::getTaskSts, TaskStsType.WAITING.val()) |
| | | .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val()) |
| | | .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val()); |
| | | })) > 0) { |
| | | return; |
| | | } |
| | | if (!agvService.judgeEnable(agv.getId())) { |
| | | return; |
| | | } |
| | | Code randomCode = this.getRandomCode(agvDetail); |
| | | if (null == randomCode) { |
| | | return; |
| | | } |
| | | if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) { |
| | | System.out.println(agv.getUuid() + "开始走行演示..."); |
| | | } |
| | | } |
| | | |
| | | public Code getRandomCode(AgvDetail agvDetail) { |
| | | Code startCode = codeService.getById(agvDetail.getRecentCode()); |
| | | List<String> notInCodeList = new ArrayList<>(); |
| | | notInCodeList.add("00000024"); |
| | | notInCodeList.add("00000025"); |
| | | notInCodeList.add("00000026"); |
| | | notInCodeList.add("00000027"); |
| | | notInCodeList.add("00000028"); |
| | | notInCodeList.add("00000029"); |
| | | notInCodeList.add("00000023"); |
| | | notInCodeList.add("00000035"); |
| | | List<Code> list = codeService.list(new LambdaQueryWrapper<Code>().notIn(Code::getData, notInCodeList)); |
| | | Collections.shuffle(list); |
| | | for (Code endCode : list) { |
| | | List<String> pathList = mapService.validFeasibility(startCode, endCode); |
| | | if (pathList.size() >= 5) { |
| | | return endCode; |
| | | } |
| | | } |
| | | return list.stream().findFirst().orElse(null); |
| | | } |
| | | |
| | | // http://localhost:9090/test/auto?size=1 |
| | | @GetMapping("/auto") |
| | | public R auto(@RequestParam(value = "size", required = false) Integer size) { |
| | | if (null != size) { |
| | | this.autoSize = size; |
| | | } |
| | | this.autoDemo = !this.autoDemo; |
| | | return R.ok(Cools.add("autoDemo", this.autoDemo)); |
| | | } |
| | | |
| | | @Scheduled(cron = "0/1 * * * * ? ") |
| | | private void demo() throws InterruptedException { |
| | | if (!this.autoDemo) { return; } |
| | | int busLimit = configService.getVal("busLimit", Integer.class); |
| | | if (autoSize != null) { |
| | | busLimit = autoSize; |
| | | } |
| | | busLimit = 2; |
| | | AgvModel agvModel = agvModelService.list(new LambdaQueryWrapper<>()).stream().findFirst().orElse(null); |
| | | if (null != agvModel) { |
| | | busLimit = agvModel.getBackpack() * 2; |
| | | } |
| | | // 在库 |
| | | int stock = 0; |
| | | List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | .ge(Loc::getRow, 1) |
| | | .le(Loc::getRow, 2) |
| | | ); |
| | | Collections.shuffle(stockList); |
| | | if (stockList.size() > busLimit) { |
| | | stockList = stockList.subList(0, busLimit); |
| | | } |
| | | stock = stockList.size(); |
| | | if (stock == 0) { return;} |
| | | |
| | | // 空闲 |
| | | List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | .ge(Loc::getRow, 1) |
| | | .le(Loc::getRow, 2) |
| | | ); |
| | | Collections.shuffle(idleList); |
| | | if (idleList.size() > stock) { |
| | | idleList = idleList.subList(0, stock); |
| | | } |
| | | |
| | | if (stockList.size() == idleList.size()) { |
| | | OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | param.setBatch("batchNo"); |
| | | for (int i = 0; i < stock; i++) { |
| | | Loc stockLoc = stockList.get(i); |
| | | Loc idleLoc = idleList.get(i); |
| | | |
| | | TaskDto taskDto = new TaskDto(); |
| | | taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | |
| | | param.getTaskList().add(taskDto); |
| | | |
| | | } |
| | | |
| | | if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo")) |
| | | && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo")) |
| | | ) { |
| | | mainService.generateBusAndTask(param, "autoDemo"); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | // http://localhost:9090/test/auto1?size=1 |
| | | @GetMapping("/auto1") |
| | | public R auto1(@RequestParam(value = "size", required = false) Integer size) { |
| | | if (null != size) { |
| | | this.autoSize = size; |
| | | } |
| | | this.autoDemo1 = !this.autoDemo1; |
| | | return R.ok(Cools.add("autoDemo", this.autoDemo1)); |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void demo1() throws InterruptedException { |
| | | if (!this.autoDemo1) { return; } |
| | | int busLimit = configService.getVal("busLimit", Integer.class); |
| | | if (autoSize != null) { |
| | | busLimit = autoSize; |
| | | } |
| | | // 在库 |
| | | int stock = 0; |
| | | List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | .ge(Loc::getRow, 1) |
| | | .le(Loc::getRow, 2) |
| | | ); |
| | | Collections.shuffle(stockList); |
| | | if (stockList.size() > busLimit) { |
| | | stockList = stockList.subList(0, busLimit); |
| | | } |
| | | stock = stockList.size(); |
| | | if (stock == 0) { return;} |
| | | |
| | | // 空闲 |
| | | List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | .ge(Loc::getRow, 1) |
| | | .le(Loc::getRow, 2) |
| | | ); |
| | | Collections.shuffle(idleList); |
| | | if (idleList.size() > stock) { |
| | | idleList = idleList.subList(0, stock); |
| | | } |
| | | |
| | | if (stockList.size() == idleList.size()) { |
| | | OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | param.setBatch("batchNo"); |
| | | for (int i = 0; i < stock; i++) { |
| | | Loc stockLoc = stockList.get(i); |
| | | Loc idleLoc = idleList.get(i); |
| | | |
| | | TaskDto taskDto = new TaskDto(); |
| | | taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | |
| | | param.getTaskList().add(taskDto); |
| | | |
| | | } |
| | | |
| | | if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo1")) |
| | | && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo1")) |
| | | ) { |
| | | mainService.generateBusAndTask(param, "autoDemo1"); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | // http://localhost:9090/test/auto2?size=1 |
| | | @GetMapping("/auto2") |
| | | public R auto2(@RequestParam(value = "size", required = false) Integer size) { |
| | | if (null != size) { |
| | | this.autoSize = size; |
| | | } |
| | | this.autoDemo2 = !this.autoDemo2; |
| | | return R.ok(Cools.add("autoDemo", this.autoDemo2)); |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void demo2() throws InterruptedException { |
| | | if (!this.autoDemo2) { return; } |
| | | int busLimit = configService.getVal("busLimit", Integer.class); |
| | | if (autoSize != null) { |
| | | busLimit = autoSize; |
| | | } |
| | | // 在库 |
| | | int stock = 0; |
| | | List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | .ge(Loc::getRow, 3) |
| | | .le(Loc::getRow, 4) |
| | | ); |
| | | Collections.shuffle(stockList); |
| | | if (stockList.size() > busLimit) { |
| | | stockList = stockList.subList(0, busLimit); |
| | | } |
| | | stock = stockList.size(); |
| | | if (stock == 0) { return;} |
| | | |
| | | // 空闲 |
| | | List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | .ge(Loc::getRow, 3) |
| | | .le(Loc::getRow, 4) |
| | | ); |
| | | Collections.shuffle(idleList); |
| | | if (idleList.size() > stock) { |
| | | idleList = idleList.subList(0, stock); |
| | | } |
| | | |
| | | if (stockList.size() == idleList.size()) { |
| | | OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | param.setBatch("batchNo"); |
| | | for (int i = 0; i < stock; i++) { |
| | | Loc stockLoc = stockList.get(i); |
| | | Loc idleLoc = idleList.get(i); |
| | | |
| | | TaskDto taskDto = new TaskDto(); |
| | | taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | |
| | | param.getTaskList().add(taskDto); |
| | | |
| | | } |
| | | |
| | | if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo2")) |
| | | && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo2")) |
| | | ) { |
| | | mainService.generateBusAndTask(param, "autoDemo2"); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | //package com.zy.acs.manager.core; |
| | | // |
| | | //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | //import com.zy.acs.manager.common.domain.TaskDto; |
| | | //import com.zy.acs.manager.core.service.MainService; |
| | | //import com.zy.acs.manager.core.service.MapService; |
| | | //import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam; |
| | | //import com.zy.acs.manager.manager.entity.*; |
| | | //import com.zy.acs.manager.manager.enums.BusStsType; |
| | | //import com.zy.acs.manager.manager.enums.LocStsType; |
| | | //import com.zy.acs.manager.manager.enums.TaskStsType; |
| | | //import com.zy.acs.manager.manager.enums.TaskTypeType; |
| | | //import com.zy.acs.manager.manager.service.*; |
| | | //import com.zy.acs.manager.system.controller.BaseController; |
| | | //import com.zy.acs.manager.system.service.ConfigService; |
| | | //import com.zy.acs.framework.common.Cools; |
| | | //import com.zy.acs.framework.common.R; |
| | | //import com.zy.acs.framework.common.SnowflakeIdWorker; |
| | | //import org.springframework.beans.factory.annotation.Autowired; |
| | | //import org.springframework.beans.factory.annotation.Value; |
| | | //import org.springframework.scheduling.annotation.Scheduled; |
| | | //import org.springframework.web.bind.annotation.GetMapping; |
| | | //import org.springframework.web.bind.annotation.RequestMapping; |
| | | //import org.springframework.web.bind.annotation.RequestParam; |
| | | //import org.springframework.web.bind.annotation.RestController; |
| | | // |
| | | //import java.util.ArrayList; |
| | | //import java.util.Collections; |
| | | //import java.util.List; |
| | | // |
| | | ///** |
| | | // * Created by vincent on 2023/6/20 |
| | | // */ |
| | | //@RestController |
| | | //@RequestMapping("/test") |
| | | //public class TestController extends BaseController { |
| | | // |
| | | // @Autowired |
| | | // private BusService busService; |
| | | // @Autowired |
| | | // private MainService mainService; |
| | | // @Autowired |
| | | // private SnowflakeIdWorker snowflakeIdWorker; |
| | | // @Autowired |
| | | // private AgvModelService agvModelService; |
| | | // @Autowired |
| | | // private AgvService agvService; |
| | | // @Autowired |
| | | // private AgvDetailService agvDetailService; |
| | | // @Autowired |
| | | // private TaskService taskService; |
| | | // @Autowired |
| | | // private CodeService codeService; |
| | | // @Autowired |
| | | // private MapService mapService; |
| | | // |
| | | // |
| | | ///* |
| | | //TRUNCATE man_bus; |
| | | //TRUNCATE man_task; |
| | | //TRUNCATE man_action; |
| | | //UPDATE man_loc SET loc_sts = 16 WHERE loc_sts = 18; |
| | | //UPDATE man_loc SET loc_sts = 15 WHERE loc_sts = 17; |
| | | //*/ |
| | | // |
| | | // @Value("${auto.move}") |
| | | // private Boolean autoMove; |
| | | // @Value("${auto.demo}") |
| | | // private Boolean autoDemo; |
| | | // @Value("${auto.demo1}") |
| | | // private Boolean autoDemo1; |
| | | // @Value("${auto.demo2}") |
| | | // private Boolean autoDemo2; |
| | | // @Value("${auto.size}") |
| | | // private Integer autoSize; |
| | | // @Autowired |
| | | // private LocService locService; |
| | | // @Autowired |
| | | // private ConfigService configService; |
| | | // |
| | | // // http://localhost:9090/test/auto/move |
| | | // @GetMapping("/auto/move") |
| | | // public R autoMove() { |
| | | // this.autoMove = !this.autoMove; |
| | | // return R.ok().add(Cools.add("autoMove", this.autoMove)); |
| | | // } |
| | | // |
| | | // @Scheduled(cron = "0/1 * * * * ? ") |
| | | // private void move1() throws InterruptedException { |
| | | // if (!this.autoMove) { return; } |
| | | // Agv agv = agvService.selectByUuid("1"); |
| | | // AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); |
| | | // if (taskService.count(new LambdaQueryWrapper<Task>() |
| | | // .eq(Task::getAgvId, agv.getId()) |
| | | // .and(i -> { |
| | | // i.eq(Task::getTaskSts, TaskStsType.WAITING.val()) |
| | | // .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val()) |
| | | // .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val()); |
| | | // })) > 0) { |
| | | // return; |
| | | // } |
| | | // if (!agvService.judgeEnable(agv.getId())) { |
| | | // return; |
| | | // } |
| | | // Code randomCode = this.getRandomCode(agvDetail); |
| | | // if (null == randomCode) { |
| | | // return; |
| | | // } |
| | | // if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) { |
| | | // System.out.println(agv.getUuid() + "开始走行演示..."); |
| | | // } |
| | | // } |
| | | //// @Scheduled(cron = "0 */3 * * * ? ") |
| | | // @Scheduled(cron = "0/1 * * * * ? ") |
| | | // private void move2() throws InterruptedException { |
| | | // if (!this.autoMove) { return; } |
| | | // Agv agv = agvService.selectByUuid("2"); |
| | | // AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); |
| | | // if (taskService.count(new LambdaQueryWrapper<Task>() |
| | | // .eq(Task::getAgvId, agv.getId()) |
| | | // .and(i -> { |
| | | // i.eq(Task::getTaskSts, TaskStsType.WAITING.val()) |
| | | // .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val()) |
| | | // .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val()); |
| | | // })) > 0) { |
| | | // return; |
| | | // } |
| | | // if (!agvService.judgeEnable(agv.getId())) { |
| | | // return; |
| | | // } |
| | | // Code randomCode = this.getRandomCode(agvDetail); |
| | | // if (null == randomCode) { |
| | | // return; |
| | | // } |
| | | // if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) { |
| | | // System.out.println(agv.getUuid() + "开始走行演示..."); |
| | | // } |
| | | // } |
| | | // |
| | | // public Code getRandomCode(AgvDetail agvDetail) { |
| | | // Code startCode = codeService.getById(agvDetail.getRecentCode()); |
| | | // List<String> notInCodeList = new ArrayList<>(); |
| | | // notInCodeList.add("00000024"); |
| | | // notInCodeList.add("00000025"); |
| | | // notInCodeList.add("00000026"); |
| | | // notInCodeList.add("00000027"); |
| | | // notInCodeList.add("00000028"); |
| | | // notInCodeList.add("00000029"); |
| | | // notInCodeList.add("00000023"); |
| | | // notInCodeList.add("00000035"); |
| | | // List<Code> list = codeService.list(new LambdaQueryWrapper<Code>().notIn(Code::getData, notInCodeList)); |
| | | // Collections.shuffle(list); |
| | | // for (Code endCode : list) { |
| | | // List<String> pathList = mapService.validFeasibility(startCode, endCode); |
| | | // if (pathList.size() >= 5) { |
| | | // return endCode; |
| | | // } |
| | | // } |
| | | // return list.stream().findFirst().orElse(null); |
| | | // } |
| | | // |
| | | // // http://localhost:9090/test/auto?size=1 |
| | | // @GetMapping("/auto") |
| | | // public R auto(@RequestParam(value = "size", required = false) Integer size) { |
| | | // if (null != size) { |
| | | // this.autoSize = size; |
| | | // } |
| | | // this.autoDemo = !this.autoDemo; |
| | | // return R.ok(Cools.add("autoDemo", this.autoDemo)); |
| | | // } |
| | | // |
| | | // @Scheduled(cron = "0/1 * * * * ? ") |
| | | // private void demo() throws InterruptedException { |
| | | // if (!this.autoDemo) { return; } |
| | | // int busLimit = configService.getVal("busLimit", Integer.class); |
| | | // if (autoSize != null) { |
| | | // busLimit = autoSize; |
| | | // } |
| | | // busLimit = 2; |
| | | // AgvModel agvModel = agvModelService.list(new LambdaQueryWrapper<>()).stream().findFirst().orElse(null); |
| | | // if (null != agvModel) { |
| | | // busLimit = agvModel.getBackpack() * 2; |
| | | // } |
| | | // // 在库 |
| | | // int stock = 0; |
| | | // List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | // .ge(Loc::getRow, 1) |
| | | // .le(Loc::getRow, 2) |
| | | // ); |
| | | // Collections.shuffle(stockList); |
| | | // if (stockList.size() > busLimit) { |
| | | // stockList = stockList.subList(0, busLimit); |
| | | // } |
| | | // stock = stockList.size(); |
| | | // if (stock == 0) { return;} |
| | | // |
| | | // // 空闲 |
| | | // List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | // .ge(Loc::getRow, 1) |
| | | // .le(Loc::getRow, 2) |
| | | // ); |
| | | // Collections.shuffle(idleList); |
| | | // if (idleList.size() > stock) { |
| | | // idleList = idleList.subList(0, stock); |
| | | // } |
| | | // |
| | | // if (stockList.size() == idleList.size()) { |
| | | // OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | // param.setBatch("batchNo"); |
| | | // for (int i = 0; i < stock; i++) { |
| | | // Loc stockLoc = stockList.get(i); |
| | | // Loc idleLoc = idleList.get(i); |
| | | // |
| | | // TaskDto taskDto = new TaskDto(); |
| | | // taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | // taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | // taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | // |
| | | // param.getTaskList().add(taskDto); |
| | | // |
| | | // } |
| | | // |
| | | // if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo")) |
| | | // && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo")) |
| | | // ) { |
| | | // mainService.generateBusAndTask(param, "autoDemo"); |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // |
| | | // // http://localhost:9090/test/auto1?size=1 |
| | | // @GetMapping("/auto1") |
| | | // public R auto1(@RequestParam(value = "size", required = false) Integer size) { |
| | | // if (null != size) { |
| | | // this.autoSize = size; |
| | | // } |
| | | // this.autoDemo1 = !this.autoDemo1; |
| | | // return R.ok(Cools.add("autoDemo", this.autoDemo1)); |
| | | // } |
| | | // |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | // private void demo1() throws InterruptedException { |
| | | // if (!this.autoDemo1) { return; } |
| | | // int busLimit = configService.getVal("busLimit", Integer.class); |
| | | // if (autoSize != null) { |
| | | // busLimit = autoSize; |
| | | // } |
| | | // // 在库 |
| | | // int stock = 0; |
| | | // List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | // .ge(Loc::getRow, 1) |
| | | // .le(Loc::getRow, 2) |
| | | // ); |
| | | // Collections.shuffle(stockList); |
| | | // if (stockList.size() > busLimit) { |
| | | // stockList = stockList.subList(0, busLimit); |
| | | // } |
| | | // stock = stockList.size(); |
| | | // if (stock == 0) { return;} |
| | | // |
| | | // // 空闲 |
| | | // List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | // .ge(Loc::getRow, 1) |
| | | // .le(Loc::getRow, 2) |
| | | // ); |
| | | // Collections.shuffle(idleList); |
| | | // if (idleList.size() > stock) { |
| | | // idleList = idleList.subList(0, stock); |
| | | // } |
| | | // |
| | | // if (stockList.size() == idleList.size()) { |
| | | // OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | // param.setBatch("batchNo"); |
| | | // for (int i = 0; i < stock; i++) { |
| | | // Loc stockLoc = stockList.get(i); |
| | | // Loc idleLoc = idleList.get(i); |
| | | // |
| | | // TaskDto taskDto = new TaskDto(); |
| | | // taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | // taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | // taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | // |
| | | // param.getTaskList().add(taskDto); |
| | | // |
| | | // } |
| | | // |
| | | // if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo1")) |
| | | // && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo1")) |
| | | // ) { |
| | | // mainService.generateBusAndTask(param, "autoDemo1"); |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // // http://localhost:9090/test/auto2?size=1 |
| | | // @GetMapping("/auto2") |
| | | // public R auto2(@RequestParam(value = "size", required = false) Integer size) { |
| | | // if (null != size) { |
| | | // this.autoSize = size; |
| | | // } |
| | | // this.autoDemo2 = !this.autoDemo2; |
| | | // return R.ok(Cools.add("autoDemo", this.autoDemo2)); |
| | | // } |
| | | // |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | // private void demo2() throws InterruptedException { |
| | | // if (!this.autoDemo2) { return; } |
| | | // int busLimit = configService.getVal("busLimit", Integer.class); |
| | | // if (autoSize != null) { |
| | | // busLimit = autoSize; |
| | | // } |
| | | // // 在库 |
| | | // int stock = 0; |
| | | // List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.STOCK.val()) |
| | | // .ge(Loc::getRow, 3) |
| | | // .le(Loc::getRow, 4) |
| | | // ); |
| | | // Collections.shuffle(stockList); |
| | | // if (stockList.size() > busLimit) { |
| | | // stockList = stockList.subList(0, busLimit); |
| | | // } |
| | | // stock = stockList.size(); |
| | | // if (stock == 0) { return;} |
| | | // |
| | | // // 空闲 |
| | | // List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>() |
| | | // .eq(Loc::getLocSts, LocStsType.IDLE.val()) |
| | | // .ge(Loc::getRow, 3) |
| | | // .le(Loc::getRow, 4) |
| | | // ); |
| | | // Collections.shuffle(idleList); |
| | | // if (idleList.size() > stock) { |
| | | // idleList = idleList.subList(0, stock); |
| | | // } |
| | | // |
| | | // if (stockList.size() == idleList.size()) { |
| | | // OpenBusSubmitParam param = new OpenBusSubmitParam(); |
| | | // param.setBatch("batchNo"); |
| | | // for (int i = 0; i < stock; i++) { |
| | | // Loc stockLoc = stockList.get(i); |
| | | // Loc idleLoc = idleList.get(i); |
| | | // |
| | | // TaskDto taskDto = new TaskDto(); |
| | | // taskDto.setOriLoc(stockLoc.getLocNo()); |
| | | // taskDto.setDestLoc(idleLoc.getLocNo()); |
| | | // taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); |
| | | // |
| | | // param.getTaskList().add(taskDto); |
| | | // |
| | | // } |
| | | // |
| | | // if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo2")) |
| | | // && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo2")) |
| | | // ) { |
| | | // mainService.generateBusAndTask(param, "autoDemo2"); |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | //} |