feiyu02
2024-08-15 196bb14112448857a885e32dc4149e308e00b01a
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
package cn.flightfeather.supervision.common.net
 
import cn.flightfeather.supervision.bgtask.TaskPushFume.Companion.HZY
import cn.flightfeather.supervision.bgtask.TaskPushFume.Companion.ZQ
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)
 
    class PostData private constructor(
        val apiKey: String,
        val pwd: String,
        val data: MutableList<FumeData> = mutableListOf(),
    ){
        companion object {
            fun newInstance(deviceType: String): PostData {
                return when (deviceType) {
                    HZY -> {
                        PostData("hengzhiyuan", "123456")
                    }
                    ZQ -> {
                        PostData("zhuoquan", "zq63618889")
                    }
                    else -> {
                        PostData("", "")
                    }
                }
            }
        }
    }
 
 
    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
        }
    }
}