Parcourir la source

模板维护添加和修改优化

wangyu il y a 6 ans
Parent
commit
ba27b92ee0

+ 70 - 14
icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java

@@ -3,11 +3,15 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.entity.ModuleDetail;
-import com.diagbot.entity.ModuleInfo;
+import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TagTypeEnum;
 import com.diagbot.service.ModuleDetailService;
+import com.diagbot.service.QuestionInfoService;
 import com.diagbot.service.impl.ModuleDetailServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.AddModuleDetailVO;
 import com.diagbot.vo.AddModuleInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -15,6 +19,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,6 +36,11 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
     @Autowired
     @Qualifier("moduleDetailServiceImpl")
     private ModuleDetailService moduleDetailService;
+    @Autowired
+    private QuestionInfoFacade questionInfoFacade;
+    @Autowired
+    @Qualifier("questionInfoServiceImpl")
+    private QuestionInfoService questionInfoService;
     /**
      * 根据questionId删除明细
      *
@@ -58,38 +68,84 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
      * @param addModuleInfoVO
      * @return
      */
-    public Boolean saveOrUpdateInfos(AddModuleInfoVO addModuleInfoVO){
+    public Boolean saveOrUpdateInfos(AddModuleInfoVO addModuleInfoVO,Long moduleId){
         /*String userId = UserUtils.getCurrentPrincipleID();*/
         Date now = DateUtil.now();
-        //获取添加的模板信息
-        QueryWrapper<ModuleInfo> moduleInfoQueryWrapper = new QueryWrapper<>();
-        moduleInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-            .eq("name",addModuleInfoVO.getName())
-            .eq("type",addModuleInfoVO.getType());
-        ModuleInfo moduleInfo = moduleInfoFacade.getOne(moduleInfoQueryWrapper);
         //如果该模板添加过明细,先删除
         UpdateWrapper<ModuleDetail> moduleDetailUpdateWrapper = new UpdateWrapper<>();
         moduleDetailUpdateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("module_id",moduleInfo.getId())
+                .eq("module_id",moduleId)
                 .set("is_deleted",IsDeleteEnum.Y.getKey())
                 .set("modifier","1"/*userId*/)
                 .set("gmt_modified",now);
         this.update(new ModuleDetail(),moduleDetailUpdateWrapper);
-        //重新添加明细
-        List<ModuleDetail> moduleDetailList = new ArrayList<>();
+        //查询自定义标签的id
+        List<String> textList = new ArrayList<>();
+        for(AddModuleDetailVO addModuleDetailVO:addModuleInfoVO.getModelDetils()){
+            if(StringUtil.isNotEmpty(addModuleDetailVO.getText())){
+                textList.add(addModuleDetailVO.getText());
+            }
+        }
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("tag_type", TagTypeEnum.T8.getKey())
+                .in("name",textList);
+        List<QuestionInfo> questionInfoList = questionInfoFacade.list(questionInfoQueryWrapper);
+        //将标签id放入map
+        Map<String,Long> questionIdMap = new HashMap<>();
+        QuestionInfo addquestionInfo = null;
+        List<QuestionInfo> addQuestionInfoList = new ArrayList<>();
+        for (QuestionInfo questionInfo:questionInfoList) {
+            questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
+        }
+        //循环给questionId赋值,如果遇到赋值失败的则是没有questionID,执行添加
+        for (AddModuleDetailVO addModuleDetailVO:addModuleInfoVO.getModelDetils()) {
+            if (StringUtil.isNotEmpty(addModuleDetailVO.getText())){
+                addModuleDetailVO.setQuestionId(questionIdMap.get(addModuleDetailVO.getText()));
+                if(addModuleDetailVO.getQuestionId() == null){
+                    addquestionInfo = new QuestionInfo();
+                    addquestionInfo.setModifier("1");
+                    addquestionInfo.setCreator("1");
+                    addquestionInfo.setGmtCreate(now);
+                    addquestionInfo.setGmtModified(now);
+                    addquestionInfo.setTagType(String.valueOf(TagTypeEnum.T8.getKey()));
+                    addquestionInfo.setTagName(addModuleDetailVO.getText());
+                    addquestionInfo.setName(addModuleDetailVO.getText());
+                    addquestionInfo.setType(addModuleInfoVO.getType());
+                    addquestionInfo.setSubType(1);
+                    addquestionInfo.setName(addModuleDetailVO.getText());
+                    addQuestionInfoList.add(addquestionInfo);
+                }
+            }
+        }
+        questionInfoService.saveBatch(addQuestionInfoList);
+        //查询自定义标签的id
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper1 = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("tag_type", TagTypeEnum.T8.getKey());
+        List<QuestionInfo> questionInfoList1 = questionInfoFacade.list(questionInfoQueryWrapper1);
+        for (QuestionInfo questionInfo:questionInfoList1) {
+            questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
+        }
+        //二次赋值保证每一个questionId都有值
         ModuleDetail moduleDetail = null;
+        List<ModuleDetail> moduleDetailList = new ArrayList<>();
         for(int i = 0; i < addModuleInfoVO.getModelDetils().size(); i++){
             moduleDetail = new ModuleDetail();
-            moduleDetail.setModuleId(moduleInfo.getId());
+            moduleDetail.setModuleId(moduleId);
             moduleDetail.setCreator("1"/*userId*/);
             moduleDetail.setModifier("1"/*userId*/);
             moduleDetail.setGmtCreate(now);
             moduleDetail.setGmtModified(now);
-            moduleDetail.setQuestionId(addModuleInfoVO.getModelDetils().get(i).getQuestionId());
-            moduleDetail.setModuleId(moduleInfo.getId());
             moduleDetail.setOrderNo(i+1);
+            if (StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getText())){
+                moduleDetail.setQuestionId(questionIdMap.get(addModuleInfoVO.getModelDetils().get(i).getText()));
+            }else {
+                moduleDetail.setQuestionId(addModuleInfoVO.getModelDetils().get(i).getQuestionId());
+            }
             moduleDetailList.add(moduleDetail);
         }
+        //添加模板明细
         moduleDetailService.saveBatch(moduleDetailList);
         return true;
     }

+ 3 - 2
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -82,7 +82,8 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         moduleInfo.setGmtCreate(now);
         moduleInfo.setGmtModified(now);
         this.save(moduleInfo);
-        return moduleDetailFacade.saveOrUpdateInfos(addModulInfoVO);
+        Long moduleId = moduleInfo.getId();
+        return moduleDetailFacade.saveOrUpdateInfos(addModulInfoVO,moduleId);
     }
     /**
      * 修改模板
@@ -102,6 +103,6 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         this.update(new ModuleInfo(),moduleInfoUpdateWrapper);
         AddModuleInfoVO addModuleInfoVO = new AddModuleInfoVO();
         BeanUtil.copyProperties(updateModuleInfoVO,addModuleInfoVO);
-        return moduleDetailFacade.saveOrUpdateInfos(addModuleInfoVO);
+        return moduleDetailFacade.saveOrUpdateInfos(addModuleInfoVO,updateModuleInfoVO.getId());
     }
 }

+ 2 - 0
icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java

@@ -15,4 +15,6 @@ public class AddModuleDetailVO {
     private Long questionId;
     //特殊标识
     private int flag;
+    //特殊符号,例如逗号,句号
+    private String text;
 }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java

@@ -18,6 +18,6 @@ public class AddModuleInfoVO {
     private String name;
     @NotNull(message="模板类型")
     private int type;
-    @NotNull(message="标签id必传")
+    //标签id
     private List<AddModuleDetailVO> modelDetils;
 }