Просмотр исходного кода

匹配不到的数据表入库,后续配置使用

0027005599 2 лет назад
Родитель
Сommit
71ecc6b9f8

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/Constant.java

@@ -128,4 +128,9 @@ public class Constant {
     public static final String PROJECT_TYPE_DIAGNOSIS_TREATMENT = "3";
 
     public static final String PROJECT_TYPE_OPERATIVE = "4";
+
+    /**
+     * 费用类别对应项目类型
+     */
+    public static final String CATEGORY_PROJECTTYPE_KEY = "category-projectType";
 }

+ 39 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/dict/DictUtil.java

@@ -1,8 +1,10 @@
 package org.jeecg.modules.medical.ruleengine.dict;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSON;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.entity.AdviceDetailsVO;
 import org.jeecg.modules.medical.entity.AfterIncidentDetailLog;
@@ -13,8 +15,10 @@ import org.jeecg.modules.medical.service.IDiagnoseItemsService;
 import org.jeecg.modules.medical.service.IMaterialItemsService;
 import org.jeecg.modules.medical.service.IMedicalInsuranceDrugsService;
 import org.jeecg.modules.medical.service.IMedicineService;
+import org.jeecg.modules.medical.service.IOperativeItemsService;
 import org.jeecg.modules.medical.service.IOperativeService;
 import org.jeecg.modules.medical.service.ITreatmentItemsService;
+import org.jeecg.modules.system.service.ISysDictService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
@@ -23,6 +27,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 字典转换工具
@@ -44,7 +49,9 @@ public class DictUtil {
     @Autowired
     private IDiagnoseItemsService diagnoseItemsService;
     @Autowired
-    private IOperativeService operativeService;
+    private IOperativeItemsService operativeItemsService;
+    @Autowired
+    private ISysDictService sysDictService;
 
     public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose){
         if(null != adviceDetailsVO){
@@ -59,9 +66,11 @@ public class DictUtil {
                     materialItemsService.saveMaterialItems(adviceDetailsVO);
                     break;
                 case Constant.PROJECT_TYPE_OPERATIVE:
-
-
+                    String json = JSON.toJSONString(adviceDetailsVO);
+                    operativeItemsService.saveHisOperativeItems(adviceDetailsVO.getProject_code(), adviceDetailsVO.getProject_name(), json);
                     break;
+                default:
+                    log.error("存在未知的项目类型数据:{}", adviceDetailsVO);
             }
 
         }
@@ -260,6 +269,7 @@ public class DictUtil {
         Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, afterIncidentDetailLog.getProject_code());
         if (value == null) {
             log.error("字段未配置该项目编码映射的医保记录,项目:{}", afterIncidentDetailLog);
+            genHisProjectAndNotice(afterIncidentDetailLog);
             value = afterIncidentDetailLog.getProject_code();
             afterIncidentDetailLog.setMedical_project_code(value.toString());
             afterIncidentDetailLog.setMedical_project_name(afterIncidentDetailLog.getProject_name());
@@ -274,6 +284,32 @@ public class DictUtil {
 
     }
 
+    public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog){
+        String exCategory = afterIncidentDetailLog.getExpenseCategory();
+        if(StringUtils.isNotBlank(exCategory)){
+            List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
+            Map<String,String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
+            String projectType = exCateGoryAndProjectTypeMap.getOrDefault(exCategory, Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT);
+            AdviceDetailsVO adviceDetailsVO = new AdviceDetailsVO();
+            adviceDetailsVO.setProject_code(afterIncidentDetailLog.getProject_code());
+            adviceDetailsVO.setProject_name(afterIncidentDetailLog.getProject_name());
+            adviceDetailsVO.setProject_type(projectType);
+            if(null != afterIncidentDetailLog.getPrice()) {
+                adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
+            }
+            adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpenseCategory());
+            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDoseDay());
+            adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDoseForm());
+            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDoseDay());
+            adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingleDoseNumber());
+            adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingleDoseUnit());
+            adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTakeFrequence());
+            adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUseDay());
+            genHospItemsAndSendNotice(adviceDetailsVO, null);
+        }
+
+    }
+
     /**
      * 转换医保和医院编码
      *

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IOperativeItemsService.java

@@ -10,5 +10,5 @@ import org.jeecg.modules.medical.entity.OperativeItems;
  * @Version: V1.0
  */
 public interface IOperativeItemsService extends IService<OperativeItems> {
-
+    OperativeItems saveHisOperativeItems(String code,String name,String json);
 }

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/OperativeItemsServiceImpl.java

@@ -8,6 +8,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.Date;
+
 /**
  * @Description: operative_items
  * @Author: jeecg-boot
@@ -17,4 +19,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class OperativeItemsServiceImpl extends ServiceImpl<OperativeItemsMapper, OperativeItems> implements IOperativeItemsService {
 
+    @Override
+    public OperativeItems saveHisOperativeItems(String code, String name, String json) {
+        OperativeItems operativeItems = new OperativeItems();
+        operativeItems.setOperativeCode(code);
+        operativeItems.setOperativeName(name);
+        operativeItems.setCreateTime(new Date());
+        operativeItems.setOperativeHisJson(json);
+        this.save(operativeItems);
+        return operativeItems;
+    }
 }