gaodm před 4 roky
rodič
revize
0a752f3707

+ 28 - 8
src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DrugConfig;
 import com.diagbot.enums.ConceptTypeEnum;
@@ -47,6 +48,8 @@ public class DrugConfigFacade {
     private DrugConfigService drugConfigService;
     @Autowired
     private CdssCoreClient cdssCoreClient;
+    @Autowired
+    private DictionaryFacade dictionaryFacade;
 
     /**
      * 判断是否已存在
@@ -255,7 +258,7 @@ public class DrugConfigFacade {
         List<DrugConfig> drugConfigList = ExcelUtils.importExcel(file, 0, 1, DrugConfig.class);
         if (ListUtil.isNotEmpty(drugConfigList)) {
             importExcelRecords(drugConfigList);
-        }else {
+        } else {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "校验失败,导入数据不能为空");
         }
     }
@@ -284,6 +287,14 @@ public class DrugConfigFacade {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "校验失败,导入数据不能为空");
         }
         List<String> emptyNumList = Lists.newLinkedList();
+        //药品剂型
+        List<DictionaryInfoDTO> dicTypeMappingList = dictionaryFacade.getListByGroupType(9);
+        List<String> formList = dicTypeMappingList.stream()
+                .filter(i -> StringUtil.isNotBlank(i.getName()))
+                .map(i -> i.getName())
+                .distinct()
+                .collect(Collectors.toList());
+        List<String> formErrNumList = Lists.newLinkedList();
         for (int i = 0; i < drugConfigList.size(); i++) {
             if (StringUtil.isBlank(drugConfigList.get(i).getHisName())
                     || StringUtil.isBlank(drugConfigList.get(i).getUniqueName())) {
@@ -296,7 +307,11 @@ public class DrugConfigFacade {
                 drugConfigList.get(i).setUniqueName(drugConfigList.get(i).getUniqueName().trim());
             }
             if (StringUtil.isNotBlank(drugConfigList.get(i).getForm())) {
-                drugConfigList.get(i).setForm(drugConfigList.get(i).getForm().trim());
+                if (!formList.contains(drugConfigList.get(i).getForm())) {
+                    formErrNumList.add(String.valueOf(i + 2));
+                } else {
+                    drugConfigList.get(i).setForm(drugConfigList.get(i).getForm().trim());
+                }
             }
             if (StringUtil.isNotBlank(drugConfigList.get(i).getUniqueCode())) {
                 drugConfigList.get(i).setUniqueCode(drugConfigList.get(i).getUniqueCode().trim());
@@ -310,6 +325,11 @@ public class DrugConfigFacade {
                     + emptyNumList.stream().collect(Collectors.joining("、"))
                     + "。导入取消,请修改后再试。\n");
         }
+        if (ListUtil.isNotEmpty(formErrNumList)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "以下行数(不计入空行)存在剂型不正确数据:"
+                    + formErrNumList.stream().collect(Collectors.joining("、"))
+                    + "。导入取消,请修改后再试。\n");
+        }
 
         List<String> hisNames = drugConfigList
                 .stream()
@@ -384,9 +404,9 @@ public class DrugConfigFacade {
      * @param hospitalId
      * @param hisNames
      * @param uniqueNames
-     * @return Map<hisName,Map<form,Map<uniqueName,id>>>
+     * @return Map<hisName , Map < form , Map < uniqueName , id>>>
      */
-    public Map<String, Map<String,Map<String, Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+    public Map<String, Map<String, Map<String, Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
         Map<String, Map<String, Map<String, Long>>> retMap = new HashMap<>();
         QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -433,7 +453,7 @@ public class DrugConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String,Map<String,Map<String,Long>>> getUniqueNameConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+    public Map<String, Map<String, Map<String, Long>>> getUniqueNameConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
         Map<String, Map<String, Map<String, Long>>> retMap = new HashMap<>();
         QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -477,9 +497,9 @@ public class DrugConfigFacade {
      * @param hospitalId
      * @param hisNames
      * @param uniqueNames
-     * @return Map<hisName,Map<uniqueName,id>>
+     * @return Map<hisName , Map < uniqueName , id>>
      */
-    public Map<String, Map<String,Long>> getConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+    public Map<String, Map<String, Long>> getConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
         Map<String, Map<String, Long>> retMap = new HashMap<>();
         QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -514,7 +534,7 @@ public class DrugConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String,Map<String,Long>> getUniqueNameConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+    public Map<String, Map<String, Long>> getUniqueNameConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
         Map<String, Map<String, Long>> retMap = new HashMap<>();
         QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())