pjb
2025-03-08 83b51a5a0774ea8ecb9a06304af3b956a21307c8
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java
@@ -1,31 +1,27 @@
package com.zy.asrs.wms.asrs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.domain.CodeRes;
import com.zy.asrs.common.domain.enums.LoginSystemType;
import com.zy.asrs.framework.annotations.ManagerAuth;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.asrs.entity.Loc;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.CacheSite;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.entity.WaitPakin;
import com.zy.asrs.wms.asrs.entity.dto.OrderInfoDto;
import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
import com.zy.asrs.wms.asrs.entity.param.BatchMergeOrdersParam;
import com.zy.asrs.wms.asrs.entity.param.PageRequest;
import com.zy.asrs.wms.asrs.entity.param.PakinOnShelvesParams;
import com.zy.asrs.wms.asrs.service.MobileService;
import com.zy.asrs.wms.asrs.service.OrderService;
import com.zy.asrs.wms.asrs.service.WaitPakinService;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.system.controller.BaseController;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserLoginService;
import com.zy.asrs.wms.system.service.UserService;
import io.jsonwebtoken.lang.Collections;
@@ -33,7 +29,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import sun.nio.ch.IOStatus;
import java.util.*;
@@ -71,10 +66,17 @@
     */
    @PostMapping("/mat/auth")
    public R getProductForBarcode(@RequestBody Map<String, String> barcode) {
        if (Objects.isNull(barcode)) {
            return  R.error("参数不能为空!!");
        }
        if (StringUtil.isNullOrEmpty(barcode.get("barcode"))) {
            return  R.error("条码不能为空!!");
        }
        Order order =  orderService.selectByBarcode(barcode.get("barcode"));
        if (Objects.isNull(order)) {
            return R.error("订单不存在!");
        }
        List<OrderInfoDto> orders = orderService.getDetlForOrderId(order.getId());
@@ -82,6 +84,7 @@
    }
    /**
     * 平库上架
     * PDA扫码入库
     * 1. 绑定库位号与拖盘码
     * 2. 库位置为在库状态
@@ -105,7 +108,7 @@
    }
    /**
     * 获取拖码盘绑定商品
     * 获取拖盘码绑定商品
     * @return
     */
    @GetMapping("/barcode/matnr/{code}")
@@ -113,7 +116,14 @@
        if (StringUtil.isNullOrEmpty(code)) {
            return R.error("托盘码不能为空!!");
        }
        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, code).eq(WaitPakin::getIoStatus, 0));
        String str = code.trim();
        // CUT库条码T开头,截取后10位
        if (str.charAt(0) == 'T') {
            code = str.substring(str.length() - 10);
        }
        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, code));
        return R.ok(waitPakins);
    }
@@ -176,6 +186,12 @@
            return R.error("订单明细不能为空!!");
        }
        String str = ordersParam.getMergeNo().trim();
        // CUT库条码T开头,截取后10位
        if (str.charAt(0) == 'T') {
            ordersParam.setMergeNo(str.substring(str.length() - 10));
        }
       boolean result = mobileService.batchMergeOrders(ordersParam);
        if (result) {
            return R.ok("组托成功!!");
@@ -215,6 +231,71 @@
    }
    /**
     * 获取播种位
     * @return
     */
    @GetMapping("/pick/seed/locs")
    public R seedLocs() {
        List<CacheSite> sites = mobileService.getSeedLocs();
        return R.ok(sites);
    }
    /**
     * 订单绑定站点
     * @param param
     * @return
     */
    @PostMapping("/pick/seed/bind")
    public R bindLoc(@RequestBody Map<String, Object> param) {
        if (Objects.isNull(param)) {
            throw new CoolException("请求参数不能为空!!");
        }
        if (Objects.isNull(param.get("barcode"))) {
            throw new CoolException("播种墙容器编码不能为空");
        }
        if (Objects.isNull(param.get("orderNo"))) {
            throw new CoolException("订单编号不能为空!!");
        }
        if (Objects.isNull(param.get("siteNo"))) {
            throw new CoolException("播种站点不能为空!!");
        }
        if (Objects.isNull(param.get("type"))) {
            throw new CoolException("参数类型不能为空!!");
        }
       boolean result =  mobileService.bindOrderBySite(param);
        if (result) {
            return R.ok("绑定成功!!");
        } else {
            return R.error("绑定失败!!");
        }
    }
    /**
     * 获取发货订单明细
     * @return
     */
    @PostMapping("/shipping/order/detl")
    public R  getOrderDetl(@RequestBody Map<String, Object> params) {
        if (Objects.isNull(params)) {
            throw new CoolException("参数不能为空!!");
        }
        return mobileService.selectShippingDetl(params);
    }
    /**
     * 确认发货单明细
     * @return
     */
    @PostMapping("/shipping/confirm")
    public R confirmShipping(@RequestBody List<ShippingOrderDetlDto> params) {
        if (params.isEmpty()) {
            throw new CoolException("发货单明细不能为空!!");
        }
        return mobileService.confirmShippingDetl(params);
    }
}