Jelajahi Sumber

场景obj模型转换为b3dm

lyhzzz 1 tahun lalu
induk
melakukan
5b432b2c2c

+ 39 - 0
src/main/java/com/fdkankan/fusion/controller/CaseImgTagController.java

@@ -0,0 +1,39 @@
+package com.fdkankan.fusion.controller;
+
+
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.CaseExtractDetail;
+import com.fdkankan.fusion.entity.CaseImgTag;
+import com.fdkankan.fusion.service.ICaseExtractDetailService;
+import com.fdkankan.fusion.service.ICaseImgTagService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-12
+ */
+@RestController
+@RequestMapping("/caseImgTag")
+public class CaseImgTagController {
+
+    @Autowired
+    ICaseImgTagService caseImgTagService;
+
+
+    @GetMapping("/info")
+    public ResultData info(@RequestParam(required = false) Integer caseId){
+        return ResultData.ok(caseImgTagService.getByCaseId(caseId));
+    }
+
+    @PostMapping("/saveOrUpdate")
+    public ResultData saveOrUpdate(@RequestBody CaseImgTag caseImgTag){
+        caseImgTagService.saveByParam(caseImgTag);
+        return ResultData.ok();
+    }
+}
+

+ 60 - 0
src/main/java/com/fdkankan/fusion/entity/CaseImgTag.java

@@ -0,0 +1,60 @@
+package com.fdkankan.fusion.entity;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fdkankan.fusion.typehandle.JsonArrayTypeHandler;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-12
+ */
+@Getter
+@Setter
+@TableName(value = "t_case_img_tag",autoResultMap = true)
+public class CaseImgTag implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("case_id")
+    private Integer caseId;
+
+    @TableField("name")
+    private String name;
+
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray horLines;
+
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray activeEdges;
+
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray virLines;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/fusion/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"fusion", getTables(new String[]{
-               "t_case_script"
+               "t_case_img_tag"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/fusion/mapper/ICaseImgTagMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.fusion.mapper;
+
+import com.fdkankan.fusion.entity.CaseImgTag;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-12
+ */
+@Mapper
+public interface ICaseImgTagMapper extends BaseMapper<CaseImgTag> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/fusion/service/ICaseImgTagService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.fusion.service;
+
+import com.fdkankan.fusion.entity.CaseImgTag;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-12
+ */
+public interface ICaseImgTagService extends IService<CaseImgTag> {
+
+    CaseImgTag getByCaseId(Integer caseId);
+
+    void saveByParam(CaseImgTag caseImgTag);
+}

+ 42 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseImgTagServiceImpl.java

@@ -0,0 +1,42 @@
+package com.fdkankan.fusion.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.entity.CaseExtractDetail;
+import com.fdkankan.fusion.entity.CaseImgTag;
+import com.fdkankan.fusion.exception.BusinessException;
+import com.fdkankan.fusion.mapper.ICaseImgTagMapper;
+import com.fdkankan.fusion.service.ICaseImgTagService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-12
+ */
+@Service
+public class CaseImgTagServiceImpl extends ServiceImpl<ICaseImgTagMapper, CaseImgTag> implements ICaseImgTagService {
+
+    @Override
+    public CaseImgTag getByCaseId(Integer caseId) {
+        LambdaQueryWrapper<CaseImgTag> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseImgTag::getCaseId,caseId);
+        return this.getOne(wrapper);
+    }
+
+    @Override
+    public void saveByParam(CaseImgTag caseImgTag) {
+        if(caseImgTag.getCaseId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        CaseImgTag dbCaseImgTag = this.getByCaseId(caseImgTag.getCaseId());
+        if(dbCaseImgTag != null){
+            caseImgTag.setId(dbCaseImgTag.getId());
+        }
+        this.saveOrUpdate(caseImgTag);
+    }
+}

+ 2 - 1
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -98,15 +98,16 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                 model.setModelDateType("obj");
                 model.setType(param.getType());
                 model.setModelType("pointcloud");    //深时点云类型
+                model.setCreateStatus(1);
                 if(param.getType() == 0 || param.getType() == 1 || param.getType() == 4 || param.getType() == 6){           //看看,看见
 //                    model.setModelObjUrl(String.format(FilePath.OBJ_LOCAL_PATH,environment ,num) +"/mesh.obj");
 //                    model.setModelGlbUrl(getGlbUrl(param.getType(),num,model));
 //                    model.setModelType("b3dm");
 //                    model.setModelDateType("b3dm");
+                    model.setCreateStatus(2);
                     threadService.objToB3dm(num,model.getModelId());
                 }
                 model.setNum(num);
-                model.setCreateStatus(1);
                 modelList.add(model);
             }
         }

+ 34 - 0
src/main/java/com/fdkankan/fusion/service/impl/CopyCaseService.java

@@ -60,6 +60,10 @@ public class CopyCaseService {
     ITmProjectService projectService;
     @Autowired
     ITmMessageService tmMessageService;
+    @Autowired
+    ICaseScriptService caseScriptService;
+    @Autowired
+    ICaseImgTagService caseImgTagService;
 
 
     @Autowired
@@ -80,6 +84,8 @@ public class CopyCaseService {
         this.cpCaseVideo(oldCaseId,newCaseId);
         this.cpCaseViewByCaseId(oldCaseId,newCaseId);
         this.cpFusionGuide(oldCaseId,newCaseId);
+        this.cpCaseScript(oldCaseId,newCaseId);
+        this.cpImgTag(oldCaseId,newCaseId);
     }
 
 
@@ -200,6 +206,34 @@ public class CopyCaseService {
     }
 
     /**
+     * 复制案件脚本
+     */
+    private void cpCaseScript(Integer oldCaseId, Integer newCaseId) {
+        CaseScript entity = caseScriptService.getByCaseId(oldCaseId);
+        if(entity == null ){
+            return;
+        }
+        entity.setId(null);
+        entity.setCaseId(newCaseId);
+        caseScriptService.save(entity);
+    }
+
+
+    /**
+     * 复制案件图片标注
+     */
+    private void cpImgTag(Integer oldCaseId, Integer newCaseId) {
+        CaseImgTag entity = caseImgTagService.getByCaseId(oldCaseId);
+        if(entity == null ){
+            return;
+        }
+        entity.setId(null);
+        entity.setCaseId(newCaseId);
+        caseImgTagService.save(entity);
+    }
+
+
+    /**
      * 复制案件场景关系
      */
     private void cpCaseNum(Integer oldCaseId, Integer newCaseId) {

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/impl/ThreadService.java

@@ -207,6 +207,7 @@ public class ThreadService {
             wrapper.set(Model::getModelGlbUrl,ossGlbPath);
             wrapper.set(Model::getModelDateType,"b3dm");
             wrapper.set(Model::getModelType,"b3dm");
+            wrapper.set(Model::getCreateStatus,1);
             modelService.update(wrapper);
         }
     }

+ 5 - 0
src/main/resources/mapper/fusion/CaseImgTagMapper.xml

@@ -0,0 +1,5 @@
+<?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="com.fdkankan.fusion.mapper.ICaseImgTagMapper">
+
+</mapper>