package cn.flightfeather.supervision.bgtask
|
|
import cn.flightfeather.supervision.common.net.JinAnLianTongHttpService
|
import cn.flightfeather.supervision.domain.entity.DustSiteInfo
|
import cn.flightfeather.supervision.domain.mapper.DustSiteInfoMapper
|
import cn.flightfeather.supervision.infrastructure.utils.DateUtil
|
import cn.flightfeather.supervision.lightshare.vo.JinAnConstructionInfo
|
import org.springframework.beans.BeanUtils
|
import org.springframework.stereotype.Component
|
import java.time.LocalDateTime
|
|
/**
|
* 获取静安工地监测点信息
|
*/
|
@Component
|
class TaskJinAnConstructionSiteInfo(
|
private val dustSiteInfoMapper: DustSiteInfoMapper
|
) : BaseTimingTask() {
|
|
private var isFirst = true
|
|
//本任务每日执行一次
|
override fun execute(localtime: LocalDateTime) {
|
if (isFirst || (localtime.hour == 0 && localtime.minute == 0)) {
|
isFirst = false
|
doTask(localtime)
|
}
|
}
|
|
//不使用此参数
|
override val period: Long
|
get() = 1440L
|
|
override fun doTask(localtime: LocalDateTime) {
|
var page = 1
|
var hasNextPage: Boolean
|
do {
|
val res = JinAnLianTongHttpService.getConstructionDustMonitorSiteInfo(page)
|
hasNextPage = res.first
|
page++
|
saveSiteInfo(res.second)
|
} while (hasNextPage)
|
|
}
|
|
/**
|
* 保存监测点信息
|
*/
|
private fun saveSiteInfo(dataList:List<JinAnConstructionInfo>) {
|
dataList.forEach {d ->
|
val info = dustSiteInfoMapper.selectByPrimaryKey(d.id)
|
if (info == null) {
|
val b = DustSiteInfo()
|
BeanUtils.copyProperties(d, b)
|
b.apply {
|
beginDate = d.beginDate?.let { DateUtil.StringToDate(it) }
|
dataTime = d.dataTime?.let { DateUtil.StringToDate(it) }
|
doTime = d.doTime?.let { DateUtil.StringToDate(it) }
|
endDate = d.endDate?.let { DateUtil.StringToDate(it) }
|
stageBeginDate = d.stageBeginDate?.let { DateUtil.StringToDate(it) }
|
stopTime = d.stopTime?.let { DateUtil.StringToDate(it) }
|
tsp = d.tsp?.toDouble()
|
ywsjDate = d.ywsjDate?.let { DateUtil.StringToDate(it) }
|
}
|
dustSiteInfoMapper.insert(b)
|
}
|
}
|
}
|
}
|