自动化立体仓库 - WCS系统
#
Junjie
2025-02-10 be56277845b22c0c75172fa511223ab9d413134c
#
1个文件已添加
3个文件已修改
156 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/WrkMastScheduler.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/WrkStsType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/20250210133035.nb3 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,7 +1,9 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastLogService;
import com.zy.asrs.service.WrkMastService;
import com.zy.core.enums.WrkStsType;
@@ -9,7 +11,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@@ -21,15 +25,38 @@
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private LocMastService locMastService;
    @Scheduled(cron = "0/1 * * * * ? ")
    private void executeIn(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.SETTLE_INBOUND.sts));
    @Transactional
    public void executeIn(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_INBOUND.sts));
        if (wrkMasts.isEmpty()) {
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            String locNo = wrkMast.getLocNo();
            LocMast locMast = locMastService.queryByLoc(locNo);
            if (locMast == null) {
                log.info("[workNo={}]库位不存在", wrkMast.getWrkNo());
                continue;
            }
            if (!locMast.getLocSts().equals("S")) {
                log.info("[workNo={}]库位状态不处于S", wrkMast.getWrkNo());
                continue;
            }
            locMast.setLocSts("F");
            locMast.setModiTime(new Date());
            boolean result = locMastService.updateById(locMast);
            if (!result) {
                log.info("[workNo={}]库位状态F更新失败", wrkMast.getWrkNo());
                continue;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                log.info("保存工作历史档[workNo={}]失败", wrkMast.getWrkNo());
@@ -42,13 +69,34 @@
    }
    @Scheduled(cron = "0/1 * * * * ? ")
    private void executeOut(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.SETTLE_OUTBOUND.sts));
    @Transactional
    public void executeOut(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_OUTBOUND.sts));
        if (wrkMasts.isEmpty()) {
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            String locNo = wrkMast.getSourceLocNo();
            LocMast locMast = locMastService.queryByLoc(locNo);
            if (locMast == null) {
                log.info("[workNo={}]库位不存在", wrkMast.getWrkNo());
                continue;
            }
            if (!locMast.getLocSts().equals("R")) {
                log.info("[workNo={}]库位状态不处于R", wrkMast.getWrkNo());
                continue;
            }
            locMast.setLocSts("O");
            locMast.setModiTime(new Date());
            boolean result = locMastService.updateById(locMast);
            if (!result) {
                log.info("[workNo={}]库位状态O更新失败", wrkMast.getWrkNo());
                continue;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                log.info("保存工作历史档[workNo={}]失败", wrkMast.getWrkNo());
@@ -61,7 +109,68 @@
    }
    @Scheduled(cron = "0/1 * * * * ? ")
    private void executeMove(){
    @Transactional
    public void executeLocMove(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_LOC_MOVE.sts));
        if (wrkMasts.isEmpty()) {
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            String sourceLocNo = wrkMast.getSourceLocNo();
            String locNo = wrkMast.getLocNo();
            LocMast locMast = locMastService.queryByLoc(locNo);
            if (locMast == null) {
                log.info("[workNo={}]库位不存在", wrkMast.getWrkNo());
                continue;
            }
            if (!locMast.getLocSts().equals("S")) {
                log.info("[workNo={}]库位状态不处于S", wrkMast.getWrkNo());
                continue;
            }
            LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo);
            if (sourceLocMast == null) {
                log.info("[workNo={}]库位不存在", wrkMast.getWrkNo());
                continue;
            }
            if (!sourceLocMast.getLocSts().equals("R")) {
                log.info("[workNo={}]库位状态不处于R", wrkMast.getWrkNo());
                continue;
            }
            locMast.setLocSts("F");
            locMast.setModiTime(new Date());
            boolean result = locMastService.updateById(locMast);
            if (!result) {
                log.info("[workNo={}]库位状态F更新失败", wrkMast.getWrkNo());
                continue;
            }
            sourceLocMast.setLocSts("O");
            sourceLocMast.setModiTime(new Date());
            boolean result2 = locMastService.updateById(sourceLocMast);
            if (!result2) {
                log.info("[workNo={}]库位状态O更新失败", wrkMast.getWrkNo());
                continue;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                log.info("保存工作历史档[workNo={}]失败", wrkMast.getWrkNo());
            }
            // 删除工作主档
            if (!wrkMastService.deleteById(wrkMast)) {
                log.info("删除工作主档[workNo={}]失败", wrkMast.getWrkNo());
            }
        }
    }
    @Scheduled(cron = "0/1 * * * * ? ")
    @Transactional
    public void executeMove(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_MOVE.sts));
        if (wrkMasts.isEmpty()) {
            return;
@@ -80,7 +189,8 @@
    }
    @Scheduled(cron = "0/1 * * * * ? ")
    private void executeCharge(){
    @Transactional
    public void executeCharge(){
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts));
        if (wrkMasts.isEmpty()) {
            return;
src/main/java/com/zy/common/service/CommonService.java
@@ -94,6 +94,8 @@
            wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
        } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_CHARGE.id) {
            wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
        } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) {
            wrkMast.setWrkSts(WrkStsType.COMPLETE_LOC_MOVE.sts);
        }
        wrkMast.setModiTime(new Date());
@@ -116,13 +118,22 @@
    //移库任务
    public boolean createLocMoveTask(CreateLocMoveTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == locMast) {
        LocMast sourceLocMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == sourceLocMast) {
            throw new CoolException("源库位不存在");
        }
        if (!locMast.getLocSts().equals("F")) {
        if (!sourceLocMast.getLocSts().equals("F")) {
            throw new CoolException("源库位不处于在库状态");
        }
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        if (null == locMast) {
            throw new CoolException("目标库位不存在");
        }
        if (!locMast.getLocSts().equals("O")) {
            throw new CoolException("目标库位不处于空库状态");
        }
        // 获取工作号
@@ -144,6 +155,14 @@
            News.error("移库任务 --- 保存工作档失败!");
            throw new CoolException("保存工作档失败");
        }
        sourceLocMast.setLocSts("R");
        sourceLocMast.setModiTime(new Date());
        locMastService.updateById(sourceLocMast);
        locMast.setLocSts("S");
        locMast.setModiTime(new Date());
        locMastService.updateById(locMast);
        return true;
    }
@@ -181,6 +200,10 @@
            throw new CoolException("保存工作档失败");
        }
        locMast.setLocSts("S");
        locMast.setModiTime(new Date());
        locMastService.updateById(locMast);
        return true;
    }
@@ -216,6 +239,10 @@
            throw new CoolException("保存工作档失败");
        }
        locMast.setLocSts("R");
        locMast.setModiTime(new Date());
        locMastService.updateById(locMast);
        return true;
    }
src/main/java/com/zy/core/enums/WrkStsType.java
@@ -48,7 +48,6 @@
    NEW_LOC_MOVE(501, "生成移库任务"),
    LOC_MOVE_SHUTTLE_RUN(502, "小车搬运中"),
    COMPLETE_LOC_MOVE(509, "移库完成"),
    SETTLE_LOC_MOVE(510, "移库库存更新"),
    ;
src/main/resources/sql/20250210133035.nb3
Binary files differ