|
@@ -1,13 +1,23 @@
|
|
package com.fdkankan.contro.mq.service.impl;
|
|
package com.fdkankan.contro.mq.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.fdkankan.common.util.DateExtUtil;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import com.fdkankan.contro.mq.service.IBuildScenePreService;
|
|
import com.fdkankan.contro.mq.service.IBuildScenePreService;
|
|
|
|
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
|
|
+import com.fdkankan.model.constants.ConstantFilePath;
|
|
|
|
+import com.fdkankan.model.utils.CreateObjUtil;
|
|
import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
|
|
import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
|
|
import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
|
+
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.util.Calendar;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -30,6 +40,9 @@ public class BuildSceneObjPreServiceImpl implements IBuildScenePreService {
|
|
@Autowired
|
|
@Autowired
|
|
private RabbitMqProducer mqProducer;
|
|
private RabbitMqProducer mqProducer;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private FYunFileServiceInterface fYunFileService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void buildScenePre(BuildSceneCallMessage message) {
|
|
public void buildScenePre(BuildSceneCallMessage message) {
|
|
boolean success = false;
|
|
boolean success = false;
|
|
@@ -39,7 +52,25 @@ public class BuildSceneObjPreServiceImpl implements IBuildScenePreService {
|
|
log.info("开始生成OBJ文件,路径:{}", laserObjFilePath);
|
|
log.info("开始生成OBJ文件,路径:{}", laserObjFilePath);
|
|
|
|
|
|
FileUtils.delAllFile(laserObjFilePath);
|
|
FileUtils.delAllFile(laserObjFilePath);
|
|
|
|
+ String path = message.getDataSource();
|
|
|
|
+ //获取解压后的资源的data.fdage中的数据
|
|
|
|
+ File folderPath = new File(path);
|
|
|
|
+ CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "") + "/data.fdage", path + "/capture/");
|
|
|
|
+ String data = FileUtils.readFile(folderPath.getAbsolutePath() + File.separator + "capture" + File.separator + "data.fdage");
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(data);
|
|
|
|
+ if(ObjectUtils.isEmpty(jsonObject)){
|
|
|
|
+ log.error("data.fdage文件不存在");
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 重新构造datafdage文件,添加生成obt文件选项
|
|
|
|
+ jsonObject.put("OnlyExportMeshObj",true);
|
|
|
|
+ // 写入data.fdage 防止重算
|
|
|
|
+ jsonObject.put("exportMeshObj",1);
|
|
|
|
+ FileUtils.writeFile(folderPath.getAbsolutePath() + File.separator + "capture" + File.separator + "data.fdage", jsonObject.toJSONString());
|
|
|
|
|
|
|
|
+ fYunFileService.uploadFile(folderPath.getAbsolutePath() + File.separator + "capture" + File.separator + "data.fdage",
|
|
|
|
+ ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "") + "/data.fdage");
|
|
|
|
|
|
//下载资源到本地
|
|
//下载资源到本地
|
|
this.downLoadSource(message, laserObjFilePath);
|
|
this.downLoadSource(message, laserObjFilePath);
|
|
@@ -48,8 +79,33 @@ public class BuildSceneObjPreServiceImpl implements IBuildScenePreService {
|
|
|
|
|
|
message.setResultReceiverMqName(queueObjModelingPost);
|
|
message.setResultReceiverMqName(queueObjModelingPost);
|
|
|
|
|
|
|
|
+ BuildSceneCallMessage mqMsg = new BuildSceneCallMessage();
|
|
|
|
+ mqMsg.setSceneProId(sceneProId);
|
|
|
|
+ mqMsg.setSceneNum(projectNum);
|
|
|
|
+ mqMsg.setCameraName(cameraName);
|
|
|
|
+ mqMsg.setUnicode(unicode);
|
|
|
|
+ mqMsg.setCameraType(String.valueOf(cameraType));
|
|
|
|
+ mqMsg.setFileId(fileId);
|
|
|
|
+ mqMsg.setPrefix(prefix);
|
|
|
|
+ mqMsg.setImgsName(imgsName);
|
|
|
|
+ mqMsg.setIsModel(isModel);
|
|
|
|
+ mqMsg.setUserName(userName);
|
|
|
|
+ mqMsg.setAlgorithm(algorithm);
|
|
|
|
+ mqMsg.setResolution(String.valueOf(resolution));
|
|
|
|
+ mqMsg.setBuildType(buildType);
|
|
|
|
+ mqMsg.setPath(path);
|
|
|
|
+ mqMsg.setSceneName(sceneName);
|
|
|
|
+ mqMsg.setWebSite(webSite);
|
|
|
|
+ mqMsg.setSceneProCreateTime(sceneProCreateTime);
|
|
|
|
+ mqMsg.setUserId(userId);
|
|
|
|
+ mqMsg.setDataSource(dataSource);
|
|
|
|
+ mqMsg.setSceneStatus(sceneStatus);
|
|
|
|
+ mqMsg.setPayStatus(PayStatus);
|
|
|
|
+ mqMsg.setCreateTime(DateUtil.format(Calendar.getInstance().getTime(), DateExtUtil.dateStyle));
|
|
|
|
+ mqMsg.setThumb(thumb);
|
|
|
|
+
|
|
//发送mq,就进行计算
|
|
//发送mq,就进行计算
|
|
- mqProducer.sendByWorkQueue(queueModelingCall, message);
|
|
|
|
|
|
+ mqProducer.sendByWorkQueue(queueModelingCall, mqMsg);
|
|
|
|
|
|
success = true;
|
|
success = true;
|
|
|
|
|