#
luxiaotao1123
2022-09-21 850273b8707537450399fa0d0070c413fb177db5
#
7个文件已修改
137 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkChargeService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SteChargeType.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SteTaskModeType.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkChargeMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java
@@ -9,4 +9,6 @@
@Repository
public interface WrkChargeMapper extends BaseMapper<WrkCharge> {
    WrkCharge selectWorking(Integer steNo);
}
src/main/java/com/zy/asrs/service/WrkChargeService.java
@@ -5,4 +5,6 @@
public interface WrkChargeService extends IService<WrkCharge> {
    WrkCharge selectWorking(Integer steNo);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1149,27 +1149,30 @@
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
        SteProtocol steProtocol = steThread.getSteProtocol();
        if (steProtocol == null) { return; }
        if (steProtocol.isIdle()) {
            // 命令下发区 --------------------------------------------------------------------------
            SteCommand steCommand = new SteCommand();
            steCommand.setSteNo(steNo); // 穿梭车编号
            steCommand.setTaskNo(wrkCharge.getWrkNo()); // 工作号
            steCommand.setTaskMode(SteTaskModeType.findWaiting(steProtocol.getRow().intValue())); // 任务模式:  去近点 等待堆垛机叉取
        if (!basSteService.updatePakMk(steNo, "Y")) {
            log.error("修改穿梭车作业状态 失败!!,穿梭车={}", steNo);
            return;
        }
            steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
            steCommand.setBay(steProtocol.getBay());
            steCommand.setLev(steProtocol.getLev());
        // 命令下发区 --------------------------------------------------------------------------
        SteCommand steCommand = new SteCommand();
        steCommand.setSteNo(steNo); // 穿梭车编号
        steCommand.setTaskNo(wrkCharge.getWrkNo()); // 工作号
        steCommand.setTaskMode(SteTaskModeType.findOriginByLoc(steProtocol.getRow())); // 任务模式:  去近点 等待堆垛机叉取
            if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
            } else {
                // 修改工作档状态 绑定穿梭车
                wrkCharge.setSteNo(steNo);
                wrkCharge.setModiTime(new Date());
                if (!wrkChargeService.updateById(wrkCharge)) {
                    log.error("修改工作档状态 绑定穿梭车 失败!!,工作号={}", wrkCharge.getWrkNo());
                }
        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
        steCommand.setBay(steProtocol.getBay());
        steCommand.setLev(steProtocol.getLev());
        if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
            log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
        } else {
            // 修改工作档状态 绑定穿梭车
            wrkCharge.setSteNo(steNo);
            wrkCharge.setModiTime(new Date());
            if (!wrkChargeService.updateById(wrkCharge)) {
                log.error("修改工作档状态 绑定穿梭车 失败!!,工作号={}", wrkCharge.getWrkNo());
            }
        }
    }
@@ -2054,13 +2057,13 @@
            BasSte basSte = basSteService.selectById(ste.getId());
            if (Cools.isEmpty(steProtocol, basSte)) { continue; }
            try {
                if (!steProtocol.statusType.equals(SteStatusType.IDLE)) {
                if (!steProtocol.statusType.equals(SteStatusType.IDLE) || basSte.getPakMk().equals("Y")) {
                    continue;
                }
                if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
                    continue;
                }
                WrkCharge wrkCharge = wrkChargeService.selectById(steProtocol.getTaskNo());
                WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue());
                if (wrkCharge == null) {
                    String idleLoc = basSte.getIdleLoc();
@@ -2071,8 +2074,9 @@
                    wrkCharge.setCrnNo(basSte.getCrnNo());
                    wrkCharge.setIoPri((double) 10);
                    wrkCharge.setLocNo(idleLoc);
                    if (wrkChargeService.insert(wrkCharge)) {
                    if (!wrkChargeService.insert(wrkCharge)) {
                        log.error("保存{}号穿梭车充电任务失败!!!", ste.getId());
                        continue;
                    }
                    if (Utils.getGroupRow(idleLoc).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(idleLoc) && steProtocol.getLev() == Utils.getLev(idleLoc)) {
@@ -2121,7 +2125,7 @@
                    } else if (wrkCharge.getWrkSts() == 6L) {
                        // 小车行驶至充电位
                        if (steProtocol.isIdle()) {
                        if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
                            // 命令下发区 --------------------------------------------------------------------------
                            SteCommand steCommand = new SteCommand();
                            steCommand.setSteNo(wrkCharge.getSteNo()); // 穿梭车编号
src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java
@@ -9,4 +9,8 @@
@Service("wrkChargeService")
public class WrkChargeServiceImpl extends ServiceImpl<WrkChargeMapper, WrkCharge> implements WrkChargeService {
    @Override
    public WrkCharge selectWorking(Integer steNo) {
        return this.baseMapper.selectWorking(steNo);
    }
}
src/main/java/com/zy/core/enums/SteChargeType.java
@@ -4,19 +4,22 @@
public enum SteChargeType {
    FIRST(1, "0100101"),
    SECOND(2, "1400701"),
    THIRD(3, "2100401"),
    FIRST(1, "0100101", "0300101"),
    SECOND(2, "1400701", "1200701"),
    THIRD(3, "2100401", "1900401"),
    ;
    SteChargeType(int ssbm, String locNo) {
    SteChargeType(int ssbm, String locNo, String idleLoc) {
        this.ssbm = ssbm;
        this.locNo = locNo;
        this.idleLoc = idleLoc;
    }
    public int ssbm;
    public String locNo;
    public String idleLoc;
    public static SteChargeType get(String locNo) {
        if (Cools.isEmpty(locNo)) {
@@ -24,7 +27,7 @@
        }
        SteChargeType[] values = SteChargeType.values();
        for (SteChargeType value : values) {
            if (value.locNo.equals(locNo)) {
            if (value.idleLoc.equals(locNo)) {
                return value;
            }
        }
src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -118,6 +118,36 @@
        }
    }
    public static SteTaskModeType findOriginByLoc(Short row) {
        switch (row) {
            case 1:
            case 2:
            case 3:
            case 8:
            case 9:
            case 10:
            case 11:
            case 15:
            case 16:
            case 17:
            case 18:
                return SteTaskModeType.GO_ORIGIN;
            case 4:
            case 5:
            case 6:
            case 7:
            case 12:
            case 13:
            case 14:
            case 19:
            case 20:
            case 21:
                return SteTaskModeType.BACK_ORIGIN;
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    public static SteTaskModeType findInByLoc(SteProtocol steProtocol) {
        switch (steProtocol.getRow()) {
            case 1:
@@ -238,4 +268,34 @@
        }
    }
    public static SteTaskModeType findChargeByLocForCharge(Integer row) {
        switch (row) {
            case 1:
            case 2:
            case 3:
            case 8:
            case 9:
            case 10:
            case 11:
            case 15:
            case 16:
            case 17:
            case 18:
                return SteTaskModeType.GO_ORIGIN;
            case 4:
            case 5:
            case 6:
            case 7:
            case 12:
            case 13:
            case 14:
            case 19:
            case 20:
            case 21:
                return SteTaskModeType.BACK_ORIGIN;
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
    }
}
src/main/resources/mapper/WrkChargeMapper.xml
@@ -29,4 +29,12 @@
    </resultMap>
    <select id="selectWorking" resultMap="BaseResultMap">
        select top 1 *
        from asr_wrk_charge
        where 1=1
        and ste_no = #{steNo}
        and wrk_sts != 10
    </select>
</mapper>