| | |
| | | for (Task task : taskService.selectByAnalyzeSts()) { |
| | | Motion executingMotion = motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId()); |
| | | if (executingMotion != null) {//存在正在执行的motion |
| | | continue; |
| | | if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId()); |
| | |
| | | for (Task taskCharge : taskService.selectChargeByAnalyzeSts()) { |
| | | Motion executingMotion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId()); |
| | | if (executingMotion != null) {//存在正在执行的motion |
| | | continue; |
| | | if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.INIT.val(), taskCharge.getHostId()); |
| | |
| | | } |
| | | |
| | | @Scheduled(cron = "0/1 * * * * ? ") |
| | | public synchronized void executeLadenMoveTask() { |
| | | Date now = new Date(); |
| | | // ANALYZE_CHARGE |
| | | for (Task taskCharge : taskService.selectLadenMoveByAnalyzeSts()) { |
| | | Motion executingMotion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId()); |
| | | if (executingMotion != null) {//存在正在执行的motion |
| | | if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.INIT.val(), taskCharge.getHostId()); |
| | | if (null != motion) { |
| | | boolean result = this.executeMotion(motion); |
| | | if (!result) { |
| | | continue; |
| | | } |
| | | // 更新Task |
| | | switch (TaskStsType.query(taskCharge.getTaskSts())) { |
| | | case ANALYZE_LADEN_MOVE: |
| | | taskCharge.setTaskSts(TaskStsType.EXECUTE_LADEN_MOVE.sts); |
| | | break; |
| | | } |
| | | taskCharge.setUpdateTime(now); |
| | | if (!taskService.updateById(taskCharge)) { |
| | | log.error("{}其他工作档更新状态失败!", taskCharge.getTaskNo()); |
| | | } |
| | | } |
| | | } |
| | | // EXECUTE_CHARGE |
| | | for (Task taskCharge : taskService.selectLadenMoveByExecuteSts()) { |
| | | if (!motionService.hasRunningMotion(taskCharge.getUuid(), taskCharge.getHostId())) { |
| | | Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.WAITING.val(), taskCharge.getHostId()); |
| | | if (null != motion) { |
| | | boolean result = this.executeMotion(motion); |
| | | if (!result) { |
| | | continue; |
| | | } |
| | | } else { |
| | | if (motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId()) != null) { |
| | | continue; |
| | | } |
| | | |
| | | // 更新Task |
| | | switch (TaskStsType.query(taskCharge.getTaskSts())) { |
| | | case EXECUTE_LADEN_MOVE: |
| | | taskCharge.setTaskSts(TaskStsType.COMPLETE_LADEN_MOVE.sts); |
| | | break; |
| | | } |
| | | taskCharge.setUpdateTime(now); |
| | | if (!taskService.updateById(taskCharge)) { |
| | | log.error("{}他工作档更新状态失败!", taskCharge.getTaskNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/1 * * * * ? ") |
| | | public synchronized void executeManualTask() { |
| | | Date now = new Date(); |
| | | // ANALYZE_MANUAL |
| | | for (Task task : taskService.selectManualByAnalyzeSts()) { |
| | | Motion executingMotion = motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId()); |
| | | if (executingMotion != null) {//存在正在执行的motion |
| | | continue; |
| | | if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId()); |
| | |
| | | for (Task task : taskService.selectMoveByAnalyzeSts()) { |
| | | Motion executingMotion = motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId()); |
| | | if (executingMotion != null) {//存在正在执行的motion |
| | | continue; |
| | | if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId()); |