package cn.flightfeather.supervision.domain.ds1.repository
|
|
import cn.flightfeather.supervision.domain.ds1.entity.Monitorobjectversion
|
import cn.flightfeather.supervision.domain.ds1.entity.Task
|
import cn.flightfeather.supervision.domain.ds1.mapper.MonitorobjectversionMapper
|
import cn.flightfeather.supervision.domain.ds1.mapper.TaskMapper
|
import cn.flightfeather.supervision.lightshare.vo.AreaVo
|
import org.springframework.stereotype.Repository
|
import tk.mybatis.mapper.entity.Example
|
import java.time.ZoneId
|
import java.util.*
|
|
@Repository
|
class TaskRep(private val taskMapper: TaskMapper, private val monitorobjectversionMapper: MonitorobjectversionMapper) {
|
|
private fun exampleTask(areaVo: AreaVo, levelNum: Int? = null): Example? {
|
areaVo.starttime ?: return null
|
val mStart = areaVo.starttime!!.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0)
|
val mEnd = mStart.plusMonths(1).minusSeconds(1)
|
// return Task().apply {
|
// provincecode = areaVo.provincecode
|
// citycode = areaVo.citycode
|
// districtcode = areaVo.districtcode
|
// starttime = Date.from(mStart.atZone(ZoneId.systemDefault()).toInstant())
|
// endtime = Date.from(mEnd.atZone(ZoneId.systemDefault()).toInstant())
|
// }
|
|
return Example(Task::class.java).apply {
|
createCriteria()
|
.apply {
|
if (levelNum != null) {
|
andEqualTo("levelnum", levelNum)
|
} else {
|
andIsNull("levelnum")
|
}
|
}
|
.andEqualTo("provincecode", areaVo.provincecode)
|
.andEqualTo("citycode", areaVo.citycode)
|
.andEqualTo("districtcode", areaVo.districtcode)
|
.andGreaterThanOrEqualTo("starttime", mStart)
|
.andLessThanOrEqualTo("endtime", mEnd)
|
orderBy("starttime")
|
}
|
}
|
|
fun update(task: Task): Int {
|
return taskMapper.updateByPrimaryKeySelective(task)
|
}
|
|
/**
|
* 查找一个总任务
|
*/
|
fun findOneTask(areaVo: AreaVo): Task? {
|
val list = findTasks(areaVo)
|
return if (list.isEmpty()) {
|
null
|
} else {
|
list[0]
|
}
|
}
|
|
fun findTasks(areaVo: AreaVo): List<Task?> {
|
val example = exampleTask(areaVo, 2) ?: return emptyList()
|
return taskMapper.selectByExample(example)
|
}
|
|
fun findTasks(task: Task): List<Task?> {
|
return taskMapper.select(task)
|
}
|
|
/**
|
* 获取总任务对应的监管版本
|
*/
|
fun findMonitorList(taskId: String, sceneTypeId:String?): List<Monitorobjectversion> {
|
val monitorList = monitorobjectversionMapper.findMonitorListByScene(taskId, sceneTypeId)
|
return monitorList.sortedBy { it.displayid }
|
}
|
|
/**
|
* 获取日任务
|
* @param taskId 顶层任务id
|
* @param userId 执行用户id
|
*/
|
fun findDayTasks(taskId: String?, userId: String? = null): List<Task?> {
|
return taskMapper.selectByExample(Example(Task::class.java).apply {
|
createCriteria().andEqualTo("tsguid", taskId).apply {
|
userId?.let { andLike("executorguids", "%$it%") }
|
}
|
orderBy("starttime").desc()
|
})
|
}
|
}
|