| package com.zy.acs.common.domain; | 
|   | 
| import com.zy.acs.framework.exception.CoolException; | 
| import com.zy.acs.common.domain.protocol.IActionBody; | 
| import com.zy.acs.common.enums.AgvActionCmdType; | 
| import lombok.Data; | 
|   | 
| import java.io.Serializable; | 
|   | 
| /** | 
|  * 路径包 - 路径点 | 
|  * Created by vincent on 2023/3/14 | 
|  */ | 
| @Data | 
| public class AgvActionItem<T extends IActionBody> implements Serializable { | 
|   | 
|     private static final long serialVersionUID = -6988765550778795176L; | 
|   | 
|     // 地面码 | 
|     private String qrCode; | 
|   | 
|     // 动作码 | 
|     private AgvActionCmdType actionCmdType; | 
|   | 
|     // 属性值 | 
|     private int val; | 
|   | 
|     // 动作参数 | 
|     private T actionBody; | 
|   | 
|     public AgvActionItem() { | 
|     } | 
|   | 
|     public AgvActionItem(Class<T> clazz) { | 
|         try { | 
|             actionBody = clazz.newInstance(); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         this.actionCmdType = AgvActionCmdType.find(actionBody.getClass()); | 
|         if (null == actionCmdType) { | 
|             throw new CoolException(clazz.getName() + "检索 AgvActionCmdType 枚举失败"); | 
|         } | 
|     } | 
|   | 
|     public AgvActionItem<T> setQrCode(String qrCode) { | 
|         this.qrCode = qrCode; | 
|         return this; | 
|     } | 
|   | 
|     public AgvActionItem<T> setActionCmdType(AgvActionCmdType actionCmdType) { | 
|         this.actionCmdType = actionCmdType; | 
|         return this; | 
|     } | 
|   | 
|     public AgvActionItem<T> setVal(int val) { | 
|         this.val = val; | 
|         return this; | 
|     } | 
|   | 
|     public AgvActionItem<T> bodySync(DataSupport<T> dataSupport) { | 
|         dataSupport.sync(this.actionBody); | 
|         return this; | 
|     } | 
|   | 
| } |