浏览代码

1、手术术语映射维护
2、诊断术语映射维护
3、药品术语映射维护

zhaops 4 年之前
父节点
当前提交
cf45b41aa6
共有 28 个文件被更改,包括 1377 次插入24 次删除
  1. 21 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 21 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 5 1
      src/main/java/com/diagbot/entity/DiseaseConfig.java
  4. 4 0
      src/main/java/com/diagbot/entity/DrugConfig.java
  5. 4 0
      src/main/java/com/diagbot/entity/OperationConfig.java
  6. 250 0
      src/main/java/com/diagbot/facade/DiseaseConfigFacade.java
  7. 250 1
      src/main/java/com/diagbot/facade/DrugConfigFacade.java
  8. 250 1
      src/main/java/com/diagbot/facade/OperationConfigFacade.java
  9. 4 2
      src/main/java/com/diagbot/facade/PacsConfigFacade.java
  10. 11 1
      src/main/java/com/diagbot/mapper/DiseaseConfigMapper.java
  11. 11 2
      src/main/java/com/diagbot/mapper/DrugConfigMapper.java
  12. 11 2
      src/main/java/com/diagbot/mapper/OperationConfigMapper.java
  13. 10 1
      src/main/java/com/diagbot/service/DiseaseConfigService.java
  14. 10 1
      src/main/java/com/diagbot/service/DrugConfigService.java
  15. 10 1
      src/main/java/com/diagbot/service/OperationConfigService.java
  16. 12 1
      src/main/java/com/diagbot/service/impl/DiseaseConfigServiceImpl.java
  17. 12 1
      src/main/java/com/diagbot/service/impl/DrugConfigServiceImpl.java
  18. 12 1
      src/main/java/com/diagbot/service/impl/OperationConfigServiceImpl.java
  19. 18 0
      src/main/java/com/diagbot/vo/DiseaseConfigListVO.java
  20. 18 0
      src/main/java/com/diagbot/vo/DrugConfigListVO.java
  21. 18 0
      src/main/java/com/diagbot/vo/OperationConfigListVO.java
  22. 119 2
      src/main/java/com/diagbot/web/DiseaseConfigController.java
  23. 119 2
      src/main/java/com/diagbot/web/DrugConfigController.java
  24. 119 2
      src/main/java/com/diagbot/web/OperationConfigController.java
  25. 2 2
      src/main/java/com/diagbot/web/PacsConfigController.java
  26. 19 0
      src/main/resources/mapper/DiseaseConfigMapper.xml
  27. 19 0
      src/main/resources/mapper/DrugConfigMapper.xml
  28. 18 0
      src/main/resources/mapper/OperationConfigMapper.xml

+ 21 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -56,6 +56,27 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/tran/pacsConfig/deleteRecords").permitAll()
                 .antMatchers("/tran/pacsConfig/getPage").permitAll()
                 .antMatchers("/tran/pacsConfig/importExcel").permitAll()
+                .antMatchers("/tran/diseaseConfig/isExistRecord").permitAll()
+                .antMatchers("/tran/diseaseConfig/saveOrUpdateRecord").permitAll()
+                .antMatchers("/tran/diseaseConfig/saveOrUpdateRecords").permitAll()
+                .antMatchers("/tran/diseaseConfig/deleteRecord").permitAll()
+                .antMatchers("/tran/diseaseConfig/deleteRecords").permitAll()
+                .antMatchers("/tran/diseaseConfig/getPage").permitAll()
+                .antMatchers("/tran/diseaseConfig/importExcel").permitAll()
+                .antMatchers("/tran/drugConfig/isExistRecord").permitAll()
+                .antMatchers("/tran/drugConfig/saveOrUpdateRecord").permitAll()
+                .antMatchers("/tran/drugConfig/saveOrUpdateRecords").permitAll()
+                .antMatchers("/tran/drugConfig/deleteRecord").permitAll()
+                .antMatchers("/tran/drugConfig/deleteRecords").permitAll()
+                .antMatchers("/tran/drugConfig/getPage").permitAll()
+                .antMatchers("/tran/drugConfig/importExcel").permitAll()
+                .antMatchers("/tran/operationConfig/isExistRecord").permitAll()
+                .antMatchers("/tran/operationConfig/saveOrUpdateRecord").permitAll()
+                .antMatchers("/tran/operationConfig/saveOrUpdateRecords").permitAll()
+                .antMatchers("/tran/operationConfig/deleteRecord").permitAll()
+                .antMatchers("/tran/operationConfig/deleteRecords").permitAll()
+                .antMatchers("/tran/operationConfig/getPage").permitAll()
+                .antMatchers("/tran/operationConfig/importExcel").permitAll()
                 .antMatchers("/sys/versionInfo/getVersionInfoAlls").permitAll()
                 .antMatchers("/sys/disclaimerInfo/getDisclaimerInfo").permitAll()
                 .antMatchers("/sys/mr/createMr").permitAll()

+ 21 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -99,6 +99,27 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/tran/pacsConfig/deleteRecords", request)
                 || matchers("/tran/pacsConfig/getPage", request)
                 || matchers("/tran/pacsConfig/importExcel", request)
+                || matchers("/tran/diseaseConfig/isExistRecord", request)
+                || matchers("/tran/diseaseConfig/saveOrUpdateRecord", request)
+                || matchers("/tran/diseaseConfig/saveOrUpdateRecords", request)
+                || matchers("/tran/diseaseConfig/deleteRecord", request)
+                || matchers("/tran/diseaseConfig/deleteRecords", request)
+                || matchers("/tran/diseaseConfig/getPage", request)
+                || matchers("/tran/diseaseConfig/importExcel", request)
+                || matchers("/tran/drugConfig/isExistRecord", request)
+                || matchers("/tran/drugConfig/saveOrUpdateRecord", request)
+                || matchers("/tran/drugConfig/saveOrUpdateRecords", request)
+                || matchers("/tran/drugConfig/deleteRecord", request)
+                || matchers("/tran/drugConfig/deleteRecords", request)
+                || matchers("/tran/drugConfig/getPage", request)
+                || matchers("/tran/drugConfig/importExcel", request)
+                || matchers("/tran/operationConfig/isExistRecord", request)
+                || matchers("/tran/operationConfig/saveOrUpdateRecord", request)
+                || matchers("/tran/operationConfig/saveOrUpdateRecords", request)
+                || matchers("/tran/operationConfig/deleteRecord", request)
+                || matchers("/tran/operationConfig/deleteRecords", request)
+                || matchers("/tran/operationConfig/getPage", request)
+                || matchers("/tran/operationConfig/importExcel", request)
                 || matchers("/sys/versionInfo/getVersionInfoAlls", request)
                 || matchers("/sys/disclaimerInfo/getDisclaimerInfo", request)
                 || matchers("/sys/mr/createMr", request)

+ 5 - 1
src/main/java/com/diagbot/entity/DiseaseConfig.java

@@ -1,5 +1,6 @@
 package com.diagbot.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -59,16 +60,19 @@ public class DiseaseConfig implements Serializable {
     /**
      * his名称
      */
+    @Excel(name="HIS名称")
     private String hisName;
 
     /**
      * 标准名
      */
+    @Excel(name = "标准名称")
     private String uniqueName;
 
     /**
-     * 标准编码
+     * ICD编码
      */
+    @Excel(name="ICD编码")
     private String icdCode;
 
     public Long getId() {

+ 4 - 0
src/main/java/com/diagbot/entity/DrugConfig.java

@@ -1,5 +1,6 @@
 package com.diagbot.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -59,16 +60,19 @@ public class DrugConfig implements Serializable {
     /**
      * his名称
      */
+    @Excel(name="HIS名称")
     private String hisName;
 
     /**
      * 标准名
      */
+    @Excel(name = "标准名称")
     private String uniqueName;
 
     /**
      * 标准编码
      */
+    @Excel(name="标准编码")
     private String uniqueCode;
 
     public Long getId() {

+ 4 - 0
src/main/java/com/diagbot/entity/OperationConfig.java

@@ -1,5 +1,6 @@
 package com.diagbot.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -59,16 +60,19 @@ public class OperationConfig implements Serializable {
     /**
      * his名称
      */
+    @Excel(name="HIS名称")
     private String hisName;
 
     /**
      * 标准名
      */
+    @Excel(name = "标准名称")
     private String uniqueName;
 
     /**
      * 标准编码
      */
+    @Excel(name="标准编码")
     private String uniqueCode;
 
     public Long getId() {

+ 250 - 0
src/main/java/com/diagbot/facade/DiseaseConfigFacade.java

@@ -1,6 +1,31 @@
 package com.diagbot.facade;
 
+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.entity.DiseaseConfig;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.DiseaseConfigService;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.DiseaseConfigListVO;
+import com.diagbot.vo.DiseaseConfigPageVO;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -9,4 +34,229 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class DiseaseConfigFacade {
+    @Autowired
+    private DiseaseConfigService diseaseConfigService;
+
+    /**
+     * 判断是否已存在
+     *
+     * @param diseaseConfig
+     * @return
+     */
+    public Boolean isExistRecord(DiseaseConfig diseaseConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        QueryWrapper<DiseaseConfig> queryWrapper = new QueryWrapper<>();
+        DiseaseConfig oldRecord = new DiseaseConfig();
+        if (diseaseConfig.getId() != null) {
+            oldRecord = diseaseConfigService.getById(diseaseConfig.getId());
+            if (oldRecord != null && oldRecord.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
+                return true;
+            }
+        }
+        //hisName:uniqueName 1:n
+        if (StringUtil.isNotBlank(diseaseConfig.getHisName())) {
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id", Long.valueOf(hospitalId))
+                    .eq("his_name", diseaseConfig.getHisName())
+                    .eq("unique_name", diseaseConfig.getUniqueName());
+            oldRecord = diseaseConfigService.getOne(queryWrapper);
+            if (oldRecord != null) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 保存记录-单条
+     *
+     * @param diseaseConfig
+     * @return
+     */
+    public Boolean saveOrUpdateRecord(DiseaseConfig diseaseConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
+        diseaseConfig.setModifier(userId);
+        diseaseConfig.setGmtModified(now);
+        //新增数据
+        if (diseaseConfig.getId() == null) {
+            diseaseConfig.setCreator(userId);
+            diseaseConfig.setGmtCreate(now);
+        }
+        if (diseaseConfig.getIsDeleted() == null) {
+            diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+        }
+        diseaseConfigService.saveOrUpdate(diseaseConfig);
+        return true;
+    }
+
+    /**
+     * 保存记录-批量
+     *
+     * @param diseaseConfigListVO
+     * @return
+     */
+    public Boolean saveOrUpdateRecords(DiseaseConfigListVO diseaseConfigListVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        //id为空且已存在的映射关系先删除
+        List<Long> deleteIds = Lists.newLinkedList();
+        Map<String, Map<String, Long>> configMap
+                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        if (ListUtil.isNotEmpty(diseaseConfigListVO.getDiseaseConfigList())) {
+            diseaseConfigListVO.getDiseaseConfigList().forEach(diseaseConfig -> {
+                diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
+                diseaseConfig.setModifier(userId);
+                diseaseConfig.setGmtModified(now);
+                if (diseaseConfig.getId() == null) {
+                    if (configMap.get(diseaseConfig.getHisName()) != null
+                            && configMap.get(diseaseConfig.getHisName()).containsKey(diseaseConfig.getUniqueName())) {
+                        deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
+                    }
+                    diseaseConfig.setCreator(userId);
+                    diseaseConfig.setGmtCreate(now);
+                }
+                if (diseaseConfig.getIsDeleted() == null) {
+                    diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                }
+            });
+            IdListVO idListVO = new IdListVO();
+            idListVO.setIds(deleteIds);
+            deleteRecords(idListVO);
+        }
+        //数据不完整的不保存
+        List<DiseaseConfig> records = diseaseConfigListVO.getDiseaseConfigList()
+                .stream()
+                .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                .collect(Collectors.toList());
+        diseaseConfigService.saveOrUpdateBatch(records);
+        return true;
+    }
+
+    /**
+     * 删除记录-单条
+     *
+     * @param idVO
+     * @return
+     */
+    public Boolean deleteRecord(IdVO idVO) {
+        UpdateWrapper<DiseaseConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", idVO.getId())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        diseaseConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 删除记录-批量
+     *
+     * @param idListVO
+     * @return
+     */
+    public Boolean deleteRecords(IdListVO idListVO) {
+        if (ListUtil.isEmpty(idListVO.getIds())) {
+            return false;
+        }
+        UpdateWrapper<DiseaseConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("id", idListVO.getIds())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        diseaseConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param diseaseConfigPageVO
+     * @return
+     */
+    public IPage<DiseaseConfig> getPage(DiseaseConfigPageVO diseaseConfigPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        diseaseConfigPageVO.setHospitalId(Long.valueOf(hospitalId));
+        return diseaseConfigService.getPage(diseaseConfigPageVO);
+    }
+
+    /**
+     * 化验数据导入
+     *
+     * @param file
+     */
+    public void importExcel(MultipartFile file) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        List<DiseaseConfig> diseaseConfigList = ExcelUtils.importExcel(file, 0, 1, DiseaseConfig.class);
+        if (ListUtil.isNotEmpty(diseaseConfigList)) {
+            //过滤不完整数据
+            diseaseConfigList = diseaseConfigList
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                    .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                    .collect(Collectors.toList());
+            //验证数据是否已存在
+            List<Long> deleteIds = Lists.newArrayList();
+            Map<String, Map<String, Long>> configMap = getConfigMap(Long.valueOf(hospitalId), null, null);
+            diseaseConfigList.forEach(diseaseConfig -> {
+                if (configMap.get(diseaseConfig.getHisName()) != null
+                        && configMap.get(diseaseConfig.getHisName()).containsKey(diseaseConfig.getUniqueName())) {
+                    deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
+                }
+            });
+            //删除已存在的映射关系
+            if (ListUtil.isNotEmpty(deleteIds)) {
+                IdListVO idListVO = new IdListVO();
+                idListVO.setIds(deleteIds);
+                deleteRecords(idListVO);
+            }
+
+            //保存数据
+            diseaseConfigList.forEach(diseaseConfig -> {
+                diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
+                if (diseaseConfig.getId() == null) {
+                    diseaseConfig.setCreator(userId);
+                    diseaseConfig.setGmtCreate(now);
+                }
+                diseaseConfig.setModifier(userId);
+                diseaseConfig.setGmtModified(now);
+            });
+            diseaseConfigService.saveOrUpdateBatch(diseaseConfigList);
+        }
+    }
+
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Long>> retMap = new HashMap<>();
+        QueryWrapper<DiseaseConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DiseaseConfig> records = diseaseConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<DiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<DiseaseConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+            }
+        }
+        return retMap;
+    }
 }

+ 250 - 1
src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -1,6 +1,31 @@
 package com.diagbot.facade;
 
+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.entity.DrugConfig;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.DrugConfigService;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.DrugConfigListVO;
+import com.diagbot.vo.DrugConfigPageVO;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -9,4 +34,228 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class DrugConfigFacade {
-}
+    @Autowired
+    private DrugConfigService drugConfigService;
+
+    /**
+     * 判断是否已存在
+     *
+     * @param drugConfig
+     * @return
+     */
+    public Boolean isExistRecord(DrugConfig drugConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
+        DrugConfig oldRecord = new DrugConfig();
+        if (drugConfig.getId() != null) {
+            oldRecord = drugConfigService.getById(drugConfig.getId());
+            if (oldRecord != null && oldRecord.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
+                return true;
+            }
+        }
+        if (StringUtil.isNotBlank(drugConfig.getHisName())) {
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id", Long.valueOf(hospitalId))
+                    .eq("his_name", drugConfig.getHisName())
+                    .eq("unique_name", drugConfig.getUniqueName());
+            oldRecord = drugConfigService.getOne(queryWrapper);
+            if (oldRecord != null) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 保存记录-单条
+     *
+     * @param drugConfig
+     * @return
+     */
+    public Boolean saveOrUpdateRecord(DrugConfig drugConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        drugConfig.setHospitalId(Long.valueOf(hospitalId));
+        drugConfig.setModifier(userId);
+        drugConfig.setGmtModified(now);
+        //新增数据
+        if (drugConfig.getId() == null) {
+            drugConfig.setCreator(userId);
+            drugConfig.setGmtCreate(now);
+        }
+        if (drugConfig.getIsDeleted() == null) {
+            drugConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+        }
+        drugConfigService.saveOrUpdate(drugConfig);
+        return true;
+    }
+
+    /**
+     * 保存记录-批量
+     *
+     * @param drugConfigListVO
+     * @return
+     */
+    public Boolean saveOrUpdateRecords(DrugConfigListVO drugConfigListVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        //id为空且已存在的映射关系先删除
+        List<Long> deleteIds = Lists.newLinkedList();
+        Map<String, Map<String, Long>> configMap
+                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        if (ListUtil.isNotEmpty(drugConfigListVO.getDrugConfigList())) {
+            drugConfigListVO.getDrugConfigList().forEach(drugConfig -> {
+                drugConfig.setHospitalId(Long.valueOf(hospitalId));
+                drugConfig.setModifier(userId);
+                drugConfig.setGmtModified(now);
+                if (drugConfig.getId() == null) {
+                    if (configMap.get(drugConfig.getHisName()) != null
+                            && configMap.get(drugConfig.getHisName()).containsKey(drugConfig.getUniqueName())) {
+                        deleteIds.add(configMap.get(drugConfig.getHisName()).get(drugConfig.getUniqueName()));
+                    }
+                    drugConfig.setCreator(userId);
+                    drugConfig.setGmtCreate(now);
+                }
+                if (drugConfig.getIsDeleted() == null) {
+                    drugConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                }
+            });
+            IdListVO idListVO = new IdListVO();
+            idListVO.setIds(deleteIds);
+            deleteRecords(idListVO);
+        }
+        //数据不完整的不保存
+        List<DrugConfig> records = drugConfigListVO.getDrugConfigList()
+                .stream()
+                .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                .collect(Collectors.toList());
+        drugConfigService.saveOrUpdateBatch(records);
+        return true;
+    }
+
+    /**
+     * 删除记录-单条
+     *
+     * @param idVO
+     * @return
+     */
+    public Boolean deleteRecord(IdVO idVO) {
+        UpdateWrapper<DrugConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", idVO.getId())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        drugConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 删除记录-批量
+     *
+     * @param idListVO
+     * @return
+     */
+    public Boolean deleteRecords(IdListVO idListVO) {
+        if (ListUtil.isEmpty(idListVO.getIds())) {
+            return false;
+        }
+        UpdateWrapper<DrugConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("id", idListVO.getIds())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        drugConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param drugConfigPageVO
+     * @return
+     */
+    public IPage<DrugConfig> getPage(DrugConfigPageVO drugConfigPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        drugConfigPageVO.setHospitalId(Long.valueOf(hospitalId));
+        return drugConfigService.getPage(drugConfigPageVO);
+    }
+
+    /**
+     * 化验数据导入
+     *
+     * @param file
+     */
+    public void importExcel(MultipartFile file) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        List<DrugConfig> drugConfigList = ExcelUtils.importExcel(file, 0, 1, DrugConfig.class);
+        if (ListUtil.isNotEmpty(drugConfigList)) {
+            //过滤不完整数据
+            drugConfigList = drugConfigList
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                    .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                    .collect(Collectors.toList());
+            //验证数据是否已存在
+            List<Long> deleteIds = Lists.newArrayList();
+            Map<String, Map<String, Long>> configMap = getConfigMap(Long.valueOf(hospitalId), null, null);
+            drugConfigList.forEach(drugConfig -> {
+                if (configMap.get(drugConfig.getHisName()) != null
+                        && configMap.get(drugConfig.getHisName()).containsKey(drugConfig.getUniqueName())) {
+                    deleteIds.add(configMap.get(drugConfig.getHisName()).get(drugConfig.getUniqueName()));
+                }
+            });
+            //删除已存在的映射关系
+            if (ListUtil.isNotEmpty(deleteIds)) {
+                IdListVO idListVO = new IdListVO();
+                idListVO.setIds(deleteIds);
+                deleteRecords(idListVO);
+            }
+
+            //保存数据
+            drugConfigList.forEach(drugConfig -> {
+                drugConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                drugConfig.setHospitalId(Long.valueOf(hospitalId));
+                if (drugConfig.getId() == null) {
+                    drugConfig.setCreator(userId);
+                    drugConfig.setGmtCreate(now);
+                }
+                drugConfig.setModifier(userId);
+                drugConfig.setGmtModified(now);
+            });
+            drugConfigService.saveOrUpdateBatch(drugConfigList);
+        }
+    }
+
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, Long>> getConfigMap(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())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DrugConfig> records = drugConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<DrugConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<DrugConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+            }
+        }
+        return retMap;
+    }
+}

+ 250 - 1
src/main/java/com/diagbot/facade/OperationConfigFacade.java

@@ -1,6 +1,31 @@
 package com.diagbot.facade;
 
+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.entity.OperationConfig;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.OperationConfigService;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import com.diagbot.vo.OperationConfigListVO;
+import com.diagbot.vo.OperationConfigPageVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -9,4 +34,228 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class OperationConfigFacade {
-}
+    @Autowired
+    private OperationConfigService operationConfigService;
+
+    /**
+     * 判断是否已存在
+     *
+     * @param operationConfig
+     * @return
+     */
+    public Boolean isExistRecord(OperationConfig operationConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        QueryWrapper<OperationConfig> queryWrapper = new QueryWrapper<>();
+        OperationConfig oldRecord = new OperationConfig();
+        if (operationConfig.getId() != null) {
+            oldRecord = operationConfigService.getById(operationConfig.getId());
+            if (oldRecord != null && oldRecord.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
+                return true;
+            }
+        }
+        if (StringUtil.isNotBlank(operationConfig.getHisName())) {
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id", Long.valueOf(hospitalId))
+                    .eq("his_name", operationConfig.getHisName())
+                    .eq("unique_name", operationConfig.getUniqueName());
+            oldRecord = operationConfigService.getOne(queryWrapper);
+            if (oldRecord != null) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 保存记录-单条
+     *
+     * @param operationConfig
+     * @return
+     */
+    public Boolean saveOrUpdateRecord(OperationConfig operationConfig) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        operationConfig.setHospitalId(Long.valueOf(hospitalId));
+        operationConfig.setModifier(userId);
+        operationConfig.setGmtModified(now);
+        //新增数据
+        if (operationConfig.getId() == null) {
+            operationConfig.setCreator(userId);
+            operationConfig.setGmtCreate(now);
+        }
+        if (operationConfig.getIsDeleted() == null) {
+            operationConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+        }
+        operationConfigService.saveOrUpdate(operationConfig);
+        return true;
+    }
+
+    /**
+     * 保存记录-批量
+     *
+     * @param operationConfigListVO
+     * @return
+     */
+    public Boolean saveOrUpdateRecords(OperationConfigListVO operationConfigListVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        //id为空且已存在的映射关系先删除
+        List<Long> deleteIds = Lists.newLinkedList();
+        Map<String, Map<String, Long>> configMap
+                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        if (ListUtil.isNotEmpty(operationConfigListVO.getOperationConfigList())) {
+            operationConfigListVO.getOperationConfigList().forEach(operationConfig -> {
+                operationConfig.setHospitalId(Long.valueOf(hospitalId));
+                operationConfig.setModifier(userId);
+                operationConfig.setGmtModified(now);
+                if (operationConfig.getId() == null) {
+                    if (configMap.get(operationConfig.getHisName()) != null
+                            && configMap.get(operationConfig.getHisName()).containsKey(operationConfig.getUniqueName())) {
+                        deleteIds.add(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
+                    }
+                    operationConfig.setCreator(userId);
+                    operationConfig.setGmtCreate(now);
+                }
+                if (operationConfig.getIsDeleted() == null) {
+                    operationConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                }
+            });
+            IdListVO idListVO = new IdListVO();
+            idListVO.setIds(deleteIds);
+            deleteRecords(idListVO);
+        }
+        //数据不完整的不保存
+        List<OperationConfig> records = operationConfigListVO.getOperationConfigList()
+                .stream()
+                .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                .collect(Collectors.toList());
+        operationConfigService.saveOrUpdateBatch(records);
+        return true;
+    }
+
+    /**
+     * 删除记录-单条
+     *
+     * @param idVO
+     * @return
+     */
+    public Boolean deleteRecord(IdVO idVO) {
+        UpdateWrapper<OperationConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", idVO.getId())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        operationConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 删除记录-批量
+     *
+     * @param idListVO
+     * @return
+     */
+    public Boolean deleteRecords(IdListVO idListVO) {
+        if (ListUtil.isEmpty(idListVO.getIds())) {
+            return false;
+        }
+        UpdateWrapper<OperationConfig> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("id", idListVO.getIds())
+                .set("is_deleted", IsDeleteEnum.Y.getKey());
+        operationConfigService.update(updateWrapper);
+        return true;
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param operationConfigPageVO
+     * @return
+     */
+    public IPage<OperationConfig> getPage(OperationConfigPageVO operationConfigPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        operationConfigPageVO.setHospitalId(Long.valueOf(hospitalId));
+        return operationConfigService.getPage(operationConfigPageVO);
+    }
+
+    /**
+     * 化验数据导入
+     *
+     * @param file
+     */
+    public void importExcel(MultipartFile file) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        List<OperationConfig> operationConfigList = ExcelUtils.importExcel(file, 0, 1, OperationConfig.class);
+        if (ListUtil.isNotEmpty(operationConfigList)) {
+            //过滤不完整数据
+            operationConfigList = operationConfigList
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                    .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+                    .collect(Collectors.toList());
+            //验证数据是否已存在
+            List<Long> deleteIds = Lists.newArrayList();
+            Map<String, Map<String, Long>> configMap = getConfigMap(Long.valueOf(hospitalId), null, null);
+            operationConfigList.forEach(operationConfig -> {
+                if (configMap.get(operationConfig.getHisName()) != null
+                        && configMap.get(operationConfig.getHisName()).containsKey(operationConfig.getUniqueName())) {
+                    deleteIds.add(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
+                }
+            });
+            //删除已存在的映射关系
+            if (ListUtil.isNotEmpty(deleteIds)) {
+                IdListVO idListVO = new IdListVO();
+                idListVO.setIds(deleteIds);
+                deleteRecords(idListVO);
+            }
+
+            //保存数据
+            operationConfigList.forEach(operationConfig -> {
+                operationConfig.setIsDeleted(IsDeleteEnum.N.getKey());
+                operationConfig.setHospitalId(Long.valueOf(hospitalId));
+                if (operationConfig.getId() == null) {
+                    operationConfig.setCreator(userId);
+                    operationConfig.setGmtCreate(now);
+                }
+                operationConfig.setModifier(userId);
+                operationConfig.setGmtModified(now);
+            });
+            operationConfigService.saveOrUpdateBatch(operationConfigList);
+        }
+    }
+
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Long>> retMap = new HashMap<>();
+        QueryWrapper<OperationConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<OperationConfig> records = operationConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<OperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<OperationConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+            }
+        }
+        return retMap;
+    }
+}

+ 4 - 2
src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -52,10 +52,12 @@ public class PacsConfigFacade{
             if (oldRecord != null && oldRecord.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
                 return true;
             }
-        } else if (StringUtil.isNotBlank(pacsConfig.getHisName())) {
+        }
+        if (StringUtil.isNotBlank(pacsConfig.getHisName())) {
             queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                     .eq("hospital_id", Long.valueOf(hospitalId))
-                    .eq("his_name", pacsConfig.getHisName());
+                    .eq("his_name", pacsConfig.getHisName())
+                    .eq("unique_name", pacsConfig.getUniqueName());
             oldRecord = pacsConfigService.getOne(queryWrapper);
             if (oldRecord != null) {
                 return true;

+ 11 - 1
src/main/java/com/diagbot/mapper/DiseaseConfigMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.DiseaseConfig;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.vo.DiseaseConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface DiseaseConfigMapper extends BaseMapper<DiseaseConfig> {
 
+    /**
+     * 分页查询
+     *
+     * @param diseaseConfigPageVO
+     * @return
+     */
+    IPage<DiseaseConfig> getPage(@Param("diseaseConfigPageVO") DiseaseConfigPageVO diseaseConfigPageVO);
 }

+ 11 - 2
src/main/java/com/diagbot/mapper/DrugConfigMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.DrugConfig;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.DrugConfig;
+import com.diagbot.vo.DrugConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-07-28
  */
 public interface DrugConfigMapper extends BaseMapper<DrugConfig> {
-
+    /**
+     * 分页查询
+     *
+     * @param drugConfigPageVO
+     * @return
+     */
+    IPage<DrugConfig> getPage(@Param("drugConfigPageVO") DrugConfigPageVO drugConfigPageVO);
 }

+ 11 - 2
src/main/java/com/diagbot/mapper/OperationConfigMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.OperationConfig;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.OperationConfig;
+import com.diagbot.vo.OperationConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-07-28
  */
 public interface OperationConfigMapper extends BaseMapper<OperationConfig> {
-
+    /**
+     * 分页查询
+     *
+     * @param operationConfigPageVO
+     * @return
+     */
+    IPage<OperationConfig> getPage(@Param("operationConfigPageVO") OperationConfigPageVO operationConfigPageVO);
 }

+ 10 - 1
src/main/java/com/diagbot/service/DiseaseConfigService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.DiseaseConfig;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DiseaseConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-07-28
  */
 public interface DiseaseConfigService extends IService<DiseaseConfig> {
-
+    /**
+     * 分页查询
+     *
+     * @param diseaseConfigPageVO
+     * @return
+     */
+    IPage<DiseaseConfig> getPage(@Param("diseaseConfigPageVO") DiseaseConfigPageVO diseaseConfigPageVO);
 }

+ 10 - 1
src/main/java/com/diagbot/service/DrugConfigService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.DrugConfig;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DrugConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-07-28
  */
 public interface DrugConfigService extends IService<DrugConfig> {
-
+    /**
+     * 分页查询
+     *
+     * @param drugConfigPageVO
+     * @return
+     */
+    IPage<DrugConfig> getPage(@Param("drugConfigPageVO") DrugConfigPageVO drugConfigPageVO);
 }

+ 10 - 1
src/main/java/com/diagbot/service/OperationConfigService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.OperationConfig;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.OperationConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-07-28
  */
 public interface OperationConfigService extends IService<OperationConfig> {
-
+    /**
+     * 分页查询
+     *
+     * @param operationConfigPageVO
+     * @return
+     */
+    IPage<OperationConfig> getPage(@Param("operationConfigPageVO") OperationConfigPageVO operationConfigPageVO);
 }

+ 12 - 1
src/main/java/com/diagbot/service/impl/DiseaseConfigServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.DiseaseConfig;
 import com.diagbot.mapper.DiseaseConfigMapper;
 import com.diagbot.service.DiseaseConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.DiseaseConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +19,13 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class DiseaseConfigServiceImpl extends ServiceImpl<DiseaseConfigMapper, DiseaseConfig> implements DiseaseConfigService {
-
+    /**
+     * 分页查询
+     *
+     * @param diseaseConfigPageVO
+     * @return
+     */
+    public IPage<DiseaseConfig> getPage(@Param("diseaseConfigPageVO") DiseaseConfigPageVO diseaseConfigPageVO){
+        return baseMapper.getPage(diseaseConfigPageVO);
+    }
 }

+ 12 - 1
src/main/java/com/diagbot/service/impl/DrugConfigServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.DrugConfig;
 import com.diagbot.mapper.DrugConfigMapper;
 import com.diagbot.service.DrugConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.DrugConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +19,13 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class DrugConfigServiceImpl extends ServiceImpl<DrugConfigMapper, DrugConfig> implements DrugConfigService {
-
+    /**
+     * 分页查询
+     *
+     * @param drugConfigPageVO
+     * @return
+     */
+    public IPage<DrugConfig> getPage(@Param("drugConfigPageVO") DrugConfigPageVO drugConfigPageVO){
+        return baseMapper.getPage(drugConfigPageVO);
+    }
 }

+ 12 - 1
src/main/java/com/diagbot/service/impl/OperationConfigServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.OperationConfig;
 import com.diagbot.mapper.OperationConfigMapper;
 import com.diagbot.service.OperationConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.OperationConfigPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +19,13 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class OperationConfigServiceImpl extends ServiceImpl<OperationConfigMapper, OperationConfig> implements OperationConfigService {
-
+    /**
+     * 分页查询
+     *
+     * @param operationConfigPageVO
+     * @return
+     */
+    public IPage<OperationConfig> getPage(@Param("operationConfigPageVO") OperationConfigPageVO operationConfigPageVO){
+        return baseMapper.getPage(operationConfigPageVO);
+    }
 }

+ 18 - 0
src/main/java/com/diagbot/vo/DiseaseConfigListVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import com.diagbot.entity.DiseaseConfig;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/31 9:38
+ */
+@Getter
+@Setter
+public class DiseaseConfigListVO {
+    private List<DiseaseConfig> diseaseConfigList;
+}

+ 18 - 0
src/main/java/com/diagbot/vo/DrugConfigListVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import com.diagbot.entity.DrugConfig;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/31 9:37
+ */
+@Getter
+@Setter
+public class DrugConfigListVO {
+    private List<DrugConfig> drugConfigList;
+}

+ 18 - 0
src/main/java/com/diagbot/vo/OperationConfigListVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import com.diagbot.entity.OperationConfig;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/31 9:37
+ */
+@Getter
+@Setter
+public class OperationConfigListVO {
+    private List<OperationConfig> operationConfigList;
+}

+ 119 - 2
src/main/java/com/diagbot/web/DiseaseConfigController.java

@@ -1,9 +1,26 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.facade.DiseaseConfigFacade;
+import com.diagbot.vo.DiseaseConfigListVO;
+import com.diagbot.vo.DiseaseConfigPageVO;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.stereotype.Controller;
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -13,8 +30,108 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2020-07-28
  */
-@Controller
+@RestController
 @RequestMapping("/diseaseConfig")
+@Api(value = "诊断公表映射API", tags = { "诊断公表映射API" })
 public class DiseaseConfigController {
+    @Autowired
+    private DiseaseConfigFacade diseaseConfigFacade;
 
+    /**
+     * 映射关系是否已存在
+     *
+     * @param diseaseConfig
+     * @return
+     */
+    @ApiOperation(value = "映射关系是否已存在[by:zhaops]", notes = "")
+    @PostMapping("/isExistRecord")
+    @SysLogger("isExistRecord")
+    public RespDTO<Boolean> isExistRecord(@RequestBody @Valid DiseaseConfig diseaseConfig) {
+        Boolean data = diseaseConfigFacade.isExistRecord(diseaseConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 保存或修改映射关系
+     *
+     * @param diseaseConfig
+     * @return
+     */
+    @ApiOperation(value = "保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecord")
+    @SysLogger("saveOrUpdateRecord")
+    public RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid DiseaseConfig diseaseConfig) {
+        Boolean data = diseaseConfigFacade.saveOrUpdateRecord(diseaseConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量保存或修改映射关系
+     *
+     * @param diseaseConfigListVO
+     * @return
+     */
+    @ApiOperation(value = "批量保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecords")
+    @SysLogger("saveOrUpdateRecords")
+    public RespDTO<Boolean> saveOrUpdateRecords(@RequestBody @Valid DiseaseConfigListVO diseaseConfigListVO) {
+        Boolean data = diseaseConfigFacade.saveOrUpdateRecords(diseaseConfigListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 删除映射关系
+     *
+     * @param idVO
+     * @return
+     */
+    @ApiOperation(value = "删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecord")
+    @SysLogger("deleteRecord")
+    public RespDTO<Boolean> deleteRecord(@RequestBody @Valid IdVO idVO) {
+        Boolean data = diseaseConfigFacade.deleteRecord(idVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量删除映射关系
+     *
+     * @param idListVO
+     * @return
+     */
+    @ApiOperation(value = "批量删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecords")
+    @SysLogger("deleteRecords")
+    public RespDTO<Boolean> deleteRecords(@RequestBody @Valid IdListVO idListVO) {
+        Boolean data = diseaseConfigFacade.deleteRecords(idListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param diseaseConfigPageVO
+     * @return
+     */
+    @ApiOperation(value = "分页查询[by:zhaops]", notes = "")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<DiseaseConfig> getPage(@RequestBody @Valid DiseaseConfigPageVO diseaseConfigPageVO) {
+        IPage<DiseaseConfig> data = diseaseConfigFacade.getPage(diseaseConfigPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 公表数据导入
+     *
+     * @param file
+     * @return
+     */
+    @ApiOperation(value = "公表数据导入[by:zhaops]",
+            notes = "")
+    @PostMapping("/importExcel")
+    @SysLogger("importExcel")
+    public void importExcel(@RequestParam("file") MultipartFile file) {
+        diseaseConfigFacade.importExcel(file);
+    }
 }

+ 119 - 2
src/main/java/com/diagbot/web/DrugConfigController.java

@@ -1,9 +1,26 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.DrugConfig;
+import com.diagbot.facade.DrugConfigFacade;
+import com.diagbot.vo.DrugConfigListVO;
+import com.diagbot.vo.DrugConfigPageVO;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.stereotype.Controller;
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -13,8 +30,108 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2020-07-28
  */
-@Controller
+@RestController
 @RequestMapping("/drugConfig")
+@Api(value = "药品公表映射API", tags = { "药品公表映射API" })
 public class DrugConfigController {
+    @Autowired
+    private DrugConfigFacade drugConfigFacade;
 
+    /**
+     * 映射关系是否已存在
+     *
+     * @param drugConfig
+     * @return
+     */
+    @ApiOperation(value = "映射关系是否已存在[by:zhaops]", notes = "")
+    @PostMapping("/isExistRecord")
+    @SysLogger("isExistRecord")
+    public RespDTO<Boolean> isExistRecord(@RequestBody @Valid DrugConfig drugConfig) {
+        Boolean data = drugConfigFacade.isExistRecord(drugConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 保存或修改映射关系
+     *
+     * @param drugConfig
+     * @return
+     */
+    @ApiOperation(value = "保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecord")
+    @SysLogger("saveOrUpdateRecord")
+    public RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid DrugConfig drugConfig) {
+        Boolean data = drugConfigFacade.saveOrUpdateRecord(drugConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量保存或修改映射关系
+     *
+     * @param drugConfigListVO
+     * @return
+     */
+    @ApiOperation(value = "批量保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecords")
+    @SysLogger("saveOrUpdateRecords")
+    public RespDTO<Boolean> saveOrUpdateRecords(@RequestBody @Valid DrugConfigListVO drugConfigListVO) {
+        Boolean data = drugConfigFacade.saveOrUpdateRecords(drugConfigListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 删除映射关系
+     *
+     * @param idVO
+     * @return
+     */
+    @ApiOperation(value = "删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecord")
+    @SysLogger("deleteRecord")
+    public RespDTO<Boolean> deleteRecord(@RequestBody @Valid IdVO idVO) {
+        Boolean data = drugConfigFacade.deleteRecord(idVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量删除映射关系
+     *
+     * @param idListVO
+     * @return
+     */
+    @ApiOperation(value = "批量删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecords")
+    @SysLogger("deleteRecords")
+    public RespDTO<Boolean> deleteRecords(@RequestBody @Valid IdListVO idListVO) {
+        Boolean data = drugConfigFacade.deleteRecords(idListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param drugConfigPageVO
+     * @return
+     */
+    @ApiOperation(value = "分页查询[by:zhaops]", notes = "")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<DrugConfig> getPage(@RequestBody @Valid DrugConfigPageVO drugConfigPageVO) {
+        IPage<DrugConfig> data = drugConfigFacade.getPage(drugConfigPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 公表数据导入
+     *
+     * @param file
+     * @return
+     */
+    @ApiOperation(value = "公表数据导入[by:zhaops]",
+            notes = "")
+    @PostMapping("/importExcel")
+    @SysLogger("importExcel")
+    public void importExcel(@RequestParam("file") MultipartFile file) {
+        drugConfigFacade.importExcel(file);
+    }
 }

+ 119 - 2
src/main/java/com/diagbot/web/OperationConfigController.java

@@ -1,9 +1,26 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.OperationConfig;
+import com.diagbot.facade.OperationConfigFacade;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import com.diagbot.vo.OperationConfigListVO;
+import com.diagbot.vo.OperationConfigPageVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.stereotype.Controller;
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -13,8 +30,108 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2020-07-28
  */
-@Controller
+@RestController
 @RequestMapping("/operationConfig")
+@Api(value = "手术公表映射API", tags = { "手术公表映射API" })
 public class OperationConfigController {
+    @Autowired
+    private OperationConfigFacade operationConfigFacade;
 
+    /**
+     * 映射关系是否已存在
+     *
+     * @param operationConfig
+     * @return
+     */
+    @ApiOperation(value = "映射关系是否已存在[by:zhaops]", notes = "")
+    @PostMapping("/isExistRecord")
+    @SysLogger("isExistRecord")
+    public RespDTO<Boolean> isExistRecord(@RequestBody @Valid OperationConfig operationConfig) {
+        Boolean data = operationConfigFacade.isExistRecord(operationConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 保存或修改映射关系
+     *
+     * @param operationConfig
+     * @return
+     */
+    @ApiOperation(value = "保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecord")
+    @SysLogger("saveOrUpdateRecord")
+    public RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid OperationConfig operationConfig) {
+        Boolean data = operationConfigFacade.saveOrUpdateRecord(operationConfig);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量保存或修改映射关系
+     *
+     * @param operationConfigListVO
+     * @return
+     */
+    @ApiOperation(value = "批量保存或修改映射关系[by:zhaops]", notes = "")
+    @PostMapping("/saveOrUpdateRecords")
+    @SysLogger("saveOrUpdateRecords")
+    public RespDTO<Boolean> saveOrUpdateRecords(@RequestBody @Valid OperationConfigListVO operationConfigListVO) {
+        Boolean data = operationConfigFacade.saveOrUpdateRecords(operationConfigListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 删除映射关系
+     *
+     * @param idVO
+     * @return
+     */
+    @ApiOperation(value = "删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecord")
+    @SysLogger("deleteRecord")
+    public RespDTO<Boolean> deleteRecord(@RequestBody @Valid IdVO idVO) {
+        Boolean data = operationConfigFacade.deleteRecord(idVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 批量删除映射关系
+     *
+     * @param idListVO
+     * @return
+     */
+    @ApiOperation(value = "批量删除映射关系[by:zhaops]", notes = "")
+    @PostMapping("/deleteRecords")
+    @SysLogger("deleteRecords")
+    public RespDTO<Boolean> deleteRecords(@RequestBody @Valid IdListVO idListVO) {
+        Boolean data = operationConfigFacade.deleteRecords(idListVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param operationConfigPageVO
+     * @return
+     */
+    @ApiOperation(value = "分页查询[by:zhaops]", notes = "")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<OperationConfig> getPage(@RequestBody @Valid OperationConfigPageVO operationConfigPageVO) {
+        IPage<OperationConfig> data = operationConfigFacade.getPage(operationConfigPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 公表数据导入
+     *
+     * @param file
+     * @return
+     */
+    @ApiOperation(value = "公表数据导入[by:zhaops]",
+            notes = "")
+    @PostMapping("/importExcel")
+    @SysLogger("importExcel")
+    public void importExcel(@RequestParam("file") MultipartFile file) {
+        operationConfigFacade.importExcel(file);
+    }
 }

+ 2 - 2
src/main/java/com/diagbot/web/PacsConfigController.java

@@ -123,12 +123,12 @@ public class PacsConfigController {
     }
 
     /**
-     * 辅检公表数据导入
+     * 公表数据导入
      *
      * @param file
      * @return
      */
-    @ApiOperation(value = "辅检公表数据导入[by:zhaops]",
+    @ApiOperation(value = "公表数据导入[by:zhaops]",
             notes = "")
     @PostMapping("/importExcel")
     @SysLogger("importExcel")

+ 19 - 0
src/main/resources/mapper/DiseaseConfigMapper.xml

@@ -16,4 +16,23 @@
         <result column="icd_code" property="icdCode" />
     </resultMap>
 
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.PacsConfig">
+        select a.*
+        from tran_disease_config a
+        where a.is_deleted='N'
+        <if test="diseaseConfigPageVO.hospitalId!=null">
+            and a.hospital_id=#{diseaseConfigPageVO.hospitalId}
+        </if>
+        <if test="diseaseConfigPageVO.hisName!=null and diseaseConfigPageVO.hisName!=''">
+            and a.his_name like concat("%",#{diseaseConfigPageVO.hisName},"%")
+        </if>
+        <if test="diseaseConfigPageVO.uniqueName!=null and diseaseConfigPageVO.uniqueName!=''">
+            and a.unique_name like concat("%",#{diseaseConfigPageVO.uniqueName},"%")
+        </if>
+        <if test="diseaseConfigPageVO.icdCode!=null and diseaseConfigPageVO.icdCode!=''">
+            and a.icd_code like concat("%",#{diseaseConfigPageVO.icdCode},"%")
+        </if>
+    </select>
+
 </mapper>

+ 19 - 0
src/main/resources/mapper/DrugConfigMapper.xml

@@ -16,4 +16,23 @@
         <result column="unique_code" property="uniqueCode" />
     </resultMap>
 
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.PacsConfig">
+        select a.*
+        from tran_drug_config a
+        where a.is_deleted='N'
+        <if test="drugConfigPageVO.hospitalId!=null">
+            and a.hospital_id=#{drugConfigPageVO.hospitalId}
+        </if>
+        <if test="drugConfigPageVO.hisName!=null and drugConfigPageVO.hisName!=''">
+            and a.his_name like concat("%",#{drugConfigPageVO.hisName},"%")
+        </if>
+        <if test="drugConfigPageVO.uniqueName!=null and drugConfigPageVO.uniqueName!=''">
+            and a.unique_name like concat("%",#{drugConfigPageVO.uniqueName},"%")
+        </if>
+        <if test="drugConfigPageVO.uniqueCode!=null and drugConfigPageVO.uniqueCode!=''">
+            and a.unique_code like concat("%",#{drugConfigPageVO.uniqueCode},"%")
+        </if>
+    </select>
+
 </mapper>

+ 18 - 0
src/main/resources/mapper/OperationConfigMapper.xml

@@ -16,4 +16,22 @@
         <result column="unique_code" property="uniqueCode" />
     </resultMap>
 
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.PacsConfig">
+        select a.*
+        from tran_operation_config a
+        where a.is_deleted='N'
+        <if test="operationConfigPageVO.hospitalId!=null">
+            and a.hospital_id=#{operationConfigPageVO.hospitalId}
+        </if>
+        <if test="operationConfigPageVO.hisName!=null and operationConfigPageVO.hisName!=''">
+            and a.his_name like concat("%",#{operationConfigPageVO.hisName},"%")
+        </if>
+        <if test="operationConfigPageVO.uniqueName!=null and operationConfigPageVO.uniqueName!=''">
+            and a.unique_name like concat("%",#{operationConfigPageVO.uniqueName},"%")
+        </if>
+        <if test="operationConfigPageVO.uniqueCode!=null and operationConfigPageVO.uniqueCode!=''">
+            and a.unique_code like concat("%",#{operationConfigPageVO.uniqueCode},"%")
+        </if>
+    </select>
 </mapper>