| | |
| | | package cn.flightfeather.supervision.lightshare.service.impl |
| | | |
| | | import cn.flightfeather.supervision.common.exception.BizException |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Mediafile |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.MediafileMapper |
| | | import cn.flightfeather.supervision.common.utils.Constant |
| | | import cn.flightfeather.supervision.common.utils.FileUtil |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Inspection |
| | | import cn.flightfeather.supervision.domain.ds1.repository.InspectionRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.MediaFileRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.SceneRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep |
| | | import cn.flightfeather.supervision.lightshare.service.DomainitemService |
| | | import cn.flightfeather.supervision.lightshare.service.MediafileService |
| | | import cn.flightfeather.supervision.lightshare.vo.MediafileVo |
| | | import cn.flightfeather.supervision.lightshare.vo.MediaFileVo |
| | | import com.fasterxml.jackson.core.type.TypeReference |
| | | import org.springframework.beans.BeanUtils |
| | | import org.springframework.stereotype.Service |
| | |
| | | import com.fasterxml.jackson.databind.ObjectMapper |
| | | import org.slf4j.Logger |
| | | import org.slf4j.LoggerFactory |
| | | import org.springframework.beans.factory.annotation.Value |
| | | import java.io.File |
| | | |
| | | |
| | | @Service |
| | | class MediafileServiceImpl(val mediafileMapper: MediafileMapper) : MediafileService { |
| | | class MediafileServiceImpl( |
| | | val mediafileMapper: MediafileMapper, |
| | | private val mediaFileRep: MediaFileRep, |
| | | private val inspectionRep: InspectionRep, |
| | | private val subTaskRep: SubTaskRep, |
| | | private val sceneRep: SceneRep, |
| | | private val domainItemService: DomainitemService, |
| | | @Value("\${filePath}") var filePath: String, |
| | | @Value("\${imgPath}") var imgPath: String, |
| | | ) : MediafileService { |
| | | |
| | | private val logging: Logger = LoggerFactory.getLogger(MediafileServiceImpl::class.java) |
| | | |
| | |
| | | return mediafilelist |
| | | } |
| | | |
| | | /** |
| | | * 获取所有任意拍常规记录图片 |
| | | * @param iGuid |
| | | */ |
| | | override fun getRoutineRecord(iGuid: String?, stGuid: String?): List<Mediafile?> { |
| | | var inspectionGuid = iGuid |
| | | val sceneId = if (iGuid != null) { |
| | | inspectionRep.findOne(iGuid)?.sguid |
| | | } else if (stGuid != null) { |
| | | val s = subTaskRep.findOne(stGuid) |
| | | val ins = inspectionRep.findOne(Inspection().apply { stguid = stGuid }) |
| | | inspectionGuid = ins?.guid |
| | | s?.scenseid |
| | | } else { |
| | | throw BizException("巡查记录id和巡查任务id至少填写其中一个") |
| | | } |
| | | sceneId ?: throw BizException("记录对应的场景不存在") |
| | | val sceneInfo = sceneRep.findScene(sceneId = sceneId) ?: throw BizException("场景不存在,获取场景图片失败") |
| | | val mediaFileTypeList = domainItemService.getMediaFileType(sceneInfo.typeid?.toInt()).entries.map { it.key?.toInt() } |
| | | return mediaFileRep.findList(inspectionGuid, mediaFileTypeList) |
| | | } |
| | | |
| | | //根据问题id获取媒体文件 |
| | | override fun findByProblemID(id: String): List<MediafileVo> { |
| | | val mediafileVos = mutableListOf<MediafileVo>() |
| | | override fun findByProblemID(id: String): List<MediaFileVo> { |
| | | val mediaFileVos = mutableListOf<MediaFileVo>() |
| | | val mediafile = Mediafile() |
| | | mediafile.iguid = id |
| | | val mediafiles = mediafileMapper.select(mediafile) |
| | | if (mediafiles.isNotEmpty()) { |
| | | mediafiles.forEach { |
| | | val mediafileVo = MediafileVo() |
| | | val mediafileVo = MediaFileVo() |
| | | BeanUtils.copyProperties(it, mediafileVo) |
| | | mediafileVos.add(mediafileVo) |
| | | mediaFileVos.add(mediafileVo) |
| | | } |
| | | } |
| | | mediafileVos.sortBy { it.savetime } |
| | | return mediafileVos |
| | | mediaFileVos.sortBy { it.savetime } |
| | | return mediaFileVos |
| | | } |
| | | |
| | | //新增媒体文件 |
| | |
| | | val mapper = ObjectMapper() |
| | | |
| | | //json转object |
| | | val mediafileVos = |
| | | mapper.readValue<List<MediafileVo>>(mediafileVoList, object : TypeReference<List<MediafileVo>>() {}) |
| | | val mediaFileVos = |
| | | mapper.readValue<List<MediaFileVo>>(mediafileVoList, object : TypeReference<List<MediaFileVo>>() {}) |
| | | |
| | | if (mediafileVos.isNotEmpty()) { |
| | | mediafileVos.forEach { |
| | | if (mediaFileVos.isNotEmpty()) { |
| | | mediaFileVos.forEach { |
| | | val mediafile = Mediafile() |
| | | BeanUtils.copyProperties(it, mediafile) |
| | | |
| | |
| | | } |
| | | |
| | | //根据扩展字段1获取保存路径 |
| | | val path = mediafileVos[0].extension1 |
| | | val path = mediaFileVos[0].extension1 |
| | | for (image in files) { |
| | | val fileName = image.originalFilename |
| | | |
| | | val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path/" |
| | | val filePath = "${imgPath}/$path/" |
| | | try { |
| | | //调用文件保存方法 |
| | | FileUtil.uploadFile(image.bytes, filePath, fileName!!) |
| | |
| | | |
| | | |
| | | //根据业务类型ID获取媒体文件 |
| | | override fun findByBusinessGUID(businessGuid: String): List<MediafileVo> { |
| | | val mediafileVoList = mutableListOf<MediafileVo>() |
| | | override fun findByBusinessGUID(businessGuid: String): List<MediaFileVo> { |
| | | val mediaFileVoList = mutableListOf<MediaFileVo>() |
| | | val mediafile = Mediafile() |
| | | mediafile.businessguid = businessGuid |
| | | val mediafiles = mediafileMapper.select(mediafile) |
| | | mediafiles.forEach { |
| | | val mediafileVo = MediafileVo() |
| | | val mediafileVo = MediaFileVo() |
| | | BeanUtils.copyProperties(it, mediafileVo) |
| | | mediafileVoList.add(mediafileVo) |
| | | mediaFileVoList.add(mediafileVo) |
| | | } |
| | | return mediafileVoList |
| | | return mediaFileVoList |
| | | } |
| | | |
| | | override fun findOne(id: String): Mediafile = mediafileMapper.selectByPrimaryKey(id) |
| | |
| | | override fun findAll(): MutableList<Mediafile> = mediafileMapper.selectAll() |
| | | |
| | | override fun save(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile) |
| | | |
| | | override fun saveMediaFile(files: Array<MultipartFile>, getMediaFile: () -> Mediafile): Int { |
| | | var res = 0 |
| | | // 保存图片 |
| | | for (image in files) { |
| | | val mediaFile = getMediaFile() |
| | | res += mediafileMapper.insert(mediaFile) |
| | | |
| | | val path = mediaFile.extension1 |
| | | val fileName = mediaFile.guid + ".jpg" |
| | | val filePath = "${imgPath}/$path/" |
| | | try { |
| | | //调用文件保存方法 |
| | | FileUtil.uploadFile(image.bytes, filePath, fileName) |
| | | } catch (e: Exception) { |
| | | // TODO: handle exception |
| | | } |
| | | } |
| | | return res |
| | | } |
| | | |
| | | override fun update(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile) |
| | | |
| | |
| | | val path = mediafile.extension1 |
| | | //File("/Users/liwei/images/${path}/${id}.jpg").delete() |
| | | //先删图片 |
| | | val f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg") |
| | | val f = File("${imgPath}/$path/$id.jpg") |
| | | if (f.exists()) { |
| | | f.delete() |
| | | } |
| | | return mediafileMapper.deleteByPrimaryKey(id) |
| | | } |
| | | |
| | | override fun deleteList(idList: List<String>): Int { |
| | | var res = 0 |
| | | if (idList.isEmpty()) return res |
| | | mediaFileRep.findList(idList).forEach { |
| | | //服务器保存路径 |
| | | val path = it?.extension1 |
| | | //先删图片 |
| | | val f = File("${imgPath}/$path/${it?.guid}.jpg") |
| | | if (f.exists()) { |
| | | f.delete() |
| | | } |
| | | res += mediaFileRep.deleteOne(it?.guid) |
| | | } |
| | | return res |
| | | } |
| | | } |