#
Junjie
2025-04-29 f112defecc6b74d633c65181302f34469a2977d1
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -92,64 +92,71 @@
    @PostMapping("/taskCreate")
    @Transactional
    public R taskCreate(@RequestHeader String appkey,
                          @RequestBody List<TaskCreateParam> param1,
                          @RequestBody TaskCreateParam param,
                          HttpServletRequest request) {
        auth(appkey, param1, request);
        auth(appkey, param, request);
        R result = null;
        try{
            List<TaskCreateParam> paramList = new ArrayList<>();
            List<String> locNoList = new ArrayList<>();
            for (TaskCreateParam param : param1) {
                if (Cools.isEmpty(param)) {
                    return R.parse(BaseRes.PARAM);
                }
                if (Cools.isEmpty(param.getTaskNo())) {
                    return R.error("任务号[taskNo]不能为空");
                }
                if (Cools.isEmpty(param.getIoType())) {
                    return R.error("任务类型[ioType]不能为空");
                }
                if (Cools.isEmpty(param.getBarcode())) {
                    return R.error("条码[barcode]不能为空");
                }
                String locNo=null;
                if (param.getIoType() == 1) {
                    locNo = param.getTargetPoint();
                } else {
                    locNo = param.getStartPoint();
                }
                try {
                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                            .eq("loc_no", locNo).ne("loc_sts", "X"));
                    if (Cools.isEmpty(locMast)) {
                        log.error("库位号不存在" + locNo);
                        return R.error("库位号不存在" + locNo).add("库位号不存在" + locNo);
                    }
                } catch (Exception e) {
                    log.error("库位号检测程序异常==》异常信息" + e);
                    return R.error("库位号检测程序异常").add("库位号检测程序异常==》异常信息" + e);
                }
            if (Cools.isEmpty(param)) {
                result = R.parse(BaseRes.PARAM);
                return result;
            }
            if (Cools.isEmpty(param.getTaskNo())) {
                result = R.error("任务号[taskNo]不能为空");
                return result;
            }
            if (Cools.isEmpty(param.getIoType())) {
                result = R.error("任务类型[ioType]不能为空");
                return result;
            }
            if (Cools.isEmpty(param.getBarcode())) {
                result = R.error("条码[barcode]不能为空");
                return result;
            }
            String locNo=null;
            if (param.getIoType() == 1) {
                locNo = param.getTargetPoint();
            } else {
                locNo = param.getStartPoint();
            }
            try {
                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());
                        .eq("loc_no", locNo).ne("loc_sts", "X"));
                if (Cools.isEmpty(locMast)) {
                    log.error("库位号不存在" + locNo);
                    result = R.error("库位号不存在" + locNo).add("库位号不存在" + locNo);
                    return result;
                }
                if (!locNoList.contains(locMast.getLocNo())){
                    locNoList.add(locMast.getLocNo());
                    paramList.add(param);
                }else {
                    return R.error("该库位不能同时下发两笔任务" + locMast.getLocNo());
                }
            } catch (Exception e) {
                log.error("库位号检测程序异常==》异常信息" + e);
                result = R.error("库位号检测程序异常").add("库位号检测程序异常==》异常信息" + e);
                return result;
            }
            for (TaskCreateParam param : paramList){
                openService.taskCreate(param);
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("loc_no", locNo)
                    .eq("barcode", param.getBarcode()));
            if(Cools.isEmpty(locMast)){
                result = R.error("该库位不满足出库条件" + locMast.getLocNo());
                return result;
            }
            result = openService.taskCreate(param);
            return result;
        }catch (Exception e){
            log.error("任务下发异常"+e);
            log.error("任务下发异常" + e);
            return R.error();
        }finally {
            apiLogService.save("wms任务下发接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
                    ,""
                    ,request.getRemoteAddr()
                    ,JSON.toJSONString(param)
                    ,JSON.toJSONString(result)
                    ,true
            );
        }
        return R.ok();
    }
    //创建入库任务
@@ -266,40 +273,61 @@
                               @RequestBody TaskCancelParam param,
                               HttpServletRequest request) {
        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.getIoType())) {
            return R.error("操作类型为空!");
        } else if (Cools.isEmpty(param.getBarcode())) {
            return R.error("托盘码不能为空!");
        }
        R result = null;
        try {
            if (Cools.isEmpty(param)) {
                return R.error("参数为空!");
            } else if (Cools.isEmpty(param.getTaskNo())) {
                return R.error("工作号为空!");
            } else if (Cools.isEmpty(param.getIoType())) {
                return R.error("操作类型为空!");
            } else if (Cools.isEmpty(param.getBarcode())) {
                return R.error("托盘码不能为空!");
            }
        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("未查到当前任务---" + param);
            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)){
                result =  R.error("未查到当前任务---" + param);
                return result;
            }
            boolean sign =false;
            switch (param.getTaskStatus()) {
                case 1://正常取消
                    if (taskWrk.getStatus() > 1) {
                        result = R.error("任务已开始执行");
                        return result;
                    }
                    break;
                case 2://正常完成
                    if (taskWrk.getStatus() > 1) {
                        result = R.error("任务已开始执行");
                        return result;
                    }
                    sign = true;
                    break;
                default:
                    result = R.error("未知操作");
                    return result;
            }
            result = taskWrkOperate(taskWrk, sign);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            result = R.error(e.getMessage());
            return R.error(e.getMessage());
        }finally {
            apiLogService.save("wms任务下发接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
                    ,""
                    ,request.getRemoteAddr()
                    ,JSON.toJSONString(param)
                    ,JSON.toJSONString(result)
                    ,true
            );
        }
        boolean sign =false;
        switch (param.getTaskStatus()) {
            case 1://正常取消
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                break;
            case 2://正常完成
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                sign = true;
                break;
            default:
                return R.error("未知操作");
        }
        return taskWrkOperate(taskWrk, sign);
    }
    //任务操作
@@ -459,7 +487,6 @@
        }
        log.info("入库请求参数=" + JSON.toJSONString(barcode));
        log.info("入库请求返回参数=" + JSON.toJSONString(response));
        return R.error();
        return R.ok();
    }
}