luxiaotao1123
2024-04-08 6a1546c0d0e56675b4b0cc936d8f2308f6fb2378
Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack
5个文件已修改
157 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
@@ -18,6 +18,10 @@
    List<Task> selectByExecuteSts();
    List<Task> selectChargeByAnalyzeSts();
    List<Task> selectChargeByExecuteSts();
    List<Task> selectManualByAnalyzeSts();
    List<Task> selectManualByExecuteSts();
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
@@ -16,6 +16,10 @@
    List<Task> selectByExecuteSts();
    List<Task> selectChargeByAnalyzeSts();
    List<Task> selectChargeByExecuteSts();
    List<Task> selectManualByAnalyzeSts();
    List<Task> selectManualByExecuteSts();
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
@@ -11,6 +11,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service("taskService")
@@ -66,6 +67,16 @@
    }
    @Override
    public List<Task> selectChargeByAnalyzeSts() {
        return this.baseMapper.selectChargeByAnalyzeSts();
    }
    @Override
    public List<Task> selectChargeByExecuteSts() {
        return this.baseMapper.selectChargeByExecuteSts();
    }
    @Override
    public List<Task> selectManualByAnalyzeSts() {
        return this.baseMapper.selectManualByAnalyzeSts();
    }
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
@@ -108,68 +108,68 @@
        }
    }
//    @Scheduled(cron = "0/1 * * * * ? ")
//    public synchronized void executeWrkCharge() {
//        Date now = new Date();
//        // ANALYZE_INBOUND
//        for (WrkCharge wrkCharge : wrkChargeMapper.selectByAnalyzeSts()) {
//            Motion executingMotion = motionService.selectOfTop1(wrkCharge.getUuid(), MotionStsType.EXECUTING.val());
//            if (executingMotion != null) {//存在正在执行的motion
//                continue;
//            }
//
//            Motion motion = motionService.selectOfTop1(wrkCharge.getUuid(), MotionStsType.INIT.val());
//            if (null != motion) {
//                boolean result = this.executeMotion(motion);
//                if (!result) {
//                    continue;
//                }
//                // 更新wrkMast
//                switch (WrkMastStsType.query(wrkCharge.getWrkSts())) {
//                    case ANALYZE_CHARGE:
//                        wrkCharge.setWrkSts(WrkMastStsType.EXECUTE_CHARGE.sts);
//                        break;
//                    case ANALYZE_MOVE:
//                        wrkCharge.setWrkSts(WrkMastStsType.EXECUTE_MOVE.sts);
//                        break;
//                }
//                wrkCharge.setModiTime(now);
//                if (wrkChargeMapper.updateById(wrkCharge) == 0) {
//                    log.error("{}其他工作档更新状态失败!", wrkCharge.getWrkNo());
//                }
//            }
//        }
//        // EXECUTE_INBOUND
//        for (WrkCharge wrkCharge : wrkChargeMapper.selectByExecuteSts()) {
//            if (!motionService.hasRunningMotion(wrkCharge.getUuid())) {
//                Motion motion = motionService.selectOfTop1(wrkCharge.getUuid(), MotionStsType.WAITING.val());
//                if (null != motion) {
//                    boolean result = this.executeMotion(motion);
//                    if (!result) {
//                        continue;
//                    }
//                } else {
//                    if (motionService.selectOfTop1(wrkCharge.getUuid(), MotionStsType.EXECUTING.val()) != null) {
//                        continue;
//                    }
//
//                    // 更新wrkMast
//                    switch (WrkMastStsType.query(wrkCharge.getWrkSts())) {
//                        case EXECUTE_CHARGE:
//                            wrkCharge.setWrkSts(WrkMastStsType.CHARGE_WORKING.sts);
//                            break;
//                        case EXECUTE_MOVE:
//                            wrkCharge.setWrkSts(WrkMastStsType.COMPLETE_MOVE.sts);
//                            break;
//                    }
//                    wrkCharge.setModiTime(now);
//                    if (wrkChargeMapper.updateById(wrkCharge) == 0) {
//                        log.error("{}他工作档更新状态失败!", wrkCharge.getWrkNo());
//                    }
//                }
//            }
//        }
//    }
    @Scheduled(cron = "0/1 * * * * ? ")
    public synchronized void executeChargeTask() {
        Date now = new Date();
        // ANALYZE_CHARGE
        for (Task taskCharge : taskService.selectChargeByAnalyzeSts()) {
            Motion executingMotion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId());
            if (executingMotion != null) {//存在正在执行的motion
                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_CHARGE:
                        taskCharge.setTaskSts(TaskStsType.EXECUTE_CHARGE.sts);
                        break;
                    case ANALYZE_MOVE:
                        taskCharge.setTaskSts(TaskStsType.EXECUTE_MOVE.sts);
                        break;
                }
                taskCharge.setUpdateTime(now);
                if (!taskService.updateById(taskCharge)) {
                    log.error("{}其他工作档更新状态失败!", taskCharge.getTaskNo());
                }
            }
        }
        // EXECUTE_CHARGE
        for (Task taskCharge : taskService.selectChargeByExecuteSts()) {
            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_CHARGE:
                            taskCharge.setTaskSts(TaskStsType.CHARGE_WORKING.sts);
                            break;
                        case EXECUTE_MOVE:
                            taskCharge.setTaskSts(TaskStsType.COMPLETE_MOVE.sts);
                            break;
                    }
                    taskCharge.setUpdateTime(now);
                    if (!taskService.updateById(taskCharge)) {
                        log.error("{}他工作档更新状态失败!", taskCharge.getTaskNo());
                    }
                }
            }
        }
    }
    @Scheduled(cron = "0/1 * * * * ? ")
    public synchronized void executeManualTask() {
zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
@@ -24,6 +24,20 @@
        order by priority desc,start_time,task_no asc
    </select>
    <select id="selectChargeByAnalyzeSts" resultType="com.zy.asrs.wcs.core.entity.Task">
        select * from wcs_task
        where 1=1
          and task_sts in (202)
        order by priority desc,start_time,task_no asc
    </select>
    <select id="selectChargeByExecuteSts" resultType="com.zy.asrs.wcs.core.entity.Task">
        select * from wcs_task
        where 1=1
          and task_sts in (203)
        order by priority desc,start_time,task_no asc
    </select>
    <select id="selectManualByAnalyzeSts" resultType="com.zy.asrs.wcs.core.entity.Task">
        select * from wcs_task
        where 1=1