package com.ruoyi.sim.domain; import java.util.Date; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.AjaxResult; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; /** * 模拟器报文对象 sim_sim_msg * * @author tom * @date 2024-12-18 */ public class SimMsg extends BaseEntity { private static final long serialVersionUID = 1L; /** * 模拟器报文ID */ private Long simMsgId; /** * 模拟器ID */ @Excel(name = "模拟器ID") private Long simId; /** * 关联ID */ @Excel(name = "关联ID") private Long examFaultRefId; /** * 考试类型 * 1:练习 * 2:自主练习 * 3:考试 */ @Excel(name = "考试类型") private String examCollectionType; /** * 状态 0初始值 1成功 2失败 */ @Excel(name = "状态 0初始值 1成功 2失败") private String sendMsgState; /** * 优先级 */ @Excel(name = "优先级") private Integer priority; /** * 发送报文类型 cmd+cmdId */ @Excel(name = "发送报文类型 cmd+cmdId") private String sendMsgType; /** * 发送报文 */ @Excel(name = "发送报文") private String sendMsg; /** * 发送时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "发送时间", width = 30, dateFormat = "yyyy-MM-dd") private Date sendTime; /** * 接收报文 */ @Excel(name = "接收报文") private String receiveMsg; private String receiveOriginalMsg; /** * 接收时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "接收时间", width = 30, dateFormat = "yyyy-MM-dd") private Date receiveTime; /** * 重试次数 */ @Excel(name = "重试次数") private Integer retryCount = 0; /** * default. */ private Integer result = Result.DEFAULT_VALUE; /** * default "" */ private String errorMsg = ""; public void setSimMsgId(Long simMsgId) { this.simMsgId = simMsgId; } public Long getSimMsgId() { return simMsgId; } public void setSimId(Long simId) { this.simId = simId; } public Long getSimId() { return simId; } public void setExamFaultRefId(Long examFaultRefId) { this.examFaultRefId = examFaultRefId; } public Long getExamFaultRefId() { return examFaultRefId; } public void setExamCollectionType(String examCollectionType) { this.examCollectionType = examCollectionType; } public String getExamCollectionType() { return examCollectionType; } public void setSendMsgState(String sendMsgState) { this.sendMsgState = sendMsgState; } public String getSendMsgState() { return sendMsgState; } public void setPriority(Integer priority) { this.priority = priority; } public Integer getPriority() { return priority; } public void setSendMsgType(String sendMsgType) { this.sendMsgType = sendMsgType; } public String getSendMsgType() { return sendMsgType; } public void setSendMsg(String sendMsg) { this.sendMsg = sendMsg; } public String getSendMsg() { return sendMsg; } public void setSendTime(Date sendTime) { this.sendTime = sendTime; } public Date getSendTime() { return sendTime; } public void setReceiveMsg(String receiveMsg) { this.receiveMsg = receiveMsg; } public String getReceiveMsg() { return receiveMsg; } public String getReceiveOriginalMsg() { return receiveOriginalMsg; } public void setReceiveOriginalMsg(String receiveOriginalMsg) { this.receiveOriginalMsg = receiveOriginalMsg; } public void setReceiveTime(Date receiveTime) { this.receiveTime = receiveTime; } public Date getReceiveTime() { return receiveTime; } public void setRetryCount(Integer retryCount) { this.retryCount = retryCount; } public Integer getRetryCount() { return retryCount; } public Integer getResult() { return result; } public void setResult(Integer result) { this.result = result; } public String getErrorMsg() { return errorMsg; } public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("simMsgId", simMsgId) .append("simId", simId) .append("examFaultRefId", examFaultRefId) .append("examCollectionType", examCollectionType) .append("sendMsgState", sendMsgState) .append("priority", priority) .append("sendMsgType", sendMsgType) .append("sendMsg", sendMsg) .append("sendTime", sendTime) .append("receiveMsg", receiveMsg) .append("receiveOriginalMsg", receiveOriginalMsg) .append("receiveTime", receiveTime) .append("retryCount", retryCount) .append("result", result) .append("errorMsg", errorMsg) .toString(); } // -------------------------------- tom add -------------------------------- public boolean isResultOk() { if (Objects.equals(this.result, Result.SUCCESS)) { return true; } return false; } public boolean isResultNotOk() { return !isResultOk(); } public AjaxResult getDefaultErrorAR() { if (Objects.equals(this.result, Result.SUCCESS)) { // throw new IllegalArgumentException("错误执行!先判断消息对错!"); return AjaxResult.success(""); } else if (Objects.equals(this.result, Result.SOCKET_CONNECT_EXCEPTION)) { return AjaxResult.error("模拟器通信连接失败!"); } else if (Objects.equals(this.result, Result.READ_TIMEOUT_EXCEPTION)) { return AjaxResult.error("模拟器通信超时!"); } else if (Objects.equals(this.result, Result.RECEIVE_CHECK_FAIL)) { return AjaxResult.error("回复报文格式错误!"); } else if (Objects.equals(this.result, Result.RECEIVE_NOT_MATCH)) { return AjaxResult.error("回复报文不匹配!"); } else { // throw new IllegalArgumentException("参数错误!"); } return null; } public interface Result { /** * 默认空值。 */ Integer DEFAULT_VALUE = 0; /** * 成功。 */ Integer SUCCESS = 200; /** * Socket连接问题。 */ Integer SOCKET_CONNECT_EXCEPTION = 501; /** * SocketTimeoutException。 */ Integer READ_TIMEOUT_EXCEPTION = 502; /** * 接收报文格式不正确。 */ Integer RECEIVE_CHECK_FAIL = 520; /** * 接收报文格式不匹配。 */ Integer RECEIVE_NOT_MATCH = 530; } public SimMsg() { } public SimMsg(Long simMsgId, String sendMsg) { this.simMsgId = simMsgId; this.sendMsg = sendMsg; } public void retryCountPlus1() { setRetryCount(getRetryCount() + 1); } }