From 84569abda51ecf6c5549dec4cadee8d043422379 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 30 九月 2025 09:33:28 +0800 Subject: [PATCH] 2025.9.30 --- src/main/kotlin/com/flightfeather/grid/service/impl/ClueTaskServiceImpl.kt | 81 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 1 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/grid/service/impl/ClueTaskServiceImpl.kt b/src/main/kotlin/com/flightfeather/grid/service/impl/ClueTaskServiceImpl.kt index 52f2428..142f99f 100644 --- a/src/main/kotlin/com/flightfeather/grid/service/impl/ClueTaskServiceImpl.kt +++ b/src/main/kotlin/com/flightfeather/grid/service/impl/ClueTaskServiceImpl.kt @@ -1,10 +1,20 @@ package com.flightfeather.grid.service.impl import com.flightfeather.grid.config.exception.BizException +import com.flightfeather.grid.constant.ConstantHttp import com.flightfeather.grid.domain.ds1.entity.ClueTask +import com.flightfeather.grid.domain.ds1.mapper.ClueInternalMapper import com.flightfeather.grid.domain.ds1.mapper.ClueTaskMapper import com.flightfeather.grid.service.ClueTaskService +import com.flightfeather.grid.vo.ClueInternalTaskVo +import com.flightfeather.grid.vo.ClueTaskOptions +import com.flightfeather.grid.vo.ClueTaskSummaryVo +import com.flightfeather.grid.vo.DataHead +import com.flightfeather.grid.web.responsePack +import com.github.pagehelper.PageHelper import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional +import tk.mybatis.mapper.entity.Example import java.util.* /** @@ -13,7 +23,32 @@ * @author feiyu02 */ @Service -class ClueTaskServiceImpl(private val clueTaskMapper: ClueTaskMapper) : ClueTaskService { +class ClueTaskServiceImpl( + private val clueTaskMapper: ClueTaskMapper, + private val clueInternalMapper: ClueInternalMapper, +) : ClueTaskService { + + @Transactional + override fun createInternalClueTask(clueInternalTaskVo: ClueInternalTaskVo): Int { + clueInternalTaskVo.clueInternal?.cReleaseTime = Date() + clueInternalTaskVo.clueInternal?.cCreateTime = Date() + clueInternalTaskVo.clueInternal?.cUploaded = false + clueInternalMapper.insert(clueInternalTaskVo.clueInternal) + + // + clueInternalTaskVo.clueTask?.clueId = clueInternalTaskVo.clueInternal?.cId + if (clueInternalTaskVo.clueTask?.guid == null) { + clueInternalTaskVo.clueTask?.guid = UUID.randomUUID().toString() + } + if (clueInternalTaskVo.clueTask?.hasUav == null) { + clueInternalTaskVo.clueTask?.hasUav = false + } + clueInternalTaskVo.clueTask?.createTime = Date() + clueInternalTaskVo.clueTask?.updateTime = Date() + clueInternalTaskVo.clueTask?.internalTask = true + clueInternalTaskVo.clueTask?.finished = false + return clueTaskMapper.insert(clueInternalTaskVo.clueTask) + } override fun createClueTask(clueTask: ClueTask): Int { if (clueTask.guid == null) { @@ -21,6 +56,8 @@ } clueTask.createTime = Date() clueTask.updateTime = Date() + clueTask.internalTask = false + clueTask.finished = false return clueTaskMapper.insert(clueTask) } @@ -34,4 +71,46 @@ override fun getClueTask(clueTask: ClueTask): List<ClueTask?> { return clueTaskMapper.select(clueTask) } + + override fun searchClueTask(options: ClueTaskOptions, page: Int?, perPage: Int?): Pair<DataHead, List<ClueTask?>> { + val p = PageHelper.startPage<ClueTask>( + page ?: ConstantHttp.DEFAULT_PAGE_NUM, + perPage ?: ConstantHttp.DEFAULT_PAGE_SIZE + ) + clueTaskMapper.selectByExample(Example(ClueTask::class.java).apply { + createCriteria().apply { + andEqualTo("internalTask", options.internal) + andGreaterThanOrEqualTo("taskTime", options.startTime) + andLessThanOrEqualTo("taskTime", options.endTime) + andEqualTo("provinceCode", options.provinceCode) + andEqualTo("provinceName", options.provinceName) + andEqualTo("cityCode", options.cityCode) + andEqualTo("cityName", options.cityName) + andEqualTo("districtCode", options.districtCode) + andEqualTo("districtName", options.districtName) + andEqualTo("townCode", options.townCode) + andEqualTo("townName", options.townName) + andEqualTo("finished", options.finished) + } + orderBy(options.sortBy ?: "taskTime").apply { if (options.sort == "desc") desc() else asc() } + }) + + return responsePack(p) + } + + override fun deleteClueTask(clueTask: ClueTask): Int { + clueTask.guid ?: throw BizException("鍒犻櫎绾跨储浠诲姟澶辫触锛岀己灏戜换鍔′富閿甮uid") + return clueTaskMapper.delete(clueTask) + } + + override fun getClueTaskSummary(options: ClueTaskOptions): ClueTaskSummaryVo { + return clueTaskMapper.selectSummaryCount(options) + } + + override fun finishClueTask(clueTaskId: String): Int { + return clueTaskMapper.updateByPrimaryKeySelective(ClueTask().apply { + guid = clueTaskId + finished = true + }) + } } \ No newline at end of file -- Gitblit v1.9.3