自动化立体仓库 - WMS系统
zhangc
2024-12-25 7ec958c241902d29dbffe9f81376b71a8458148e
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.OrderServiceImpl;
import com.zy.asrs.utils.OrderUtils;
import com.zy.common.web.BaseController;
import lombok.Synchronized;
import org.slf4j.Logger;
@@ -140,8 +141,11 @@
        params.getCombParams().forEach(combParam -> {
            agvMobileService.comb(combParam, getUserId());
        });
        //获取判断时哪个厂的订单
        String csocode = params.getCombParams().get(0).getCombMats().get(0).getCsocode();
        String factory = OrderUtils.getFactory(csocode);
        params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2)));
        workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false);
        workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false,factory);
        return R.ok("生成工作档成功");
    }
@@ -156,7 +160,7 @@
        for (AgvMobileStartParam.Pda pda : params.getPad()) {
            pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0, 2)));
            workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false);
            workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false,null);
        }
        return R.ok();
@@ -201,15 +205,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 +223,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 +244,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 +285,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 +298,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 +334,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 +342,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 +363,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,11 +408,14 @@
            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);
            }
            // 保存调整记录
            AdjDetl adjDetl = new AdjDetl();
            return R.ok("维护成功");
        }
@@ -416,13 +423,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");
@@ -436,7 +443,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);
@@ -447,13 +454,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)) {
@@ -462,7 +468,7 @@
            supp_codes.forEach(agvLocDetl -> {
                agvLocDetl.setLocNo(locNo1);
                agvLocDetlService.updateLocNo(locNo1,locNo,agvLocDetl);
                agvLocDetlService.updateLocNo(locNo1, locNo, agvLocDetl);
            });
        }
@@ -485,11 +491,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")) {
@@ -503,15 +509,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());
                }
            }
        }
@@ -522,11 +531,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();
@@ -551,11 +560,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));
@@ -574,7 +583,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() + ">已完成调拨数量,请检查!");
@@ -606,15 +615,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 失败!(半成品调拨单任务)");
                    }
                }
            }
@@ -630,10 +639,11 @@
    @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) {
            String locNo = map.get("locNo");
            String barcode = map.get("suppCode");
@@ -641,11 +651,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) {
@@ -664,10 +674,18 @@
                // 更新订单
                // 先查询库订单明细 所属的订单
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",36).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("source",36).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 失败!(半成品调拨单任务)");
                    }
                }
            }
            // 更新源库位
@@ -682,7 +700,7 @@
    @Transactional
    @ManagerAuth(memo = "手动库位转移")
    @Synchronized
    public R handControlLocMove(@RequestBody LocMoveParam param){
    public R handControlLocMove(@RequestBody LocMoveParam param) {
        agvMobileService.handControlLocMove(param, getUserId());
        return R.ok();
    }
@@ -691,7 +709,7 @@
    @Transactional
    @ManagerAuth(memo = "调拨离场")
    @Synchronized
    public R allocationOut(@RequestBody AgvMobileStartPakin param){
    public R allocationOut(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.allocationOut(param, getUserId());
        return R.ok();
    }
@@ -700,7 +718,7 @@
    @Transactional
    @ManagerAuth(memo = "调拨进场")
    @Synchronized
    public R allocationIn(@RequestBody AgvMobileStartPakin param){
    public R allocationIn(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.allocationIn(param, getUserId());
        return R.ok();
    }
@@ -709,7 +727,7 @@
    @Transactional
    @ManagerAuth(memo = "空架离场")
    @Synchronized
    public R empOut(@RequestBody AgvMobileStartPakin param){
    public R empOut(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.empOut(param, getUserId());
        return R.ok();
    }
@@ -718,7 +736,7 @@
    @Transactional
    @ManagerAuth(memo = "空架进场")
    @Synchronized
    public R empIn(@RequestBody AgvMobileStartPakin param){
    public R empIn(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.empIn(param, getUserId());
        return R.ok();
    }
@@ -727,8 +745,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());
@@ -739,7 +757,7 @@
    @Transactional
    @ManagerAuth(memo = "转手动回流")
    @Synchronized
    public R handBack(@RequestBody AgvMobileStartPakin param){
    public R handBack(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.handBack(param, getUserId());
        return R.ok();
    }
@@ -748,7 +766,7 @@
    @Transactional
    @ManagerAuth(memo = "确认加工完成")
    @Synchronized
    public R processed(@RequestBody AgvMobileStartPakin param){
    public R processed(@RequestBody AgvMobileStartPakin param) {
        agvMobileService.processed(param, getUserId());
        return R.ok();
    }
@@ -772,10 +790,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);
@@ -804,7 +823,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;
    }