自动化立体仓库 - WMS系统
#
whycq
2024-09-03 e84b6c48322a84e1e1404a39f6bab8568a4cdd09
#
4个文件已修改
121 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvMobileController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -697,6 +697,7 @@
        return R.ok();
    }
    public static void main(String[] args) {
        List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
        List<AgvLocDetl> agvLocDetls2 = new ArrayList<>();
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -8,11 +8,13 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.AgvMobileStartPakin;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.entity.result.WrkTraceVo;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter;
@@ -54,6 +56,26 @@
    private MatService matService;
    @Autowired
    private AgvLocDetlService agvLocDetlService;
    @GetMapping("/doc/type/list")
    @Transactional
    @ManagerAuth(memo = "单据类型")
    @Synchronized
    public R docTypeList(){
        List<DocType> result = new ArrayList<>();
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
        List<Long> unDocIds = new ArrayList<>();
        unDocIds.add(19L);
        unDocIds.add(30L);
        unDocIds.add(32L);
        unDocIds.add(36L);
        for (DocType pakin : pakins) {
            if (!unDocIds.contains(pakin.getDocId())) {
                result.add(pakin);
            }
        }
        return R.ok().add(result);
    }
    @RequestMapping(value = "/order/nav/list/auth")
    @ManagerAuth
@@ -166,6 +188,46 @@
//        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/order/detls/pakin")
    @ManagerAuth
    public R orderDetlsIn(@RequestParam(defaultValue = "1")Integer curr,
                        @RequestParam(defaultValue = "100")Integer limit,
                        @RequestParam(required = false)String orderByField,
                        @RequestParam(required = false)String orderByType,
                        @RequestParam(required = false)Long docType,
                        @RequestParam Map<String, Object> param){
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        param.remove("docType");
        excludeTrash(param);
        convert(param, wrapper);
//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
        List<Long> docIds = new ArrayList<>();
        List<Long> unDocIds = new ArrayList<>();
        unDocIds.add(19L);
        unDocIds.add(30L);
        unDocIds.add(32L);
        unDocIds.add(36L);
        for (DocType pakin : pakins) {
            if (!unDocIds.contains(pakin.getDocId())) {
                docIds.add(pakin.getDocId());
            }
        }
        if (docIds.size() > 0) {
            if (docType > 0) {
                wrapper.in("source",docType);
            } else {
                wrapper.in("source",docIds);
            }
        } else {
            wrapper.in("source",0);
        }
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/order/wait/detls/pakin/page/auth")
    @ManagerAuth
    public R waitOrderDetls(@RequestParam(defaultValue = "1")Integer curr,
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -388,6 +388,20 @@
    public String handControlLocMove(LocMoveParam param, Long userId) {
        String fl = String.valueOf(param.getFloor());
        short floor =(short)Integer.parseInt(fl.substring(0, 1));
        switch (param.getFloor()) {
            case "1F01":
                floor = 1;
                break;
            case "1F02":
                floor = 4;
                break;
            case "2F":
                floor = 2;
                break;
            case "3F":
                floor = 3;
                break;
        }
        Integer ioType = 0;
        AgvLocMast agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", param.getLocNo()));
        if (Cools.isEmpty(agvLocMast)) {
@@ -405,17 +419,21 @@
            }
        } else {
            if (agvLocMast.getFloor() != floor) {
//                if (floor==1 && agvLocMast.getFloor()!=1){
//                    ioType = 121;
//                }else {
                    if (agvLocMast.getFloor() == 1) {
                        throw new CoolException("当前库位请选择调拨单调拨!");
                if (agvLocMast.getFloor() == 1 && (floor == 2 || floor == 3)) {
                    throw new CoolException("当前库位请选择调拨单调拨!");
                } else {
                    ioType = 12;
                }
            } else {
                if (agvLocMast.getFloor() == 1) {
                    if (agvLocMast.getLev1() == 1 && floor == 1) {
                        ioType = 11;
                    } else {
                        ioType = 12;
                    }
//                }
            } else {
                ioType = 11;
                } else {
                    ioType = 11;
                }
            }
        }
        Date now = new Date();
@@ -425,7 +443,21 @@
            throw new CoolException("当前"+agvLocMast.getBarcode()+"货架码已在工作档中");
        }
        //检索库位,选择合适的库位
        AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,false);
        AgvLocMast locMast = null;
        if (floor == 1) {
            locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,true,false);
        } else {
            locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,false);
        }
        // 目标楼层去 吸塑2楼
        if (floor == 4) {
            if (locMast.getLev1() == 1) {
                throw new CoolException("吸塑一楼没有空库位可以移库!");
            }
        }
        if (Cools.isEmpty(locMast)) {
            throw new CoolException("当前楼层没有空库位");
        }
@@ -480,7 +512,7 @@
        }
        // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单
        if (ioType == 12 && locMast.getFloor() == 1) {
        if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) {
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -842,9 +842,11 @@
                String targetLocNo = wrkMast.getLocNo();
                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
                agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
                // 源库位 库位主档
                AgvLocMast sourceLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
                AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
                // 当前任务是跨层移库  且目标楼层是1楼的 回滚调拨单
                if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) {
                if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1 && sourceLocMast.getFloor() != 1) {
                    List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
                    for (AgvLocDetl agvLocDetl : agvLocDetls) {
                        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
@@ -932,7 +934,7 @@
            }
            if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
            if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11){
                //订单回滚
                //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));