自动化立体仓库 - WCS系统
123
ZY
3 天以前 364b9ccc44bc6863280c5cc00aa8512cfff548d4
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,9 +8,11 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.param.CrnStatusParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -168,125 +170,6 @@
    }
    //取放货申请
    @PostMapping("/pick/and/place/v1")
    @AppAuth(memo = "agv取放货申请")
    public R getAgvPickAndPlaceV1(@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("码头[staNo]不能为空");
        }
        if (Cools.isEmpty(param.getType())) {
            return R.error("类型[type]不能为空");
        }
        return openService.getAgvPickAndPlaceV1(param);
    }
    //取放货完成反馈
    @PostMapping("/pick/and/place/v2")
    @AppAuth(memo = "agv取放货完成反馈")
    public R getAgvPickAndPlaceV2(@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("码头[staNo]不能为空");
        }
        if (Cools.isEmpty(param.getType())) {
            return R.error("类型[type]不能为空");
        }
        return openService.getAgvPickAndPlaceV2(param);
    }
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
        request.setAttribute("cache", obj);
        if (Cools.isEmpty(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
        if (!APP_KEY_LIST.contains(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
    }
    //任务下发接口
    @PostMapping("/outboundTaskSend")
    @Transactional
    public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) {
        HashMap<String, Object> map = new HashMap<>();
        for (CarryParam param : params) {
            if (Cools.isEmpty(param)) {
                map.put("Code", "0");
                map.put("Msg", "参数为空!");
                return map;
            } else if (Cools.isEmpty(param.getTaskNo())) {
                map.put("Code", "0");
                map.put("Msg", "任务号为空!");
                return map;
            } else if (Cools.isEmpty(param.getStereoscopicTaskType())) {
                map.put("Code", "0");
                map.put("Msg", "任务类型为空!");
                return map;
            }
            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
            param.setStartPoint(fusion);
            LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
            if (Cools.isEmpty(locMast)) {
                map.put("Code", "0");
                map.put("Msg", "初始库位无法找到!");
                return map;
            }
            HashMap<String, Object> r = new HashMap<>();
            if (param.getStereoscopicTaskType() == 2) {
                //出库任务创建
                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("type_no", 2)
                        .eq("crn_no", locMast.getCrnNo())
                        .eq("stn_no", param.getTerminalNo()));
                if (Cools.isEmpty(staDesc)) {
                    map.put("Code", "0");
                    map.put("Msg", "出库路径不存在!");
                    return map;
                }
                r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
                if (r.get("Code").equals("0")) {
                    return r;
                }
            } else if (param.getStereoscopicTaskType() == 3) {
                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
                param.setTerminalNo(fusion1);
                //移库任务创建
                r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo()));
                if (r.get("Code").equals("0")) {
                    return r;
                }
            }
            apiLogService.save("Wms任务下发接口"
                    , request.getRemoteAddr() + request.getRequestURI()
                    , ""
                    , request.getRemoteAddr()
                    , JSON.toJSONString(param)
                    , r.toString()
                    , true
            );
        }
        map.put("Code", "1");
        map.put("Msg", "ok");
        return map;
    }
    //任务取消接口
    @PostMapping("/taskCancel")
    public R taskCancel(@RequestHeader String appkey,
@@ -364,6 +247,55 @@
        return R.ok(crnStatusParams);
    }
    //取放货申请
    @PostMapping("/pick/and/place/v1")
    @AppAuth(memo = "agv取放货申请")
    public R getAgvPickAndPlaceV1(@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("码头[staNo]不能为空");
        }
        if (Cools.isEmpty(param.getType())) {
            return R.error("类型[type]不能为空");
        }
        return openService.getAgvPickAndPlaceV1(param);
    }
    //取放货完成反馈
    @PostMapping("/pick/and/place/v2")
    @AppAuth(memo = "agv取放货完成反馈")
    public R getAgvPickAndPlaceV2(@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("码头[staNo]不能为空");
        }
        if (Cools.isEmpty(param.getType())) {
            return R.error("类型[type]不能为空");
        }
        return openService.getAgvPickAndPlaceV2(param);
    }
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
        request.setAttribute("cache", obj);
        if (Cools.isEmpty(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
        if (!APP_KEY_LIST.contains(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
    }
    //查询任务详情
    @GetMapping("/queryTask")
@@ -394,6 +326,74 @@
    }
    //任务下发接口
//    @PostMapping("/outboundTaskSend")
//    @Transactional
//    public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) {
//        HashMap<String, Object> map = new HashMap<>();
//        for (CarryParam param : params) {
//            if (Cools.isEmpty(param)) {
//                map.put("Code", "0");
//                map.put("Msg", "参数为空!");
//                return map;
//            } else if (Cools.isEmpty(param.getTaskNo())) {
//                map.put("Code", "0");
//                map.put("Msg", "任务号为空!");
//                return map;
//            } else if (Cools.isEmpty(param.getStereoscopicTaskType())) {
//                map.put("Code", "0");
//                map.put("Msg", "任务类型为空!");
//                return map;
//            }
//            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
//            param.setStartPoint(fusion);
//            LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
//            if (Cools.isEmpty(locMast)) {
//                map.put("Code", "0");
//                map.put("Msg", "初始库位无法找到!");
//                return map;
//            }
//
//            HashMap<String, Object> r = new HashMap<>();
//
//            if (param.getStereoscopicTaskType() == 2) {
//                //出库任务创建
//                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("type_no", 2)
//                        .eq("crn_no", locMast.getCrnNo())
//                        .eq("stn_no", param.getTerminalNo()));
//                if (Cools.isEmpty(staDesc)) {
//                    map.put("Code", "0");
//                    map.put("Msg", "出库路径不存在!");
//                    return map;
//                }
//                r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
//                if (r.get("Code").equals("0")) {
//                    return r;
//                }
//            } else if (param.getStereoscopicTaskType() == 3) {
//                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
//                param.setTerminalNo(fusion1);
//                //移库任务创建
//                r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo()));
//                if (r.get("Code").equals("0")) {
//                    return r;
//                }
//            }
//            apiLogService.save("Wms任务下发接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , ""
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , r.toString()
//                    , true
//            );
//        }
//        map.put("Code", "1");
//        map.put("Msg", "ok");
//        return map;
//    }
    //AGV请求入库码头接口
//    @PostMapping("/targetWharfApply")
//    @AppAuth(memo = "AGV请求入库码头接口")