|
@@ -1,6 +1,5 @@
|
|
|
package com.cr.common
|
|
|
|
|
|
-import com.cr.data.CrUtil
|
|
|
import com.cr.map.CaseModel
|
|
|
import com.cr.map.LayerConfigModel
|
|
|
import com.cr.map.LayerModel
|
|
@@ -15,6 +14,7 @@ import com.cr.models.*
|
|
|
class DataManager {
|
|
|
// todo: 2023/4/3 静态方法及属性封装
|
|
|
companion object {
|
|
|
+ private const val TABLE_AIR_LINE: String = "AIRLINE" // define: 2023/9/19 航线表
|
|
|
|
|
|
/**
|
|
|
* 获取网络服务连接信息
|
|
@@ -186,14 +186,18 @@ class DataManager {
|
|
|
* @param model CaseModel 案件点模型
|
|
|
* @param callback iCompletion 完成回调
|
|
|
*/
|
|
|
- fun appAppendImages(model:CaseModel,callback:ICompletion<String>){
|
|
|
+ fun appAppendImages(model: CaseModel, callback: ICompletion<String>) {
|
|
|
// todo: 2023/6/19 先查询是否已经存在
|
|
|
- var SQL = String.format("select * from WAYIMAGES where wayid='%s' and imgname='%s'",model.name,model.imgName)
|
|
|
+ var SQL = String.format(
|
|
|
+ "select * from WAYIMAGES where wayid='%s' and imgname='%s'",
|
|
|
+ model.name,
|
|
|
+ model.imgName
|
|
|
+ )
|
|
|
var queryList = DatabaseAppUAVManager.getInstance().query(SQL)
|
|
|
- if(queryList.isNotEmpty()){
|
|
|
- if(callback != null) callback?.onCompletion(CompletionModel(false,"该照片已经存储!"))
|
|
|
- }else{
|
|
|
- var values = HashMap<String,String>()
|
|
|
+ if (queryList.isNotEmpty()) {
|
|
|
+ if (callback != null) callback?.onCompletion(CompletionModel(false, "该照片已经存储!"))
|
|
|
+ } else {
|
|
|
+ var values = HashMap<String, String>()
|
|
|
values["wayid"] = model!!.name!!
|
|
|
values["imgname"] = model!!.imgName!!
|
|
|
values["lat"] = model!!.latitude!!.toString()
|
|
@@ -202,11 +206,11 @@ class DataManager {
|
|
|
values["ang"] = model!!.angle!!.toString()
|
|
|
values["isdown"] = "0"
|
|
|
values["date"] = model!!.date!!.toString()
|
|
|
- var res = DatabaseAppUAVManager.getInstance().insert("WAYIMAGES",values)
|
|
|
- if(res){
|
|
|
- if(callback != null) callback?.onCompletion(CompletionModel(true,""))
|
|
|
- }else{
|
|
|
- if(callback != null) callback?.onCompletion(CompletionModel(false,"该照片已经存储!"))
|
|
|
+ var res = DatabaseAppUAVManager.getInstance().insert("WAYIMAGES", values)
|
|
|
+ if (res) {
|
|
|
+ if (callback != null) callback?.onCompletion(CompletionModel(true, ""))
|
|
|
+ } else {
|
|
|
+ if (callback != null) callback?.onCompletion(CompletionModel(false, "该照片已经存储!"))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -216,17 +220,22 @@ class DataManager {
|
|
|
* @param caseId String 案件Id
|
|
|
* @param callback iCompletion<List<String>> 回调
|
|
|
*/
|
|
|
- fun appQueryImages(caseId:String,callback: ICompletion<List<String>>){
|
|
|
- var querySQL = String.format("select * from WAYIMAGES where wayid='%s'",caseId)
|
|
|
+ fun appQueryImages(caseId: String, callback: ICompletion<List<String>>) {
|
|
|
+ var querySQL = String.format("select * from WAYIMAGES where wayid='%s'", caseId)
|
|
|
var queryList = DatabaseAppUAVManager.getInstance().query(querySQL)
|
|
|
- if(queryList.isNotEmpty()){
|
|
|
+ if (queryList.isNotEmpty()) {
|
|
|
var resList = mutableListOf<String>()
|
|
|
- for(map in queryList){
|
|
|
+ for (map in queryList) {
|
|
|
resList.add(map["imgname"].toString())
|
|
|
}
|
|
|
- if(callback != null) callback.onCompletion(CompletionModel(true,resList))
|
|
|
- }else{
|
|
|
- if(callback != null) callback.onCompletion(CompletionModel(false, mutableListOf("未查询到任何信息!")))
|
|
|
+ if (callback != null) callback.onCompletion(CompletionModel(true, resList))
|
|
|
+ } else {
|
|
|
+ if (callback != null) callback.onCompletion(
|
|
|
+ CompletionModel(
|
|
|
+ false,
|
|
|
+ mutableListOf("未查询到任何信息!")
|
|
|
+ )
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -235,14 +244,15 @@ class DataManager {
|
|
|
* @param dataList List<SelModel> 快捷信息列表
|
|
|
* @return Boolean 存储是否成功
|
|
|
*/
|
|
|
- fun saveCaseSubmitDescription(dataList:List<SelModel>):Boolean{
|
|
|
+ fun saveCaseSubmitDescription(dataList: List<SelModel>): Boolean {
|
|
|
var isReturn = true;
|
|
|
- DatabaseAppUAVManager.getInstance().delete("CASEKjInput","")
|
|
|
- for (model in dataList){
|
|
|
- var value:HashMap<String,String> = hashMapOf()
|
|
|
+ DatabaseAppUAVManager.getInstance().delete("CASEKjInput", "")
|
|
|
+ for (model in dataList) {
|
|
|
+ var value: HashMap<String, String> = hashMapOf()
|
|
|
value["kjid"] = model.code!!
|
|
|
value["kjnr"] = model.name!!
|
|
|
- isReturn = isReturn && DatabaseAppUAVManager.getInstance().insert("CASEKjInput",value)
|
|
|
+ isReturn =
|
|
|
+ isReturn && DatabaseAppUAVManager.getInstance().insert("CASEKjInput", value)
|
|
|
}
|
|
|
return isReturn
|
|
|
}
|
|
@@ -251,12 +261,12 @@ class DataManager {
|
|
|
* 获取案件提报快捷描述信息
|
|
|
* @return List<SelModel> 快捷描述信息列表
|
|
|
*/
|
|
|
- fun getCaseSubmitDescription():List<SelModel>{
|
|
|
+ fun getCaseSubmitDescription(): List<SelModel> {
|
|
|
var resList = mutableListOf<SelModel>()
|
|
|
var SQL = "select * from CASEKjInput order by kjid;"
|
|
|
var qList = DatabaseAppUAVManager.getInstance().query(SQL)
|
|
|
- for (map in qList){
|
|
|
- resList.add(SelModel(map["kjid"]!!,map["kjnr"]!!))
|
|
|
+ for (map in qList) {
|
|
|
+ resList.add(SelModel(map["kjid"]!!, map["kjnr"]!!))
|
|
|
}
|
|
|
return resList
|
|
|
}
|
|
@@ -266,14 +276,14 @@ class DataManager {
|
|
|
* @param dataList List<SelModel> 案件类型列表
|
|
|
* @return Boolean
|
|
|
*/
|
|
|
- fun saveCaseType(dataList:List<SelModel>):Boolean{
|
|
|
+ fun saveCaseType(dataList: List<SelModel>): Boolean {
|
|
|
var isReturn = true;
|
|
|
- DatabaseAppUAVManager.getInstance().delete("CASEType","")
|
|
|
- for (model in dataList){
|
|
|
- var value:HashMap<String,String> = hashMapOf()
|
|
|
+ DatabaseAppUAVManager.getInstance().delete("CASEType", "")
|
|
|
+ for (model in dataList) {
|
|
|
+ var value: HashMap<String, String> = hashMapOf()
|
|
|
value["lxid"] = model.code!!
|
|
|
value["lxname"] = model.name!!
|
|
|
- isReturn = isReturn && DatabaseAppUAVManager.getInstance().insert("CASEType",value)
|
|
|
+ isReturn = isReturn && DatabaseAppUAVManager.getInstance().insert("CASEType", value)
|
|
|
}
|
|
|
return isReturn
|
|
|
}
|
|
@@ -282,14 +292,134 @@ class DataManager {
|
|
|
* 获取案件类型快捷描述信息
|
|
|
* @return List<SelModel> 类型信息列表
|
|
|
*/
|
|
|
- fun getCaseType():List<SelModel>{
|
|
|
+ fun getCaseType(): List<SelModel> {
|
|
|
var resList = mutableListOf<SelModel>()
|
|
|
var SQL = "select * from CASEType order by lxid;"
|
|
|
var qList = DatabaseAppUAVManager.getInstance().query(SQL)
|
|
|
- for (map in qList){
|
|
|
- resList.add(SelModel(map["lxid"]!!,map["lxname"]!!))
|
|
|
+ for (map in qList) {
|
|
|
+ resList.add(SelModel(map["lxid"]!!, map["lxname"]!!))
|
|
|
}
|
|
|
return resList
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存航线点
|
|
|
+ * @param model CrAircraftLineModel 航线点模型
|
|
|
+ * @return Int 返回-1表示失败 其他表示保存的Id标识
|
|
|
+ */
|
|
|
+ fun saveAircraftLine(model: AircraftWaypointModel): Int {
|
|
|
+ var resInt: Int = -1
|
|
|
+ var values: HashMap<String, String> = hashMapOf()
|
|
|
+ values["date"] = model.createDate
|
|
|
+ values["lng"] = model.longitude
|
|
|
+ values["lat"] = model.latitude
|
|
|
+ values["alt"] = model.altitude
|
|
|
+ values["angle"] = model.angle
|
|
|
+ values["type"] = model.type
|
|
|
+ values["flag"] = model.userId
|
|
|
+ var isInsert = DatabaseAppUAVManager.getInstance().insert(TABLE_AIR_LINE, values)
|
|
|
+ if (isInsert) {
|
|
|
+ var sql = String.format(
|
|
|
+ "SELECT max(ID) maxid FROM %s where FLAG='%s'",
|
|
|
+ TABLE_AIR_LINE, model.userId
|
|
|
+ );
|
|
|
+ var qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ resInt = qList[0]["maxid"]!!.toInt()
|
|
|
+ }
|
|
|
+ return resInt
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询指定用户的航线统计信息
|
|
|
+ * @param userId String 用户Id
|
|
|
+ * @return AircraftLineCountModel 统计信息
|
|
|
+ */
|
|
|
+ fun queryAircraftStatisticsInfo(userId: String): AircraftLineCountModel {
|
|
|
+ var resModel = AircraftLineCountModel()
|
|
|
+ // todo: 2023/9/19 查询航点总数
|
|
|
+ var sql = String.format(
|
|
|
+ "select count(*) count from %s where flag='%s'",
|
|
|
+ TABLE_AIR_LINE,
|
|
|
+ userId
|
|
|
+ )
|
|
|
+ var qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ resModel.waypointAllCount = qList[0]["count"]!!.toInt()
|
|
|
+ // todo: 2023/9/19 查询待传航点数
|
|
|
+ sql = String.format(
|
|
|
+ "select count(*) count from %s where flag='%s' and type='0'",
|
|
|
+ TABLE_AIR_LINE, userId
|
|
|
+ )
|
|
|
+ qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ resModel.waitUploadWaypointCount = qList[0]["count"]!!.toInt()
|
|
|
+ // todo: 2023/9/19 查询已上传航点数
|
|
|
+ sql = String.format(
|
|
|
+ "select count(*) count from %s where flag='%s' and type='1'",
|
|
|
+ TABLE_AIR_LINE, userId
|
|
|
+ )
|
|
|
+ qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ resModel.yesUploadWaypointCount = qList[0]["count"]!!.toInt()
|
|
|
+ // todo: 2023/9/19 查询统计信息
|
|
|
+ sql = String.format(
|
|
|
+ "SELECT date,COUNT(*) count from (select date(date) date from %s WHERE FLAG = '%s' and TYPE = '0') GROUP BY date",
|
|
|
+ TABLE_AIR_LINE, userId
|
|
|
+ )
|
|
|
+ qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ for (data in qList) {
|
|
|
+ resModel.appendWaypointDetailInfo(data["date"]!!, data["count"]!!.toInt())
|
|
|
+ }
|
|
|
+ return resModel
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询所有待上传航点数据
|
|
|
+ * @param userId String 用户Id
|
|
|
+ * @return List<AircraftWaypointModel>
|
|
|
+ */
|
|
|
+ fun queryAllWaitUploadWaypoint(userId:String):List<AircraftWaypointModel>{
|
|
|
+ val sql = String.format("select * from %s where flag='%s' and type='0'", TABLE_AIR_LINE,userId)
|
|
|
+ val qList = DatabaseAppUAVManager.getInstance().query(sql)
|
|
|
+ var resModel = mutableListOf<AircraftWaypointModel>()
|
|
|
+ for (map in qList){
|
|
|
+ var model = AircraftWaypointModel(userId)
|
|
|
+ model.ptId = map["id"]!!
|
|
|
+ model.longitude = map["lng"]!!
|
|
|
+ model.latitude = map["lat"]!!
|
|
|
+ model.altitude = map["alt"]!!
|
|
|
+ model.angle = map["angle"]!!
|
|
|
+ resModel.add(model)
|
|
|
+ }
|
|
|
+ return resModel
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新指定航点状态
|
|
|
+ * @param userId String 用户Id
|
|
|
+ * @param ptList List<AircraftWaypointModel> 航点集合
|
|
|
+ * @return Boolean
|
|
|
+ */
|
|
|
+ fun updateWaypointState(userId: String,ptList:List<AircraftWaypointModel>):Boolean{
|
|
|
+ // todo: 2023/9/20 更新的Id集合
|
|
|
+ var arrayInt = mutableListOf<Int>()
|
|
|
+ for (pt in ptList){
|
|
|
+ arrayInt.add(pt.ptId.toInt())
|
|
|
+ }
|
|
|
+ // todo: 2023/9/20 组合条件
|
|
|
+ val strWhere = "flag = '${userId}' and id in (${arrayInt.joinToString(",")})"
|
|
|
+ // todo: 2023/9/20 更新内容
|
|
|
+ var valueMap = HashMap<String,String>()
|
|
|
+ valueMap["type"] = "1"
|
|
|
+ // todo: 2023/9/20 更新
|
|
|
+ return DatabaseAppUAVManager.getInstance().update(TABLE_AIR_LINE,valueMap,strWhere)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除航点信息
|
|
|
+ * @param userId String 用户Id
|
|
|
+ * @return Boolean 删除是否成功
|
|
|
+ */
|
|
|
+ fun deleteAircraftPoint(userId: String): Boolean {
|
|
|
+ val sqlWhere = String.format("flag='%s'", userId)
|
|
|
+ return DatabaseAppUAVManager.getInstance().delete(TABLE_AIR_LINE,sqlWhere)
|
|
|
+ }
|
|
|
}
|
|
|
}
|