自动化立体仓库 - WMS系统
zyx
2023-12-21 4ca7e95c87431a19ac75db388ff408f0b2df9a9c
src/main/java/com/zy/common/web/WcsController.java
@@ -6,6 +6,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
@@ -114,11 +115,11 @@
                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode(), 2);
                break;
            case 103:// 拣料入库
                dto = pickWrkIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto, 2);
                dto = pickWrkIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto, 2);
                break;
            case 104:// 并板入库
            case 107:// 盘点入库
                dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto, 2);
                dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto, 2);
                break;
            default:
                break;
@@ -194,7 +195,7 @@
            case 103:// 拣料入库
            case 104:// 并板入库
            case 107:// 盘点入库
                dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto);
                dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto);
                break;
            default:
                break;
@@ -382,12 +383,12 @@
    }
    @Transactional
    public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto) {
        return pickWrkPlateIn(wrkNo, ioType, devpNo, locTypeDto, 1);
    public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto) {
        return pickWrkPlateIn(wrkNo, ioType, devpNo, liftNo, locTypeDto, 1);
    }
    @Transactional
    public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto, Integer version) {
    public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto, Integer version) {
        WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType);
        if (Cools.isEmpty(wrkMast)) {
            log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType);
@@ -421,11 +422,27 @@
        } else {
            throw new CoolException(dto.getLocNo() + "目标库位已被占用");
        }
        //获取回库提升机目标站
        Integer staNo = liftNo * 100 + locMast.getLev1();
        // 更新工作档数据状态
        wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 107->57
        wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
        wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站
        wrkMast.setStaNo(staNo);//目标站
        wrkMast.setLocNo(dto.getLocNo()); // 目标库位
        wrkMast.setShuttleNo(null); // 穿梭车清空
        wrkMast.setLiftNo(null);// 提升机清空
        wrkMast.setModiTime(new Date());
        if (wrkMastService.updateById(wrkMast)) {
            throw new CoolException(wrkMast.getWrkNo() + "更新工作档数据状态失败");
        }
        return dto;
    }
    @Transactional
    public StartupDto pickWrkIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto, Integer version) {
    public StartupDto pickWrkIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto, Integer version) {
        WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType);
        if (Cools.isEmpty(wrkMast)) {
            log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType);
@@ -477,6 +494,23 @@
        }else {
            throw new CoolException("源库位状态异常");
        }
        //获取回库提升机目标站
        Integer staNo = liftNo * 100 + locMast1.getLev1();
        // 更新工作档数据状态
        wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54
        wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
        wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站
        wrkMast.setStaNo(staNo);//目标站
        wrkMast.setLocNo(dto.getLocNo()); // 目标库位
        wrkMast.setShuttleNo(null); // 穿梭车清空
        wrkMast.setLiftNo(null);// 提升机清空
        wrkMast.setModiTime(new Date());
        if (wrkMastService.updateById(wrkMast)) {
            throw new CoolException(wrkMast.getWrkNo() + "更新工作档数据状态失败");
        }
        return dto;
    }