[6.8.4]
[fix] [全局添加shiftsId]
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 6,
|
||||
"identityHash": "1d1af100293dd1557307b49359621a5f",
|
||||
"identityHash": "a2451ba8fe1fb6312258d93e3c2c2c8c",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "contrail_data_table",
|
||||
@@ -258,7 +258,7 @@
|
||||
},
|
||||
{
|
||||
"tableName": "task_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `shifts_id` INTEGER, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
@@ -266,6 +266,12 @@
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "shiftsId",
|
||||
"columnName": "shifts_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskId",
|
||||
"columnName": "task_id",
|
||||
@@ -345,7 +351,7 @@
|
||||
},
|
||||
{
|
||||
"tableName": "used_task_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL, `videoList` TEXT)",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `shifts_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL, `videoList` TEXT)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
@@ -359,6 +365,12 @@
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "shiftsId",
|
||||
"columnName": "shifts_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
@@ -479,7 +491,7 @@
|
||||
},
|
||||
{
|
||||
"tableName": "event_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `task_date` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `driver_id` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `msg_id` TEXT, `update_time` INTEGER)",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `shifts_id` INTEGER, `lineId` INTEGER, `task_date` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `driver_id` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `msg_id` TEXT, `update_time` INTEGER)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
@@ -493,6 +505,12 @@
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "shiftsId",
|
||||
"columnName": "shifts_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "lineId",
|
||||
@@ -599,7 +617,7 @@
|
||||
},
|
||||
{
|
||||
"tableName": "writeoff_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `task_date` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `shifts_id` INTEGER, `task_id` INTEGER, `task_date` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
@@ -631,6 +649,12 @@
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "shiftsId",
|
||||
"columnName": "shifts_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskId",
|
||||
"columnName": "task_id",
|
||||
@@ -745,7 +769,7 @@
|
||||
"views": [],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1d1af100293dd1557307b49359621a5f')"
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'a2451ba8fe1fb6312258d93e3c2c2c8c')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mogo.och.weaknet.bean.response
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.data.bean.SiteIntroduce
|
||||
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
@@ -82,6 +84,10 @@ data class CarExecutableTaskResponse(val data: List<Result>?) : BaseData(){
|
||||
dataInfo.taskList?.let { taskInfs ->
|
||||
taskInfs.forEach {
|
||||
it.lineId = lineId
|
||||
if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 班车需要前台生产任务Id 前台规则 任务id 等同模板id
|
||||
it.taskId = it.shiftsId
|
||||
}
|
||||
}
|
||||
TaskDb.addOrUpdate(taskInfs,lineId)
|
||||
}
|
||||
|
||||
@@ -98,11 +98,7 @@ object EventModel {
|
||||
}
|
||||
|
||||
waitUpdateWriteOffEvent?.let {writeOffEvents->
|
||||
writeOffEvents.forEach {
|
||||
it.updateStatus = EventDataBean.updated
|
||||
it.upDateTime = System.currentTimeMillis()
|
||||
}
|
||||
WriteOffDb.saveUpdateSuccess(writeOffEvents)
|
||||
WriteOffDb.saveUpdateSuccess(writeOffEvents,EventDataBean.updated,System.currentTimeMillis())
|
||||
}
|
||||
|
||||
isUpdating.set(false)
|
||||
|
||||
@@ -211,8 +211,8 @@ object LineModel {
|
||||
fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) {
|
||||
RxUtils.disposeSubscribe(startTaskDisposable)
|
||||
line.getLineIdAndName { lineId, lineName ->
|
||||
task.getLineIdAndName { taskId, taskTime,taskDate ->
|
||||
RepositoryManager.startTask(taskId, lineId, taskTime, lineName)
|
||||
task.getLineIdAndName { shiftsId,taskId, taskTime,taskDate ->
|
||||
RepositoryManager.startTask(shiftsId,taskId, lineId, taskTime, lineName)
|
||||
?.subscribeOn(Schedulers.io())
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
?.subscribe(object : Observer<Boolean> {
|
||||
@@ -247,7 +247,7 @@ object LineModel {
|
||||
override fun onNext(data: Boolean) {
|
||||
d(TAG, "commitSwitchLineId onNext ${data}")
|
||||
if (data) {
|
||||
EventDb.saveEventTaskStart(taskId, lineId, taskTime, lineName,taskDate)
|
||||
EventDb.saveEventTaskStart(shiftsId,taskId, lineId, taskTime, lineName,taskDate)
|
||||
OrderModel.queryBusRoutes()
|
||||
BizLoopManager.runInIoThread{
|
||||
val querySiteByLineId = SiteDb.querySiteByLineId(lineId)
|
||||
@@ -311,8 +311,8 @@ object LineModel {
|
||||
}
|
||||
|
||||
fun endTask() {
|
||||
currentTask?.taskId?.let { taskId ->
|
||||
RepositoryManager.endTask(taskId)
|
||||
currentTask?.getLineIdAndName { shiftsId, taskId, taskTime, taskDate ->
|
||||
RepositoryManager.endTask(shiftsId,taskId)
|
||||
?.subscribeOn(Schedulers.io())
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
?.subscribe(object : Observer<Boolean> {
|
||||
|
||||
@@ -264,6 +264,7 @@ object OrderModel {
|
||||
RepositoryManager.leaveStation(
|
||||
startStation.seq,
|
||||
startStation.siteId.toLong(),
|
||||
task.shiftsId?:0L,
|
||||
task.taskId?:0L,
|
||||
task.lineId?:0L,
|
||||
task.taskStartTime?:System.currentTimeMillis(),
|
||||
|
||||
@@ -118,22 +118,22 @@ object RepositoryManager {
|
||||
return lineRepository?.queryCanUserTask(lineId)
|
||||
}
|
||||
|
||||
fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>? {
|
||||
return lineRepository?.startTask(taskId,lineId,taskTime,lineName)
|
||||
fun startTask(shiftsId:Long,taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>? {
|
||||
return lineRepository?.startTask(shiftsId,taskId,lineId,taskTime,lineName)
|
||||
}
|
||||
|
||||
fun leaveStation(
|
||||
seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime: Long, taskDate: Long
|
||||
seq: Int, siteId: Long,shiftsId:Long ,taskId: Long, lineId: Long, taskStartTime: Long, taskDate: Long
|
||||
): Observable<Boolean>?{
|
||||
return lineRepository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime,taskDate)
|
||||
return lineRepository?.leaveStation(seq,siteId,shiftsId,taskId,lineId,taskStartTime,taskDate)
|
||||
}
|
||||
|
||||
fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable<Boolean>?{
|
||||
return lineRepository?.arriveStation(seq,siteId,taskId)
|
||||
}
|
||||
|
||||
fun endTask(taskId: Long): Observable<Boolean>?{
|
||||
return lineRepository?.endTask(taskId)
|
||||
fun endTask(shiftsId:Long,taskId: Long): Observable<Boolean>?{
|
||||
return lineRepository?.endTask(shiftsId,taskId)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -91,7 +91,11 @@ abstract class MyDataBase : RoomDatabase() {
|
||||
private val MIGRATION_5_6 = object : Migration(5, 6) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN task_date INTEGER")
|
||||
database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN shifts_id INTEGER")
|
||||
database.execSQL("ALTER TABLE ${WriteOffDataBean.tableName} ADD COLUMN task_date INTEGER")
|
||||
database.execSQL("ALTER TABLE ${WriteOffDataBean.tableName} ADD COLUMN shifts_id INTEGER")
|
||||
database.execSQL("ALTER TABLE ${TaskDataBean.tableName} ADD COLUMN shifts_id INTEGER")
|
||||
database.execSQL("ALTER TABLE ${TaskSiteDataBean.tableName} ADD COLUMN shifts_id INTEGER")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,12 @@ data class EventDataBean(
|
||||
@ColumnInfo(name = "event_type", typeAffinity = ColumnInfo.TEXT)
|
||||
var eventType: String? = null,
|
||||
|
||||
/**
|
||||
* 生成任务的模板id
|
||||
*/
|
||||
@ColumnInfo(name = "shifts_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var shiftsId: Long? = null,
|
||||
|
||||
/**
|
||||
* 任务id、模板id
|
||||
*/
|
||||
|
||||
@@ -12,11 +12,17 @@ data class TaskDataBean(
|
||||
@SerializedName("idtemp")
|
||||
var id: Int = 0,
|
||||
|
||||
/**
|
||||
* 生成任务的模板id
|
||||
*/
|
||||
@ColumnInfo(name = "shifts_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var shiftsId: Long? = null,
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
@ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER, index = true)
|
||||
@SerializedName("id", alternate = ["shiftsId"])
|
||||
@SerializedName("id")
|
||||
var taskId: Long? = null,
|
||||
|
||||
/**
|
||||
@@ -87,11 +93,13 @@ data class TaskDataBean(
|
||||
return result
|
||||
}
|
||||
|
||||
fun getLineIdAndName(function: (taskId: Long, taskTime: Long , taskDate:Long) -> Unit) {
|
||||
fun getLineIdAndName(function: (shiftsId:Long,taskId: Long, taskTime: Long , taskDate:Long) -> Unit) {
|
||||
taskId?.let { id ->
|
||||
taskStartTime?.let { time ->
|
||||
taskDate?.let { date ->
|
||||
function(id, time, date)
|
||||
shiftsId?.let {shiftsId->
|
||||
function(shiftsId,id, time, date)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,12 @@ data class TaskSiteDataBean(
|
||||
@ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var taskId: Long? = null,
|
||||
|
||||
/**
|
||||
* 生成任务的模板id
|
||||
*/
|
||||
@ColumnInfo(name = "shifts_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var shiftsId: Long? = null,
|
||||
|
||||
/**
|
||||
* 线路id
|
||||
*/
|
||||
@@ -129,12 +135,13 @@ data class TaskSiteDataBean(
|
||||
/**
|
||||
* 开始任务 并把第一站置为 2 当前站
|
||||
*/
|
||||
fun toTaskSiteDatas(querySites: List<SiteDataBean>, taskId:Long, lineName: String): MutableList<TaskSiteDataBean> {
|
||||
fun toTaskSiteDatas(querySites: List<SiteDataBean>,shiftsId:Long, taskId:Long, lineName: String): MutableList<TaskSiteDataBean> {
|
||||
val result = mutableListOf<TaskSiteDataBean>()
|
||||
var temp: TaskSiteDataBean?=null
|
||||
querySites.forEach {
|
||||
temp = TaskSiteDataBean()
|
||||
temp?.taskId = taskId
|
||||
temp?.shiftsId = shiftsId
|
||||
temp?.lineId = it.lineId
|
||||
temp?.lineName = lineName
|
||||
temp?.siteId = it.siteId
|
||||
|
||||
@@ -36,6 +36,13 @@ data class WriteOffDataBean(
|
||||
@ColumnInfo(name = "type", typeAffinity = ColumnInfo.INTEGER)
|
||||
var type: Int? = null,
|
||||
|
||||
|
||||
/**
|
||||
* 生成任务的模板id
|
||||
*/
|
||||
@ColumnInfo(name = "shifts_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var shiftsId: Long? = null,
|
||||
|
||||
/**
|
||||
* 当前的任务id、模板id
|
||||
*/
|
||||
|
||||
@@ -20,8 +20,8 @@ interface EventDataDao {
|
||||
@Delete
|
||||
fun delete(vararg eventDataBean: EventDataBean)
|
||||
|
||||
@Query("UPDATE ${EventDataBean.tableName} SET update_status = :status WHERE id = :id")
|
||||
fun updateUpdateSatus(id:Int,status:Int):Int
|
||||
@Query("UPDATE ${EventDataBean.tableName} SET update_status = :status,update_time = :currentTimeMillis WHERE id = :id")
|
||||
fun updateUpdateSatus(id: Int, status: Int, currentTimeMillis: Long):Int
|
||||
|
||||
|
||||
// 删除过时数据
|
||||
|
||||
@@ -39,5 +39,8 @@ interface WriteOffDataDao {
|
||||
@Query("SELECT count(1) FROM ${WriteOffDataBean.tableName} WHERE update_status = ${WriteOffDataBean.notUpdate}")
|
||||
fun queryWriteOffByStatusWithPageCount(): Int
|
||||
|
||||
@Query("UPDATE ${WriteOffDataBean.tableName} SET update_status = :updated ,update_time = :currentTimeMillis WHERE id = :id")
|
||||
fun updateStatusAndTime(updated: Int, currentTimeMillis: Long, id: Int)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
package com.mogo.och.weaknet.repository.db.exception
|
||||
|
||||
class DbException: RuntimeException {
|
||||
var code:Int = 0
|
||||
var msg:String = ""
|
||||
constructor() : super()
|
||||
constructor(message: String?) : super(message)
|
||||
constructor(code:Int, message: String) : super("${code}_${message}"){
|
||||
this.code = code
|
||||
this.msg = message
|
||||
}
|
||||
|
||||
companion object{
|
||||
const val NEEDSYNDATA = 10001
|
||||
}
|
||||
}
|
||||
@@ -30,11 +30,12 @@ object EventDb: IDbRepository {
|
||||
eventDataDao = null
|
||||
}
|
||||
|
||||
fun saveEventTaskStart(taskId: Long, lineId: Long, taskStartTime: Long, name: String,taskDate:Long) {
|
||||
fun saveEventTaskStart(shiftsId:Long,taskId: Long, lineId: Long, taskStartTime: Long, name: String,taskDate:Long) {
|
||||
val event = EventDataBean()
|
||||
event.eventType = EventDataBean.TaskStart
|
||||
event.lineId = lineId
|
||||
event.taskId = taskId
|
||||
event.shiftsId = shiftsId
|
||||
event.taskDate = taskDate
|
||||
event.lineName = name
|
||||
event.taskStartTime = taskStartTime
|
||||
@@ -51,6 +52,7 @@ object EventDb: IDbRepository {
|
||||
}
|
||||
|
||||
fun saveEventTaskArriveSite(
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
siteId: Long,
|
||||
@@ -62,6 +64,7 @@ object EventDb: IDbRepository {
|
||||
val event = EventDataBean()
|
||||
event.eventType = EventDataBean.TaskArriveSite
|
||||
event.lineId = lineId
|
||||
event.shiftsId = shiftsId
|
||||
event.taskStartTime = taskStartTime
|
||||
event.lineName = lineName
|
||||
event.taskId = taskId
|
||||
@@ -79,6 +82,7 @@ object EventDb: IDbRepository {
|
||||
}
|
||||
|
||||
fun saveEventTaskLeaveSite(
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
siteId: Long,
|
||||
@@ -90,6 +94,7 @@ object EventDb: IDbRepository {
|
||||
val event = EventDataBean()
|
||||
event.eventType = EventDataBean.TaskLeaveSite
|
||||
event.lineId = lineId
|
||||
event.shiftsId = shiftsId
|
||||
event.taskId = taskId
|
||||
event.taskDate = taskDate
|
||||
event.taskStartTime = taskStartTime
|
||||
@@ -107,6 +112,7 @@ object EventDb: IDbRepository {
|
||||
}
|
||||
|
||||
fun saveEventTaskEnd(
|
||||
shiftsId: Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskStartTime: Long?,
|
||||
@@ -116,6 +122,7 @@ object EventDb: IDbRepository {
|
||||
val event = EventDataBean()
|
||||
event.eventType = EventDataBean.TaskEnd
|
||||
event.lineId = lineId
|
||||
event.shiftsId = shiftsId
|
||||
event.taskId = taskId
|
||||
event.taskDate = taskDate
|
||||
event.lineName = lineName
|
||||
@@ -151,7 +158,7 @@ object EventDb: IDbRepository {
|
||||
@Transaction
|
||||
fun saveUpdateSuccess(waitUpdateEvent: List<EventDataBean>) {
|
||||
waitUpdateEvent.forEach {
|
||||
eventDataDao?.updateUpdateSatus(it.id,it.updateStatus)
|
||||
eventDataDao?.updateUpdateSatus(it.id,it.updateStatus,System.currentTimeMillis())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.db.IDbRepository
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
@@ -89,7 +90,7 @@ object TaskDb : IDbRepository {
|
||||
return null
|
||||
}
|
||||
|
||||
fun startTask(taskId: Long, lineId: Long,lineName:String): Observable<Boolean>? {
|
||||
fun startTask(shiftsId:Long,taskId: Long, lineId: Long,lineName:String): Observable<Boolean>? {
|
||||
return Observable.just(taskId)
|
||||
.flatMap {
|
||||
var updateCount:Int? = 0
|
||||
@@ -105,19 +106,30 @@ object TaskDb : IDbRepository {
|
||||
}
|
||||
CallerLogger.d(TAG,"更新任务状态用时:${System.currentTimeMillis()-startTime}")
|
||||
startTime = System.currentTimeMillis()
|
||||
updateCount = TaskSiteDb.startTask(taskId, lineId, lineName)
|
||||
updateCount = TaskSiteDb.startTask(shiftsId,taskId, lineId, lineName)
|
||||
OchChainLogManager.writeChainLogDb("开始任务", "把正在使用的数据更新到RunningTask表格一共${updateCount}行数据")
|
||||
CallerLogger.d(TAG,"插入正在运行的线路用时:${System.currentTimeMillis()-startTime}")
|
||||
} catch (e: Exception) {
|
||||
if (e is DbException) {
|
||||
println("数据不全")
|
||||
// 恢复数据
|
||||
taskDataDao?.queryTaskByTaskIdOne(taskId)?.let {
|
||||
it.startTime = null
|
||||
it.status = TaskDataBean.unUse
|
||||
// 更新任务状态
|
||||
taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.unUse,it.id)
|
||||
OchChainLogManager.writeChainLogDb("开始任务", "异常情况${lineId}_${lineName}_task:${taskId} 为未使用的状态 原因:${e.message}")
|
||||
if(e.code==DbException.NEEDSYNDATA) {
|
||||
// 重新同步 信息
|
||||
LineModel.refreshTask()
|
||||
println("数据不全")
|
||||
// 恢复数据
|
||||
taskDataDao?.queryTaskByTaskIdOne(taskId)?.let {
|
||||
it.startTime = null
|
||||
it.status = TaskDataBean.unUse
|
||||
// 更新任务状态
|
||||
taskDataDao?.updateStatus(
|
||||
System.currentTimeMillis(),
|
||||
TaskDataBean.unUse,
|
||||
it.id
|
||||
)
|
||||
OchChainLogManager.writeChainLogDb(
|
||||
"开始任务",
|
||||
"异常情况${lineId}_${lineName}_task:${taskId} 为未使用的状态 原因:${e.message}"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
return@flatMap Observable.error(DataException(DataException.startTaskErrorCode,e.message?:""))
|
||||
|
||||
@@ -34,28 +34,28 @@ object TaskSiteDb : IDbRepository {
|
||||
}
|
||||
|
||||
// 开始线路
|
||||
fun startTask(taskId: Long, linId: Long, lineName: String): Int? {
|
||||
fun startTask(shiftsId:Long,taskId: Long, linId: Long, lineName: String): Int? {
|
||||
// 获取线路的站点
|
||||
var startTime = System.currentTimeMillis()
|
||||
val querySites = SiteDb.querySiteByLineId(linId)?.distinctBy { it.siteId }
|
||||
val querySites = SiteDb.querySiteByLineId(linId)?.distinctBy { it.siteId }?.sortedBy { it.seq }
|
||||
if (querySites.isNullOrEmpty()) {
|
||||
throw DbException("没有站点数据")
|
||||
throw DbException(DbException.NEEDSYNDATA,"没有站点数据")
|
||||
}
|
||||
querySites.forEachIndexed { index, siteDataBean ->
|
||||
if(index+1!=siteDataBean.seq){
|
||||
throw DbException(DbException.NEEDSYNDATA,"站点数据排序不对")
|
||||
}
|
||||
}
|
||||
CallerLogger.d(TAG, "查询站点用时:${System.currentTimeMillis() - startTime}")
|
||||
startTime = System.currentTimeMillis()
|
||||
val toTaskSiteDatas = TaskSiteDataBean.toTaskSiteDatas(
|
||||
querySites,
|
||||
shiftsId,
|
||||
taskId,
|
||||
lineName
|
||||
)
|
||||
CallerLogger.d(TAG, "数据转换用时:${System.currentTimeMillis() - startTime}")
|
||||
if (toTaskSiteDatas.size < 2) {
|
||||
throw DbException("站点数据不全请稍后再试")
|
||||
throw DbException(DbException.NEEDSYNDATA,"站点数据不全请稍后再试")
|
||||
}
|
||||
// 把线路所有的站点搬迁到运行中表格中
|
||||
startTime = System.currentTimeMillis()
|
||||
val result = taskSiteDataDao?.insert(*toTaskSiteDatas.toTypedArray())
|
||||
CallerLogger.d(TAG, "数据插入用时:${System.currentTimeMillis() - startTime}")
|
||||
return if (result.isNullOrEmpty()) {
|
||||
null
|
||||
} else {
|
||||
@@ -110,6 +110,7 @@ object TaskSiteDb : IDbRepository {
|
||||
* 从后台恢复正在执行的任务
|
||||
*/
|
||||
fun restoreRunningTask(
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
currentSiteId: Long,
|
||||
leaving: Boolean,
|
||||
@@ -123,10 +124,11 @@ object TaskSiteDb : IDbRepository {
|
||||
// 获取线路的站点
|
||||
val querySites = SiteDb.querySiteByLineId(lineInfo.lineId!!)?.distinctBy { it.siteId }
|
||||
if (querySites.isNullOrEmpty()) {
|
||||
throw DbException("没有站点数据")
|
||||
throw DbException(DbException.NEEDSYNDATA,"没有站点数据")
|
||||
}
|
||||
val toTaskSiteDatas = TaskSiteDataBean.toTaskSiteDatas(
|
||||
querySites,
|
||||
shiftsId,
|
||||
taskId,
|
||||
lineInfo.lineName!!
|
||||
)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.weaknet.model.EventModel
|
||||
import com.mogo.och.weaknet.repository.db.IDbRepository
|
||||
@@ -38,8 +39,15 @@ object WriteOffDb: IDbRepository {
|
||||
return writeOffDataDao?.queryWriteOffEventByStatusWithPage()
|
||||
}
|
||||
|
||||
fun saveUpdateSuccess(writeOffEvents: List<WriteOffDataBean>) {
|
||||
writeOffDataDao?.insert(*writeOffEvents.toTypedArray())
|
||||
@Transaction
|
||||
fun saveUpdateSuccess(
|
||||
writeOffEvents: List<WriteOffDataBean>,
|
||||
updated: Int,
|
||||
currentTimeMillis: Long
|
||||
) {
|
||||
writeOffEvents.forEach {
|
||||
writeOffDataDao?.updateStatusAndTime(updated,currentTimeMillis,it.id)
|
||||
}
|
||||
}
|
||||
|
||||
fun queryWaitUpdateEventByTaskId(taskId: Long): List<WriteOffDataBean>? {
|
||||
|
||||
@@ -17,11 +17,12 @@ interface ILineRepository {
|
||||
|
||||
fun queryCanUserTask(lineId:Long): Observable<List<TaskDataBean>?>?
|
||||
|
||||
fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>?
|
||||
fun startTask(shiftsId:Long,taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>?
|
||||
|
||||
fun leaveStation(
|
||||
seq: Int,
|
||||
siteId: Long,
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskStartTime: Long,
|
||||
@@ -30,7 +31,7 @@ interface ILineRepository {
|
||||
|
||||
fun arriveStation( seq: Int, siteId: Long, taskId: Long): Observable<Boolean>?
|
||||
|
||||
fun endTask( taskId: Long): Observable<Boolean>?
|
||||
fun endTask(shiftsId:Long, taskId: Long): Observable<Boolean>?
|
||||
|
||||
fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>)
|
||||
|
||||
|
||||
@@ -144,6 +144,7 @@ class NormalRepository: ILineRepository {
|
||||
}
|
||||
|
||||
override fun startTask(
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskTime: Long,
|
||||
@@ -155,6 +156,7 @@ class NormalRepository: ILineRepository {
|
||||
override fun leaveStation(
|
||||
seq: Int,
|
||||
siteId: Long,
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskStartTime: Long,
|
||||
@@ -172,7 +174,7 @@ class NormalRepository: ILineRepository {
|
||||
)
|
||||
}
|
||||
|
||||
override fun endTask(taskId: Long): Observable<Boolean>? {
|
||||
override fun endTask(shiftsId:Long,taskId: Long): Observable<Boolean>? {
|
||||
return normalLineInterface?.endTask(taskId)
|
||||
}
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ class WeaknetRepository : ILineRepository {
|
||||
// 恢复站点信息
|
||||
currentTask?.taskId?.let {
|
||||
// 获取正在进行中的具体信息
|
||||
val runnintTaskAndSites = TaskSiteDb.queryRunningTask(it)
|
||||
val runnintTaskAndSites = TaskSiteDb.queryRunningTask(it)?.distinctBy { it.siteId }
|
||||
if(runnintTaskAndSites.isNullOrEmpty()||runnintTaskAndSites.size<2){
|
||||
CallerLogger.d(TAG, "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}")
|
||||
OchChainLogManager.writeChainLogDb("加载任务", "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}")
|
||||
@@ -191,12 +191,14 @@ class WeaknetRepository : ILineRepository {
|
||||
if(lineId<=0){
|
||||
return@flatMap Observable.just(false)
|
||||
}
|
||||
if(taskId<=0||currentSiteId<=0||taskDate<=0){
|
||||
if(taskId<=0||currentSiteId<=0){
|
||||
return@flatMap Observable.just(false)
|
||||
}
|
||||
// 日期是否正确
|
||||
if (!DateTimeUtil.isSameDay(System.currentTimeMillis(),taskDate)) {
|
||||
return@flatMap Observable.just(false)
|
||||
if (AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (!DateTimeUtil.isSameDay(System.currentTimeMillis(),taskDate)) {
|
||||
return@flatMap Observable.just(false)
|
||||
}
|
||||
}
|
||||
|
||||
// region 任务本地是否存在
|
||||
@@ -277,7 +279,7 @@ class WeaknetRepository : ILineRepository {
|
||||
TaskDb.restoreTask(taskId)
|
||||
|
||||
// 恢复正在执行任务表
|
||||
TaskSiteDb.restoreRunningTask(taskId,currentSiteId,leaving,lineInfo!!)
|
||||
TaskSiteDb.restoreRunningTask(it.shiftsId,taskId,currentSiteId,leaving,lineInfo!!)
|
||||
|
||||
return@flatMap loadCurrentTaskInfo()
|
||||
}
|
||||
@@ -335,17 +337,19 @@ class WeaknetRepository : ILineRepository {
|
||||
}
|
||||
|
||||
override fun startTask(
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskTime: Long,
|
||||
lineName: String
|
||||
): Observable<Boolean>? {
|
||||
return TaskDb.startTask(taskId, lineId, lineName)
|
||||
return TaskDb.startTask(shiftsId,taskId, lineId, lineName)
|
||||
}
|
||||
|
||||
override fun leaveStation(
|
||||
seq: Int,
|
||||
siteId: Long,
|
||||
shiftsId:Long,
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskStartTime: Long,
|
||||
@@ -364,6 +368,7 @@ class WeaknetRepository : ILineRepository {
|
||||
// 设置滑动出发任务
|
||||
LineManager.getLineInfo { lineInfo ->
|
||||
EventDb.saveEventTaskLeaveSite(
|
||||
shiftsId,
|
||||
taskId,
|
||||
lineId,
|
||||
it.siteId.toLong(),
|
||||
@@ -404,6 +409,7 @@ class WeaknetRepository : ILineRepository {
|
||||
// 设置到站任务
|
||||
LineManager.getLineInfo { lineInfo ->
|
||||
EventDb.saveEventTaskArriveSite(
|
||||
task.shiftsId!!,
|
||||
task.taskId!!,
|
||||
task.lineId!!,
|
||||
end.siteId.toLong(),
|
||||
@@ -449,13 +455,13 @@ class WeaknetRepository : ILineRepository {
|
||||
|
||||
}
|
||||
|
||||
override fun endTask(taskId: Long): Observable<Boolean>? {
|
||||
override fun endTask(shiftsId:Long,taskId: Long): Observable<Boolean>? {
|
||||
return Observable.just(taskId).flatMap {
|
||||
currentTask?.let {task->
|
||||
if (task.taskId!=null&&task.lineId!=null) {
|
||||
TaskDb.endTask(task.taskId!!)
|
||||
LineManager.getLineInfo { lineInfo ->
|
||||
EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName,task.taskDate?:0L)
|
||||
EventDb.saveEventTaskEnd(shiftsId,task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName,task.taskDate?:0L)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,6 +189,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
addWrite.expiryTime = it.expiryTime
|
||||
addWrite.bookingTime = it.bookingTime
|
||||
addWrite.type = it.type
|
||||
addWrite.shiftsId = it.shiftsId
|
||||
addWrite.taskId = LineModel.currentTask?.taskId
|
||||
addWrite.taskDate = LineModel.currentTask?.taskDate
|
||||
addWrite.lineId = lineId
|
||||
@@ -246,6 +247,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
//addWrite.bookingTime = it.bookingTime
|
||||
//addWrite.type = it.type
|
||||
addWrite.taskId = LineModel.currentTask?.taskId
|
||||
addWrite.shiftsId = LineModel.currentTask?.shiftsId
|
||||
LineManager.getStationsWithLine { start, end, lineInfo ->
|
||||
addWrite.siteId = start.siteId.toLong()
|
||||
addWrite.lineId = lineInfo.lineId
|
||||
|
||||
Reference in New Issue
Block a user