From 4fb627b255fa183608c52168c21fab2c38ef8e41 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Wed, 26 Mar 2025 11:43:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/sdk/mqtt/TopicConst.java | 8 +++++ .../service/impl/AiCompareServiceImpl.java | 16 +++++++--- .../main/resources/mapper/AiCompareMapper.xml | 5 ++-- .../controller/system/SysPostController.java | 11 +++---- .../org/dromara/system/domain/AiLabel.java | 2 +- .../dromara/system/domain/AiLabelPost.java | 2 +- ...PostBindBo.java => AiLabelPostBindBo.java} | 2 +- .../dromara/system/domain/vo/SysPostVo.java | 2 +- .../dubbo/RemoteLabelPostServicelmpl.java | 7 ++--- .../system/mapper/AiLabelPostMapper.java | 4 +++ .../system/service/IAiLabelPostService.java | 8 +++-- .../system/service/ISysPostService.java | 1 + .../service/impl/AiLabelServiceImpl.java | 7 +++-- .../service/impl/AiLablePostServiceImpl.java | 29 ++++++++++++++----- .../service/impl/SysPostServiceImpl.java | 20 +++++-------- .../mapper/system/AiLabelPostMapper.xml | 6 +++- 16 files changed, 83 insertions(+), 47 deletions(-) rename dk-modules/system/src/main/java/org/dromara/system/domain/bo/{AiLablePostBindBo.java => AiLabelPostBindBo.java} (91%) diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java index d2ff422..c89a4d6 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java @@ -39,4 +39,12 @@ public class TopicConst { public static final String UP = "/up"; public static final String DOWN = "/down"; + + public static final String IMAGE = "image/"; + + // 比对 + public static final String COMPARE = "compare"; + + //画框 + public static final String FRAME = "frame"; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 71e35ee..729d53a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -10,13 +10,13 @@ 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.common.sdk.mqtt.MqttGatewayPublish; +import org.dromara.common.sdk.mqtt.TopicConst; import org.dromara.sample.wayline.mapper.IAiCompareMapper; import org.dromara.sample.wayline.mapper.IWaylineJobMapper; import org.dromara.sample.wayline.model.dto.AiCompareDTO; @@ -48,7 +48,7 @@ public class AiCompareServiceImpl implements IAiCompareService { private final IAiCompareQueueService aiCompareQueueService; private final IAiCompareMapper aiCompareMapper; private final IWaylineJobMapper waylineJobMapper; - + private final MqttGatewayPublish mqttGatewayPublish; @Override public TableDataInfo queryPageList(AiCompareDTO bo, PageQuery pageQuery) { return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); @@ -112,13 +112,21 @@ public class AiCompareServiceImpl implements IAiCompareService { aiCompareEntity.setTemplateId(jobEntityList.get(0).getJobId()); } } + String topic = TopicConst.IMAGE +TopicConst.COMPARE; + + // mqttGatewayPublish.publish(topic,byId,1); insertList.add(aiCompareEntity); } List resultList = aiCompareMapper.insertOrUpdate(insertList, 10); System.out.println(resultList); List list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); + return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); } + public List> listMediaFile(AiCompareEntity aiCompareEntity){ + return null; + } + @Override public Boolean update(Map compareDTO) { diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index b30ec1f..99e5abf 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -12,13 +12,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT mf.*, mfi.file_name as mateFileName, mfi.file_path as mateFilePath, - mfi.create_time as mateFileDate + mfi.create_time as mateFileDate, + CAST( SUBSTRING_INDEX( SUBSTRING_INDEX( mf.file_name, '_', 3 ), '_', - 1 ) AS UNSIGNED ) AS suffix 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 + ORDER BY suffix asc diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java index c8e78c6..caac238 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java @@ -10,7 +10,7 @@ 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.system.domain.bo.AiLablePostBindBo; +import org.dromara.system.domain.bo.AiLabelPostBindBo; import org.dromara.system.domain.bo.AiLabelPostBo; import org.dromara.system.domain.bo.SysPostBo; import org.dromara.system.domain.vo.AiLabelPostVo; @@ -76,17 +76,18 @@ public class SysPostController extends BaseController { @SaCheckPermission("system:post:add") @Log(title = "岗位管理-绑定标签", businessType = BusinessType.INSERT) @PostMapping("/bindLable") - public R add(@Validated @RequestBody AiLablePostBindBo aiLablePostBindBo) { + public R add(@Validated @RequestBody AiLabelPostBindBo aiLablePostBindBo) { return aiLablePostService.insertByBatchBo(aiLablePostBindBo)?R.ok():R.fail(); } /** - * 标签列表 + * 标签列表 -不分页 + * @param postId 岗位id */ @SaCheckPermission("system:post:list") @GetMapping("/lableList") - public TableDataInfo lableList(AiLabelPostBo post, PageQuery pageQuery) { - return postService.lableList(post, pageQuery); + public R> lableList(Long postId) { + return R.ok(aiLablePostService.queryListByLabel(postId)); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java index fd21529..9294670 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java @@ -24,7 +24,7 @@ public class AiLabel { /** * id */ - @TableId(value = "label_id") + @TableId(type = IdType.AUTO) private Long labelId; /** diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java index 5e1e621..0439f39 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java @@ -20,7 +20,7 @@ public class AiLabelPost { @Serial private static final long serialVersionUID = 1L; - @TableId(type = IdType.ASSIGN_ID) + @TableId(type = IdType.AUTO) private Long id; /** * 标签id diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLablePostBindBo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java similarity index 91% rename from dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLablePostBindBo.java rename to dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java index c3ba11e..0f6a117 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLablePostBindBo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java @@ -11,7 +11,7 @@ import java.util.List; */ @Data -public class AiLablePostBindBo { +public class AiLabelPostBindBo { @NotNull(message = "postId不能为空") private Long postId; diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java index 51e6d31..09419d2 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java @@ -93,7 +93,7 @@ public class SysPostVo implements Serializable { /** * 标签集合 */ - public List labelList; + public List labelList; @Data public static class AiLabelVo{ diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java index 61a64f4..592601a 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java @@ -37,11 +37,8 @@ public class RemoteLabelPostServicelmpl implements RemoteLabelPostService { //获取岗位只能Id SysPostVo sysPostVo = sysPostService.selectLableByList(postCode, deptId); if(sysPostVo != null){ - //根据岗位职能Id获取标签id - List aiLabelPostVos = aiLabelPostService.queryListByLabel(sysPostVo.getPostId()); - //根据标签id获取标签 - List aiLabelList = aiLabelService.queryListByLabel(StreamUtils.toList(aiLabelPostVos,AiLabelPost::getLabelId)); - return aiLabelList.stream() + List postVoList = aiLabelPostService.queryListByLabel(sysPostVo.getPostId()); + return postVoList.stream() .map(aiLabel -> { RemoteAiLabelPostVo remoteAiLabelPostVo = new RemoteAiLabelPostVo(); remoteAiLabelPostVo.setLabelId(aiLabel.getLabelId()); diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/AiLabelPostMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/AiLabelPostMapper.java index d01058e..4cd408d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/mapper/AiLabelPostMapper.java +++ b/dk-modules/system/src/main/java/org/dromara/system/mapper/AiLabelPostMapper.java @@ -7,6 +7,8 @@ import org.dromara.system.domain.AiLabelPost; import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 职能-标签关系Mapper接口 * @@ -15,4 +17,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface AiLabelPostMapper extends BaseMapperPlus { Page selectAiLabelPostPage(@Param("page") Page page, @Param("ew") QueryWrapper wrapper); + + List queryListByLabel(@Param("postId") Long postId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java b/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java index b95879e..e067c24 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java @@ -2,7 +2,7 @@ package org.dromara.system.service; import org.dromara.system.domain.AiLabelPost; import org.dromara.system.domain.bo.AiLabelPostBo; -import org.dromara.system.domain.bo.AiLablePostBindBo; +import org.dromara.system.domain.bo.AiLabelPostBindBo; import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; @@ -68,7 +68,9 @@ public interface IAiLabelPostService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryListByLabel(Long postId); + List queryListLabel(Long postId); - Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo); + List queryListByLabel(Long postId); + + Boolean insertByBatchBo(AiLabelPostBindBo aiLablePostBindBo); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java index 1a3fec5..31f7f64 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java @@ -20,6 +20,7 @@ public interface ISysPostService { TableDataInfo selectPagePostList(SysPostBo post, PageQuery pageQuery); TableDataInfo lableList(AiLabelPostBo bo, PageQuery pageQuery); + List lableList(Long postId); /** * 查询岗位信息集合 * diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java index 05bea7e..8ab199f 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -138,8 +139,8 @@ public class AiLabelServiceImpl implements IAiLabelService { @Override public List queryListByLabel(List labelIds) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(AiLabel::getLabelId, labelIds); - return this.baseMapper.selectList(wrapper); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in(!labelIds.isEmpty(),"label_id",labelIds); + return this.baseMapper.selectList(queryWrapper); } } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java index 583e61d..1ffda2d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.system.domain.AiLabelPost; -import org.dromara.system.domain.bo.AiLablePostBindBo; +import org.dromara.system.domain.bo.AiLabelPostBindBo; import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.system.mapper.AiLabelMapper; import org.springframework.stereotype.Service; @@ -33,7 +33,7 @@ import java.util.Collection; public class AiLablePostServiceImpl implements IAiLabelPostService { private final AiLabelPostMapper baseMapper; - private final AiLabelMapper aiLabelMapper; + private final AiLabelPostMapper aiLabelPostMapper; /** * 查询职能-标签关系 @@ -128,20 +128,33 @@ public class AiLablePostServiceImpl implements IAiLabelPostService { } @Override - public List queryListByLabel(Long postId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + public List queryListByLabel(Long postId) { + return aiLabelPostMapper.queryListByLabel(postId); + } + /** + * 保存前的数据校验 + */ + private void delPostId(Long postId){ + //新增前先删除之前的标签 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("post_id", postId); + baseMapper.delete(queryWrapper); + } + @Override + public List queryListLabel(Long postId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AiLabelPost::getPostId, postId); - return this.baseMapper.selectList(wrapper); } @Override - public Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo) { + public Boolean insertByBatchBo(AiLabelPostBindBo aiLabelPostBindBo) { + delPostId(aiLabelPostBindBo.getPostId()); List resultlist = new ArrayList<>(); - for (Long labelId : aiLablePostBindBo.getLableIdList()) { + for (Long labelId : aiLabelPostBindBo.getLableIdList()) { AiLabelPost ailabelPost = new AiLabelPost(); - ailabelPost.setPostId(aiLablePostBindBo.getPostId()); + ailabelPost.setPostId(aiLabelPostBindBo.getPostId()); ailabelPost.setLabelId(labelId); resultlist.add(ailabelPost); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java index 174a04a..18cc014 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java @@ -55,19 +55,10 @@ public class SysPostServiceImpl implements ISysPostService { Page page = baseMapper.selectPagePostList(pageQuery.build(), buildQueryWrapper(post)); page.getRecords().forEach(sysPostVo -> { - List postVoList = remoteLabelPostService.selectLabelByList(sysPostVo.getPostCode(), sysPostVo.getDeptId()); - sysPostVo.setLabelList(postVoList.stream() - .map(aiLabel -> { - SysPostVo.AiLabelVo aiLabelVo = new SysPostVo.AiLabelVo(); - aiLabelVo.setLabelId(aiLabel.getLabelId()); - aiLabelVo.setLabelEn(aiLabel.getLabelEn()); - aiLabelVo.setLabelCn(aiLabel.getLabelCn()); - aiLabelVo.setPostId(aiLabel.getPostId()); - return aiLabelVo; - }) - .toList()); + Long postId = sysPostVo.getPostId(); + List lableList = lableList(postId); + sysPostVo.setLabelList(lableList); }); - return TableDataInfo.build(page); } @@ -76,6 +67,11 @@ public class SysPostServiceImpl implements ISysPostService { return aiLablePostService.queryPageList(bo,pageQuery); } + @Override + public List lableList(Long postId) { + return aiLablePostService.queryListByLabel(postId); + } + /** * 查询岗位信息集合 * diff --git a/dk-modules/system/src/main/resources/mapper/system/AiLabelPostMapper.xml b/dk-modules/system/src/main/resources/mapper/system/AiLabelPostMapper.xml index 979d018..73ee604 100644 --- a/dk-modules/system/src/main/resources/mapper/system/AiLabelPostMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/AiLabelPostMapper.xml @@ -5,6 +5,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +