Bladeren bron

1、调整结构化model对应逻辑

liuqq 4 jaren geleden
bovenliggende
commit
0e79621b65

+ 49 - 6
src/main/java/com/diagbot/facade/str/BStrContentFacade.java

@@ -7,11 +7,16 @@ package com.diagbot.facade.str;
  **/
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.ModelHospital;
 import com.diagbot.enums.ModeIdEnum;
+import com.diagbot.facade.ModelHospitalFacade;
 import com.diagbot.facade.data.AMedAbnormalInfoFacade;
 import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.vo.str.StrContentVO;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -25,6 +30,9 @@ public class BStrContentFacade {
     @Autowired
     private ColumnFacade columnFacade;
 
+    @Autowired
+    private ModelHospitalFacade modelHospitalFacade;
+
     @Value("${log_switch.enable}")
     private boolean logSwitch;
 
@@ -35,6 +43,8 @@ public class BStrContentFacade {
         try{
             if("".equals(strContentVO.getModelId())){
                 return RespDTO.onError("请输入模板类型ID!");
+            }else if(StringUtils.isEmpty(strContentVO.getModelName())){
+                return RespDTO.onError("请输入模板类型名称!");
             }else if("".equals(strContentVO.getRecId())) {
                 return RespDTO.onError("请输入记录编号!");
             }else if(strContentVO.getHospitalId()==null){
@@ -42,13 +52,20 @@ public class BStrContentFacade {
             }else if("".equals(strContentVO.getBehospitalCode())){
                 return RespDTO.onError("请输入病人住院编码!");
             }else{
-                //是否进行xml、html、json解析为标准结构化
-                if(xmlAnalyse){
-                    //解析时,调用解析接口
-                    columnFacade.analyseWholeData(strContentVO);
+                //根据医院模板类型ID+名称,初始化modelId,用于区分存到哪张表
+                Long modelId=initModeId(strContentVO);
+                if(modelId!=0L){
+                    //是否进行xml、html、json解析为标准结构化
+                    if(xmlAnalyse){
+                        //解析时,调用解析接口
+                        columnFacade.analyseWholeData(strContentVO);
+                    }else{
+                        //不解析时,只存储入库
+                        columnFacade.addWholeData(strContentVO);
+                    }
                 }else{
-                    //不解析时,只存储入库
-                    columnFacade.addWholeData(strContentVO);
+                    //无对应的modelId时,存入对应表中,方便后面追述
+
                 }
 
                 if(logSwitch){
@@ -61,4 +78,30 @@ public class BStrContentFacade {
             return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
+
+    /**
+     * 初始化模型ID,根据医院模板类型ID及名称,具体逻辑已项目为主
+     * @param strContentVO
+     * @return
+     */
+    private Long initModeId(StrContentVO strContentVO) {
+        Long modelId=0L;
+        try{
+            QueryWrapper<ModelHospital> wrapper = new QueryWrapper<>();
+            wrapper.eq("hospital_id", strContentVO.getHospitalId())
+                    .eq("hospital_model_name", strContentVO.getModelName())
+                    .eq("remark", strContentVO.getModelId());
+            ModelHospital mode = modelHospitalFacade.getOne(wrapper, false);
+            if (mode != null) {
+                modelId = mode.getStandModelId();
+            } else {
+                modelId=0L;
+            }
+        }catch (Exception e){
+            modelId=0L;
+            e.printStackTrace();
+        }
+
+        return modelId;
+    }
 }

+ 5 - 0
src/main/java/com/diagbot/vo/str/StrContentVO.java

@@ -33,4 +33,9 @@ public class StrContentVO {
      */
     private String modelId;
 
+    /**
+     * 模板类型名称
+     */
+    private String modelName;
+
 }