自动化立体仓库 - WMS系统
zhangc
2025-02-13 b25fc15afed603c0c874e77d37bf93f08d5398c9
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -16,6 +16,8 @@
import com.zy.asrs.service.*;
import com.zy.common.service.AgvCommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -64,6 +66,8 @@
    private AgvCommonService agvCommonService;
    @Autowired
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private ConfigService configService;
    public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
@@ -227,46 +231,51 @@
            agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
        }
        agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
        switch (agvWrkMast.getIoType()) {
            case 114:
            case 108:
            case 12:
                agvTaskCreateParam.setTaskTyp("F06");
                break;
            case 109:
                if (agvWrkMast.getWrkSts() == 201) {
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR"));
        if (config != null && config.getStatus() == 1 && config.getValue().equals("1") && processUseTiShengJi(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo())) {
                // TODO 四期
        } else {
            switch (agvWrkMast.getIoType()) {
                case 114:
                case 108:
                case 12:
                    agvTaskCreateParam.setTaskTyp("F06");
                } else {
                    break;
                case 109:
                    if (agvWrkMast.getWrkSts() == 201) {
                        agvTaskCreateParam.setTaskTyp("F06");
                    } else {
                        agvTaskCreateParam.setTaskTyp("F01");
                    }
                    break;
                case 1:
                case 57:
                    // 入库任务是只有 接驳位 -- > 库位
                    AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
                    String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
                    AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
                    if ("02".equals(locSub)) {
                        if (agvBasDevp.getFloor() == 4) {
                            agvTaskCreateParam.setTaskTyp("F01");
                        } else {
                            agvTaskCreateParam.setTaskTyp("F06");
                        }
                    } else {
                        // 目标楼层位1楼 但源库位(接驳位)在吸塑二楼
                        if (agvBasDevp.getFloor() == 4) {
                            agvTaskCreateParam.setTaskTyp("F06");
                        } else {
                            agvTaskCreateParam.setTaskTyp("F01");
                        }
                    }
                    break;
                default:
                    agvTaskCreateParam.setTaskTyp("F01");
                }
                break;
            case 1:
            case 57:
                // 入库任务是只有 接驳位 -- > 库位
                AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
                String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
                AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
                if ("02".equals(locSub)) {
                    if (agvBasDevp.getFloor() == 4) {
                        agvTaskCreateParam.setTaskTyp("F01");
                    } else {
                        agvTaskCreateParam.setTaskTyp("F06");
                    }
                } else {
                    // 目标楼层位1楼 但源库位(接驳位)在吸塑二楼
                    if (agvBasDevp.getFloor() == 4) {
                        agvTaskCreateParam.setTaskTyp("F06");
                    } else {
                        agvTaskCreateParam.setTaskTyp("F01");
                    }
                }
                break;
            default:
                agvTaskCreateParam.setTaskTyp("F01");
                break;
                    break;
            }
        }
        agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
@@ -277,7 +286,7 @@
    private boolean processUseTiShengJi(String sourceLocNo, String locNo) {
        // 判断是否是提升机
        if (sourceLocNo.startsWith("YZ")) {
            if (sourceLocNo.endsWith("01F2") && !locNo.startsWith("YZ") && locNo.endsWith("F4") && locNo.startsWith("Q")) {
            if (sourceLocNo.endsWith("01F2") && !locNo.startsWith("YZ") && locNo.endsWith("F4") ) {
                // 从生产二厂的库位到吸塑二厂的点位上
                return true;
            } else if (sourceLocNo.endsWith("01F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) {