浏览代码

Merge branch 'feature-激光相机统计容量-dsx' into release

# Conflicts:
#	src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java
dengsixing 1 年之前
父节点
当前提交
82f0b7e348

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

@@ -330,9 +330,15 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             SceneEditInfoExt sceneEditInfoExt = (SceneEditInfoExt)editInfoArr[1];
             SceneEditControls sceneEditControls = (SceneEditControls)editInfoArr[2];
 
+            //更新场景主表
+            //如果相机容量不足,需要把场景的paystatus改为容量不足状态
+            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
+            //统计原始资源大小
+            scenePlusExt.setOrigSpace(FileUtil.size(new File(path.concat(File.separator).concat("capture"))));
+
             if (cameraType == 14) {
                 //计算成功  激光转台相机 同步 请求
-                fdkkLaserService.syncBuildResult(scenePlus.getNum(), path, scenePlus.getCreateTime(), Calendar.getInstance().getTime(), scenePlusExt.getShootCount());
+                fdkkLaserService.syncBuildResult(scenePlus.getNum(), path, scenePlus.getCreateTime(), Calendar.getInstance().getTime(), scenePlusExt.getShootCount(), scenePlus.getPayStatus());
                 sceneEditControlsService.update(new LambdaUpdateWrapper<SceneEditControls>().set(SceneEditControls::getShowMap,0)
                         .eq(SceneEditControls::getEditInfoId,sceneEditInfo.getId()));
                 sceneEditControls.setShowMap(0);
@@ -340,9 +346,6 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 fdkkLaserService.cloudPointBuild(sceneCode,path);
             }
 
-            //统计原始资源大小
-            scenePlusExt.setOrigSpace(FileUtil.size(new File(path.concat(File.separator).concat("capture"))));
-
 
             log.info("生成scene.json上传oss并设置缓存,num:{}", sceneCode);
             CameraDetail cameraDetail = cameraDetailService.getByCameraId(scenePlus.getCameraId());
@@ -366,9 +369,6 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 CreateObjUtil.deleteFile(path.replace(ConstantFilePath.BUILD_MODEL_PATH, "/"));
             }
 
-            //更新场景主表
-            //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
 
             this.uploadStatusJson(scenePlus, scenePlusExt);
 

+ 6 - 8
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -235,13 +235,11 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
 
             scenePro.setPayStatus(PayStatus.PAY.code());
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            if (cameraType != 14) {
-                scenePro.setPayStatus(commonService.getPayStatus(scenePro.getCameraId(), space));
-                sceneProService.update(
-                        new LambdaUpdateWrapper<ScenePro>()
-                                .set(ScenePro::getPayStatus, scenePro.getPayStatus())
-                                .eq(ScenePro::getId, scenePro.getId()));
-            }
+            scenePro.setPayStatus(commonService.getPayStatus(scenePro.getCameraId(), space));
+            sceneProService.update(
+                    new LambdaUpdateWrapper<ScenePro>()
+                            .set(ScenePro::getPayStatus, scenePro.getPayStatus())
+                            .eq(ScenePro::getId, scenePro.getId()));
 
             //上传文件
             log.info("开始上传场景计算结果数据,num:{}", sceneCode);
@@ -281,7 +279,7 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
             sceneProEdit.setFloorPublishVer(ObjectUtils.isEmpty(sceneProEdit.getFloorPublishVer()) ? 0 : sceneProEdit.getFloorPublishVer() + 1);
             if (cameraType == 14) {
                 //计算成功  激光转台相机 同步 请求
-                fdkkLaserService.syncBuildResult(scenePro.getNum(), scenePro.getDataSource(),scenePro.getCreateTime(), Calendar.getInstance().getTime(), null);
+                fdkkLaserService.syncBuildResult(scenePro.getNum(), scenePro.getDataSource(),scenePro.getCreateTime(), Calendar.getInstance().getTime(), scenePro.getShootCount(), scenePro.getPayStatus());
                 sceneProEdit.setMapVisi(0);
             }
             sceneProEditService.updateById(sceneProEdit);

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

@@ -17,13 +17,13 @@ import java.util.Date;
  * @since 2022/1/14
  **/
 public interface IFdkkLaserService {
-    void syncBuildResult(String sceneNum, String dataSource, Date createTime, Date algorithmTime, Integer shootCount);
+    void syncBuildResult(String sceneNum, String dataSource, Date createTime, Date algorithmTime, Integer shootCount, Integer payStatus);
 
     void pushBuildStatusToLaserSystem(String projectNum, String laserObjFilePath, Integer buildObjStatus);
 
-    void saveScene(ScenePlus scenePlus, JSONObject jsonObject, Camera cameraEntity, String userName, boolean b);
+    void saveScene(ScenePlus scenePlus, JSONObject jsonObject, Camera cameraEntity, String userName, boolean b, Integer payStatus);
 
-    void saveScene(ScenePro scenePro, String scenePassword, Camera cameraEntity, String phone, boolean rebuild);
+    void saveScene(ScenePro scenePro, String scenePassword, Camera cameraEntity, String phone, boolean rebuild, Integer payStatus);
 
     void cloudPointBuild(String sceneCode, String visionEditFilePath);
 }

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

@@ -310,12 +310,10 @@ public class CommonServiceImpl implements ICommonService {
         }
 
         //更新相机使用用量,非激光相机或者是空间个数计算方式的,需要叠加相机容量
-        if(CollUtil.isEmpty(laserCamTypeList) || !laserCamTypeList.contains(cameraDetail.getType()) || SpaceType.SP.code().equals(unit)){
-            cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
-        }
+        cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
 
         //无限容量或者激光相机,直接返回已支付
-        if(limit == -1 || (CollUtil.isNotEmpty(laserCamTypeList) && laserCamTypeList.contains(cameraDetail.getType()))){
+        if(limit == -1 || ("gn".equals(env) && CollUtil.isNotEmpty(laserCamTypeList) && laserCamTypeList.contains(cameraDetail.getType()))){
             return PayStatus.PAY.code();
         }
 

+ 8 - 5
src/main/java/com/fdkankan/contro/service/impl/IFdkkLaserServiceImpl.java

@@ -58,7 +58,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     private FYunFileServiceInterface fYunFileService;
 
 
-    public void updateSceneStatus(String sceneCode, int sceneStatus, String path, Date createTime, Date algorithmTime, Integer shootCount) {
+    public void updateSceneStatus(String sceneCode, int sceneStatus, String path, Date createTime, Date algorithmTime, Integer shootCount, Integer payStatus) {
         Map<String, Object> params = new HashMap<>();
         params.put("sceneCode", sceneCode);
         params.put("status", sceneStatus);
@@ -69,10 +69,11 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
             params.put("path", path);
         }
         params.put("shootCount", shootCount);
+        params.put("payStatus", payStatus);
         rabbitMqProducer.sendByWorkQueue(updateScene, params);
     }
 
-    public void syncBuildResult(String sceneNum, String dataSource,Date createTime, Date algorithmTime, Integer shootCount) {
+    public void syncBuildResult(String sceneNum, String dataSource,Date createTime, Date algorithmTime, Integer shootCount, Integer payStatus) {
         log.info("激光转台相机构建结果 同步 请求 ");
         try {
             String jgPath = dataSource;
@@ -104,7 +105,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
             }
             FileUtils.copyFile(dataSource + "/results/laserData", jgPath, true);
 
-            updateSceneStatus(sceneNum, 2, jgPath + File.separator + "laserData",createTime, algorithmTime, shootCount);
+            updateSceneStatus(sceneNum, 2, jgPath + File.separator + "laserData",createTime, algorithmTime, shootCount, payStatus);
         } catch (Exception e) {
             log.error("激光转台相机同步失败", e);
         }
@@ -120,7 +121,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     }
 
 
-    public void saveScene(ScenePlus scenePlus, JSONObject fdageJson, Camera cameraEntity, String phone, boolean rebuild) {
+    public void saveScene(ScenePlus scenePlus, JSONObject fdageJson, Camera cameraEntity, String phone, boolean rebuild, Integer payStatus) {
         Map<String, Object> params = new HashMap<>();
         params.put("childName", cameraEntity.getChildName());
         params.put("createTime", DateUtil.date2String(scenePlus.getCreateTime(), null));
@@ -142,10 +143,11 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         if(Objects.nonNull(fdageJson)){
             params.put("location", fdageJson.getInteger("location"));
         }
+        params.put("payStatus", payStatus);
         rabbitMqProducer.sendByWorkQueue(updateScene, params);
     }
 
-    public void saveScene(ScenePro scenePro, String scenePassword, Camera cameraEntity, String phone, boolean rebuild) {
+    public void saveScene(ScenePro scenePro, String scenePassword, Camera cameraEntity, String phone, boolean rebuild, Integer payStatus) {
         Map<String, Object> params = new HashMap<>();
         params.put("childName", cameraEntity.getChildName());
         if(ObjectUtils.isEmpty(scenePro.getCreateTime())){
@@ -164,6 +166,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         params.put("version",getSceneVersion(scenePro.getNum()));
         params.put("title", scenePro.getSceneName());
         params.put("userId", scenePro.getUserId());
+        params.put("payStatus", payStatus);
         rabbitMqProducer.sendByWorkQueue(updateScene, params);
     }
 

+ 7 - 7
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -373,7 +373,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
 
         //如果是相机计算容量的模式是场景个数模式,则需要拦截计算
-        if(rebuild == CommonStatus.NO.code() && cameraType != 14){//新场景需要校验容量是否超出限制
+        if(rebuild == CommonStatus.NO.code()){//新场景需要校验容量是否超出限制
             boolean exceedSpace = exceedSpaceSceneService.cehckExceedSpace(sceneNum, cameraDetail, cameraName, fileId, unicode);
             if(exceedSpace){
                 ScenePlusVO scenePlusVO = new ScenePlusVO();
@@ -836,9 +836,9 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             //判断 是否为激光相机
             Camera camera = cameraService.getByChildName(mac);
             if(Objects.nonNull(scenePlus)){
-                fdkkLaserService.saveScene(scenePlus,fdageJson,camera,userName,false);
+                fdkkLaserService.saveScene(scenePlus,fdageJson,camera,userName,false, scenePlus.getPayStatus());
             }else{
-                fdkkLaserService.saveScene(scenePro,fdageJson.getString("pwd"),camera,userName,false);
+                fdkkLaserService.saveScene(scenePro,fdageJson.getString("pwd"),camera,userName,false, scenePro.getPayStatus());
             }
         }
 
@@ -1280,7 +1280,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             }
             Camera cameraEntity = cameraService.getById(scenePlus.getCameraId());
             if(Objects.isNull(scenePlusExt.getLocation()) || scenePlusExt.getLocation() != 7){
-                fdkkLaserService.saveScene(scenePlus,null,cameraEntity,userName,true);
+                fdkkLaserService.saveScene(scenePlus,null,cameraEntity,userName,true, scenePlus.getPayStatus());
             }
             message = this.getBuildSceneMqMessage(
                     num, cameraType, fdageData.getString("location") != null && "1".equals(fdageData.getString("location")) ? "sfm" : "slam",
@@ -1399,7 +1399,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 userName = user.getUserName();
             }
             Camera cameraEntity = cameraService.getById(scenePro.getCameraId());
-            fdkkLaserService.saveScene(scenePro, null, cameraEntity, userName, true);
+            fdkkLaserService.saveScene(scenePro, null, cameraEntity, userName, true, scenePro.getPayStatus());
         }
 
         BuildSceneCallMessage buildSceneMqMessage = this.getBuildSceneMqMessage(
@@ -1524,7 +1524,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                                 if (!ObjectUtils.isEmpty(detailEntity.getUserId())) {
                                     userName = userService.getSSOUserByUserId(detailEntity.getUserId()).getUserName();
                                 }
-                                fdkkLaserService.saveScene(scenePlus, fdageData, cameraEntity, userName, false);
+                                fdkkLaserService.saveScene(scenePlus, fdageData, cameraEntity, userName, false, 0);
                             }
                             break;
                     }
@@ -1585,7 +1585,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         // 通知激光场景系统开始构建场景
         if(cameraType == 14){
             scenePro.setStatus(0);
-            fdkkLaserService.saveScene(scenePro, jsonObject.getString("pwd"), cameraEntity, userName, false);
+            fdkkLaserService.saveScene(scenePro, jsonObject.getString("pwd"), cameraEntity, userName, false, scenePro.getPayStatus());
         }
 
         BuildSceneCallMessage buildSceneMqMessage = this.getBuildSceneMqMessage(