package safeluck.drive.evaluation.DB.rtktb
|
|
import android.content.Context
|
import android.text.TextUtils
|
import android.util.Log
|
import androidx.work.Worker
|
import androidx.work.WorkerParameters
|
import com.anyun.exam.lib.AYSdk
|
import com.anyun.exam.lib.MyLog
|
import com.google.gson.Gson
|
import org.json.JSONException
|
import org.json.JSONObject
|
import safeluck.drive.evaluation.DB.Constant
|
import safeluck.drive.evaluation.DB.WorkRoomDataBase
|
|
class RTKConfigUpdateWorker(context:Context, workerParams: WorkerParameters) :Worker(context, workerParams){
|
|
val TAG:String = "RTKConfigUpdateWorker"
|
private val gson = Gson()
|
|
override fun doWork(): Result {
|
|
var data = inputData.getString(Constant.RTK_CONFIG_UPDATE_JSON)
|
Log.i(TAG,"更新RTK_config imei phone sn="+data)
|
var imei:String=""
|
var phone:String=""
|
var sn:String=""
|
if (!TextUtils.isEmpty(data)){
|
var jsonObject: JSONObject? = null
|
jsonObject = JSONObject(data)
|
sn = jsonObject.getString(Constant.RTK_CONFIG_SN)
|
Log.i(TAG,"sn="+sn)
|
imei = sn.substring(1)
|
Log.i(TAG,"imei="+imei)
|
/**
|
* SN与电话号码的关系(以AYKJ-4为例):
|
0311200200000011,前4位是设备编码,接下来4位是年月,后面8位是流水号;
|
电话号码前2位固定13,第三位取SN的第4位,第4-7位取SN的年月,第8-11位取SN流水号的后4位;即13120020011
|
*/
|
phone = sn
|
Log.i(TAG,"phone="+phone)
|
}
|
var rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao.also {
|
it.update(sn, imei, phone)
|
|
|
}
|
|
sendRtkConfigInfo(WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig())
|
return Result.success()
|
}
|
|
private fun sendRtkConfigInfo(mRTKConfig: RTKConfig) {
|
if (mRTKConfig != null) {
|
var rtkjson = gson.toJson(mRTKConfig)
|
//去除id字段
|
var jsonObject: JSONObject? = null
|
try {
|
jsonObject = JSONObject(rtkjson)
|
} catch (e: JSONException) {
|
e.printStackTrace()
|
}
|
jsonObject!!.remove("_id")
|
rtkjson = null
|
rtkjson = jsonObject.toString()
|
MyLog.i(TAG, "RTK配置信息:$rtkjson")
|
AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_RTK_PLATFORM_INFO, rtkjson)
|
} else {
|
MyLog.d(TAG, "RTKConfig未取到数据")
|
}
|
}
|
|
}
|