lizhanwei
2020-02-17 caab8f84247d47251ca7997356b03bf6f06b1811
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package safeluck.drive.evaluation.platformMessage;
 
import android.text.TextUtils;
 
import com.anyun.im_lib.util.ByteUtil;
 
import java.text.SimpleDateFormat;
 
/**
 * 上报学员单项扣分项目
 */
public class UploadStuItem extends DriveExamProtocol {
    private static final short BODY_LENGTH = 30;
 
    private short reasonLength = 0;
    private int currPos = 0;
 
    private String ID;//身份证
    private String BCDStr;//时间BCD[6] YYMMDDhhmmss
    private int exam_id;// DWORD  4字节 唯一考试ID标志
    private short fail_item_id;//扣分项目编号 1字节
    private short score;//扣分分数 一字节
    private String reason;//扣分原因
 
    public String getID() {
        return ID;
    }
 
    public void setID(String ID) {
        this.ID = ID;
    }
 
 
 
    public int getExam_id() {
        return exam_id;
    }
 
    public void setExam_id(int exam_id) {
        this.exam_id = exam_id;
    }
 
    public short getFail_item_id() {
        return fail_item_id;
    }
 
    public void setFail_item_id(short fail_item_id) {
        this.fail_item_id = fail_item_id;
    }
 
    public short getScore() {
        return score;
    }
 
    public void setScore(short score) {
        this.score = score;
    }
 
    public String getReason() {
        return reason;
    }
 
    public void setReason(String reason) {
        this.reason = reason;
    }
 
    public String getBCDStr() {
        return BCDStr;
    }
 
    /**
     * 设置时间
     * 形如"200217020618"字符串
     * @param BCDStr
     */
    public void setBCDStr(String BCDStr) {
        this.BCDStr = BCDStr;
    }
 
    /**
     * 构造函数
     *
     * @param msg_id 消息ID
     */
    public UploadStuItem(short msg_id) {
        super(msg_id);
    }
 
    @Override
    protected byte[] createMessageBody() {
        byte [] messageBody = new byte[BODY_LENGTH+reasonLength];
        byte[] idBytes = !TextUtils.isEmpty(ID)?ID.getBytes():"".getBytes();
        byte[] timeStampBCD = ByteUtil.str2Bcd(BCDStr);
        byte[] examIdBytes = ByteUtil.intGetBytes(exam_id);
        byte[] fail_item_idBytes = ByteUtil.shortGetByte(fail_item_id);
        byte[] score_bytes = ByteUtil.shortGetByte(score);
        byte[] reasonBytes = !TextUtils.isEmpty(reason)?reason.getBytes():"".getBytes();
 
        reasonLength = (short) reasonBytes.length;
 
        System.arraycopy(idBytes,0,messageBody,currPos,idBytes.length);
        currPos += 18;
 
        System.arraycopy(timeStampBCD,0,messageBody,currPos,timeStampBCD.length);
        currPos += timeStampBCD.length;
 
        System.arraycopy(examIdBytes,0,messageBody,currPos,examIdBytes.length);
        currPos += 4;
 
        System.arraycopy(fail_item_idBytes,0,messageBody,currPos,fail_item_idBytes.length);
        currPos += 1;
 
        System.arraycopy(score_bytes,0,messageBody,currPos,score_bytes.length);
        currPos += 1;
 
        System.arraycopy(reasonBytes,0,messageBody,currPos,reasonLength);
 
 
 
        return messageBody;
    }
 
    @Override
    protected short msgBodyLength() {
        return (short) (BODY_LENGTH+reasonLength);
    }
}