feiyu02
2024-08-15 196bb14112448857a885e32dc4149e308e00b01a
src/main/kotlin/cn/flightfeather/supervision/common/net/FumeHttpService.kt
@@ -1,5 +1,7 @@
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
@@ -13,37 +15,54 @@
    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()
    )
    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
        //设备编号(供应商自定义,最大长度: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? {