xiewenjie 3 лет назад
Родитель
Сommit
cbc1589c30

+ 22 - 3
sxz-core/src/main/java/com/fdkk/sxz/other/listener/Model3dBuild.java

@@ -6,9 +6,11 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkk.sxz.constant.ConstantFileName;
 import com.fdkk.sxz.constant.ConstantFilePath;
+import com.fdkk.sxz.entity.ModelUploadOfflineEntity;
 import com.fdkk.sxz.other.mq.TopicRabbitConfig;
 import com.fdkk.sxz.util.*;
 import com.fdkk.sxz.vo.request.RequestQueue;
+import com.fdkk.sxz.webApi.service.IModelUploadOfflineService;
 import com.fdkk.sxz.webApi.service.IRenovationPartsDetailService;
 import com.fdkk.sxz.webApi.service.custom.ICustomComponentService;
 import com.fdkk.sxz.webApi.service.custom.ICustomProductService;
@@ -49,18 +51,26 @@ public class Model3dBuild {
     private ICustomComponentService customComponentService;
     @Autowired
     RedisUtil redisUtil;
-
+    @Autowired
+    private IModelUploadOfflineService modelUploadOfflineService;
 
     @RabbitHandler
     @RabbitListener(queues = TopicRabbitConfig.MODEL_BIZ_3D)
     public void modelBiz3d(Message<RequestQueue> message) {
         Model3dBuild.log.info("modelBiz3d同步消息开始:" + message + ",开始同步");
         String token = RedisUtil.tryLock("modelBiz3d:" + message.getPayload().getName(), 60 * 60 * 1000);
+        ModelUploadOfflineEntity modelUploadOfflineEntity = new ModelUploadOfflineEntity();
         try {
             if (token != null) {
-                modelBiz3dHandler(message.getPayload());
+                modelUploadOfflineEntity.setName(message.getPayload().getName());
+                modelUploadOfflineEntity.setStatus(0);
+                modelUploadOfflineEntity.setProgress(0);
+                modelUploadOfflineService.save(modelUploadOfflineEntity);
+                modelBiz3dHandler(message.getPayload(), modelUploadOfflineEntity);
             }
         } catch (InterruptedException e) {
+            modelUploadOfflineEntity.setStatus(-1);
+            modelUploadOfflineService.updateById(modelUploadOfflineEntity);
             e.printStackTrace();
         } finally {
             if (token != null) {
@@ -69,7 +79,7 @@ public class Model3dBuild {
         }
     }
 
-    public void modelBiz3dHandler(RequestQueue str) throws InterruptedException {
+    public void modelBiz3dHandler(RequestQueue str, ModelUploadOfflineEntity modelUploadOfflineEntity) throws InterruptedException {
 
         while (true) {
             String buildResult = OkHttpUtils.httpPostJson(buildUrl + "pro", JSON.toJSONString(str));
@@ -111,16 +121,25 @@ public class Model3dBuild {
                 JSONObject objectJson = checkArray.getJSONObject(i);
 
                 if ("error".equals(objectJson.getString("state"))) {
+                    modelUploadOfflineEntity.setStatus(-1);
+                    modelUploadOfflineService.updateById(modelUploadOfflineEntity);
                     throw new RuntimeException(str.getName() + ":build方式pro接口返回error错误");
                 }
 
                 if (objectJson.containsKey("state") && ("".equals(objectJson.getString("state")) ||
                         "done".equals(objectJson.getString("state")) || "error".equals(objectJson.getString("state")))) {
                     over = true;
+                    //完成 存库。。。。。name: XXXXX  完成状态 进度
+                    //id ,name  status 1完成-2未完成 3-错误    progress
+                    modelUploadOfflineEntity.setStatus(1);
+                    modelUploadOfflineService.updateById(modelUploadOfflineEntity);
+
                 }
 
                 if (objectJson.containsKey("progress")) {
                     Integer progress = objectJson.getInteger("progress");
+                    modelUploadOfflineEntity.setProgress(progress);
+                    modelUploadOfflineService.updateById(modelUploadOfflineEntity);
                     Model3dBuild.log.info("str.getName()-{}, 第{}次获取渲染进度,进度为{}%", str.getName(), times++, progress);
                 }
             }

+ 20 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/controller/QueueController.java

@@ -5,11 +5,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.fdkk.sxz.annotation.auth.NoAuthentication;
 import com.fdkk.sxz.annotation.log.AroundLog;
 import com.fdkk.sxz.base.Result;
+import com.fdkk.sxz.entity.ModelUploadOfflineEntity;
 import com.fdkk.sxz.other.mq.TopicRabbitConfig;
 import com.fdkk.sxz.util.OkHttpUtils;
 import com.fdkk.sxz.util.RabbitMqUtil;
 import com.fdkk.sxz.util.RedisUtil;
 import com.fdkk.sxz.vo.request.RequestQueue;
+import com.fdkk.sxz.webApi.service.IModelUploadOfflineService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -43,6 +45,8 @@ public class QueueController {
     RedisUtil redisUtil;
     @Autowired
     RabbitMqUtil rabbitMqUtil;
+    @Autowired
+    private IModelUploadOfflineService modelUploadOfflineService;
 
     /**
      * 数据上传
@@ -93,4 +97,20 @@ public class QueueController {
         String checkResult = OkHttpUtils.httpPostJson(buildUrl + "check", jsonObject.toJSONString());
         return Result.success("成功", JSON.parse(checkResult));
     }
+
+    /**
+     * 数据上传
+     *
+     * @return
+     */
+    @ApiOperation("获取上传任务状态")
+    @RequestMapping(value = "/getUploadInfo", method = RequestMethod.POST)
+    @NoAuthentication
+    @AroundLog(name = "获取上传任务状态")
+    public Result getUploadInfo(@RequestBody RequestQueue params) {
+
+        ModelUploadOfflineEntity modelUploadOfflineEntity = modelUploadOfflineService.findByName(params.getName());
+        
+        return Result.success("成功", modelUploadOfflineEntity);
+    }
 }

+ 15 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/mapper/IModelUploadOfflineMapper.java

@@ -0,0 +1,15 @@
+package com.fdkk.sxz.webApi.mapper;
+
+import com.fdkk.sxz.base.IBaseMapper;
+import com.fdkk.sxz.entity.ModelUploadOfflineEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by Hb_zzZ on 2020/12/1.
+ */
+@Mapper
+@Component("IModelUploadOfflineMapper")
+public interface IModelUploadOfflineMapper extends IBaseMapper<ModelUploadOfflineEntity> {
+
+}

+ 14 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/service/IModelUploadOfflineService.java

@@ -0,0 +1,14 @@
+package com.fdkk.sxz.webApi.service;
+
+import com.fdkk.sxz.base.IBaseService;
+import com.fdkk.sxz.entity.ModelUploadOfflineEntity;
+
+/**
+ * Created by Hb_zzZ on 2020/12/1.
+ */
+public interface IModelUploadOfflineService extends IBaseService<ModelUploadOfflineEntity> {
+
+    ModelUploadOfflineEntity findByName(String name);
+
+
+}

+ 30 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/service/impl/ModelUploadOfflineImpl.java

@@ -0,0 +1,30 @@
+package com.fdkk.sxz.webApi.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.sxz.base.impl.BaseServiceImpl;
+import com.fdkk.sxz.entity.ModelUploadOfflineEntity;
+import com.fdkk.sxz.webApi.mapper.IModelUploadOfflineMapper;
+import com.fdkk.sxz.webApi.service.IModelUploadOfflineService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Created by Hb_zzZ on 2020/12/1.
+ */
+@Service
+@Transactional
+@Slf4j
+public class ModelUploadOfflineImpl extends BaseServiceImpl<IModelUploadOfflineMapper, ModelUploadOfflineEntity> implements IModelUploadOfflineService {
+    @Override
+    public ModelUploadOfflineEntity findByName(String name) {
+        LambdaQueryWrapper<ModelUploadOfflineEntity> wrapper = Wrappers.lambdaQuery();
+        if (ObjectUtil.isNotNull(name) && StrUtil.isNotEmpty(name)) {
+            wrapper.eq(ModelUploadOfflineEntity::getName, name);
+        }
+        return getOne(wrapper);
+    }
+}

+ 28 - 0
sxz-modules/src/main/java/com/fdkk/sxz/entity/ModelUploadOfflineEntity.java

@@ -0,0 +1,28 @@
+package com.fdkk.sxz.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+
+/**
+ * Created by Hb_zzZ on 2020/12/1.
+ */
+@Data
+@TableName("tb_model_upload_offline")
+public class ModelUploadOfflineEntity extends BaseEntity {
+
+    @TableField("user_id")
+    private Long userId;
+
+    @TableField("name")
+    private String name;
+    /*
+     * 0转换中,1转成成功,-1转换失败,2,提交模型处理中 3,提交模型处理成功
+     */
+    @TableField("status")
+    private Integer status;
+
+    @TableField("progress")
+    private Integer progress;
+}