自动化立体仓库 - WMS系统
zhangc
2024-12-20 635417c5b06174b86488c317bb9023f89039eced
优化库位查找逻辑及AGV工作处理
3个文件已修改
170 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvMobileController.java 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/AgvCommonService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -140,6 +140,7 @@
        params.getCombParams().forEach(combParam -> {
            agvMobileService.comb(combParam, getUserId());
        });
        String csocode = params.getCombParams().get(0).getCombMats().get(0).getCsocode();
        params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2)));
        workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false);
@@ -201,15 +202,15 @@
        String matnr = params.get("matnr");
        String floor = params.get("floor");
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts",1);
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts", 1);
//        wrapper.eq("orderNo",orderNo);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code", threeCode);
        if (threeCode.substring(0,2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs","").eq("floor",1);
        if (threeCode.substring(0, 2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs", "").eq("floor", 1);
        }
        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper);
        List<AgvLocDetl> locDetls = new ArrayList<>();
@@ -219,10 +220,10 @@
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no", "F1"));
            } else {
                // 如果是加工单 只在 lev1 = 1 查库存
                if ("JG".equals(orderNo.substring(0,2))) {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1",1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                if ("JG".equals(orderNo.substring(0, 2))) {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1", 1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no", floor));
                } else {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no", floor));
                }
            }
@@ -240,31 +241,31 @@
    查询库存 入库订单与销售单号
     */
    @PostMapping("/query/locDetl/v3")
    public R queryAgvLocDetl3(@RequestBody HashMap<String,String> params){
    public R queryAgvLocDetl3(@RequestBody HashMap<String, String> params) {
        String orderNo = params.get("orderNo");
        String threeCode = params.get("threeCode");
        String matnr = params.get("matnr");
        String floor = params.get("floor");
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts",1);
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts", 1);
//        wrapper.eq("orderNo",orderNo);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code", threeCode);
        if (threeCode.substring(0,2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs","").eq("floor",1);
        if (threeCode.substring(0, 2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs", "").eq("floor", 1);
        }
        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper);
        List<AgvLocDetl> locDetls = new ArrayList<>();
        for (AgvLocDetl agvLocDetl : agvLocDetls) {
            AgvLocMast agvLocMast = new AgvLocMast();
            if (Cools.isEmpty(floor)) {
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no", "F1"));
            } else {
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no", floor));
            }
            if (Cools.isEmpty(agvLocMast)) continue;
@@ -281,7 +282,7 @@
    查询库存 入库订单与销售单号
     */
    @PostMapping("/query/locDetl/v2")
    public R queryAgvLocDetl2(@RequestBody HashMap<String,String> params){
    public R queryAgvLocDetl2(@RequestBody HashMap<String, String> params) {
        String orderNo = params.get("orderNo");
        String threeCode = params.get("threeCode");
@@ -294,23 +295,23 @@
//        wrapper.eq("orderNo",orderNo);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode);
        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code", threeCode);
        if (threeCode.substring(0,2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs","").eq("floor",1);
        if (threeCode.substring(0, 2).equals(30)) {
            wrapper.isNull("specs").or().eq("specs", "").eq("floor", 1);
        }
        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper);
        List<AgvLocDetl> locDetls = new ArrayList<>();
        for (AgvLocDetl agvLocDetl : agvLocDetls) {
            AgvLocMast agvLocMast = new AgvLocMast();
            if (Cools.isEmpty(floor)) {
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no", "F1"));
            } else {
                // 如果是加工单 只在 lev1 = 1 查库存
                if (orderDetl.getSource().equals(35)) {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1",1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1", 1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no", floor));
                } else {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no", floor));
                }
            }
@@ -330,7 +331,7 @@
    @PostMapping("/check/detl/v1")
    @ManagerAuth(memo = "库存盘点")
    @Synchronized
    public R checkLocDetl(@RequestBody HashMap<String,String> param){
    public R checkLocDetl(@RequestBody HashMap<String, String> param) {
        String locNo = param.get("locNo");
        String containerCode = param.get("containerCode");
@@ -338,16 +339,16 @@
        List<AgvLocDetl> listByLocNo = null;
        List<AgvLocDetl> listByContainerCode = null;
        if(!Cools.isEmpty(locNo)){
        if (!Cools.isEmpty(locNo)) {
            listByLocNo = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
        }
        if(!Cools.isEmpty(locNo)){
        if (!Cools.isEmpty(locNo)) {
            listByContainerCode = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("supp_code", containerCode));
        }
        Map<String,Object> result = new HashMap<String,Object>();
        result.put("locNo",listByLocNo);
        result.put("containerCode",listByContainerCode);
        Map<String, Object> result = new HashMap<String, Object>();
        result.put("locNo", listByLocNo);
        result.put("containerCode", listByContainerCode);
        return R.ok(result);
@@ -359,21 +360,21 @@
    @PostMapping("/update/detl/v1")
    @ManagerAuth(memo = "纠正库位")
    @Synchronized
    public R updateLocDetlLocNo(@RequestBody HashMap<String,String> param){
    public R updateLocDetlLocNo(@RequestBody HashMap<String, String> param) {
        String locNo = param.get("locNo");
        String containerCode = param.get("containerCode");
        if(Cools.isEmpty(locNo) || Cools.isEmpty(containerCode)){
        if (Cools.isEmpty(locNo) || Cools.isEmpty(containerCode)) {
            return R.error("参数不全");
        }
        List<AgvLocDetl> listByLocNo = null;
        List<AgvLocDetl> listByContainerCode = null;
        if(!Cools.isEmpty(locNo)){
        if (!Cools.isEmpty(locNo)) {
            // 源库位
            listByLocNo = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
        }
        if(!Cools.isEmpty(locNo)){
        if (!Cools.isEmpty(locNo)) {
            // 目标库位
            listByContainerCode = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("supp_code", containerCode));
        }
@@ -404,7 +405,7 @@
            agvLocMastByLocNo.setBarcode(containerCode);
            agvLocMastService.updateById(agvLocMastByLocNo);
            if(!Cools.isEmpty(agvLocMastByContainerCode) && Cools.eq("F",agvLocMastByContainerCode.getLocSts())){
            if (!Cools.isEmpty(agvLocMastByContainerCode) && Cools.eq("F", agvLocMastByContainerCode.getLocSts())) {
                agvLocMastByContainerCode.setLocSts("D");
                agvLocMastByContainerCode.setBarcode(barcode1);
                agvLocMastService.updateById(agvLocMastByContainerCode);
@@ -419,13 +420,13 @@
        // -------------2-----------------------------
        //库位信息不为空 货架信息为空
        if(!Cools.isEmpty(listByLocNo) && Cools.isEmpty(listByContainerCode)){
        if (!Cools.isEmpty(listByLocNo) && Cools.isEmpty(listByContainerCode)) {
            String newLocNo = agvLocMastByContainerCode.getLocNo();
            //更新货架信息的库位为当前库位
            listByLocNo.forEach(agvLocDetl -> {
                String sourceLoc = agvLocDetl.getLocNo();
                agvLocDetl.setLocNo(agvLocMastByContainerCode.getLocNo());
                agvLocDetlService.updateLocNo(newLocNo,sourceLoc,agvLocDetl);
                agvLocDetlService.updateLocNo(newLocNo, sourceLoc, agvLocDetl);
            });
            agvLocMastByContainerCode.setLocSts("F");
@@ -439,7 +440,7 @@
            return R.ok("维护成功");
        }
        if((listByLocNo == null && listByContainerCode == null) || listByLocNo.equals(listByContainerCode)){
        if ((listByLocNo == null && listByContainerCode == null) || listByLocNo.equals(listByContainerCode)) {
            //agvLocMastByContainerCode.setBarcode(agvLocMastByLocNo.getBarcode());
            //agvLocMastService.updateById(agvLocMastByContainerCode);
@@ -450,13 +451,12 @@
        }
        // --------------3----------------------------
        String locNo1 = listByContainerCode.get(0).getLocNo();
        listByContainerCode.forEach(agvLocDetl -> {
            String sourceLoc = agvLocDetl.getLocNo();
            agvLocDetl.setLocNo(agvLocMastByLocNo.getLocNo());
            agvLocDetlService.updateLocNo(locNo,sourceLoc,agvLocDetl);
            agvLocDetlService.updateLocNo(locNo, sourceLoc, agvLocDetl);
        });
        if (!Cools.isEmpty(listByLocNo)) {
@@ -465,7 +465,7 @@
            supp_codes.forEach(agvLocDetl -> {
                agvLocDetl.setLocNo(locNo1);
                agvLocDetlService.updateLocNo(locNo1,locNo,agvLocDetl);
                agvLocDetlService.updateLocNo(locNo1, locNo, agvLocDetl);
            });
        }
@@ -488,11 +488,11 @@
    @Transactional
    @ManagerAuth(memo = "调拨单任务下发")
    @Synchronized
    public R agvLocMove(@RequestBody HashMap<String,Object> params){
    public R agvLocMove(@RequestBody HashMap<String, Object> params) {
        String fl = String.valueOf(params.get("floor"));
        short floor =(short)Integer.parseInt(fl.substring(0, 1));
        List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
         params.get("dbList");
        short floor = (short) Integer.parseInt(fl.substring(0, 1));
        List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
        params.get("dbList");
        Object mT = params.get("moveType");
        String moveType = "";
        if (mT.equals("unAuto")) {
@@ -506,18 +506,18 @@
            AgvLocMast agvLocMast = agvLocMastService.selectOne(wrapper);
            agvLocMast.setLocType(moveType);
            agvLocMast.setLocType3(floor);
            agvLocMastService.update(agvLocMast,wrapper);
            agvLocMastService.update(agvLocMast, wrapper);
            // 同步调拨单
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
                // 更新订单
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
                if (orderDetl == null) {
                    throw new CoolException("订单明细不存在");
                }
                orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                    throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
                if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
                    throw new CoolException("修改订单明细失败,请联系管理员" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr());
                }
            }
        }
@@ -528,11 +528,11 @@
    @Transactional
    @ManagerAuth(memo = "调拨单任务下发")
    @Synchronized
    public R agvLocMove2(@RequestBody HashMap<String,Object> params){
    public R agvLocMove2(@RequestBody HashMap<String, Object> params) {
        Date now = new Date();
        String fl = String.valueOf(params.get("floor"));
        Integer floor = Integer.parseInt(fl.substring(0, 1));
        List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
        List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
        params.get("dbList");
        Object mT = params.get("moveType");
        String orderNo = params.get("orderNo").toString();
@@ -557,11 +557,11 @@
            if (!Cools.isEmpty(source_loc_no)) {
                throw new CoolException("当前库位已生成任务!");
            }
            AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts","F"));
            AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts", "F"));
            if (Cools.isEmpty(locMastS)) {
                throw new CoolException("当前库位非在库状态!库位号="+locNo);
                throw new CoolException("当前库位非在库状态!库位号=" + locNo);
            }
            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor);
            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30, floor);
            // 同步调拨单
            long flowId = snowflakeIdWorker.nextId();
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
@@ -580,7 +580,7 @@
                    throw new CoolException("保存工作明细失败");
                }
                // 更新订单
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
                // 判断订单是否超量
                if (orderDetl.getQty() >= orderDetl.getAnfme()) {
                    throw new CoolException("调拨单:" + orderNo + "的<" + agvLocDetl.getMatnr() + ">已完成调拨数量,请检查!");
@@ -612,15 +612,15 @@
//                    throw new CoolException("同步半成品调拨单流水记录失败");
//                }
                orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                    throw new CoolException("订单号:{"+orderNo+"}更新订单明细失败! 异常物料:"+agvLocDetl.getMatnr()+"(半成品调拨单任务)" );
                if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
                    throw new CoolException("订单号:{" + orderNo + "}更新订单明细失败! 异常物料:" + agvLocDetl.getMatnr() + "(半成品调拨单任务)");
                }
                // 更新订单状态
                Order order = orderService.selectByNo(orderDetl.getOrderNo());
                Long settle = order.getSettle();
                if (settle == 1L) {
                    if (!orderService.updateSettle(order.getId(),2L,getUserId())) {
                        throw new CoolException("订单号:{"+order.getOrderNo()+"}更新订单状态:1-->2 失败!(半成品调拨单任务)" );
                    if (!orderService.updateSettle(order.getId(), 2L, getUserId())) {
                        throw new CoolException("订单号:{" + order.getOrderNo() + "}更新订单状态:1-->2 失败!(半成品调拨单任务)");
                    }
                }
            }
@@ -636,9 +636,9 @@
    @Transactional
    @ManagerAuth(memo = "回调单任务下发")
    @Synchronized
    public R agvLocMove3(@RequestBody HashMap<String,Object> params){
    public R agvLocMove3(@RequestBody HashMap<String, Object> params) {
        Date now = new Date();
        List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
        List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
        params.get("dbList");
        String orderNo = params.get("orderNo").toString();
        for (HashMap<String, String> map : dbList) {
@@ -648,11 +648,11 @@
            if (!Cools.isEmpty(source_loc_no)) {
                throw new CoolException("当前库位已生成任务!");
            }
            AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts","F"));
            AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts", "F"));
            if (Cools.isEmpty(locMastS)) {
                throw new CoolException("当前库位非在库状态!库位号="+locNo);
                throw new CoolException("当前库位非在库状态!库位号=" + locNo);
            }
            AgvWrkMast wrkMast = createWrkMast(114, 22L, locNo, "", barcode, now, getUserId(), 30,1);
            AgvWrkMast wrkMast = createWrkMast(114, 22L, locNo, "", barcode, now, getUserId(), 30, 1);
            // 同步调拨单
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
@@ -671,17 +671,17 @@
                // 更新订单
                // 先查询库订单明细 所属的订单
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
                orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                    throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
                if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
                    throw new CoolException("修改订单明细失败,请联系管理员" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr());
                }
                // 更新订单状态
                Order order = orderService.selectByNo(orderNo);
                Long settle = order.getSettle();
                if (settle == 1L) {
                    if (!orderService.updateSettle(order.getId(),2L,getUserId())) {
                        throw new CoolException("订单号:{"+order.getOrderNo()+"}更新订单状态:1-->2 失败!(半成品调拨单任务)" );
                    if (!orderService.updateSettle(order.getId(), 2L, getUserId())) {
                        throw new CoolException("订单号:{" + order.getOrderNo() + "}更新订单状态:1-->2 失败!(半成品调拨单任务)");
                    }
                }
            }
@@ -697,7 +697,7 @@
    @Transactional
    @ManagerAuth(memo = "手动库位转移")
    @Synchronized
    public R handControlLocMove(@RequestBody LocMoveParam param){
    public R handControlLocMove(@RequestBody LocMoveParam param) {
        agvMobileService.handControlLocMove(param, getUserId());
        return R.ok();
    }
@@ -706,7 +706,7 @@
    @Transactional
    @ManagerAuth(memo = "调拨离场")
    @Synchronized
    public R allocationOut(@RequestBody AgvMobileStartPakin param){
    public R allocationOut(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.allocationOut(param, getUserId());
        return R.ok();
    }
@@ -715,7 +715,7 @@
    @Transactional
    @ManagerAuth(memo = "调拨进场")
    @Synchronized
    public R allocationIn(@RequestBody AgvMobileStartPakin param){
    public R allocationIn(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.allocationIn(param, getUserId());
        return R.ok();
    }
@@ -724,7 +724,7 @@
    @Transactional
    @ManagerAuth(memo = "空架离场")
    @Synchronized
    public R empOut(@RequestBody AgvMobileStartPakin param){
    public R empOut(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.empOut(param, getUserId());
        return R.ok();
    }
@@ -733,7 +733,7 @@
    @Transactional
    @ManagerAuth(memo = "空架进场")
    @Synchronized
    public R empIn(@RequestBody AgvMobileStartPakin param){
    public R empIn(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.empIn(param, getUserId());
        return R.ok();
    }
@@ -742,8 +742,8 @@
    @Transactional
    @ManagerAuth(memo = "站点回退")
    @Synchronized
    public R doBack(@RequestBody AgvMobileStartPakin param){
        if (Cools.isEmpty(param)){
    public R doBack(@RequestBody AgvMobileStartPakin param) {
        if (Cools.isEmpty(param)) {
            return R.error("参数为空");
        }
        agvMobileService.doBack(param, getUserId());
@@ -754,7 +754,7 @@
    @Transactional
    @ManagerAuth(memo = "转手动回流")
    @Synchronized
    public R handBack(@RequestBody AgvMobileStartPakin param){
    public R handBack(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.handBack(param, getUserId());
        return R.ok();
    }
@@ -763,7 +763,7 @@
    @Transactional
    @ManagerAuth(memo = "确认加工完成")
    @Synchronized
    public R processed(@RequestBody AgvMobileStartPakin param){
    public R processed(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.processed(param, getUserId());
        return R.ok();
    }
@@ -787,10 +787,11 @@
        System.out.println(agvLocDetls22.equals(agvLocDetls2));
    }
    /*
   生成工作档
    */
    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId, int containerType,int floor){
    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor) {
        AgvWrkMast wrkMast = new AgvWrkMast();
        //工作状态
        wrkMast.setWrkSts(wrkSts);
@@ -819,7 +820,7 @@
            throw new CoolException("保存工作档失败");
        }
        wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo));
        wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo));
        return wrkMast;
    }
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -507,6 +507,9 @@
            case 30:
                br = 3;
                break;
            case 31:
                br = 6;
                break;
            case 40:
                br = 5;
                break;
@@ -525,7 +528,9 @@
            locType = 2;
        } else if (containerType == 30) {
            locType = 3;
        } else {
        }  else if (containerType == 31) {
            locType = 6;
        }else {
            locType = agvBasDevp.getLocType1();
        }
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -114,7 +114,13 @@
        try{
            // 开始查找库位 ==============================>>
            locMast = getLocNoRule(type,floor,isEmpty,isCurrLev);
            //如果是半成品箱壳
            if (type == 6) {
            }else {
                //不动这个逻辑
                locMast = getLocNoRule(type,floor,isEmpty,isCurrLev);
            }
            if (locMast != null) {
                return locMast;
            }