#
Junjie
2025-02-10 d1ef13d1f116e69a7f44e78d64fd0fe4ce2cad80
#
4个文件已修改
3个文件已添加
217 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/CreateInTaskParam.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/CreateLocMoveTaskParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/WrkIoType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/WrkStsType.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -3,9 +3,7 @@
import com.core.common.R;
import com.zy.asrs.domain.NotifyDto;
import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.param.CancelTaskParam;
import com.zy.asrs.domain.param.CompleteTaskParam;
import com.zy.asrs.domain.param.CreateMoveTaskParam;
import com.zy.asrs.domain.param.*;
import com.zy.asrs.utils.NotifyUtils;
import com.zy.common.service.CommonService;
import com.zy.core.dispatcher.ShuttleDispatchUtils;
@@ -13,8 +11,6 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@@ -40,6 +36,45 @@
        return R.error("生成失败");
    }
    //移库任务
    @PostMapping("/createLocMoveTask")
    public R createLocMoveTask(@RequestBody CreateLocMoveTaskParam param) {
        if (param == null) {
            return R.error("参数不能为空");
        }
        boolean result = commonService.createLocMoveTask(param);
        if (result) {
            return R.ok();
        }
        return R.error("生成移库任务失败");
    }
    //入库任务
    @PostMapping("/createInTask")
    public R createInTask(@RequestBody CreateInTaskParam param) {
        if (param == null) {
            return R.error("参数不能为空");
        }
        boolean result = commonService.createInTask(param);
        if (result) {
            return R.ok();
        }
        return R.error("生成入库任务失败");
    }
    //出库任务
    @PostMapping("/createOutTask")
    public R createOutTask(@RequestBody CreateOutTaskParam param) {
        if (param == null) {
            return R.error("参数不能为空");
        }
        boolean result = commonService.createOutTask(param);
        if (result) {
            return R.ok();
        }
        return R.error("生成出库任务失败");
    }
    @PostMapping("/completeTask")
    public R completeTask(@RequestBody CompleteTaskParam param) {
        if (param == null) {
src/main/java/com/zy/asrs/domain/param/CreateInTaskParam.java
New file
@@ -0,0 +1,20 @@
package com.zy.asrs.domain.param;
import lombok.Data;
@Data
public class CreateInTaskParam {
    //wms任务号
    private String taskNo;
    //源站
    private Integer sourceStaNo;
    //目标站
    private Integer staNo;
    //目标库位
    private String locNo;
}
src/main/java/com/zy/asrs/domain/param/CreateLocMoveTaskParam.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.domain.param;
import lombok.Data;
@Data
public class CreateLocMoveTaskParam {
    //wms任务号
    private String taskNo;
    //源库位
    private String sourceLocNo;
    //目标库位
    private String locNo;
}
src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.domain.param;
import lombok.Data;
@Data
public class CreateOutTaskParam {
    //wms任务号
    private String taskNo;
    //目标站
    private Integer staNo;
    //源库位
    private String sourceLocNo;
}
src/main/java/com/zy/common/service/CommonService.java
@@ -2,10 +2,10 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.param.CancelTaskParam;
import com.zy.asrs.domain.param.CompleteTaskParam;
import com.zy.asrs.domain.param.*;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.core.News;
import com.zy.core.enums.WrkIoType;
import com.zy.core.enums.WrkStsType;
import lombok.extern.slf4j.Slf4j;
@@ -24,6 +24,8 @@
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    @Autowired
    private LocMastService locMastService;
    /**
     * 生成工作号
@@ -111,4 +113,110 @@
        return true;
    }
    //移库任务
    public boolean createLocMoveTask(CreateLocMoveTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == locMast) {
            throw new CoolException("源库位不存在");
        }
        if (!locMast.getLocSts().equals("F")) {
            throw new CoolException("源库位不处于在库状态");
        }
        // 获取工作号
        int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts); // 工作状态:501.生成移库任务
        wrkMast.setIoType(WrkIoType.LOC_MOVE.id); // 入出库状态: 201.移库任务
        wrkMast.setIoPri(800D);
        wrkMast.setSourceLocNo(param.getSourceLocNo());
        wrkMast.setLocNo(param.getLocNo()); // 目标库位
        wrkMast.setWmsWrkNo(param.getTaskNo());
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            News.error("移库任务 --- 保存工作档失败!");
            throw new CoolException("保存工作档失败");
        }
        return true;
    }
    //入库任务
    public boolean createInTask(CreateInTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        if (null == locMast) {
            throw new CoolException("目标库位不存在");
        }
        if (!locMast.getLocSts().equals("O")) {
            throw new CoolException("目标库位不处于空库状态");
        }
        // 获取工作号
        int workNo = getWorkNo(WrkIoType.IN.id);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(WrkStsType.NEW_INBOUND.sts); // 工作状态:1.生成入库任务
        wrkMast.setIoType(WrkIoType.IN.id); // 入出库状态: 1.入库
        wrkMast.setIoPri(100D);
        wrkMast.setLocNo(param.getLocNo()); // 目标库位
        wrkMast.setSourceStaNo(param.getSourceStaNo());//源站
        wrkMast.setStaNo(param.getStaNo());//目标站
        wrkMast.setWmsWrkNo(param.getTaskNo());
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            News.error("入库任务 --- 保存工作档失败!");
            throw new CoolException("保存工作档失败");
        }
        return true;
    }
    //出库任务
    public boolean createOutTask(CreateOutTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == locMast) {
            throw new CoolException("源库位不存在");
        }
        if (!locMast.getLocSts().equals("F")) {
            throw new CoolException("源库位不处于在库状态");
        }
        // 获取工作号
        int workNo = getWorkNo(WrkIoType.OUT.id);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(WrkStsType.NEW_OUTBOUND.sts); // 工作状态:101.生成出库任务
        wrkMast.setIoType(WrkIoType.OUT.id); // 入出库状态: 101.出库
        wrkMast.setIoPri(100D);
        wrkMast.setSourceLocNo(param.getSourceLocNo()); // 源库位
        wrkMast.setStaNo(param.getStaNo());//目标站
        wrkMast.setWmsWrkNo(param.getTaskNo());
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            News.error("出库任务 --- 保存工作档失败!");
            throw new CoolException("保存工作档失败");
        }
        return true;
    }
}
src/main/java/com/zy/core/enums/WrkIoType.java
@@ -7,6 +7,7 @@
    IN(1, "入库"),
    OUT(101, "出库"),
    SHUTTLE_MOVE(200, "小车移动"),
    LOC_MOVE(201, "移库任务"),
    SHUTTLE_CHARGE(300, "小车充电"),
    ;
src/main/java/com/zy/core/enums/WrkStsType.java
@@ -44,6 +44,11 @@
    ANALYZE_MANUAL(402, "手动任务解析"),
    EXECUTE_MANUAL(403, "执行手动任务"),
    COMPLETE_MANUAL(410, "手动任务完成"),
    NEW_LOC_MOVE(501, "生成移库任务"),
    LOC_MOVE_SHUTTLE_RUN(502, "小车搬运中"),
    COMPLETE_LOC_MOVE(509, "移库完成"),
    SETTLE_LOC_MOVE(510, "移库库存更新"),
    ;