lyhzzz 1 napja
szülő
commit
4fdb65b774

+ 12 - 18
src/main/java/com/fdkankan/fusion/controller/CaseOverviewController.java

@@ -50,35 +50,29 @@ public class CaseOverviewController {
 
 
     @GetMapping("/getByCaseId")
-    public ResultData getByCaseId (@RequestParam (required = false) String caseId){
+    public ResultData getByCaseId(@RequestParam(required = false) String caseId) {
 
         return ResultData.ok(caseOverviewService.getByCaseId(caseId));
     }
 
     @GetMapping("/info")
-    public ResultData info (@RequestParam (required = false) Integer overviewId,
-                            @RequestParam (required = false) String num,
-                            @RequestParam (required = false,defaultValue = "0") Integer subGroup){
-        CaseOverview caseOverview = null;
-        if(overviewId != null){
-            caseOverview = caseOverviewService.getById(overviewId);
-            if(caseOverview == null){
-                throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
-            }
-            return ResultData.ok(caseOverview);
+    public ResultData info(@RequestParam(required = false) Integer overviewId,
+                           @RequestParam(required = false) String num,
+                           @RequestParam(required = false, defaultValue = "0") Integer subGroup) {
+        if (overviewId != null) {
+            return ResultData.ok(caseOverviewService.getById(overviewId));
         }
-        if(StringUtils.isNotBlank(num)){
-
+        if (StringUtils.isNotBlank(num)) {
+            return ResultData.ok(caseOverviewService.getByNumAndSubGroup(num, subGroup));
         }
-
-        return ResultData.ok(caseOverview);
+        return ResultData.ok();
     }
 
     @PostMapping("/addOrUpdate")
     @PushJm(event_content = "添加绘图")
-    public ResultData addOrUpdate (@RequestBody CaseOverview caseOverview){
+    public ResultData addOrUpdate(@RequestBody CaseOverview caseOverview) {
         caseOverviewService.saveOrUpdate(caseOverview);
-        if(caseOverview.getCaseTabulation() != null){
+        if (caseOverview.getCaseTabulation() != null) {
             caseOverview.getCaseTabulation().setOverviewId(caseOverview.getId());
             caseOverview.getCaseTabulation().setCaseId(caseOverview.getCaseId());
             caseTabulationService.addOrUpdate(caseOverview.getCaseTabulation());
@@ -87,7 +81,7 @@ public class CaseOverviewController {
     }
 
     @PostMapping("/del")
-    public ResultData del (@RequestBody CaseOverview caseOverview){
+    public ResultData del(@RequestBody CaseOverview caseOverview) {
         caseOverviewService.removeById(caseOverview.getId());
         return ResultData.ok();
     }

+ 6 - 0
src/main/java/com/fdkankan/fusion/entity/CaseOverview.java

@@ -74,6 +74,12 @@ public class CaseOverview implements Serializable {
     @TableField("kankan_cover")
     private String kankanCover;
 
+    @TableField("num")
+    private String num;
+
+    @TableField("sub_group")
+    private Integer subGroup;
+
     @TableField(exist = false)
     private CaseTabulation caseTabulation;
 

+ 140 - 0
src/main/java/com/fdkankan/fusion/mq/consumer/CaseAddSceneConsumer.java

@@ -0,0 +1,140 @@
+package com.fdkankan.fusion.mq.consumer;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.fusion.entity.*;
+import com.fdkankan.fusion.mq.vo.LaserSceneGpsVo;
+import com.fdkankan.fusion.request.CaseParam;
+import com.fdkankan.fusion.request.SceneNumParam;
+import com.fdkankan.fusion.service.*;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import scala.Int;
+
+import javax.lang.model.element.TypeElement;
+import javax.swing.*;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ */
+@Slf4j
+@Component
+public class CaseAddSceneConsumer {
+
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    ICaseService caseService;
+    @Autowired
+    IUserService userService;
+    @Autowired
+    IJyUserService jyUserService;
+    @Autowired
+    ICaseNumService caseNumService;
+
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.fusion.case-add:queue-aj-add-scene}")
+    )
+    public void consumerQueue(Channel channel, Message message)  {
+        try {
+            String messageId = message.getMessageProperties().getMessageId();
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            log.info("queue-aj-add-scene-mq--messageId:{},msg:{}",messageId,msg);
+
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+            JSONObject jsonObject = JSON.parseObject(msg);
+            String num = jsonObject.getString("num");
+            String kNumber = jsonObject.getString("kNo");
+            if(StringUtils.isBlank(num) || StringUtils.isBlank(kNumber)){
+                log.info("queue-aj-add-scene------num为空,kno为空:{},{}",num,kNumber);
+                return;
+            }
+
+            ScenePlus scenePlus = scenePlusService.getByNum(num);
+            if(scenePlus == null){
+                log.info("queue-aj-add-scene------场景为空:{},{}",num,kNumber);
+                return;
+            }
+
+            CaseEntity caseEntity = caseService.getKnumber(kNumber);
+            if(caseEntity == null){
+                User user = userService.getById(scenePlus.getUserId());
+                if(user == null){
+                    log.info("queue-aj-add-scene------user为空:{},{}",num,kNumber);
+                    return;
+                }
+                JyUser jyUser = jyUserService.getByUserId(user.getId());
+                if(jyUser == null){
+                    log.info("queue-aj-add-scene------jyUser为空:{},{}",num,kNumber);
+                    return;
+                }
+                caseEntity = new CaseEntity();
+                caseEntity.setCaseTitle(kNumber);
+                caseEntity.setUserName(user.getUserName());
+                caseEntity.setSysUserId(jyUser.getSysUserId());
+                caseEntity.setKNumber(kNumber);
+                caseService.save(caseEntity);
+            }
+
+            CaseParam caseParam = new CaseParam();
+            caseParam.setCaseId(caseEntity.getCaseId());
+
+            caseParam.setSceneNumParam(getSceneParam(caseEntity.getCaseId(),scenePlus));
+
+            caseService.addScene(caseParam);
+
+
+        }catch (Exception e){
+            log.info("queue-aj-add-scene------消费失败",e);
+        }finally {
+
+        }
+
+    }
+
+    public List<SceneNumParam> getSceneParam (Integer caseId,ScenePlus scenePlus){
+        List<SceneNumParam> params = new ArrayList<>();
+
+        HashMap<Integer, List<String>> map = caseNumService.getTypeMap(caseId);
+
+        List<Integer> typeList =  getTypeBySceneSource(scenePlus.getSceneSource(),scenePlus.getThreeCamType());
+        for (Integer type : typeList) {
+            map.computeIfAbsent(type, k -> new ArrayList<>());
+            List<String> list = map.get(type);
+            list.add(scenePlus.getNum());
+        }
+
+        for (Integer type : map.keySet()) {
+            SceneNumParam sceneNumParam = new SceneNumParam();
+            sceneNumParam.setNumList(map.get(type));
+            sceneNumParam.setType(type);
+            params.add(sceneNumParam);
+        }
+        return params;
+    }
+
+    private List<Integer> getTypeBySceneSource(Integer sceneSource,String three) {
+        switch (sceneSource){
+            case 3 : return  Arrays.asList(1);
+            case 4 : return  Arrays.asList(2,4);
+            case 5 : return  Arrays.asList(5,6);
+            default:
+                if(StringUtils.isNotBlank(three) && "yzl".equals(three)){
+                    return Arrays.asList(7);
+                }
+            return Arrays.asList(0);
+        }
+    }
+
+}

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICaseOverviewService.java

@@ -18,4 +18,6 @@ public interface ICaseOverviewService extends IService<CaseOverview> {
     List<CaseOverview> getByCaseId(String caseId);
 
     void updateTitleById(Integer overviewId, String filesTitle);
+
+    CaseOverview getByNumAndSubGroup(String num, Integer subGroup);
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICaseService.java

@@ -42,4 +42,6 @@ public interface ICaseService extends IService<CaseEntity> {
     CaseVo getInfo(Integer caseId);
 
     void addFusionIds(CaseParam param);
+
+    CaseEntity getKnumber(String kNumber);
 }

+ 13 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseOverviewServiceImpl.java

@@ -37,4 +37,17 @@ public class CaseOverviewServiceImpl extends ServiceImpl<ICaseOverviewMapper, Ca
         wrapper.set(CaseOverview::getTitle,filesTitle);
         this.update(wrapper);
     }
+
+    @Override
+    public CaseOverview getByNumAndSubGroup(String num, Integer subGroup) {
+        LambdaQueryWrapper<CaseOverview> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseOverview::getNum,num);
+        wrapper.eq(CaseOverview::getSubGroup,subGroup);
+        List<CaseOverview> list = this.list(wrapper);
+        if(list ==null || list.isEmpty()){
+            return null;
+        }
+        return list.get(0);
+    }
+
 }

+ 11 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -309,4 +309,15 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
         }
         caseFusionService.updateCaseId(param.getFusionIds(),param.getCaseId());
     }
+
+    @Override
+    public CaseEntity getKnumber(String kNumber) {
+        LambdaQueryWrapper<CaseEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseEntity::getKNumber,kNumber);
+        List<CaseEntity> list = this.list(wrapper);
+        if(list != null && !list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
 }