riku
2022-06-17 d2ec5bfc26119a08985059ab3dabacea8275e45b
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
package cn.flightfeather.supervision.common.net
 
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.JsonParser
 
/**
 * @author riku
 * Date: 2021/2/22
 * 油烟数据上传接口
 */
object FumeHttpService {
 
    private val httpMethod = HttpMethod("xhhb-yy.senzly.top", 80)
 
    data class PostData(
            val apiKey: String = "hengzhiyuan",
            val pwd: String = "123456",
            val data: MutableList<FumeData> = mutableListOf()
    )
 
    data class FumeData(
            //设备编号(供应商自定义,最大长度:50,必须确保唯一性)
            val equipmentShowId: String,
            //数据时间,格式必须是yyyy/MM/dd HH:mm:ss或yyyy-MM-dd HH:mm:ss
            val dataTime: String?,
            //当前进烟浓度mg/m³,数值型,允许小数
            val valIn: Double,
            //当前排烟浓度mg/m³,数值型,允许小数
            val valOut: Double,
            //风机状态:0:"无",1:"损坏",2:"待机",3:"启动"
            val fanStatus: Int,
            //风机工作电流,数值,允许小数
            val fanA: Double,
            //风机已启动时长(分钟)
            val fanMinute: Int,
            //净化器状态:0:"无",1:"损坏",2:"待机",3:"启动"
            val purifyStatus: Int,
            //净化器工作电流,数值,允许小数
            val purifyA: Double,
            //净化器已启动时长(分钟),数值,必须整数
            val purifyMinute: Int,
            //清洁度(停用),0-100数值,允许小数
            val cleanliness: Int,
            //净化率,0-100数值,允许小数
            val purifyRate: Double
    )
 
    fun uploadData(postData: PostData): JsonObject? {
        val data = Gson().toJson(postData)
        val response = httpMethod.post("/common/add", data)
        return if (response.success) {
            val json = JsonParser.parseString(response.m.responseBodyAsString)
            if (json.isJsonObject) {
                json.asJsonObject
            } else {
                null
            }
        } else {
            null
        }
    }
}