自动化立体仓库 - WMS系统
123
zhang
3 天以前 21d0e7ab9d5c7316225a3e9eecf465cd37c9bd85
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -1,6 +1,9 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
@@ -10,6 +13,7 @@
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.model.WrkDto;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,17 +51,41 @@
    private BasDevpService basDevpService;
    @Autowired
    private PackService packService;
    @Autowired
    private WaitPakinService waitPakinService;
    // 拣料检索托盘信息
    @RequestMapping("/piking/auth")
    @ManagerAuth
    public R pikingAuth(String barcode) {
        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
        if (Cools.isEmpty(wrkMast)) {
            throw new CoolException(barcode + "暂无工作档");
        }
        if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107){
            throw new CoolException(barcode + "不为拣料/盘点出库");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        return R.ok().add(wrkDetls);
    }
    // 组托前查询托盘码是否已经组托
    @RequestMapping("/barcode/auth")
    @ManagerAuth
    public R pakinAuth(@RequestParam("barcode") String barcode) {
        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
        if (!Cools.isEmpty(waitPakin)) {
            return R.error("入库通知档已存在!");
        }
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("barcode",barcode));
        if (!Cools.isEmpty(locMast)) {
            return R.error("库存主档中已存在当前条码!");
        }
        LocDetl locdetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("barcode", barcode));
        if (!Cools.isEmpty(locdetl)){
            return R.error("库存明细中已存在当前条码,请检查库存");
        }
        return R.ok();
    }
    // 拣料转全板
@@ -76,8 +104,8 @@
        Date now = new Date();
        List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo());
        wrkMast.setIoType(101);
        wrkMast.setSourceStaNo(wrkMast.getStaNo());
        wrkMast.setStaNo(200);
//        wrkMast.setSourceStaNo(wrkMast.getStaNo());
//        wrkMast.setStaNo(200);
        wrkMastService.updateById(wrkMast);
        wrkDetlService.deleteByWrkNo(wrkMast.getWrkNo());
@@ -85,6 +113,8 @@
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setModiTime(now);
            wrkDetl.setMatType(locDetl.getMatType());
            wrkDetl.setOwner(locDetl.getOwner());
            wrkDetl.sync(locDetl);
            wrkDetlService.insert(wrkDetl);
@@ -134,6 +164,13 @@
    public R comb(@RequestBody CombParam combParam){
        mobileService.comb(combParam, getUserId());
        return R.ok("组托成功");
    }
    @RequestMapping("/comb/2auth")
    @ManagerAuth(memo = "组托")
    public R comb2(@RequestBody CombParam combParam){
        mobileService.pikingToFull2(1);
        return R.ok(mobileService.pikingToFull2(3732));
    }
    @RequestMapping("/pack/get/auth")
@@ -238,6 +275,7 @@
                wrkDetl.setOrderNo(orderNo);
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setWrkNo(wrkNo);
                wrkDetl.setMatType(locDetl.getMatType());
                return R.ok().add(wrkDetl);
            }
        }
@@ -345,7 +383,7 @@
    @ManagerAuth
    public R getCheckDetl2(String barcode) {
        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
        if(Cools.isEmpty()){
        if(Cools.isEmpty(wrkMast)){
            throw new CoolException("此托盘码没有盘点任务");
        }
        if (wrkMast.getIoType() != 107){
@@ -364,10 +402,79 @@
    @RequestMapping("/adjustNew/auth")
    @ManagerAuth(memo = "盘点")
    public R adjustNew(@RequestBody MobileAdjustParam combParam){
        mobileService.adjustNew(combParam, getUserId());
    public synchronized R adjustNew(@RequestBody MobileAdjustParam combParam){
        mobileService.adjustNew(combParam, Boolean.FALSE, getUserId());
        return R.ok("盘点成功");
    }
    @RequestMapping("/adjustNew/v2/auth")
    @ManagerAuth(memo = "补货")
    public synchronized R adjustNewV2(@RequestBody MobileAdjustParam combParam){
        mobileService.adjustNew(combParam, Boolean.TRUE, getUserId());
        return R.ok("补货成功");
    }
    @RequestMapping("/pick/auth")
    @ManagerAuth(memo = "拣料")
    public synchronized R pickAuth(@RequestBody String barcode){
        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
        ArrayList<WrkDetl> resultwrkDetls = new ArrayList<>();
        for (WrkDetl wrkDetl : wrkDetls) {
            if (isJSON(wrkDetl.getOrderNo())) {
                JSON.parseArray(wrkDetl.getOrderNo(), DetlDto.class).forEach(detlDto -> {
                    WrkDetl clone = wrkDetl.clone();
                    clone.setOrderNo(detlDto.getOrderNo());
                    clone.setAnfme(detlDto.getAnfme());
                    resultwrkDetls.add(clone);
                });
            } else {
                resultwrkDetls.add(wrkDetl);
            }
        }
        return R.ok().add(resultwrkDetls);
    }
    @RequestMapping("/order/search/orderNo/auth/v2")
    @ManagerAuth
    public R orderSearchByBarcodeV2(@RequestParam String orderNo){
        if (Cools.isEmpty(orderNo)){
            orderNo=null;
        }
        List<Order> orders = orderService.selectOrderNoL(orderNo);
        if (Cools.isEmpty(orders)){
            return R.ok();
        }
        LinkedList<CombParam> combParams = new LinkedList<>();
        if (!Cools.isEmpty(orders)){
            for (Order order:orders){
                CombParam combParam=new CombParam();
                if (order == null) {
                    continue;
                }
                DocType docType = docTypeService.selectById(order.getDocType());
                if (docType.getPakin() == null || docType.getPakin() != 1) {
                    continue;
                }
                if (order.getSettle() > 2) {
                    continue;
                }
                List<OrderDetl> orderDetls = orderService.selectWorkingDetls(order.getId());
                if (!Cools.isEmpty(orderDetls)) {
                    LinkedList<CombParam.CombMat> combMats = new LinkedList<>();
                    for (OrderDetl orderDetl:orderDetls){
                        CombParam.CombMat combMat = new CombParam.CombMat();
                        combMat.setMatnr(orderDetl.getMatnr());
                        combMat.setBatch(orderDetl.getBatch());
                        combMat.setAnfme(orderDetl.getAnfme());
                        combMats.add(combMat);
                    }
                    combParam.setCombMats(combMats);
                }
                combParam.setOrderNo(order.getOrderNo());
                combParams.add(combParam);
            }
        }
        return R.ok().add(combParams);
    }
}