Переглянути джерело

Merge branch 'release' into project-jp-v4.12.0

# Conflicts:
#	src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java
#	src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java
#	src/main/java/com/fdkankan/contro/service/IFdkkLaserService.java
#	src/main/java/com/fdkankan/contro/service/impl/IFdkkLaserServiceImpl.java
dengsixing 1 рік тому
батько
коміт
518e280c3f

+ 26 - 0
src/main/java/com/fdkankan/contro/bean/SyncLaserResultBean.java

@@ -0,0 +1,26 @@
+package com.fdkankan.contro.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SyncLaserResultBean {
+
+    private String num;
+    private String dataSource;
+    private Integer sceneStatus;
+    private Date createTime;
+    private Integer shootCount;
+    private Integer payStatus;
+    private Integer mixture;
+    private String version;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java

@@ -301,7 +301,7 @@ public class BuildObjServiceImpl implements IBuildSceneService {
                 CameraDetail cameraDetail = cameraDetailService.getByCameraId(scenePlus.getCameraId());
                 Company company = !org.apache.commons.lang3.ObjectUtils.isEmpty(cameraDetail.getCompanyId()) ? companyService.getById(cameraDetail.getCompanyId()) : null;
                 //写scene.json
-                commonService.writeSceneJson(projectNum, new JSONObject(),sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
+                commonService.writeSceneJson(projectNum,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
             }
 
             //重置异步操作记录

+ 11 - 2
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.contro.bean.SyncLaserResultBean;
 import com.fdkankan.contro.constant.UserEditDataType;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
@@ -340,7 +341,15 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
             if (cameraType == 14) {
                 //计算成功  激光转台相机 同步 请求
-                fdkkLaserService.syncBuildResult(scenePlus.getNum(), path, scenePlus.getCreateTime(), Calendar.getInstance().getTime(), scenePlusExt, scenePlus.getPayStatus());
+                fdkkLaserService.syncBuildResult(
+                        SyncLaserResultBean.builder()
+                        .num(sceneCode).dataSource(path)
+                        .sceneStatus(2)
+                        .createTime(scenePlus.getCreateTime())
+                        .shootCount(scenePlusExt.getShootCount())
+                        .payStatus(scenePlus.getPayStatus())
+                        .mixture(scenePlusExt.getMixture())
+                        .version(SceneVersionType.V4.code()).build());
                 sceneEditControlsService.update(new LambdaUpdateWrapper<SceneEditControls>().set(SceneEditControls::getShowMap,0)
                         .eq(SceneEditControls::getEditInfoId,sceneEditInfo.getId()));
                 sceneEditControls.setShowMap(0);
@@ -353,7 +362,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             CameraDetail cameraDetail = cameraDetailService.getByCameraId(scenePlus.getCameraId());
             Company company = !ObjectUtils.isEmpty(cameraDetail.getCompanyId()) ? companyService.getById(cameraDetail.getCompanyId()) : null;
             //写scene.json
-            commonService.writeSceneJson(sceneCode, videosJson,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
+            commonService.writeSceneJson(sceneCode,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
 
             String qrLogo = !ObjectUtils.isEmpty(company) && !ObjectUtils.isEmpty(company.getQrLogo()) ? company.getQrLogo() : null;
 

+ 11 - 3
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -13,8 +13,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.PayStatus;
 import com.fdkankan.common.constant.SceneScheme;
 import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.common.constant.SceneVersionType;
 import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.contro.bean.SyncLaserResultBean;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
 import com.fdkankan.contro.service.ICommonService;
@@ -282,9 +284,15 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
             sceneProEdit.setFloorPublishVer(ver);
             if (cameraType == 14) {
                 //计算成功  激光转台相机 同步 请求
-                ScenePlusExt scenePlusExt = new ScenePlusExt();
-                scenePlusExt.setShootCount(scenePro.getShootCount());
-                fdkkLaserService.syncBuildResult(scenePro.getNum(), scenePro.getDataSource(),scenePro.getCreateTime(), Calendar.getInstance().getTime(), scenePlusExt, scenePro.getPayStatus());
+                fdkkLaserService.syncBuildResult(
+                        SyncLaserResultBean.builder()
+                        .num(sceneCode).dataSource(path)
+                        .sceneStatus(2)
+                        .createTime(scenePro.getCreateTime())
+                        .shootCount(scenePro.getShootCount())
+                        .payStatus(scenePro.getPayStatus())
+                        .mixture(0)
+                        .version(SceneVersionType.V3.code()).build());
                 sceneProEdit.setMapVisi(0);
             }
             sceneProEditService.updateById(sceneProEdit);

+ 1 - 1
src/main/java/com/fdkankan/contro/service/ICommonService.java

@@ -44,7 +44,7 @@ public interface ICommonService {
 
     Object[] updateEditInfo(ScenePlus scenePlus);
 
-    void writeSceneJson(String num, JSONObject videosJson, SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
+    void writeSceneJson(String num, SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
                         SceneEditControls sceneEditControls, ScenePlus scenePlus, ScenePlusExt scenePlusExt, Company company);
 
     void saveMqSendLog(String num, BuildSceneCallMessage message);

+ 2 - 1
src/main/java/com/fdkankan/contro/service/IFdkkLaserService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.contro.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.contro.bean.SyncLaserResultBean;
 import com.fdkankan.contro.entity.Camera;
 import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.entity.ScenePlusExt;
@@ -17,7 +18,7 @@ import java.util.Date;
  * @since 2022/1/14
  **/
 public interface IFdkkLaserService {
-    void syncBuildResult(String sceneNum, String dataSource, Date createTime, Date algorithmTime, ScenePlusExt scenePlusExt, Integer payStatus);
+    void syncBuildResult(SyncLaserResultBean laserResultBean);
 
     void pushBuildStatusToLaserSystem(String projectNum, String laserObjFilePath, Integer buildObjStatus);
 

+ 2 - 2
src/main/java/com/fdkankan/contro/service/impl/CommonServiceImpl.java

@@ -409,7 +409,7 @@ public class CommonServiceImpl implements ICommonService {
         return new Object[]{sceneEditInfo, sceneEditInfoExt, sceneEditControls};
     }
 
-    public void writeSceneJson(String num, JSONObject videosJson, SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
+    public void writeSceneJson(String num, SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
                                 SceneEditControls sceneEditControls, ScenePlus scenePlus, ScenePlusExt scenePlusExt,Company company){
         String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, num);
 
@@ -428,7 +428,7 @@ public class CommonServiceImpl implements ICommonService {
         sceneJson.setSceneFrom(scenePlusExt.getSceneFrom());
         sceneJson.setSceneKind(scenePlusExt.getSceneKind());
         sceneJson.setModelKind(scenePlusExt.getModelKind());
-        sceneJson.setVideos(JSON.toJSONString(videosJson));
+        sceneJson.setVideos(scenePlusExt.getVideos());
         sceneJson.setPayStatus(scenePlus.getPayStatus());
         if(StrUtil.isNotEmpty(oldSceneJson)){
             SceneJsonBean oldSceneJsonBean = JSON.parseObject(oldSceneJson, SceneJsonBean.class);

+ 31 - 22
src/main/java/com/fdkankan/contro/service/impl/IFdkkLaserServiceImpl.java

@@ -3,13 +3,16 @@ package com.fdkankan.contro.service.impl;
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.SceneVersionType;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.contro.bean.SyncLaserResultBean;
 import com.fdkankan.contro.entity.Camera;
 import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.entity.ScenePlusExt;
 import com.fdkankan.contro.entity.ScenePro;
 import com.fdkankan.contro.service.IFdkkLaserService;
+import com.fdkankan.contro.service.IScenePlusExtService;
 import com.fdkankan.contro.service.IScenePlusService;
 import com.fdkankan.contro.service.ISceneProService;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
@@ -17,19 +20,18 @@ import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 @Service
 @Slf4j
+@RefreshScope
 public class IFdkkLaserServiceImpl implements IFdkkLaserService {
 
     @Autowired
@@ -37,6 +39,8 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
 
     @Autowired
     private IScenePlusService scenePlusService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
 
     @Autowired
     private RabbitMqProducer rabbitMqProducer;
@@ -63,25 +67,18 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     private FYunFileServiceInterface fYunFileService;
 
 
-    public void updateSceneStatus(String sceneCode, int sceneStatus, String path, Date createTime, Date algorithmTime, ScenePlusExt scenePlusExt, Integer payStatus) {
-        Map<String, Object> params = new HashMap<>();
-        params.put("sceneCode", sceneCode);
-        params.put("status", sceneStatus);
-        params.put("version",getSceneVersion(sceneCode));
-        params.put("createTime", DateUtil.date2String(createTime, null));
-        params.put("algorithmTime", DateUtil.date2String(algorithmTime, null));
-        if (!ObjectUtils.isEmpty(path)) {
-            params.put("path", path);
-        }
-        params.put("payStatus", payStatus);
-        params.put("shootCount", scenePlusExt.getShootCount());
-        params.put("mixture", scenePlusExt.getMixture() == CommonStatus.NO.code().intValue() ? false : true);
-        rabbitMqProducer.sendByWorkQueue(updateScene, params);
-    }
-
-    public void syncBuildResult(String sceneNum, String dataSource,Date createTime, Date algorithmTime, ScenePlusExt scenePlusExt, Integer payStatus) {
+    public void syncBuildResult(SyncLaserResultBean laserResultBean) {
         log.info("激光转台相机构建结果 同步 请求 ");
         try {
+            String num = laserResultBean.getNum();
+            String dataSource = laserResultBean.getDataSource();
+            Integer sceneStatus = laserResultBean.getSceneStatus();
+            Date createTime = laserResultBean.getCreateTime();
+            Integer shootCount = laserResultBean.getShootCount();
+            Integer payStatus = laserResultBean.getPayStatus();
+            Boolean mixture = laserResultBean.getMixture() == CommonStatus.NO.code().intValue() ? false : true;
+            String version = SceneVersionType.V4.code();
+
             String jgPath = dataSource;
             //创建目录
             if (dataSource.lastIndexOf("/") != -1) {
@@ -111,7 +108,19 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
             }
             FileUtils.copyFile(dataSource + "/results/laserData", jgPath, true);
 
-            updateSceneStatus(sceneNum, 2, jgPath + File.separator + "laserData",createTime, algorithmTime, scenePlusExt, payStatus);
+//            updateSceneStatus(scenePlus, scenePlusExt, jgPath + File.separator + "laserData",createTime, algorithmTime, scenePlusExt);
+
+            Map<String, Object> params = new HashMap<>();
+            params.put("sceneCode", num);
+            params.put("status", sceneStatus);
+            params.put("version",version);
+            params.put("createTime", DateUtil.date2String(createTime, null));
+            params.put("algorithmTime", DateUtil.date2String(Calendar.getInstance().getTime(), null));
+            params.put("path", jgPath + File.separator + "laserData");
+            params.put("shootCount", shootCount);
+            params.put("payStatus", payStatus);
+            params.put("mixture", mixture);
+            rabbitMqProducer.sendByWorkQueue(updateScene, params);
         } catch (Exception e) {
             log.error("激光转台相机同步失败", e);
         }