|
@@ -24,6 +24,7 @@ import com.fdkankan.contro.constant.RedisConstants;
|
|
|
import com.fdkankan.contro.entity.*;
|
|
|
import com.fdkankan.contro.enums.CameraTypeEnum;
|
|
|
import com.fdkankan.contro.mapper.ISceneFileBuildMapper;
|
|
|
+import com.fdkankan.contro.service.ICommonService;
|
|
|
import com.fdkankan.contro.service.*;
|
|
|
import com.fdkankan.contro.vo.ResponseSceneFile;
|
|
|
import com.fdkankan.contro.vo.ScenePlusVO;
|
|
@@ -173,6 +174,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
@Autowired
|
|
|
private ISceneCleanOrigService sceneCleanOrigService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ICommonService commonService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IExceedSpaceSceneService exceedSpaceSceneService;
|
|
|
+
|
|
|
@Override
|
|
|
public SceneFileBuild findByFileId(String fileId) {
|
|
|
|
|
@@ -326,10 +333,16 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
|
|
|
//查看场景中的文件目录是否有改文件id,有则重新计算改场景,无则新建场景
|
|
|
ScenePlus scenePlus = scenePlusService.getByFileId("/" + fileId + "/");
|
|
|
- int rebuild = 1;
|
|
|
+ int rebuild = CommonStatus.YES.code();
|
|
|
if (ObjectUtils.isEmpty(scenePlus)) {
|
|
|
+
|
|
|
+
|
|
|
+ //清除超容量场景记录
|
|
|
+ exceedSpaceSceneService.repeal(camera.getId(), fileId, unicode);
|
|
|
+
|
|
|
sceneNum = scene3dNumService.generateSceneNum(cameraDetail.getType());
|
|
|
- rebuild = 0;
|
|
|
+
|
|
|
+ rebuild = CommonStatus.NO.code();
|
|
|
} else {
|
|
|
sceneNum = scenePlus.getNum();
|
|
|
sceneCopyLogService.checkCanBuild(sceneNum);
|
|
@@ -342,6 +355,18 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
log.error("大场景序号为空:" + sceneNum);
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
|
}
|
|
|
+
|
|
|
+ //如果是相机计算容量的模式是场景个数模式,则需要拦截计算
|
|
|
+ if(rebuild == CommonStatus.NO.code()){//新场景需要校验容量是否超出限制
|
|
|
+ boolean exceedSpace = exceedSpaceSceneService.cehckExceedSpace(sceneNum, cameraDetail, cameraName, fileId, unicode);
|
|
|
+ if(exceedSpace){
|
|
|
+ ScenePlusVO scenePlusVO = new ScenePlusVO();
|
|
|
+ scenePlusVO.setNum(sceneNum);
|
|
|
+ scenePlusVO.setSceneStatus(SceneStatus.EXCEED_SPACE.code());
|
|
|
+ return scenePlusVO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
String dataSource = cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
|
|
|
fileId + File.separator + unicode;
|
|
|
if (cameraType == 14) {
|
|
@@ -364,9 +389,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
|
|
|
private ScenePlusVO buildScenePost(String dataSource, JSONObject jsonObject, String buildType, long cameraType,
|
|
|
String sceneNum, CameraDetail cameraDetail, int rebuild,String icon) throws Exception {
|
|
|
- String localDataPath = String.format(ConstantFilePath.DATABUFFER_FORMAT, sceneNum);
|
|
|
String imgViewPath = String.format(UploadFilePath.IMG_VIEW_PATH, sceneNum);
|
|
|
- String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, sceneNum);
|
|
|
|
|
|
String userName = null;
|
|
|
if (!ObjectUtils.isEmpty(cameraDetail.getUserId())) {
|
|
@@ -388,8 +411,6 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
//重算的场景,先移除该场景对应的容量
|
|
|
if (rebuild == 1) {
|
|
|
scenePlusService.resetSpace(sceneNum);
|
|
|
- //删除oss的houst_floor.json(国际版可能会卡住)
|
|
|
- fYunFileService.deleteFile(dataViewPath + "houst_floor.json");
|
|
|
} else {
|
|
|
//上传log-main.png
|
|
|
fYunFileService.uploadFile(ConstantFilePath.LOGO_PATH + "logo-main.png", imgViewPath + "logo-main.png");
|
|
@@ -404,18 +425,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
|
|
|
jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, cameraDetail.getCooperationUser());
|
|
|
|
|
|
- if (Objects.nonNull(scenePlusVO)) {
|
|
|
- JSONObject statusJson = new JSONObject();
|
|
|
- //临时将-2改成1,app还没完全更新
|
|
|
- statusJson.put("status", scenePlusVO.getSceneStatus() == -2 ? 1 : scenePlusVO.getSceneStatus());
|
|
|
- statusJson.put("webSite", scenePlusVO.getWebSite());
|
|
|
- statusJson.put("sceneNum", scenePlusVO.getNum());
|
|
|
- statusJson.put("thumb", scenePlusVO.getThumb());
|
|
|
- statusJson.put("payStatus", 0);
|
|
|
- statusJson.put("recStatus", 'A');
|
|
|
- FileUtils.writeFile(localDataPath + "status.json", statusJson.toString());
|
|
|
- fYunFileService.uploadFile(localDataPath + "status.json", dataViewPath + "status.json");
|
|
|
- }
|
|
|
+ //上传app状态文件
|
|
|
+ commonService.uploadStatusJson(sceneNum, scenePlusVO.getSceneStatus(),
|
|
|
+ scenePlusVO.getWebSite(),scenePlusVO.getThumb(),PayStatus.NOT_PAY.code(),
|
|
|
+ String.format(UploadFilePath.DATA_VIEW_PATH, sceneNum));
|
|
|
|
|
|
BuildSceneCallMessage mqMessage = getBuildSceneMqMessage(sceneNum, cameraType, algorithm, jsonObject, buildType,
|
|
|
scenePlusVO.getDataSource());
|
|
@@ -495,19 +508,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
jsonObject.getInteger("scenetype"), jsonObject.getString("gps"),
|
|
|
jsonObject.getInteger("resolution"), firmwareVersion.toString(), buildType);
|
|
|
|
|
|
- if (Objects.nonNull(scenePlusVO)) {
|
|
|
- JSONObject statusJson = new JSONObject();
|
|
|
- //临时将-2改成1,app还没完全更新
|
|
|
- statusJson.put("status", scenePlusVO.getSceneStatus() == -2 ? 1 : scenePlusVO.getSceneStatus());
|
|
|
- statusJson.put("webSite", scenePlusVO.getWebSite());
|
|
|
- statusJson.put("sceneNum", scenePlusVO.getNum());
|
|
|
- statusJson.put("thumb", scenePlusVO.getThumb());
|
|
|
- statusJson.put("payStatus", 0);
|
|
|
- statusJson.put("recStatus", 'A');
|
|
|
- FileUtils.writeFile(localDataPath + "status.json", statusJson.toString());
|
|
|
- fYunFileService.uploadFile(localDataPath + "status.json", dataViewPath + "status.json");
|
|
|
- }
|
|
|
- BuildSceneCallMessage mqMessage = getBuildSceneMqMessage(sceneNum, cameraType, algorithm, jsonObject, buildType,
|
|
|
+ //上传场景状态文件
|
|
|
+ commonService.uploadStatusJson(sceneNum, scenePlusVO.getSceneStatus(),
|
|
|
+ scenePlusVO.getWebSite(),scenePlusVO.getThumb(),PayStatus.NOT_PAY.code(),
|
|
|
+ String.format(ConstantFilePath.DATA_PATH_FORMAT, sceneNum));
|
|
|
+
|
|
|
+ BuildSceneCallMessage mqMessage = getBuildSceneMqMessage(sceneNum, cameraType, algorithm, jsonObject.getInteger("resolution"), buildType,
|
|
|
scenePlusVO.getDataSource());
|
|
|
if (cameraDetail.getCompanyId() != null) {
|
|
|
Company company = companyService.getById(cameraDetail.getCompanyId());
|
|
@@ -775,7 +781,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
}
|
|
|
|
|
|
|
|
|
- if(ObjectUtils.isEmpty(scenePlusVO)){
|
|
|
+ if(ObjectUtils.isEmpty(scenePlusVO) || scenePlusVO.getSceneStatus() == SceneStatus.EXCEED_SPACE.code()){
|
|
|
return ResultData.ok();
|
|
|
}
|
|
|
// 通知激光场景系统开始构建场景
|
|
@@ -927,9 +933,9 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
}else {
|
|
|
ScenePlus oldScene = scenePlusService.getScenePlusByNum(projectNum);
|
|
|
scenePlus.setId(oldScene.getId());
|
|
|
- scenePlus.setSceneStatus(0);
|
|
|
+ scenePlus.setSceneStatus(SceneStatus.wait.code());
|
|
|
scenePlus.setRecStatus(RecStatus.VALID.code());
|
|
|
- scenePlus.setPayStatus(0);
|
|
|
+ scenePlus.setPayStatus(PayStatus.NOT_PAY.code());
|
|
|
scenePlus.setCreateTime(Calendar.getInstance().getTime());
|
|
|
|
|
|
ScenePlusExt oldSceneExt = scenePlusExtService.getScenePlusExtByPlusId(oldScene.getId());
|