自动化立体仓库 - WMS系统
skyouc
2 天以前 90aea4830974e3687222aa266952923d59aa088f
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,6 +6,8 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.LocAreaType;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.enums.TaskIOType;
import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
@@ -355,7 +357,6 @@
                    }
                    // 修改库存明细数量,如无库存,曾新增
                    for (WrkDetl wrkDetl : wrkDetls54) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(),
                                wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(),
                                wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(),
@@ -423,6 +424,24 @@
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("并板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
                                    + wrkMast.getLocNo() + "]");
                        }
                    }
                    String agvSta = null;
                    if (wrkMast.getIoType() == TaskIOType.MERGE_IN.type) {
                        agvSta = wrkMast.getPauseMk();
                    }
                    // . 删除缓存站点明细
                    if (!Objects.isNull(agvSta)) {
                        // 修改目标站点信息
                        BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", agvSta));
                        if (Objects.isNull(station)) {
                            throw new CoolException("站点不存在!!");
                        }
                        basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
                        station.setLocSts(LocStsType.LOC_STS_TYPE_D.type);
                        if (!basStationService.updateById(station)) {
                            throw new CoolException("站点状态更新失败!!");
                        }
                    }
                    break;
@@ -709,10 +728,10 @@
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> AgvStart(Task task) {
        // 4.入库完成
        if (task.getWrkSts() == 4) {
        if (task.getWrkSts().equals(TaskStatusType.AGV_TASK_FINISHED_IN.type)) {
            return agvDoIn(task);
            // 14.出库完成
        } else if (task.getWrkSts() == 14) {
        } else if (task.getWrkSts().equals(TaskStatusType.AGV_TASK_FINISHED_OUT.type)) {
            return agvDoOut(task);
        }
        return SUCCESS;
@@ -721,7 +740,7 @@
    /**
     * @author Ryan
     * @date 2025/9/25
     * @description: AGV出库任务
     * @description: AGV出库任
     * @version 1.0
     */
    @Transactional(rollbackFor = Exception.class)
@@ -747,6 +766,7 @@
                throw new CoolException("站点:" + task.getSourceStaNo() + ", 不存在!!");
            }
            devNo.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
            devNo.setBarcode(task.getBarcode());
            devNo.setModiTime(new Date());
            if (!basStationService.updateById(devNo)) {
                throw new CoolException("站点信息修改失败!!");
@@ -809,9 +829,7 @@
                throw new CoolException("当前库位状态" + locMast.getLocSts() + ", 无法执行出库操作!!");
            }
            task.setWrkSts(15L);
            task.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_OUT.type);
            if (!taskService.updateById(task)) {
                throw new CoolException("任务状态修改失败!!");
            }
@@ -847,7 +865,7 @@
            if (!basStationService.updateById(devNo)) {
                throw new CoolException("站点信息修改失败!!");
            }
            task.setWrkSts(15L);
            task.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_OUT.type);
            if (!taskService.updateById(task)) {
                throw new CoolException("任务状态修改失败!!");
            }
@@ -860,6 +878,19 @@
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> agvDoIn(Task wrkMast) {
        LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
        if (!Objects.isNull(wrkMast.getSourceStaNo())) {
            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
                    .eq("dev_no", wrkMast.getSourceStaNo()));
            if (!Objects.isNull(station)) {
                List<String> list = Arrays.asList(LocStsType.LOC_STS_TYPE_O.type, LocStsType.LOC_STS_TYPE_D.type);
                if (!list.contains(station.getLocSts())) {
                    station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
                }
                station.setBarcode("");
                basStationService.updateById(station);
            }
        }
        if(wrkMast.getIoType().equals(1)){
            if (Objects.isNull(locCache)) {
                throw new CoolException("数据错误,库位不存在!!");
@@ -932,7 +963,7 @@
            if (!locCacheService.updateById(locCache)) {
                throw new CoolException("库位状态修改失败!");
            }
            wrkMast.setWrkSts(5L);
            wrkMast.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type);
            wrkMast.setModiTime(new Date());
            if (!taskService.updateById(wrkMast)) {
                throw new CoolException("任务状态修改失败!!");
@@ -1027,7 +1058,7 @@
            }
            // 修改工作主档状态
            wrkMast.setWrkSts(5L);
            wrkMast.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type);
            wrkMast.setModiTime(now);
            if (!taskService.updateById(wrkMast)) {
                // exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());