#
LSH
2023-11-16 684f3e36bb926b7ec2d5561c8e79c9d087fcb851
#
2个文件已修改
1个文件已添加
129 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/TaskStatusFeedbackParam.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskLogScheduler.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskStatusFeedbackParam.java
New file
@@ -0,0 +1,107 @@
package com.zy.asrs.entity.param;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.utils.Utils;
import lombok.Data;
import java.util.List;
@Data
public class TaskStatusFeedbackParam {
    private String taskNo;              //任务号
    private String warehouseId;         //仓库标识
    private String feedbackFrom;         //来源
    private String equipmentCode;         //设备编码
    //wms出库任务下发接口
    private String taskType;            //任务类型             CK、YK、RK、PD
    private int taskPriority;           //优先级
    private String containerCode;       //容器编码
    private String containerTypeCode;   //容器类型
    private String emptyContainer;      //是否空托盘            Y:是 N:否
    private int taskTunnel;             //任务巷道
    private String sourceLocationCode;  //起始货位
    private String targetLocationCode;  //目标货位
    private String groupNo;             //任务组               标识着哪些任务属于同一组
    private int taskSerialNo;           //任务执行顺序          同一任务组的任务,按任务执行顺序执行任务
    private String createTime;          //创建时间             YYYY-MM-DD HH24:MI:SS
    private String targetWharf;         //目标码头区域          数据字典,G开头=7车间,H开头=8层,J开头=9车间
    //任务状态反馈接口
//    feedbackFrom    来源    string
//    warehouseId    仓库标识    string
//    taskType    任务类型    string
//    equipmentCode    设备编码    string
//    taskNo    任务号    string
//    taskStatus    任务状态    string
//    sourceLocationCode    源库位    string
//    targetLocationCode    目标库位    string
//    containerCode    容器编码    string
//    containerTypeCode    容器类型    string
//    emptyContainer    是否空托盘    string
//    errorCode    故障编码    string
        /*
        * 【0001】    重入异常
            【0002】    空出异常
            【0003】    放深浅有
            【0004】    取深浅有
            【0005】    数据校验异常
        * */
    //任务取消接口
    /*操作类型:
    * 1.正常取消--只能取消未执行的任务,货物处在未执行任务状态
    * 2.强制取消--可取消已执行未完成的任务,货物处在未执行任务状态
    * 3.正常完成--只能完成未执行的任务,货物处于任务执行完成状态
    * 4.强制完成--可完成已执行未完成的任务,货物处于任务执行完成状态
    * */
    private String taskStatus;          //操作类型
    private String wharfSource;         //源码头
    private List<String> freeWharfs;
    private String requestType;         //请求类型:         1=取货;2=放货
    private String wharfCode;           //码头编号
    public TaskStatusFeedbackParam(){}
    public TaskStatusFeedbackParam(TaskWrk taskWrk){
        this.taskNo = taskWrk.getTaskNo();
        this.feedbackFrom = "WCS";
        this.warehouseId = "1688469798893297665";
        this.taskType = getTaskType(taskWrk.getIoType());
        this.equipmentCode = Utils.getEquipmentCode(taskWrk.getTargetPoint());
//        this.taskStatus = "done";
//        未执行    unExecute
//        已确认    confirmed
//        WCS已下达    wcsReleased
//        AGV已下达    agvReleased
//        开始执行    executing
//        货位处理完成    locationDone
//        自动完成    done
//        异 常    exception
//        已取消    cancelled
//        手动完成    handle
        this.sourceLocationCode = taskWrk.getStartPoint();
        this.targetLocationCode = taskWrk.getTargetPoint();
    }
    public static String getTaskType(Integer paramIoType){
        switch (paramIoType){
            case 1:
                return "RK";
            case 2:
                return "CK";
            case 3:
                return "YK";
            default:
                return "未知";
        }
    }
}
src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -4,10 +4,13 @@
import com.zy.asrs.entity.CommandInfo;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.param.TaskStatusFeedbackParam;
import com.zy.asrs.service.CommandInfoService;
import com.zy.asrs.service.TaskWrkService;
import com.zy.asrs.utils.PostMesDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -23,9 +26,23 @@
    @Autowired
    private CommandInfoService commandInfoService;
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${wms.movePath}")
    private String movePath;
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() {
        for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
            TaskStatusFeedbackParam taskStatusFeedbackParam = new TaskStatusFeedbackParam(taskWrk);
            if (taskWrk.getStatus()==3){
                taskStatusFeedbackParam.setTaskStatus("done");
                new PostMesDataUtils().postMesData("完成上报",wmsUrl,movePath,taskWrk);
            }else {
                taskStatusFeedbackParam.setTaskStatus("cancelled");
                new PostMesDataUtils().postMesData("取消任务完成",wmsUrl,movePath,taskWrk);
            }
            if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) > 0) {
                //任务已经转日志,将该任务下面的指令转日志
                commandInfoService.saveToHistory(taskWrk.getTaskNo());
src/main/java/com/zy/asrs/utils/Utils.java
@@ -22,6 +22,11 @@
        return (float) Arith.multiplys(2, f, 1);
    }
    //站点号转换
    public static String getEquipmentCode(String targetPoint){
        return "J-1"+targetPoint;
    }
    public static String zerofill(String msg, Integer count){
        if (msg.length() == count){
            return msg;