pang.jiabao
2024-07-11 748d2d7f2c1b898517b9debc4feb4d80c34e53e7
屏蔽深库位出库浅库位有货问题
2个文件已修改
87 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,7 +5,6 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.TaskOverToWms;
@@ -173,10 +172,11 @@
                        }
                        continue;
                    }
//                // 入库站点对应堆垛机,判断堆垛机状态,不是自动,先弹窗,然后continue
//                if (getCrnByStaNo(inSta.getStaNo())) {
//                    continue;
//                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk() && (workNo >= 0)
                        && staProtocol.isPakMk()) {
                // 获取条码扫描仪信息
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                if (barcodeThread == null) {
@@ -184,25 +184,6 @@
                }
                String barcode = barcodeThread.getBarcode();
                staProtocol.setBarcode(barcode);
                if(Cools.isEmpty(barcode) || barcode.equals("00000000")) {
                    continue;
                }
                TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
                if (!Cools.isEmpty(taskWrk) && staProtocol.isLoading()){
                    // 写组拓信号
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
//                    Thread.sleep(500);
//                    continue;
                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk() && (workNo >= 0)
                        && staProtocol.isPakMk()) {
                    if(!Cools.isEmpty(barcode)) {
                        StaDescService staDescService = SpringUtils.getBean(StaDescService.class);
@@ -210,7 +191,11 @@
                        Map<String, Object> map = new HashMap<>();
                        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
                        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
                        if (Cools.isEmpty(taskWrk)){
                            continue;
                        }
                        //StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta()));
                        boolean sign = true;
@@ -294,6 +279,15 @@
                                if (!taskWrkService.updateById(taskWrk)){
                                    log.error("保存wms库位号失败");
                                }
//                                try {
//                                    // 更新库位为入库预约
//                                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
//                                    locMast.setLocSts("S");
//                                    locMastService.updateById(locMast);
//                                    log.info("-----入库更新库位状态为:S成功----------"+ locMast.getLocNo());
//                                } catch (Exception e){
//                                    log.error("-----入库更新库位状态为:S异常----------"+ e);
//                                }
                            }else {
                                log.error("wms通讯失败,"+jsonObject.get("msg"));
@@ -612,18 +606,18 @@
                        // 双深库位且浅库位有货,则需先对浅库位进行库位移转
                        if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
                            // 获取浅库位,状态为S直接出,状态为R,则找到这个库位的工作档,提升优先级先出
                            String shallowLoc = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
                            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
                            if (locMast.getLocSts().equals("R")) {
                                List<TaskWrk> wrkMastList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("source_loc_no", locMast.getLocNo()));
                                if (!wrkMastList.isEmpty()) {
                                    TaskWrk wrkMast = wrkMastList.get(0);
                                    wrkMast.setIoPri(99);
                                    taskWrkMapper.updateById(wrkMast);
                                    continue;
                                }
                            }
//                            // 获取浅库位,状态为S直接出,状态为R,则找到这个库位的工作档,提升优先级先出
//                            String shallowLoc = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
//                            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
//                            if (locMast.getLocSts().equals("R")) {
//                                List<TaskWrk> wrkMastList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("source_loc_no", locMast.getLocNo()));
//                                if (!wrkMastList.isEmpty()) {
//                                    TaskWrk wrkMast = wrkMastList.get(0);
//                                    wrkMast.setIoPri(99);
//                                    taskWrkMapper.updateById(wrkMast);
//                                    continue;
//                                }
//                            }
                            taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
@@ -1059,8 +1053,8 @@
        for (TaskWrk taskWrk : taskWrkService.selectReceive()) {
            try {
                taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
            } catch (CoolException e) {
//                log.info(e.getMessage());
            } catch (Exception e) {
                log.error("自动派发任务异常:"+e.getMessage()+"{" + taskWrk.toString());
            }
        }
    }
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -101,9 +101,7 @@
            taskWrk.setWrkSts(1);
            if (!Cools.isEmpty(param.getTargetPoint())) {
                taskWrk.setTargetPoint(Utils.getWcsLocNo(param.getTargetPoint()));//终点
                wcsLocNo = taskWrk.getTargetPoint();
                taskWrk.setOriginTargetPoint(param.getTargetPoint());
                stats = "S";
            }
        } else if (param.getIoType() == 2) {
@@ -131,10 +129,17 @@
            taskWrk.setMemo(param.getMemo());//备注
        }
        // 更新库位状态
        LocMast locMast = locMastService.selectByLocNo(wcsLocNo);
        locMast.setLocSts(stats);
        locMastService.updateById(locMast);
        // 更新库位状态,入库还没分配库位,扫码之后才分配
//        if (param.getIoType() == 2 || param.getIoType() == 3) {
//            try {
//            LocMast locMast = locMastService.selectByLocNo(wcsLocNo);
//            locMast.setLocSts(stats);
//            log.info("-----入库更新库位状态为:R成功----------"+ locMast.getLocNo());
//            locMastService.updateById(locMast);
//            } catch (Exception e){
//                log.error("-----出库更新库位状态为:R异常----------"+ e);
//            }
//        }
        if (!taskWrkService.insert(taskWrk)) {
            return R.error("创建任务失败");