#
lsh
2024-03-21 b9927bd58cdc940069c7640f3cc04a60dd37ef87
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,6 +8,7 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CarryParam;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.TaskCreateParam;
@@ -78,9 +79,11 @@
    //创建任务
    @PostMapping("/taskCreate")
    public R taskCreate(@RequestHeader String appkey,
                          @RequestBody TaskCreateParam param,
                          @RequestBody List<TaskCreateParam> param1,
                          HttpServletRequest request) {
        auth(appkey, param, request);
        auth(appkey, param1, request);
        for (TaskCreateParam param : param1
             ) {
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
@@ -93,7 +96,21 @@
        if (Cools.isEmpty(param.getBarcode())) {
            return R.error("条码[barcode]不能为空");
        }
        String locNo=null;
        if(param.getIoType()==1){
            locNo=param.getTargetPoint();
        }else{
            locNo=param.getStartPoint();
        }
        LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
                .eq("loc_sts","F")
                .eq("loc_no",locNo)
                .eq("barcode",param.getBarcode()));
        if(Cools.isEmpty(locMast)){
            return R.error("该库位不满足出库条件"+param.getTargetPoint());
        }
        openService.taskCreate(param);
        }
        return R.ok();
    }
@@ -108,6 +125,44 @@
            return R.error("任务不存在");
        }
        return R.ok().add(taskWrk);
    }
    //取放货申请
    @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.getStaNo())){
            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.getStaNo())){
            return R.error("码头[staNo]不能为空");
        }
        if (Cools.isEmpty(param.getType())){
            return R.error("类型[type]不能为空");
        }
        return openService.getAgvPickAndPlaceV2(param);
    }
    //查询任务指令集合
@@ -234,25 +289,20 @@
    @PostMapping("/outboundTaskSend")
    @Transactional
    public R outboundTaskSend(@RequestHeader String appkey,
                              @RequestBody List<WMSAndAGVInterfaceParam> params,
                              @RequestBody List<CarryParam> params,
                              HttpServletRequest request) {
        auth(appkey, params, request);
        //auth(appkey, params, request);
        List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>();
        for (WMSAndAGVInterfaceParam param:params){
        for (CarryParam param:params){
            if (Cools.isEmpty(param)){
                return R.error("参数为空!");
            } else if (Cools.isEmpty(param.getTaskNo())){
                return R.error("任务号为空!");
            } else if (Cools.isEmpty(param.getTaskType())){
            } else if (Cools.isEmpty(param.getIoType())){
                return R.error("任务类型为空!");
            } else if (Cools.isEmpty(param.getWarehouseId())){
                return R.error("仓库标识为空!");
            }
            if (Cools.isEmpty(param.getTaskPriority())){
                param.setTaskPriority(1);
            }
            if (Cools.isEmpty(param.getSourceLocationCode()) || Cools.isEmpty(param.getTargetLocationCode())){
            if (Cools.isEmpty(param.getStartPoint()) || Cools.isEmpty(param.getTargetPoint())){
                return R.error("初始目标或者目标位为空");
            }
//            if (Cools.isEmpty(param.getContainerCode())){
@@ -267,50 +317,27 @@
//                }
//            }
            LocMast locMast = locMastService.selectByLocNo(param.getSourceLocationCode());
            LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
            if(Cools.isEmpty(locMast)){
                return R.error("初始库位无法找到");
            }
            Integer ioType = TaskCreateParam.convertParamIoType(param.getTaskType());
            if(ioType == 2){
            R r = null;
            if(param.getIoType() == 2){
                //出库任务创建
                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("type_no",2)
                        .eq("crn_no",locMast.getCrnNo())
                        .eq("stn_no",param.getTargetLocationCode()));
                        .eq("stn_no",param.getTargetPoint()));
                if(Cools.isEmpty(staDesc)){
                    return R.error("出库路劲不存在");
                }
                param.setTargetLocationCode(staDesc.getStnNo().toString());
                R r = openService.taskCreate(new TaskCreateParam(param));
            }else if (ioType == 3){
                r = openService.taskCreate(new TaskCreateParam(param,staDesc.getCrnNo()));
            }else if (param.getIoType() == 3){
                //移库任务创建
                r = openService.taskCreate(new TaskCreateParam(param,locMast.getCrnNo()));
            }
//            if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("J")){
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",200));
//            }else if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("H")){
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",400)
//                        .gt("stn_no",200));
//            }else {
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",500)
//                        .ge("stn_no",400));
//            }
            //param.setTargetLocationCode(staDesc.getStnNo().toString());
            R r = openService.taskCreate(new TaskCreateParam(param));
            apiLogService.save("Wms任务下发接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
@@ -336,35 +363,29 @@
            return R.error("参数为空!");
        } else if (Cools.isEmpty(param.getTaskNo())){
            return R.error("工作号为空!");
        } else if (Cools.isEmpty(param.getTaskStatus())){
        } else if (Cools.isEmpty(param.getIoType())){
            return R.error("操作类型为空!");
        } else if (Cools.isEmpty(param.getBarcode())){
            return R.error("托盘码不能为空!");
        }
//        else if (Cools.isEmpty(param.getWarehouseId())){
//            return R.error("仓库标识为空!");
//        }
        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", param.getTaskNo()));
        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()
                .eq("task_no", param.getTaskNo())
                .eq("io_type",param.getIoType())
                .eq("barcode",param.getBarcode()));
        if (Cools.isEmpty(taskWrk)){
            return R.error("未查到当前任务");
            return R.error("未查到当前任务---"+param);
        }
        boolean sign =false;
        switch (param.getTaskStatus()){
            case 1://正常取消
                if (taskWrk.getWrkSts()>1){
                if (taskWrk.getStatus()>1){
                    return R.error("任务已开始执行");
                }
            case 2://强制取消
                if (taskWrk.getWrkSts()>3){
                    return R.error("任务已执行完成");
                }
                break;
            case 3://正常完成
                if (taskWrk.getWrkSts()>11){
            case 2://正常完成
                if (taskWrk.getStatus()>1){
                    return R.error("任务已开始执行");
                }
            case 4://强制完成
                if (taskWrk.getWrkSts()>14){
                    return R.error("任务已执行完成");
                }
                sign=true;
                break;
@@ -394,27 +415,13 @@
                              HttpServletRequest request) {
        auth(appkey, "设备状态查询接口", request);
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
        List<Map<String, Object>> list = new ArrayList<>();
        List<Object> list = new ArrayList<>();
        for (BasDevp basDevp:basDevps){
            Map<String, Object> map = new HashMap<>();
            map.put("devNo", basDevp.getDevNo());
            map.put("devType", "输送线");
            map.put("devStatus", basDevp.getAutoing().equals("Y")? 1:0);
            map.put("errorCode", 0);
            map.put("errorMsg", "");
            map.put("newDate",new Date());
            list.add(map);
            list.add(basDevp);
        }
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
        for (BasCrnp basCrnp:basCrnps){
            Map<String, Object> map = new HashMap<>();
            map.put("devNo", basCrnp.getCrnNo());
            map.put("devType", "堆垛机");
            map.put("devStatus", basCrnp.getCrnSts());
            map.put("errorCode", 0);
            map.put("errorMsg", "");
            map.put("newDate",new Date());
            list.add(map);
            list.add(basCrnp);
        }
        return R.ok(list);
    }