123
ZY
2025-04-25 1a1e3398d15027a65e56e0ed82e54f3a4feea0b6
123
11个文件已修改
514 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 292 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TransferTaskMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,7 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.BaseRes;
@@ -15,12 +14,10 @@
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
@@ -105,25 +102,6 @@
        }
    }
    //agv任务完成
    @PostMapping("/toAgvTaskOver")
    @AppAuth(memo = "agv任务完成接口")
    public R getAgvTaskOver(@RequestHeader String appkey,
                            @RequestBody TaskOverParam param,
                            HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        if (Cools.isEmpty(param.getStartPoint())) {
            return R.error("码头[wharfCode]不能为空");
        }
        if (Cools.isEmpty(param.getStatus())) {
            return R.error("完成标记[status]不能为空");
        }
        openService.getAgvTaskOver(param);
        return R.ok();
    }
    //创建任务
    @PostMapping("/taskCreate")
@@ -189,18 +167,6 @@
        return R.ok();
    }
    //查询任务详情
    @GetMapping("/queryTask")
    public R queryTask(@RequestHeader String appkey,
                       @RequestParam String taskNo,
                       HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
        }
        return R.ok().add(taskWrk);
    }
    //取放货申请
    @PostMapping("/pick/and/place/v1")
@@ -240,20 +206,6 @@
        return openService.getAgvPickAndPlaceV2(param);
    }
    //查询任务指令集合
    @GetMapping("/queryTaskCommand")
    public R queryTaskCommand(@RequestHeader String appkey,
                              @RequestParam String taskNo,
                              HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
        }
        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo);
        return R.ok().add(commandInfos);
    }
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
@@ -266,103 +218,6 @@
        }
    }
    //AGV请求入库码头接口
//    @PostMapping("/targetWharfApply")
//    @AppAuth(memo = "AGV请求入库码头接口")
//    public R targetWharfApply(@RequestHeader String appkey,
//                              @RequestBody WMSAndAGVInterfaceParam param,
//                              HttpServletRequest request) throws IOException {
//        auth(appkey, param, request);
//
//        if (Cools.isEmpty(param)) {
//            return R.error("参数为空!");
//        } else if (Cools.isEmpty(param.getTaskNo())) {
//            return R.error("工作号为空!");
//        } else if (Cools.isEmpty(param.getContainerCode())) {
//            return R.error("托盘编码为空!");
//        } else if (Cools.isEmpty(param.getWharfSource())) {
//            return R.error("源码头为空!");
//        } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) {
//            return R.error("空闲的入库码头(AGV)为空!");
//        }
//        R r = openService.AgvToWCSToWms(param);
//        apiLogService.save("AGV请求入库码头接口"
//                , request.getRemoteAddr() + request.getRequestURI()
//                , appkey
//                , request.getRemoteAddr()
//                , JSON.toJSONString(param)
//                , r.toString()
//                , true
//        );
//        return r;
//    }
//
//    //AGV请求动作接口
//    @PostMapping("/agvTaskRequest")
//    @AppAuth(memo = "AGV请求动作接口")
//    public R agvTaskRequest(@RequestHeader String appkey,
//                            @RequestBody WMSAndAGVInterfaceParam param,
//                            HttpServletRequest request) {
//        auth(appkey, param, request);
//        if (Cools.isEmpty(param)) {
//            return R.error("参数为空!");
//        } else if (Cools.isEmpty(param.getRequestType())) {
//            return R.error("请求类型为空!");
//        } else if (Cools.isEmpty(param.getWharfCode())) {
//            return R.error("码头编号为空!");
//        }
//
//        Map<String, Integer> map = new HashMap<>();
//        map.put("J-1102", 102);
//        map.put("J-1101", 101);
//        map.put("J-1103", 105);
//        map.put("J-1104", 106);
//        map.put("J-1105", 109);
//        map.put("J-1106", 110);
//        map.put("J-1107", 113);
//        map.put("J-1108", 114);
//        map.put("J-1109", 117);
//        map.put("J-1110", 118);
//        map.put("J-1111", 121);
//        map.put("J-1112", 122);
//        map.put("H-1102", 300);
//        map.put("H-1101", 305);
//        map.put("G-1102", 400);
//        map.put("G-1101", 405);
////        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
////                .eq("stn_desc", param.getWharfCode()));
////
////        if (Cools.isEmpty(staDesc)){
////            return R.error("程序报错,未查询到站点");
////        }
//        if (Cools.isEmpty(map.get(param.getWharfCode()))) {
//            return R.error("未查询到站点");
//        }
//        BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
//        if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) {
//            apiLogService.save("AGV请求入库码头接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , appkey
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , R.ok().toString()
//                    , true
//            );
//            return R.ok("可入");
//        } else {
//            apiLogService.save("AGV请求入库码头接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , appkey
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , R.error("站点状态不可入").toString()
//                    , true
//            );
//            return R.error("站点状态不可入");
//        }
//
//
//    }
    //任务下发接口
    @PostMapping("/outboundTaskSend")
@@ -402,7 +257,7 @@
                        .eq("stn_no", param.getTerminalNo()));
                if (Cools.isEmpty(staDesc)) {
                    map.put("Code", "0");
                    map.put("Msg", "出库路劲不存在!");
                    map.put("Msg", "出库路径不存在!");
                    return map;
                }
                r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
@@ -509,4 +364,149 @@
        return R.ok(crnStatusParams);
    }
    //查询任务详情
    @GetMapping("/queryTask")
    public R queryTask(@RequestHeader String appkey,
                       @RequestParam String taskNo,
                       HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
        }
        return R.ok().add(taskWrk);
    }
    //查询任务指令集合
    @GetMapping("/queryTaskCommand")
    public R queryTaskCommand(@RequestHeader String appkey,
                              @RequestParam String taskNo,
                              HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
        }
        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo);
        return R.ok().add(commandInfos);
    }
    //AGV请求入库码头接口
//    @PostMapping("/targetWharfApply")
//    @AppAuth(memo = "AGV请求入库码头接口")
//    public R targetWharfApply(@RequestHeader String appkey,
//                              @RequestBody WMSAndAGVInterfaceParam param,
//                              HttpServletRequest request) throws IOException {
//        auth(appkey, param, request);
//
//        if (Cools.isEmpty(param)) {
//            return R.error("参数为空!");
//        } else if (Cools.isEmpty(param.getTaskNo())) {
//            return R.error("工作号为空!");
//        } else if (Cools.isEmpty(param.getContainerCode())) {
//            return R.error("托盘编码为空!");
//        } else if (Cools.isEmpty(param.getWharfSource())) {
//            return R.error("源码头为空!");
//        } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) {
//            return R.error("空闲的入库码头(AGV)为空!");
//        }
//        R r = openService.AgvToWCSToWms(param);
//        apiLogService.save("AGV请求入库码头接口"
//                , request.getRemoteAddr() + request.getRequestURI()
//                , appkey
//                , request.getRemoteAddr()
//                , JSON.toJSONString(param)
//                , r.toString()
//                , true
//        );
//        return r;
//    }
//
//    //AGV请求动作接口
//    @PostMapping("/agvTaskRequest")
//    @AppAuth(memo = "AGV请求动作接口")
//    public R agvTaskRequest(@RequestHeader String appkey,
//                            @RequestBody WMSAndAGVInterfaceParam param,
//                            HttpServletRequest request) {
//        auth(appkey, param, request);
//        if (Cools.isEmpty(param)) {
//            return R.error("参数为空!");
//        } else if (Cools.isEmpty(param.getRequestType())) {
//            return R.error("请求类型为空!");
//        } else if (Cools.isEmpty(param.getWharfCode())) {
//            return R.error("码头编号为空!");
//        }
//
//        Map<String, Integer> map = new HashMap<>();
//        map.put("J-1102", 102);
//        map.put("J-1101", 101);
//        map.put("J-1103", 105);
//        map.put("J-1104", 106);
//        map.put("J-1105", 109);
//        map.put("J-1106", 110);
//        map.put("J-1107", 113);
//        map.put("J-1108", 114);
//        map.put("J-1109", 117);
//        map.put("J-1110", 118);
//        map.put("J-1111", 121);
//        map.put("J-1112", 122);
//        map.put("H-1102", 300);
//        map.put("H-1101", 305);
//        map.put("G-1102", 400);
//        map.put("G-1101", 405);
////        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
////                .eq("stn_desc", param.getWharfCode()));
////
////        if (Cools.isEmpty(staDesc)){
////            return R.error("程序报错,未查询到站点");
////        }
//        if (Cools.isEmpty(map.get(param.getWharfCode()))) {
//            return R.error("未查询到站点");
//        }
//        BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
//        if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) {
//            apiLogService.save("AGV请求入库码头接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , appkey
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , R.ok().toString()
//                    , true
//            );
//            return R.ok("可入");
//        } else {
//            apiLogService.save("AGV请求入库码头接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , appkey
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , R.error("站点状态不可入").toString()
//                    , true
//            );
//            return R.error("站点状态不可入");
//        }
//
//
//    }
//    @PostMapping("/toAgvTaskOver")
//    @AppAuth(memo = "agv任务完成接口")
//    public R getAgvTaskOver(@RequestHeader String appkey,
//                            @RequestBody TaskOverParam param,
//                            HttpServletRequest request) {
//        auth(appkey, param, request);
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        if (Cools.isEmpty(param.getStartPoint())) {
//            return R.error("码头[wharfCode]不能为空");
//        }
//        if (Cools.isEmpty(param.getStatus())) {
//            return R.error("完成标记[status]不能为空");
//        }
//        openService.getAgvTaskOver(param);
//        return R.ok();
//    }
}
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -17,6 +17,11 @@
     */
    private Integer startPoint;
    /**
     * 高度
     */
    private Integer height;
    /**
     * 1放。0取
     */
    private int type;
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -39,4 +39,6 @@
    List<LocMast> selectLocByLev(@Param("lev") Integer lev);
}
src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
@@ -9,6 +9,8 @@
@Repository
public interface TransferTaskMapper extends BaseMapper<TransferTask> {
    TransferTask selectByStartPoint(Integer startPoint);
    TransferTask selectByEndPoint(Integer endPoint);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,12 +7,18 @@
import com.core.exception.CoolException;
import com.zy.asrs.controller.CrnController;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.wms.StorageEscalationParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -29,6 +35,7 @@
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -36,6 +43,7 @@
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * 立体仓库WCS系统主流程业务
@@ -55,6 +63,8 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpService basDevpService;
@@ -66,10 +76,9 @@
    private TaskWrkMapper taskWrkMapper;
    @Autowired
    private DevpTaskMapper devpTaskMapper;
    @Autowired
    private TaskWrkService taskWrkService;
    @Autowired
    private CommonService commonService;
    @Autowired
    private StaDescMapper staDescMapper;
@@ -87,6 +96,22 @@
    @Autowired
    private TransferTaskService transferTaskService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Value("${loc-move.enable}")
    private boolean enable;
    @Value("${loc-move.crn1}")
    private boolean crn1;
    @Value("${loc-move.crn2}")
    private boolean crn2;
    @Value("${loc-move.crn3}")
    private boolean crn3;
    public void generateStoreWrkFile() throws IOException, InterruptedException {
        try {
@@ -838,7 +863,7 @@
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                if (devp.getId() == 2){
                if (devp.getId() == 2) {
                    continue;
                }
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -1003,23 +1028,120 @@
    /**
     * 跑库程序
     */
    public void debug() {
        //首先库位有一个在库的库位
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F"));
        if (locMast != null) {
            // 再生成一个移库任务
            LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1));
    public void debug(String sts, Long modiUser, Integer loc_type1) {
        if (!enable) {
            return;
        }
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
        if (basCrnps.isEmpty()) {
            return;
        }
        for (BasCrnp basCrnp : basCrnps) {
            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) {
                continue;
            }
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11));
            if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) {
                int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
                if (locMastStart == null || i > 1) {
                    continue;
                }
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("loc_sts", "O")
                        .eq("crn_no", basCrnp.getCrnNo())
                        .eq("loc_type1", locMastStart.getLocType1())
                        .ne("modi_user", 77));
                if (Cools.isEmpty(locMasts)) {
                    continue;
                }
                Random random = new Random();
                LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size()));
                ReturnT<String> result = locMove(locMastStart, locMastEnd, basCrnp.getCrnNo());
                if (!result.isSuccess()) {
                    log.error("处理失败");
                }
            }
        }
    }
    public void locMove(LocMast sourceLoc, LocMast locNo, Long userId) {
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc.getLocNo()));
        LocMast loc = locMastService.selectById(locNo);
        if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
            throw new CoolException("移转库位属于不同堆垛机");
        }
        Date now = new Date();
        // 获取工作号
        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
        wrkMast.setIoType(11); // 入出库状态: 11.库格移载
        wrkMast.setIoPri(10D);
        wrkMast.setCrnNo(sourceLoc.getCrnNo());
        wrkMast.setSourceLocNo(sourceLoc.getLocNo()); // 源库位
        wrkMast.setLocNo(locNo.getLocNo()); // 目标库位
        wrkMast.setFullPlt(Cools.isEmpty(locDetls) ? "N" : "Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 空板
        wrkMast.setBarcode(sourceLoc.getBarcode()); // 托盘码
        wrkMast.setLinkMis("N");
        wrkMast.setAppeUser(userId);
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            throw new CoolException("保存工作档失败");
        }
        // 工作档明细保存
        for (LocDetl locDetl : locDetls) {
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(locDetl);
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setIoTime(now);
            wrkDetl.setAnfme(locDetl.getAnfme());
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
            wrkDetl.setModiTime(now);
            wrkDetl.setModiUser(userId);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作档明细失败");
            }
        }
        // 修改源库位状态
        if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
            sourceLoc.setLocSts("R"); // R.出库预约
            sourceLoc.setModiUser(userId);
            sourceLoc.setModiTime(now);
            if (!locMastService.updateById(sourceLoc)) {
                throw new CoolException("更新源库位状态失败");
            }
        } else {
            throw new CoolException("源库位出库失败,状态:" + sourceLoc.getLocSts$());
        }
        // 修改目标库位状态
        if (loc.getLocSts().equals("O")) {
            loc.setLocSts("S"); // S.入库预约
            loc.setModiTime(now);
            loc.setModiUser(userId);
            if (!locMastService.updateById(loc)) {
                throw new CoolException("更新目标库位状态失败");
            }
        } else {
            throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$());
        }
    }
    /**
     * 转移任务下发
     */
    public void transferTaskStart() {
        for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) {
            try {
                // 获取入库站信息
@@ -1082,7 +1204,7 @@
                        continue;
                    }
                    log.info("转移任务完成:transferTask:" + JSON.toJSONString(transferTask));
                    transferTask.setStatus(5);
                    transferTask.setStatus(3);
                    transferTaskService.updateById(transferTask);
                }
            } catch (Exception e) {
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -270,7 +270,11 @@
        if (Cools.isEmpty(basDevp)) {
            return R.error("站点号有误" + param.getStartPoint());
        }
        if (Cools.isEmpty(param.getHeight())) {
            return R.error("高度不能为空" + param.getStartPoint());
        }
        if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) {
            basDevp.setInreq2(param.getHeight().toString());
            return R.ok();
        } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) {
            return R.ok();
src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
@@ -14,11 +14,11 @@
    @Override
    public TransferTask selectByStartPoint(Integer startPoint) {
        return null;
        return this.baseMapper.selectByStartPoint(startPoint);
    }
    @Override
    public TransferTask selectByEndPoint(Integer endPoint) {
        return null;
        return this.baseMapper.selectByEndPoint(endPoint);
    }
}
src/main/java/com/zy/core/MainProcess.java
@@ -40,7 +40,10 @@
                        continue;
                    }
                    // 跑库程序
                    //mainService.debug();
                    //mainService.debug("F");
                    mainService.transferTaskStart();
                    mainService.transferTaskEnd();
                    // 入库  ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,20 +121,6 @@
        this.slave = slave;
    }
    public static void main(String[] args) {
        ArrayList<Integer> staNos = staNos1;
        System.out.println(staNos.indexOf(129));
        System.out.println(staNos.size());
        for (int i = 0; i < staNos.size(); i++) {
//            System.out.println(i*2);
//            System.out.println(i*2 + 200);
//            System.out.println(i);
        }
        int index = staNos.indexOf(128);
        System.out.println(index * 2);
        System.out.println(index * 2 + 200);
    }
    private ArrayList<Integer> getStaNo() {
        switch (slave.getId()) {
@@ -586,25 +572,5 @@
        siemensS7Net.ConnectClose();
    }
//    public static void main(String[] args) throws Exception {
//        DevpSlave slave = new DevpSlave();
//        slave.setIp("192.168.2.125");
//        SiemensDevpThread devpThread = new SiemensDevpThread(slave);
//        devpThread.connect();
//        devpThread.read();
//        // 写
//        StaProtocol staProtocol = devpThread.getStation().get(1);
//        staProtocol.setWorkNo((short) 232);
//        staProtocol.setStaNo((short) 6);
//        staProtocol.setAutoing(true);
//        staProtocol.setEmptyMk(true);
//        staProtocol.setInEnable(true);
//        devpThread.write(staProtocol);
//        System.out.println("----------------------------------------");
//        // 读
//        devpThread.read();
//        System.out.println(JSON.toJSONString(devpThread.station));
//
//    }
}
src/main/resources/application.yml
@@ -60,3 +60,9 @@
  successCode: 200
  msg: msg
  data: data
loc-move:
  enable: false
  crn1: false
  crn2: false
  crn3: false
  crn4: false
src/main/resources/mapper/TransferTaskMapper.xml
@@ -4,4 +4,12 @@
    <select id="selectByStartPoint" resultType="com.zy.asrs.entity.TransferTask">
        select top 1 * from wcs_transfer_task where start_point = #{startPoint} and  status = 1
    </select>
    <select id="selectByEndPoint" resultType="com.zy.asrs.entity.TransferTask">
        select top 1 * from wcs_transfer_task where targetPoint = #{endPoint} and  status = 2
    </select>
</mapper>