dengsixing 5 mesi fa
parent
commit
9663b34961

+ 51 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditAiController.java

@@ -0,0 +1,51 @@
+package com.fdkankan.scene.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.scene.annotation.CheckPermit;
+import com.fdkankan.scene.entity.SceneMarkShape;
+import com.fdkankan.scene.entity.SceneShapeEnum;
+import com.fdkankan.scene.service.ISceneMarkShapeService;
+import com.fdkankan.scene.service.SceneShapeEnumService;
+import com.fdkankan.scene.vo.SceneMarkShapeParamVO;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/service/scene/edit/ai")
+public class SceneEditAiController {
+
+    @Autowired
+    private ISceneMarkShapeService sceneMarkShapeService;
+    @Autowired
+    private SceneShapeEnumService sceneShapeEnumService;
+
+    @CheckPermit
+    @PostMapping("/box4/getInfos")
+    public ResultData box4GetInfos(@RequestBody @Validated SceneMarkShapeParamVO param) {
+        List<SceneMarkShape> sceneMarkShapes = sceneMarkShapeService.findByNumAndType(param.getNum(),param.getType());
+        for (SceneMarkShape sceneMarkShape : sceneMarkShapes) {
+            if (ObjectUtil.isNotEmpty(sceneMarkShape.getShapes())){
+                for (JSONObject shape : sceneMarkShape.getShapes()) {
+                    String category = shape.getString("category");
+                    SceneShapeEnum sceneShapeEnum = sceneShapeEnumService.findByClassName(category);
+                    if (ObjectUtil.isNotNull(sceneShapeEnum)){
+                        shape.put("name",sceneShapeEnum.getName());
+                    }
+                    if (category.contains("Tag_")){
+                        shape.put("category","Tag");
+                    }
+                }
+            }
+        }
+        return ResultData.ok(sceneMarkShapes);
+    }
+
+}

+ 6 - 0
src/main/java/com/fdkankan/scene/entity/SceneMarkShape.java

@@ -71,4 +71,10 @@ public class SceneMarkShape implements Serializable {
       @TableLogic(value = "A", delval = "I")
       private String recStatus;
 
+      /**
+       * 推理类型 1,全景图识别 2,平面图识别
+       */
+      @TableField("type")
+      private Integer type;
+
 }

+ 61 - 0
src/main/java/com/fdkankan/scene/entity/SceneShapeEnum.java

@@ -0,0 +1,61 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 标注框模型表
+ *
+ * @author Xiewj
+ * @since 2023-11-09 11:53
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("t_scene_shape_enum")
+public class SceneShapeEnum {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 属性名
+     */
+    private String name;
+
+    /**
+     * 类名
+     */
+    private String className;
+
+    /**
+     * 资源类型ID
+     */
+    private String resourceId;
+
+    /**
+     * 设备类型ID
+     */
+    private String typeId;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}

+ 17 - 0
src/main/java/com/fdkankan/scene/mapper/SceneShapeEnumMapper.java

@@ -0,0 +1,17 @@
+package com.fdkankan.scene.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.scene.entity.SceneShapeEnum;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+* 标注框模型表 Mapper
+*
+* @author Xiewj
+* @since 2023-11-09 11:53
+*/
+@Mapper
+@Component("SceneShapeEnumMapper")
+public interface SceneShapeEnumMapper extends BaseMapper<SceneShapeEnum> {
+}

+ 2 - 0
src/main/java/com/fdkankan/scene/service/ISceneMarkShapeService.java

@@ -27,4 +27,6 @@ public interface ISceneMarkShapeService extends IService<SceneMarkShape> {
     List<SceneMarkShape> findByToTrainStatus(Integer toTrain);
 
     void editTrainStatus(SceneMarkShapeParamVO param);
+
+    List<SceneMarkShape> findByNumAndType(String num,Integer type);
 }

+ 16 - 0
src/main/java/com/fdkankan/scene/service/SceneShapeEnumService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.SceneShapeEnum;
+
+/**
+ * 标注框模型表 服务类接口
+ *
+ * @author Xiewj
+ * @since 2023-11-09 11:53
+ */
+public interface SceneShapeEnumService extends IService<SceneShapeEnum> {
+
+      SceneShapeEnum findByClassName(String className);
+}

+ 8 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneMarkShapeServiceImpl.java

@@ -178,4 +178,12 @@ public class SceneMarkShapeServiceImpl extends ServiceImpl<MarkShapeMapper, Scen
             save(sceneMarkShape);
         }
     }
+    @Override
+    public List<SceneMarkShape> findByNumAndType(String num,Integer type) {
+        LambdaQueryWrapper<SceneMarkShape> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(SceneMarkShape::getNum,num);
+        wrapper.eq(SceneMarkShape::getType,type);
+        return list(wrapper);
+    }
+
 }

+ 24 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneShapeEnumServiceImpl.java

@@ -0,0 +1,24 @@
+package com.fdkankan.scene.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.scene.entity.SceneShapeEnum;
+import com.fdkankan.scene.mapper.SceneShapeEnumMapper;
+import com.fdkankan.scene.service.SceneShapeEnumService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 标注框模型表 服务实现类
+ *
+ * @author Xiewj
+ * @since 2023-11-09 11:53
+ */
+@Service
+public class SceneShapeEnumServiceImpl extends ServiceImpl<SceneShapeEnumMapper, SceneShapeEnum> implements SceneShapeEnumService {
+    @Override
+    public SceneShapeEnum findByClassName(String className) {
+        return this.getOne(new LambdaQueryWrapper<SceneShapeEnum>().eq(SceneShapeEnum::getClassName, className));
+    }
+
+
+}

+ 6 - 0
src/main/java/com/fdkankan/scene/vo/SceneMarkShapeParamVO.java

@@ -32,5 +32,11 @@ public class SceneMarkShapeParamVO {
      */
     private String imagePath;
 
+    /**
+     * 推理类型 1,全景图识别 2,平面图识别 为了兼容默认给1
+     */
+
+    private Integer type =1 ;
+
 
 }