16 changed files with 592 additions and 37 deletions
@ -0,0 +1,36 @@ |
|||
package org.dromara.common.core.constant; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/22 |
|||
*/ |
|||
public interface AiCompareStatusConstants { |
|||
/** |
|||
* "是否比对" |
|||
* */ |
|||
String COMPARE_STATUS_0="0"; |
|||
|
|||
/** |
|||
* "算法比对中" |
|||
* */ |
|||
String COMPARE_STATUS_1="1"; |
|||
/** |
|||
* "人工查看" |
|||
* */ |
|||
String COMPARE_STATUS_2="2"; |
|||
/** |
|||
* "可提交预警" |
|||
* */ |
|||
String COMPARE_STATUS_3="3"; |
|||
/** |
|||
* "完成对比" |
|||
* */ |
|||
String COMPARE_STATUS_4="4"; |
|||
|
|||
|
|||
/** |
|||
* 队列类型 0:未比对 1:比对*/ |
|||
String QUEUW_TYPE_0="0"; |
|||
|
|||
String QUEUW_TYPE_1="1"; |
|||
} |
@ -1,20 +1,121 @@ |
|||
package org.dromara.sample.wayline.controller; |
|||
|
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import io.swagger.v3.oas.annotations.tags.Tag; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareDTO; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|||
import org.dromara.sample.wayline.model.entity.WaylineJobEntity; |
|||
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|||
import org.dromara.sample.wayline.service.IAiCompareService; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("/ai/compare") |
|||
@RequiredArgsConstructor |
|||
@RequestMapping("/compare") |
|||
@Validated |
|||
@Tag(name="算法比对模块") |
|||
public class AiCompareController extends BaseController { |
|||
|
|||
|
|||
private final IAiCompareQueueService aiCompareQueueService; |
|||
|
|||
private final IAiCompareService aiCompareService; |
|||
|
|||
/** |
|||
* 图片对比列表 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<AiCompareEntity> list(AiCompareDTO bo, PageQuery pageQuery) { |
|||
return aiCompareService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 提交对比列表 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:list") |
|||
@GetMapping("/queueList") |
|||
public TableDataInfo<AiCompareQueueEntity> queueList(AiCompareQueueDTO bo, PageQuery pageQuery) { |
|||
return aiCompareQueueService.queueList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 模板列表 |
|||
* @param waylineId |
|||
* param createTime 当前记录的时间 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:list") |
|||
@GetMapping("/templateList") |
|||
public List<WaylineJobEntity> templateList(String waylineId, Date createTime) { |
|||
return aiCompareQueueService.templateList(waylineId,createTime); |
|||
} |
|||
|
|||
/** |
|||
* 对比编辑 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:query") |
|||
@GetMapping("/{id}") |
|||
public R<List<AiCompareMediaFileDTO>> queryById(@NotNull(message = "主键不能为空") |
|||
@PathVariable Long id) { |
|||
return R.ok(aiCompareService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 模板回显 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:query") |
|||
@GetMapping("/getInfo/{id}") |
|||
public R<AiCompareEntity> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable Long id) { |
|||
return R.ok(aiCompareService.getInfo(id)); |
|||
} |
|||
/** |
|||
* 新增比对 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:add") |
|||
@Log(title = "算法比对", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody List<Map<String,Object>> compareDTOList) { |
|||
return toAjax(aiCompareService.insertByBo(compareDTOList)); |
|||
} |
|||
|
|||
/** |
|||
* 重新比对 |
|||
*/ |
|||
@SaCheckPermission("sample:compare:edit") |
|||
@Log(title = "算法重新比对", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Map<String,Object> bo) { |
|||
return toAjax(aiCompareService.update(bo)); |
|||
} |
|||
|
|||
} |
|||
|
@ -1,10 +1,15 @@ |
|||
package org.dromara.sample.wayline.mapper; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
public interface IAiCompareMapper extends BaseMapper<AiCompareEntity> { |
|||
|
|||
List<AiCompareMediaFileDTO>listMediaFile(AiCompareEntity aiCompareEntity); |
|||
} |
|||
|
@ -1,10 +1,19 @@ |
|||
package org.dromara.sample.wayline.mapper; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
public interface IAiCompareQueueMapper extends BaseMapper<AiCompareQueueEntity> { |
|||
IPage<AiCompareQueueEntity> queueList(@Param("bo") AiCompareQueueDTO bo, @Param("page") Page<?> page); |
|||
|
|||
Boolean updateStatus(@Param("ids") List<Long> ids, @Param("queueType") String queueType); |
|||
} |
|||
|
@ -0,0 +1,75 @@ |
|||
package org.dromara.sample.wayline.model.dto; |
|||
|
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableField; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
@Data |
|||
@Builder |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class AiCompareMediaFileDTO { |
|||
|
|||
|
|||
private String id; |
|||
|
|||
/**上云文件id*/ |
|||
private String fileId; |
|||
|
|||
@Schema(description = "文件名") |
|||
private String fileName; |
|||
|
|||
@Schema(description = "文件的路径") |
|||
private String filePath; |
|||
|
|||
@Schema(description = "文件所属的工作区") |
|||
private String workspaceId; |
|||
@Schema(description = "桶中文件的关链字") |
|||
private String objectKey; |
|||
|
|||
@Schema(description = "此属性仅适用于由Pilot上传的图像文件。0:正常图片;1:全景。") |
|||
private String subFileType; |
|||
|
|||
@Schema(description = "是否原始图像") |
|||
private Boolean isOriginal; |
|||
|
|||
@Schema(description = "创建文件的无人机的sn。") |
|||
private String drone; |
|||
|
|||
@Schema(description = "创建文件的无人机有效载荷的名称。") |
|||
private String payload; |
|||
|
|||
@Schema(description = "文件的小指纹。此属性仅适用于由Pilot上传的媒体文件") |
|||
private String tinnyFingerprint; |
|||
|
|||
@Schema(description = "文件的指纹。此属性仅适用于由Pilot上传的媒体文件。") |
|||
private String fingerprint; |
|||
|
|||
private Date createTime; |
|||
|
|||
private String jobId; |
|||
|
|||
@Schema(description = "模板图片名称") |
|||
private String mateFileName; |
|||
|
|||
@Schema(description = "模板图url") |
|||
private String mateFilePath; |
|||
|
|||
@Schema(description = "模板拍照时间") |
|||
private Date mateFileDate; |
|||
|
|||
|
|||
|
|||
} |
@ -1,8 +1,21 @@ |
|||
package org.dromara.sample.wayline.service; |
|||
|
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|||
import org.dromara.sample.wayline.model.entity.WaylineJobEntity; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
public interface IAiCompareQueueService { |
|||
TableDataInfo<AiCompareQueueEntity> queueList(AiCompareQueueDTO bo, PageQuery pageQuery); |
|||
List<WaylineJobEntity>templateList(String waylineId, Date createTime); |
|||
AiCompareQueueEntity getInfo(Long queueId); |
|||
Boolean updateStatus(List<Long> ids,String queueType); |
|||
} |
|||
|
@ -1,8 +1,26 @@ |
|||
package org.dromara.sample.wayline.service; |
|||
|
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareDTO; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
public interface IAiCompareService { |
|||
|
|||
TableDataInfo<AiCompareEntity> queryPageList(AiCompareDTO bo, PageQuery pageQuery); |
|||
|
|||
Boolean insertByBo(List<Map<String,Object>>compareDTOList); |
|||
|
|||
Boolean update(Map<String,Object> compareDTO); |
|||
|
|||
AiCompareEntity getInfo(Long id); |
|||
List<AiCompareMediaFileDTO> queryById(Long id); |
|||
} |
|||
|
@ -1,14 +1,84 @@ |
|||
package org.dromara.sample.wayline.service.impl; |
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import com.tdunning.math.stats.Sort; |
|||
import lombok.Data; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.poi.ss.formula.functions.T; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.sample.wayline.mapper.IAiCompareQueueMapper; |
|||
import org.dromara.sample.wayline.mapper.IWaylineJobMapper; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareDTO; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|||
import org.dromara.sample.wayline.model.entity.WaylineJobEntity; |
|||
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.time.ZoneId; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
@Slf4j |
|||
public class AiCompareQueueServiceImpl implements IAiCompareQueueService { |
|||
|
|||
private final IAiCompareQueueMapper aiCompareQueueMapper; |
|||
private final IWaylineJobMapper waylineJobMapper; |
|||
@Override |
|||
public TableDataInfo<AiCompareQueueEntity> queueList(AiCompareQueueDTO bo, PageQuery pageQuery) { |
|||
return TableDataInfo.build(aiCompareQueueMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); |
|||
} |
|||
|
|||
@Override |
|||
public List<WaylineJobEntity> templateList(String waylineId, Date createTime) { |
|||
QueryWrapper<WaylineJobEntity> wrapper = Wrappers.query(); |
|||
// 如果 createTime 为空,使用当前时间
|
|||
if (createTime == null) { |
|||
createTime = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()); |
|||
} |
|||
//获取最新的10条数据
|
|||
wrapper |
|||
.eq(StringUtils.isNotBlank(waylineId),"wayline_id", waylineId) |
|||
.lt(ObjectUtil.isNotEmpty(createTime),"create_time",createTime) // 增加创建时间小于指定时间的条件
|
|||
.orderByDesc("create_time") |
|||
.last("limit 10"); |
|||
List<WaylineJobEntity> jobEntityList = waylineJobMapper.selectList(wrapper); |
|||
return jobEntityList; |
|||
} |
|||
|
|||
private QueryWrapper<AiCompareQueueEntity> buildAiCompareDTOQueryWrapper(AiCompareQueueDTO bo) { |
|||
QueryWrapper<AiCompareQueueEntity> wrapper = Wrappers.query(); |
|||
wrapper |
|||
.eq(ObjectUtil.isNotEmpty(bo.getQueueType()), "queue_type",bo.getQueueType()) |
|||
.like(StringUtils.isNotBlank(bo.getWaylineName()), "lower(wayline_name)", StringUtils.lowerCase(bo.getWaylineName())) |
|||
.like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) |
|||
.orderByDesc("create_time"); |
|||
return wrapper; |
|||
} |
|||
@Override |
|||
public AiCompareQueueEntity getInfo(Long queueId) { |
|||
return aiCompareQueueMapper.selectById(queueId); |
|||
} |
|||
|
|||
@Override |
|||
public Boolean updateStatus(List<Long> ids,String queueType) { |
|||
return aiCompareQueueMapper.updateStatus(ids,queueType); |
|||
} |
|||
} |
|||
|
@ -1,15 +1,140 @@ |
|||
package org.dromara.sample.wayline.service.impl; |
|||
|
|||
import cn.hutool.core.convert.Convert; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.ibatis.executor.BatchResult; |
|||
import org.dromara.common.core.constant.AiCompareStatusConstants; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StreamUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.satoken.utils.LoginHelper; |
|||
import org.dromara.common.translation.annotation.Translation; |
|||
import org.dromara.sample.wayline.mapper.IAiCompareMapper; |
|||
import org.dromara.sample.wayline.mapper.IWaylineJobMapper; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareDTO; |
|||
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|||
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|||
import org.dromara.sample.wayline.model.entity.WaylineJobEntity; |
|||
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|||
import org.dromara.sample.wayline.service.IAiCompareService; |
|||
import org.dromara.system.api.model.LoginUser; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* @auther yq |
|||
* @data 2025/3/21 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
@Slf4j |
|||
public class AiCompareServiceImpl implements IAiCompareService { |
|||
|
|||
private final IAiCompareQueueService aiCompareQueueService; |
|||
private final IAiCompareMapper aiCompareMapper; |
|||
private final IWaylineJobMapper waylineJobMapper; |
|||
|
|||
@Override |
|||
public TableDataInfo<AiCompareEntity> queryPageList(AiCompareDTO bo, PageQuery pageQuery) { |
|||
return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); |
|||
} |
|||
private QueryWrapper<AiCompareEntity> buildAiCompareDTOQueryWrapper(AiCompareDTO bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
QueryWrapper<AiCompareEntity> wrapper = Wrappers.query(); |
|||
wrapper |
|||
.eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) |
|||
.eq(ObjectUtil.isNotEmpty(bo.getCreateBy()), "create_by",bo.getCreateBy()) |
|||
.like(StringUtils.isNotBlank(bo.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName())) |
|||
.like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) |
|||
.between(params.get("beginTime") != null && params.get("endTime") != null, |
|||
"create_time", params.get("beginTime"), params.get("endTime")); |
|||
return wrapper; |
|||
} |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Boolean insertByBo(List<Map<String,Object>> compareDTOList) { |
|||
if(compareDTOList.isEmpty()){ |
|||
throw new RuntimeException("未选择比对数据"); |
|||
} |
|||
List<AiCompareEntity> insertList =new ArrayList<>(); |
|||
for (Map<String,Object> bo : compareDTOList) { |
|||
Long queueId = Convert.toLong(bo.get("queueId")); |
|||
AiCompareQueueEntity serviceInfo = aiCompareQueueService.getInfo(queueId); |
|||
AiCompareEntity aiCompareEntity = new AiCompareEntity(); |
|||
LoginUser loginUser = LoginHelper.getLoginUser(); |
|||
aiCompareEntity.setWaylineName(serviceInfo.getWaylineName()); |
|||
aiCompareEntity.setJobId(serviceInfo.getJobId()); |
|||
aiCompareEntity.setJobName(serviceInfo.getJobName()); |
|||
aiCompareEntity.setTotalNum(serviceInfo.getPictureNumber()); |
|||
aiCompareEntity.setCreateBy(loginUser.getUserId()); |
|||
aiCompareEntity.setNickName(loginUser.getNickname()); |
|||
aiCompareEntity.setDeptName(loginUser.getDeptName()); |
|||
aiCompareEntity.setCreateDept(loginUser.getDeptId()); |
|||
aiCompareEntity.setStatus(AiCompareStatusConstants.COMPARE_STATUS_1); |
|||
aiCompareEntity.setCreateTime(new Date()); |
|||
String templateId = Convert.toStr(bo.get("templateId")); |
|||
if(ObjectUtil.isNotEmpty(templateId)){ |
|||
aiCompareEntity.setTemplateId(templateId); |
|||
}else { |
|||
//获取最新一条的模板进行比对
|
|||
LambdaQueryWrapper<WaylineJobEntity> lasted = Wrappers.<WaylineJobEntity>lambdaQuery() |
|||
.eq(WaylineJobEntity::getFileId, serviceInfo.getWaylineId()) |
|||
.lt(WaylineJobEntity::getCreateTime, serviceInfo.getCreateTime()) // 增加创建时间小于指定时间的条件
|
|||
.orderByDesc(WaylineJobEntity::getCreateTime) |
|||
.last("limit 1"); |
|||
List<WaylineJobEntity> jobEntityList = waylineJobMapper.selectList(lasted); |
|||
if(jobEntityList.isEmpty()){ |
|||
throw new RuntimeException("("+serviceInfo.getWaylineName()+")未找到对应的模板"); |
|||
}else { |
|||
aiCompareEntity.setTemplateId(jobEntityList.get(0).getJobId()); |
|||
} |
|||
} |
|||
insertList.add(aiCompareEntity); |
|||
} |
|||
List<BatchResult> resultList = aiCompareMapper.insertOrUpdate(insertList, 10); |
|||
System.out.println(resultList); |
|||
List<Long> list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); |
|||
; |
|||
return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); |
|||
} |
|||
|
|||
@Override |
|||
public Boolean update(Map<String,Object> compareDTO) { |
|||
AiCompareEntity aiCompareEntity =new AiCompareEntity(); |
|||
Long id = Convert.toLong(compareDTO.get("id")); |
|||
aiCompareEntity.setId(id); |
|||
String templateId = Convert.toStr(compareDTO.get("templateId")); |
|||
if(StrUtil.isNotEmpty(templateId)){ |
|||
aiCompareEntity.setTemplateId(templateId); |
|||
} |
|||
|
|||
return aiCompareMapper.updateById(aiCompareEntity)>0; |
|||
} |
|||
|
|||
@Override |
|||
public AiCompareEntity getInfo(Long id) { |
|||
return aiCompareMapper.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public List<AiCompareMediaFileDTO> queryById(Long id) { |
|||
AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); |
|||
List<AiCompareMediaFileDTO> mediaFileDTOList = aiCompareMapper.listMediaFile(aiCompareEntity); |
|||
return mediaFileDTOList; |
|||
} |
|||
} |
|||
|
@ -0,0 +1,24 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper |
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="org.dromara.sample.wayline.mapper.IAiCompareMapper"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<select id="listMediaFile" resultType="org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO"> |
|||
SELECT mf.*, |
|||
mfi.file_name as mateFileName, |
|||
mfi.file_path as mateFilePath, |
|||
mfi.create_time as mateFileDate |
|||
FROM |
|||
media_file mf |
|||
LEFT JOIN ai_compare ai ON ai.job_id = mf.job_id |
|||
LEFT JOIN media_file mfi ON mfi.job_id = ai.template_id |
|||
WHERE mfi.job_id=#{jobId} |
|||
ORDER BY mf.create_time asc |
|||
|
|||
</select> |
|||
</mapper> |
@ -0,0 +1,21 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper |
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="org.dromara.sample.wayline.mapper.IAiCompareQueueMapper"> |
|||
<update id="updateStatus"> |
|||
update ai_compare_queue |
|||
<set> |
|||
queue_type = #{queueType} |
|||
</set> |
|||
where id in |
|||
<foreach collection="ids" item="id" open="(" separator="," close=")"> |
|||
#{id} |
|||
</foreach> |
|||
</update> |
|||
|
|||
|
|||
<select id="queueList" resultType="org.dromara.sample.wayline.model.entity.AiCompareQueueEntity"> |
|||
|
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue