| | |
| | | package com.flightfeather.uav.lightshare.service.impl |
| | | |
| | | import com.flightfeather.uav.common.exception.ResponseErrorException |
| | | import com.flightfeather.uav.biz.FactorFilter |
| | | import com.flightfeather.uav.biz.report.MissionReport |
| | | import com.flightfeather.uav.common.exception.BizException |
| | | import com.flightfeather.uav.domain.entity.Mission |
| | | import com.flightfeather.uav.domain.entity.RealTimeDataVehicle |
| | | import com.flightfeather.uav.domain.mapper.MissionMapper |
| | |
| | | import com.github.pagehelper.PageHelper |
| | | import org.springframework.stereotype.Service |
| | | import tk.mybatis.mapper.entity.Example |
| | | import java.io.File |
| | | import java.util.* |
| | | import javax.servlet.http.HttpServletResponse |
| | | |
| | | @Service |
| | | class MissionServiceImpl( |
| | | private val missionMapper: MissionMapper, |
| | | private val realTimeDataVehicleMapper: RealTimeDataVehicleMapper, |
| | | private val missionReport: MissionReport, |
| | | ) : MissionService { |
| | | override fun getMission(type: String?, page: Int?, perPage: Int?): BaseResponse<List<Mission>> { |
| | | val _perPage = perPage ?: 60 |
| | |
| | | return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages),data = result) |
| | | } |
| | | |
| | | @Synchronized |
| | | override fun createMission(mission: Mission): BaseResponse<Boolean> { |
| | | missionMapper.selectByPrimaryKey(mission.missionCode)?.run { |
| | | return BaseResponse(false, "任务编号已存在") |
| | |
| | | } |
| | | |
| | | override fun deleteMissionAndData(missionCode: String): Boolean { |
| | | val mission = missionMapper.selectByPrimaryKey(missionCode) ?: throw ResponseErrorException("任务不存在") |
| | | val mission = missionMapper.selectByPrimaryKey(missionCode) ?: throw BizException("任务不存在") |
| | | missionMapper.deleteByPrimaryKey(missionCode) |
| | | realTimeDataVehicleMapper.deleteByExample(Example(RealTimeDataVehicle::class.java).apply { |
| | | createCriteria().andEqualTo("deviceCode", mission.deviceCode) |
| | |
| | | }) |
| | | return true |
| | | } |
| | | |
| | | override fun getReport(missionCode: String, response: HttpServletResponse) { |
| | | val path = missionReport.execute(missionCode, FactorFilter.default()) |
| | | val pathArr = path.split("/") |
| | | val file = File(path) |
| | | if (file.exists()) { |
| | | response.contentType = "application/vnd.ms-excel;charset=UTF-8" |
| | | val name = Base64.getEncoder().encodeToString(pathArr.last().toByteArray()) |
| | | response.setHeader("fileName", name) |
| | | response.outputStream.write(file.readBytes()) |
| | | } |
| | | return |
| | | } |
| | | } |