Просмотр исходного кода

1.修改标签修改时标签路径和标签级别变更

2507040827 1 день назад
Родитель
Сommit
045812e95f

+ 38 - 4
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/controller/AitagTagInfoController.java

@@ -8,11 +8,15 @@ import cn.com.yusys.yusp.domain.vo.AitagTagInfoQueryVo;
 import cn.com.yusys.yusp.domain.vo.GenerateRegexVo;
 import cn.com.yusys.yusp.domain.vo.GenerateRegexVo;
 import cn.com.yusys.yusp.domain.vo.TagNodeVo;
 import cn.com.yusys.yusp.domain.vo.TagNodeVo;
 import cn.com.yusys.yusp.domain.vo.VersionRollbackVo;
 import cn.com.yusys.yusp.domain.vo.VersionRollbackVo;
+import cn.com.yusys.yusp.domain.vo.fastapivo.AiTaggingResponseVo;
 import cn.com.yusys.yusp.service.AitagTagInfoService;
 import cn.com.yusys.yusp.service.AitagTagInfoService;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.Resource;
@@ -29,6 +33,7 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.Paths;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -41,6 +46,7 @@ import java.util.Map;
 @Api(tags = "标签管理")
 @Api(tags = "标签管理")
 @RestController
 @RestController
 @RequestMapping("/api/aitagtaginfo")
 @RequestMapping("/api/aitagtaginfo")
+@Slf4j
 public class AitagTagInfoController {
 public class AitagTagInfoController {
     /**
     /**
      * AitagTagInfoService
      * AitagTagInfoService
@@ -114,7 +120,11 @@ public class AitagTagInfoController {
     @ApiOperation("保存")
     @ApiOperation("保存")
     @PostMapping("/save")
     @PostMapping("/save")
     public ResultDto save(@RequestBody AitagTagInfoEntity aitagTagInfoEntity) {
     public ResultDto save(@RequestBody AitagTagInfoEntity aitagTagInfoEntity) {
-        aitagTagInfoService.saveTag(aitagTagInfoEntity);
+        String id = aitagTagInfoService.saveTag(aitagTagInfoEntity);
+        HashMap<String, Object> body = new HashMap<>();
+        String[] ids = {id};
+        body.put("tag_ids",ids);
+        aitagTagInfoService.callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
         return ResultDto.success();
         return ResultDto.success();
     }
     }
 
 
@@ -128,6 +138,10 @@ public class AitagTagInfoController {
     @PostMapping("/update")
     @PostMapping("/update")
     public ResultDto update(@RequestBody AitagTagInfoEntity aitagTagInfoEntity) {
     public ResultDto update(@RequestBody AitagTagInfoEntity aitagTagInfoEntity) {
         aitagTagInfoService.updateTag(aitagTagInfoEntity);
         aitagTagInfoService.updateTag(aitagTagInfoEntity);
+        HashMap<String, Object> body = new HashMap<>();
+        String[] ids = {aitagTagInfoEntity.getId()};
+        body.put("tag_ids",ids);
+        aitagTagInfoService.callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
         return ResultDto.success();
         return ResultDto.success();
     }
     }
 
 
@@ -140,7 +154,13 @@ public class AitagTagInfoController {
     @ApiOperation("版本回溯")
     @ApiOperation("版本回溯")
     @PostMapping("/versionRollback")
     @PostMapping("/versionRollback")
     public ResultDto versionRollback(@RequestBody VersionRollbackVo versionRollbackVo) {
     public ResultDto versionRollback(@RequestBody VersionRollbackVo versionRollbackVo) {
-        aitagTagInfoService.versionRollback(versionRollbackVo);
+        String id = aitagTagInfoService.versionRollback(versionRollbackVo);
+        if(StringUtils.isNotBlank(id)){
+            HashMap<String, Object> body = new HashMap<>();
+            String[] ids = {id};
+            body.put("tag_ids",ids);
+            aitagTagInfoService.callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
+        }
         return ResultDto.success();
         return ResultDto.success();
     }
     }
 
 
@@ -156,6 +176,9 @@ public class AitagTagInfoController {
     public ResultDto delete(@RequestBody Map<String,List> ids) {
     public ResultDto delete(@RequestBody Map<String,List> ids) {
         List<String> idsList = ids.get("ids");
         List<String> idsList = ids.get("ids");
         aitagTagInfoService.removeTags(idsList);
         aitagTagInfoService.removeTags(idsList);
+        HashMap<String, Object> body = new HashMap<>();
+        body.put("tag_ids",ids);
+        aitagTagInfoService.callAiTag(body,"/api/aitag/admin/v1/delete_tag");
         return ResultDto.success();
         return ResultDto.success();
     }
     }
 
 
@@ -180,7 +203,11 @@ public class AitagTagInfoController {
         if (fileName == null || (!fileName.endsWith(".xlsx") && !fileName.endsWith(".xls"))) {
         if (fileName == null || (!fileName.endsWith(".xlsx") && !fileName.endsWith(".xls"))) {
             throw BizException.of("E003");
             throw BizException.of("E003");
         }
         }
-        aitagTagInfoService.batchImport(file,reviser,categoryId);
+        List<String> tagIds = aitagTagInfoService.batchImport(file, reviser, categoryId);
+
+        HashMap<String, Object> body = new HashMap<>();
+        body.put("tag_ids",tagIds);
+        aitagTagInfoService.callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
         return ResultDto.success();
         return ResultDto.success();
     }
     }
 
 
@@ -194,7 +221,14 @@ public class AitagTagInfoController {
     @ApiOperation("生成正则表达式")
     @ApiOperation("生成正则表达式")
     @PostMapping("/generateRegex")
     @PostMapping("/generateRegex")
     public ResultDto<String> generateRegex( @RequestBody GenerateRegexVo regexVo) throws IOException {
     public ResultDto<String> generateRegex( @RequestBody GenerateRegexVo regexVo) throws IOException {
-        return ResultDto.success(aitagTagInfoService.generateRegex(regexVo));
+        Map body = JSONObject.parseObject(JSONObject.toJSONString(regexVo), Map.class);
+        AiTaggingResponseVo taggingResponse = aitagTagInfoService.callAiTag(body, "/api/aitag/admin/v1/generate_reg");
+        if(cn.com.yusys.yusp.commons.util.StringUtils.equals(taggingResponse.getCode(),"200")){
+            return ResultDto.success(taggingResponse.getBody());
+        }
+        log.error("生成正则表达式异常:返回参数为:{}", JSON.toJSONString(taggingResponse));
+        throw BizException.of("E008");
+
     }
     }
 
 
     /**
     /**

+ 7 - 4
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/service/AitagTagInfoService.java

@@ -6,12 +6,14 @@ import cn.com.yusys.yusp.domain.vo.AitagTagInfoQueryVo;
 import cn.com.yusys.yusp.domain.vo.GenerateRegexVo;
 import cn.com.yusys.yusp.domain.vo.GenerateRegexVo;
 import cn.com.yusys.yusp.domain.vo.TagNodeVo;
 import cn.com.yusys.yusp.domain.vo.TagNodeVo;
 import cn.com.yusys.yusp.domain.vo.VersionRollbackVo;
 import cn.com.yusys.yusp.domain.vo.VersionRollbackVo;
+import cn.com.yusys.yusp.domain.vo.fastapivo.AiTaggingResponseVo;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * 
  * 
@@ -30,7 +32,7 @@ public interface AitagTagInfoService extends IService<AitagTagInfoEntity> {
      */
      */
     IPage<AitagTagInfoEntity> queryPage(AitagTagInfoQueryVo aitagTagInfoQueryVo);
     IPage<AitagTagInfoEntity> queryPage(AitagTagInfoQueryVo aitagTagInfoQueryVo);
 
 
-    void saveTag(AitagTagInfoEntity aitagTagInfo);
+    String saveTag(AitagTagInfoEntity aitagTagInfo);
 
 
     List<TagNodeVo> queryTagTree(AitagTagInfoQueryVo aitagTagInfoQueryVo);
     List<TagNodeVo> queryTagTree(AitagTagInfoQueryVo aitagTagInfoQueryVo);
 
 
@@ -40,12 +42,13 @@ public interface AitagTagInfoService extends IService<AitagTagInfoEntity> {
 
 
     void removeTags(List<String> list);
     void removeTags(List<String> list);
 
 
-    void versionRollback(VersionRollbackVo versionRollbackVo);
+    String versionRollback(VersionRollbackVo versionRollbackVo);
 
 
     List<AitagTagInfoEntity> queryList(AitagTagInfoQueryVo aitagTagInfoQueryVo);
     List<AitagTagInfoEntity> queryList(AitagTagInfoQueryVo aitagTagInfoQueryVo);
 
 
-    void batchImport(MultipartFile file,String reviser,String categoryId) throws IOException;
+    List<String> batchImport(MultipartFile file, String reviser, String categoryId) throws IOException;
 
 
-    String generateRegex(GenerateRegexVo regexVo);
+
+    AiTaggingResponseVo callAiTag(Map<String, Object> body, String path);
 }
 }
 
 

+ 14 - 37
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/service/impl/AitagTagInfoServiceImpl.java

@@ -20,7 +20,6 @@ import cn.com.yusys.yusp.domain.vo.AitagTagInfoQueryVo;
 import cn.com.yusys.yusp.service.AitagTagInfoService;
 import cn.com.yusys.yusp.service.AitagTagInfoService;
 import cn.com.yusys.yusp.service.TagImportListener;
 import cn.com.yusys.yusp.service.TagImportListener;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.event.AnalysisEventListener;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -120,7 +119,7 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
 
 
 
 
     @Override
     @Override
-    public void saveTag(AitagTagInfoEntity aitagTagInfo){
+    public String saveTag(AitagTagInfoEntity aitagTagInfo){
         aitagTagInfo.setId(StringUtils.getUUID());
         aitagTagInfo.setId(StringUtils.getUUID());
         String parentId = aitagTagInfo.getParentId();
         String parentId = aitagTagInfo.getParentId();
         if(!StringUtils.isBlank(parentId)){
         if(!StringUtils.isBlank(parentId)){
@@ -145,10 +144,7 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
         aitagTagInfo.setIsDelete(TAG_UNDELETED);
         aitagTagInfo.setIsDelete(TAG_UNDELETED);
         aitagTagInfo.setState(TAG_ENABLED);
         aitagTagInfo.setState(TAG_ENABLED);
         this.save(aitagTagInfo);
         this.save(aitagTagInfo);
-        HashMap<String, Object> body = new HashMap<>();
-        String[] ids = {aitagTagInfo.getId()};
-        body.put("tag_ids",ids);
-        callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
+        return aitagTagInfo.getId();
     }
     }
 
 
     /**
     /**
@@ -186,12 +182,10 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
         this.aitagTagInfoVersionDao.insert(aitagTagInfoVersionEntity);
         this.aitagTagInfoVersionDao.insert(aitagTagInfoVersionEntity);
         aitagTagInfoEntity.setRevisionTime(DateUtils.getCurrDateTimeStr());
         aitagTagInfoEntity.setRevisionTime(DateUtils.getCurrDateTimeStr());
         aitagTagInfoEntity.setTagVersion(Integer.parseInt(tagInfo.getTagVersion())+1+"");
         aitagTagInfoEntity.setTagVersion(Integer.parseInt(tagInfo.getTagVersion())+1+"");
+        AitagTagInfoEntity parentTagInfo = this.baseMapper.selectById(aitagTagInfoEntity.getParentId());
+        aitagTagInfoEntity.setTagPath(parentTagInfo.getTagPath()+"/"+aitagTagInfoEntity.getTagNm());
+        aitagTagInfoEntity.setLevel(parentTagInfo.getLevel()+1);
         this.baseMapper.updateById(aitagTagInfoEntity);
         this.baseMapper.updateById(aitagTagInfoEntity);
-
-        HashMap<String, Object> body = new HashMap<>();
-        String[] ids = {aitagTagInfoEntity.getId()};
-        body.put("tag_ids",ids);
-        callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
     }
     }
 
 
     @Override
     @Override
@@ -203,14 +197,11 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
             aitagTagInfoEntity.setIsDelete(TAG_DELETED);
             aitagTagInfoEntity.setIsDelete(TAG_DELETED);
             this.baseMapper.updateById(aitagTagInfoEntity);
             this.baseMapper.updateById(aitagTagInfoEntity);
         }
         }
-        HashMap<String, Object> body = new HashMap<>();
-        body.put("tag_ids",list);
-        callAiTag(body,"/api/aitag/admin/v1/delete_tag");
     }
     }
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public void versionRollback(VersionRollbackVo versionRollback) {
+    public String versionRollback(VersionRollbackVo versionRollback) {
         LambdaQueryWrapper<AitagTagInfoVersionEntity> queryTagVersionWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<AitagTagInfoVersionEntity> queryTagVersionWrapper = new LambdaQueryWrapper<>();
         queryTagVersionWrapper.eq(AitagTagInfoVersionEntity::getTagCode,versionRollback.getTagCode());
         queryTagVersionWrapper.eq(AitagTagInfoVersionEntity::getTagCode,versionRollback.getTagCode());
         queryTagVersionWrapper.eq(AitagTagInfoVersionEntity::getTagVersion,versionRollback.getVersion());
         queryTagVersionWrapper.eq(AitagTagInfoVersionEntity::getTagVersion,versionRollback.getVersion());
@@ -228,12 +219,9 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
             AitagTagInfoVersionEntity aitagTagInfoVersionEntity = new AitagTagInfoVersionEntity();
             AitagTagInfoVersionEntity aitagTagInfoVersionEntity = new AitagTagInfoVersionEntity();
             aitagTagInfoVersionEntity.setIsDelete(TAG_DELETED);
             aitagTagInfoVersionEntity.setIsDelete(TAG_DELETED);
             this.aitagTagInfoVersionDao.update(aitagTagInfoVersionEntity,updateTagVersion);
             this.aitagTagInfoVersionDao.update(aitagTagInfoVersionEntity,updateTagVersion);
-
-            HashMap<String, Object> body = new HashMap<>();
-            String[] ids = {aitagTagInfoEntity.getId()};
-            body.put("tag_ids",ids);
-            callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
+            return aitagTagInfoEntity.getId();
         }
         }
+        return null;
     }
     }
 
 
     @Override
     @Override
@@ -280,7 +268,8 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
     }
     }
 
 
     @Override
     @Override
-    public void batchImport(MultipartFile file, String reviser,String categoryId) throws IOException {
+    @Transactional(rollbackFor = Exception.class)
+    public List<String> batchImport(MultipartFile file, String reviser, String categoryId) throws IOException {
         log.info("开始处理上传文件:{}", file.getOriginalFilename());
         log.info("开始处理上传文件:{}", file.getOriginalFilename());
 
 
         TagImportListener listener = new TagImportListener();
         TagImportListener listener = new TagImportListener();
@@ -304,23 +293,9 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
         validateParentTags(nameToDtoMap);
         validateParentTags(nameToDtoMap);
         resolveHierarchy(nameToDtoMap);
         resolveHierarchy(nameToDtoMap);
         saveToDatabase(tagImportDtos,reviser,categoryId);
         saveToDatabase(tagImportDtos,reviser,categoryId);
-
-        HashMap<String, Object> body = new HashMap<>();
-        List<String> tagIds = tagImportDtos.stream().map(TagImportDto::getId).collect(Collectors.toList());
-        body.put("tag_ids",tagIds);
-        callAiTag(body,"/api/aitag/admin/v1/synchronize_tag");
+        return  tagImportDtos.stream().map(TagImportDto::getId).collect(Collectors.toList());
     }
     }
 
 
-    @Override
-    public String generateRegex(GenerateRegexVo regexVo) {
-        Map body = JSONObject.parseObject(JSONObject.toJSONString(regexVo), Map.class);
-        AiTaggingResponseVo taggingResponse = callAiTag(body, "/api/aitag/admin/v1/generate_reg");
-        if(StringUtils.equals(taggingResponse.getCode(),"200")){
-            return taggingResponse.getBody();
-        }
-        log.error("生成正则表达式异常:返回参数为:{}",JSON.toJSONString(taggingResponse));
-        throw BizException.of("E008");
-    }
 
 
     private void saveToDatabase(List<TagImportDto> tagImportDtos,String reviser,String categoryId) {
     private void saveToDatabase(List<TagImportDto> tagImportDtos,String reviser,String categoryId) {
         AitagTagCategory aitagTagCategory = aiTagCategoryMapper.selectById(categoryId);
         AitagTagCategory aitagTagCategory = aiTagCategoryMapper.selectById(categoryId);
@@ -428,7 +403,9 @@ public class AitagTagInfoServiceImpl extends ServiceImpl<AitagTagInfoDao, AitagT
         return rootNodes;
         return rootNodes;
     }
     }
 
 
-    private AiTaggingResponseVo callAiTag(Map<String,Object> body, String path) {
+
+    @Override
+    public AiTaggingResponseVo callAiTag(Map<String, Object> body, String path) {
         String url = fastApiConfig.getUrl() + path;
         String url = fastApiConfig.getUrl() + path;
         log.info("调用AI打标接口: {}", url);
         log.info("调用AI打标接口: {}", url);