自动化立体仓库 - WMS系统
1
zhangc
2025-02-25 4dca5d65e2518f019ce25c805827211e0509598f
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -1,6 +1,5 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -8,7 +7,11 @@
import com.core.common.Cools;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.constant.AsrsConstants;
import com.zy.asrs.entity.AgvLocDetl;
import com.zy.asrs.entity.AgvLocMast;
import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.AgvLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -56,10 +59,10 @@
        long flowId = snowflakeIdWorker.nextId();
        agvWrkDetls.stream().map(agvWrkDetl -> {
            AgvLocDetl agvLocDetl = new AgvLocDetl();
            log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            //log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
            agvLocDetl.setLocNo(locNo);
            log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
            //log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
            this.insert(agvLocDetl);
            // 流水 -- 新增订单明细
            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode());
@@ -97,17 +100,27 @@
        //根据物料号和批次找到对应的库存,并且按照修改时间排序
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time");
        if (type != null) {
            wrapper.notLike("loc_no", "F1");
            if (type.equals(AsrsConstants.ERCHANG)) {
                wrapper.notLike("loc_no", "F3");
            } else {
                if (matnr.startsWith("401") || matnr.startsWith("402")) {
                    //wrapper.notLike("loc_no", "F3");
                } else {
                    wrapper.notLike("loc_no", "F1");
                }
            }
        }
        wapperSetCondition(wrapper, "batch", batch);
        //一直有PE带批次字段导致,无法出库,就注释掉
        //wapperSetCondition(wrapper, "batch", batch);
        wapperSetCondition(wrapper, "three_code", csocode);
        wapperSetCondition(wrapper, "dead_time", isoseq);
        //wapperSetCondition(wrapper, "dead_time", isoseq);
        if ("JG".equals(orderNo.substring(0, 2))) {
            wapperSetCondition(wrapper, "process_sts", "1");
        }
        List<AgvLocDetl> agvLocDetls = this.selectList(wrapper);
        for (AgvLocDetl agvLocDetl : agvLocDetls) {
            //判断当前库位货物是否F在库
@@ -133,7 +146,39 @@
                //当前库位所处楼层
                int floor = Integer.parseInt(agvLocDetl.getLocNo().split("F")[1]);
                //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor));
                locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1(), floor));
                //四期
                //locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1(), floor));
                List<String> strings = agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1());
                List<String> agvStaNos = new ArrayList<>();
                if (agvLocDetl.getLocNo().contains("01F1")) {
                    for (String string : strings) {
                        if (string.contains("F1") || string.contains("F4")) {
                            agvStaNos.add(string);
                        }
                    }
                } else if (agvLocDetl.getLocNo().contains("02F1")) {
                    for (String string : strings) {
                        if (string.contains("F1") || string.contains("F4")) {
                            agvStaNos.add(string);
                        }
                    }
                } else if (agvLocDetl.getLocNo().contains("F2")) {
                    for (String string : strings) {
                        if (string.contains("F2") || string.contains("F4")) {
                            agvStaNos.add(string);
                        }
                    }
                } else if (agvLocDetl.getLocNo().contains("F3")) {
                    for (String string : strings) {
                        if (string.contains("F3")) {
                            agvStaNos.add(string);
                        }
                    }
                } else {
                    agvStaNos = strings;
                }
                locDto.setAgvStaNos(agvStaNos);
                locDtoList.add(locDto);
                issued -= anfme;
@@ -143,6 +188,7 @@
        return issued;
    }
    /*
    更新库存明细
@@ -178,6 +224,11 @@
    }
    @Override
    public Double getSumAnfmeProcessed2(String matnr, String threeCode) {
        return this.baseMapper.selectSumAnfmeByMatnrProcessed2(matnr, threeCode);
    }
    @Override
    public Double getSumAnfmeDb(String matnr, String threeCode, Integer floor) {
        return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, floor);
    }