瀏覽代碼

诊断、药品、手术导入接口校验调整;新增对应查看接口

songxinlu 3 年之前
父節點
當前提交
b31750dc63

+ 46 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetDiseaseInfoByIdDTO.java

@@ -0,0 +1,46 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配诊断信息查看-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配诊断信息查看-接口出参")
+@Getter
+@Setter
+public class GetDiseaseInfoByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -1129177776572833627L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院诊断代码")
+    private String code;
+
+    @ApiModelProperty(value = "医院诊断名称")
+    private String name;
+
+    @ApiModelProperty(value = "ICD-10编码")
+    private String icd10;
+
+    @ApiModelProperty(value = "标准诊断名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 49 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetDrugByIdDTO.java

@@ -0,0 +1,49 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配药品信息查看-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配药品信息查看-接口出参")
+@Getter
+@Setter
+public class GetDrugByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -3423432863909470619L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院药品代码")
+    private String code;
+
+    @ApiModelProperty(value = "医院药品名称")
+    private String name;
+
+    @ApiModelProperty(value = "国药准字")
+    private String approvalNum;
+
+    @ApiModelProperty(value = "标准药品名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "药品剂型")
+    private String dosageForm;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 43 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetOperationByIdDTO.java

@@ -0,0 +1,43 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 获取手术分页列表-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "获取手术分页列表-接口出参")
+@Getter
+@Setter
+public class GetOperationByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -4850779079703241414L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院手术名称")
+    private String name;
+
+    @ApiModelProperty(value = "手术代码")
+    private String code;
+
+    @ApiModelProperty(value = "标准手术名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 74 - 8
daqe-center/src/main/java/com/lantone/daqe/facade/DiseaseManagementFacade.java

@@ -5,11 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
+import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportDiseaseErrDTO;
+import com.lantone.daqe.dto.GetDiseaseInfoByIdDTO;
 import com.lantone.daqe.dto.GetDiseasePageDTO;
 import com.lantone.daqe.dto.GetMatchingDiseasePageDTO;
 import com.lantone.daqe.entity.DiseaseInfo;
@@ -18,6 +22,7 @@ import com.lantone.daqe.service.impl.DiseaseInfoServiceImpl;
 import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddDiseaseVO;
 import com.lantone.daqe.vo.DelDiseaseByIdVO;
+import com.lantone.daqe.vo.GetDiseaseInfoByIdVO;
 import com.lantone.daqe.vo.GetDiseasePageVO;
 import com.lantone.daqe.vo.GetMatchingDiseasePageVO;
 import com.lantone.daqe.vo.ImportDiseaseVO;
@@ -49,6 +54,11 @@ public class DiseaseManagementFacade {
     @Autowired
     private DiseaseInfoServiceImpl diseaseInfoServiceImpl;
 
+    //医院诊断名称长度限制
+    private int diseaseNameLength = 30;
+    //ICD-10编码长度限制
+    private int icd10Length = 30;
+
     public IPage<GetDiseasePageDTO> getDiseasePage(GetDiseasePageVO getDiseasePageVO) {
         Page<GetDiseasePageDTO> getDiseasePageDTOPage = new Page<>();
 
@@ -140,9 +150,10 @@ public class DiseaseManagementFacade {
         if (ListUtil.isEmpty(diagnoseExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportDiseaseErrDTO> errExports = new ArrayList<>();
-        if (checkData(diagnoseExcelVOS, errExports)) {
+        if (checkData(diagnoseExcelVOS, errExports, hospitalId)) {
             String fileName = "诊断标准词匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportDiseaseErrDTO.class, fileName, response);
         } else {
@@ -150,6 +161,13 @@ public class DiseaseManagementFacade {
             List<ImportDiseaseVO> temp = delRepeat(diagnoseExcelVOS);
             //导入
             List<DiseaseInfo> insert = BeanUtil.listCopyTo(temp, DiseaseInfo.class);
+            //拼装 医院id、创建时间、更新时间
+            insert.stream().forEach(diseaseInfo -> {
+                diseaseInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                diseaseInfo.setGmtCreate(DateUtil.now());
+                diseaseInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                diseaseInfo.setGmtModified(DateUtil.now());
+            });
             boolean out = diseaseInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
             response.setContentType("text/html;charset=utf-8");
@@ -175,35 +193,83 @@ public class DiseaseManagementFacade {
      * @param errExports       导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportDiseaseVO> diagnoseExcelVOS, List<ExportImportDiseaseErrDTO> errExports) {
+    private Boolean checkData(List<ImportDiseaseVO> diagnoseExcelVOS, List<ExportImportDiseaseErrDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院诊断名称和ICD-10编码值用于重复校验
+        List<DiseaseInfo> diseaseInfos = diseaseInfoFacade.list(new QueryWrapper<DiseaseInfo>()
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<String> diseaseNames = diseaseInfos.stream().map(DiseaseInfo::getName).collect(Collectors.toList());
+        List<String> icd10s = diseaseInfos.stream().map(DiseaseInfo::getIcd10).collect(Collectors.toList());
         diagnoseExcelVOS.stream().forEach(importDiseaseVO -> {
             ExportImportDiseaseErrDTO exportImportDiseaseErrDTO = new ExportImportDiseaseErrDTO();
             BeanUtil.copyProperties(importDiseaseVO, exportImportDiseaseErrDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importDiseaseVO.getName())) {
-                errMsg.append("医院诊断名称为空").append(";");
+                errMsg.append("【医院诊断名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importDiseaseVO.getStandard())) {
-                errMsg.append("标准诊断名称为空").append(";");
+            } else if (importDiseaseVO.getName().length() > diseaseNameLength) {
+                errMsg.append("【医院诊断名称】过长").append(";");
+                errorFlog.set(true);
+            } else if (diseaseNames.contains(importDiseaseVO.getName())) {
+                errMsg.append("该诊断已存在,无法重复导入。").append(";");
                 errorFlog.set(true);
             }
+
+            //icd10
+            if (StringUtil.isNotEmpty(importDiseaseVO.getIcd10())) {
+                if (importDiseaseVO.getIcd10().length() > icd10Length) {
+                    errMsg.append("【ICD-10编码】过长").append(";");
+                    errorFlog.set(true);
+                } else if (icd10s.contains(importDiseaseVO.getIcd10())) {
+                    errMsg.append("该ICD-10编码已存在,无法重复导入。").append(";");
+                    errorFlog.set(true);
+                }
+            }
             exportImportDiseaseErrDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportDiseaseErrDTO);
+
         });
         return errorFlog.get();
     }
 
+    /**
+     * 通过医院诊断名称去重
+     *
+     * @param diagnoseExcelVOS
+     * @Return java.util.List<com.lantone.daqe.vo.ImportDiseaseVO>
+     */
     private List<ImportDiseaseVO> delRepeat(List<ImportDiseaseVO> diagnoseExcelVOS) {
-        //通过标准词去重
+
+        //通过医院诊断名称去重
         LinkedHashMap<String, ImportDiseaseVO> tempMap = diagnoseExcelVOS.stream()
                 .collect(Collectors.toMap(ImportDiseaseVO::getName, ImportDiseaseVO -> ImportDiseaseVO, (k1, k2) -> k1, LinkedHashMap::new));
         return tempMap.values().stream().collect(Collectors.toList());
     }
 
+    /**
+     * 匹配诊断信息列表
+     *
+     * @param getMatchingDiseasePageVO
+     * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.daqe.dto.GetMatchingDiseasePageDTO>
+     */
     public IPage<GetMatchingDiseasePageDTO> getMatchingDiseasePage(GetMatchingDiseasePageVO getMatchingDiseasePageVO) {
+
         return diseaseInfoFacade.getBaseMapper().getMatchingDiseasePage(getMatchingDiseasePageVO);
     }
+
+    /**
+     * 已匹配信息查看
+     *
+     * @param getDiseaseInfoByIdVO
+     * @Return com.lantone.daqe.dto.GetDiseaseInfoByIdDTO
+     */
+    public GetDiseaseInfoByIdDTO getDiseaseInfoById(GetDiseaseInfoByIdVO getDiseaseInfoByIdVO) {
+        GetDiseaseInfoByIdDTO out = new GetDiseaseInfoByIdDTO();
+        BeanUtils.copyProperties(diseaseInfoFacade.getById(getDiseaseInfoByIdVO.getId()), out);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 52 - 9
daqe-center/src/main/java/com/lantone/daqe/facade/DrugManagementFacade.java

@@ -7,9 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportDrugErrDTO;
+import com.lantone.daqe.dto.GetDrugByIdDTO;
 import com.lantone.daqe.dto.GetDrugPageDTO;
 import com.lantone.daqe.dto.GetMatchingDrugPageDTO;
 import com.lantone.daqe.entity.DrugInfo;
@@ -18,6 +21,7 @@ import com.lantone.daqe.service.impl.DrugInfoServiceImpl;
 import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddDrugVO;
 import com.lantone.daqe.vo.DelDrugByIdVO;
+import com.lantone.daqe.vo.GetDrugByIdVO;
 import com.lantone.daqe.vo.GetDrugPageVO;
 import com.lantone.daqe.vo.GetMatchingDrugPageVO;
 import com.lantone.daqe.vo.ImportDrugVO;
@@ -49,6 +53,10 @@ public class DrugManagementFacade {
 
     @Autowired
     private DrugInfoServiceImpl drugInfoServiceImpl;
+    //医院药品名称长度
+    private int drugNameLength = 30;
+    //国药准字长度
+    private int approvalNumLength = 30;
 
     public IPage<GetDrugPageDTO> getDrugPage(GetDrugPageVO getDrugPageVO) {
         Page<GetDrugPageDTO> getDrugPageDTOPage = new Page<>();
@@ -146,21 +154,28 @@ public class DrugManagementFacade {
         if (ListUtil.isEmpty(operationExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportDrugErrDTO> errExports = new ArrayList<>();
-        if (checkData(operationExcelVOS, errExports)) {
+        if (checkData(operationExcelVOS, errExports, hospitalId)) {
             String fileName = "药品匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportDrugErrDTO.class, fileName, response);
         } else {
             //去重
             List<ImportDrugVO> temp = delRepeat(operationExcelVOS);
-            List<DrugInfo> insert = new ArrayList<>();
             //导入数据转换
             temp.stream().forEach(importDrugVO -> {
                 DrugInfo drugInfo = new DrugInfo();
                 BeanUtils.copyProperties(importDrugVO, drugInfo);
                 drugInfo.setStandard(importDrugVO.getStandard() + "_" + importDrugVO.getForm());
             });
+            List<DrugInfo> insert = BeanUtil.listCopyTo(temp, DrugInfo.class);
+            insert.stream().forEach(drugInfo -> {
+                drugInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                drugInfo.setGmtCreate(DateUtil.now());
+                drugInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                drugInfo.setGmtModified(DateUtil.now());
+            });
             boolean out = drugInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
             response.setContentType("text/html;charset=utf-8");
@@ -183,24 +198,39 @@ public class DrugManagementFacade {
      * 数据校验
      *
      * @param importDrugVOS 导入数据
-     * @param errExports    导出异常i
+     * @param errExports    导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportDrugVO> importDrugVOS, List<ExportImportDrugErrDTO> errExports) {
+    private Boolean checkData(List<ImportDrugVO> importDrugVOS, List<ExportImportDrugErrDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院药品名称和医院药品代码用于重复校验
+//        List<DrugInfo> drugInfos = drugInfoFacade.list(new QueryWrapper<DrugInfo>()
+//                .eq("hospital_id", hospitalId)
+//                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+//        List<String> names = drugInfos.stream().map(DrugInfo::getName).collect(Collectors.toList());
+//        List<String> codes = drugInfos.stream().map(DrugInfo::getCode).collect(Collectors.toList());
+
         importDrugVOS.stream().forEach(importDrugVO -> {
             ExportImportDrugErrDTO exportImportDrugErrDTO = new ExportImportDrugErrDTO();
             BeanUtil.copyProperties(importDrugVO, exportImportDrugErrDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importDrugVO.getName())) {
-                errMsg.append("医院手术/操作名称为空").append(";");
+                errMsg.append("【医院药品名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importDrugVO.getStandard())) {
-                errMsg.append("标准手术/操作名称为空").append(";");
+            } else if (importDrugVO.getName().length() > drugNameLength) {
+                errMsg.append("【医院诊断名称】过长").append(";");
                 errorFlog.set(true);
             }
+
+            //approvalNum
+            if (StringUtil.isNotEmpty(importDrugVO.getApprovalNum())) {
+                if (importDrugVO.getApprovalNum().length() > approvalNumLength) {
+                    errMsg.append("【国药准字】过长").append(";");
+                    errorFlog.set(true);
+                }
+            }
             exportImportDrugErrDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportDrugErrDTO);
         });
@@ -239,4 +269,17 @@ public class DrugManagementFacade {
         }
         return drugPages.setRecords(getMatchingDrugPageDTOList);
     }
+
+    /**
+     * 已匹配药品信息查看
+     *
+     * @param getDrugByIdVO
+     * @Return com.lantone.daqe.dto.GetDrugByIdDTO
+     */
+    public GetDrugByIdDTO getDrugById(GetDrugByIdVO getDrugByIdVO) {
+        GetDrugByIdDTO out = new GetDrugByIdDTO();
+        BeanUtil.copyProperties(drugInfoFacade.getById(getDrugByIdVO.getId()), out);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 60 - 7
daqe-center/src/main/java/com/lantone/daqe/facade/OperationManagementFacade.java

@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
+import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportOperationDTO;
 import com.lantone.daqe.dto.GetMatchingOperationPageDTO;
+import com.lantone.daqe.dto.GetOperationByIdDTO;
 import com.lantone.daqe.dto.GetOperationPageDTO;
 import com.lantone.daqe.entity.OperationInfo;
 import com.lantone.daqe.facade.base.OperationInfoFacade;
@@ -19,6 +23,7 @@ import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddOperationVO;
 import com.lantone.daqe.vo.DelOperationByIdVO;
 import com.lantone.daqe.vo.GetMatchingOperationVO;
+import com.lantone.daqe.vo.GetOperationByIdVO;
 import com.lantone.daqe.vo.GetOperationPageVO;
 import com.lantone.daqe.vo.ImportOperationVO;
 import com.lantone.daqe.vo.MatchingOperationVO;
@@ -49,6 +54,10 @@ public class OperationManagementFacade {
 
     @Autowired
     private OperationInfoServiceImpl operationInfoServiceImpl;
+    //医院手术/操作名称长度
+    private int operationLength = 30;
+    //手术代码
+    private int codeLength = 30;
 
     public IPage<GetOperationPageDTO> getOperationPage(GetOperationPageVO getOperationPageVO) {
         Page<GetOperationPageDTO> getOperationPageDTOPage = new Page<>();
@@ -142,9 +151,10 @@ public class OperationManagementFacade {
         if (ListUtil.isEmpty(operationExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportOperationDTO> errExports = new ArrayList<>();
-        if (checkData(operationExcelVOS, errExports)) {
+        if (checkData(operationExcelVOS, errExports, hospitalId)) {
             String fileName = "医院手术标准词匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportOperationDTO.class, fileName, response);
         } else {
@@ -152,6 +162,14 @@ public class OperationManagementFacade {
             List<ImportOperationVO> temp = delRepeat(operationExcelVOS);
             //导入
             List<OperationInfo> insert = BeanUtil.listCopyTo(temp, OperationInfo.class);
+            //拼装 医院id、创建时间、更新时间
+            insert.stream().forEach(operationInfo -> {
+                operationInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                operationInfo.setGmtCreate(DateUtil.now());
+                operationInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                operationInfo.setGmtModified(DateUtil.now());
+            });
+
             boolean out = operationInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
             response.setContentType("text/html;charset=utf-8");
@@ -177,21 +195,43 @@ public class OperationManagementFacade {
      * @param errExports         导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportOperationVO> importOperationVOS, List<ExportImportOperationDTO> errExports) {
+    private Boolean checkData(List<ImportOperationVO> importOperationVOS, List<ExportImportOperationDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院手术/操作名称和手术和操作代码用于重复校验
+        List<OperationInfo> operationInfos = operationInfoFacade.list(new QueryWrapper<OperationInfo>()
+                .eq("hospital_id", hospitalId)
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<String> operationNames = operationInfos.stream().map(OperationInfo::getName).collect(Collectors.toList());
+        List<String> codes = operationInfos.stream().map(OperationInfo::getCode).collect(Collectors.toList());
+
         importOperationVOS.stream().forEach(importOperationVO -> {
             ExportImportOperationDTO exportImportOperationDTO = new ExportImportOperationDTO();
             BeanUtil.copyProperties(importOperationVO, exportImportOperationDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importOperationVO.getName())) {
-                errMsg.append("医院手术/操作名称为空").append(";");
+                errMsg.append("【医院手术/操作名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importOperationVO.getStandard())) {
-                errMsg.append("标准手术/操作名称为空").append(";");
+            } else if (importOperationVO.getName().length() > operationLength) {
+                errMsg.append("【医院手术/操作名称】过长").append(";");
+                errorFlog.set(true);
+            } else if (operationNames.contains(importOperationVO.getName())) {
+                errMsg.append("【医院手术/操作名称】已存在,无法重复导入").append(";");
                 errorFlog.set(true);
             }
+
+            //code
+            if (StringUtil.isNotEmpty(importOperationVO.getCode())) {
+                if (importOperationVO.getCode().length() > codeLength) {
+                    errMsg.append("【手术/操作代码】过长").append(";");
+                    errorFlog.set(true);
+                } else if (codes.contains(importOperationVO.getCode())) {
+                    errMsg.append("【手术/操作代码】已存在,无法重复导入").append(";");
+                    errorFlog.set(true);
+                }
+            }
+
             exportImportOperationDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportOperationDTO);
         });
@@ -222,4 +262,17 @@ public class OperationManagementFacade {
 
         return operationInfoFacade.getBaseMapper().getMatchingOperationPage(getMatchingOperationVO);
     }
+
+    /**
+     * 手术匹配信息查看
+     *
+     * @param getOperationByIdVO
+     * @Return com.lantone.daqe.dto.GetOperationByIdDTO
+     */
+    public GetOperationByIdDTO getOperationById(GetOperationByIdVO getOperationByIdVO) {
+        GetOperationByIdDTO out = new GetOperationByIdDTO();
+        BeanUtils.copyProperties(operationInfoFacade.getById(getOperationByIdVO.getId()), out);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 29 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetDiseaseInfoByIdVO.java

@@ -0,0 +1,29 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配诊断信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配诊断信息查看-接口入参")
+@Getter
+@Setter
+public class GetDiseaseInfoByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 3924264468986780478L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "诊断编号不能为空")
+    private Long id;
+
+
+}

+ 28 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetDrugByIdVO.java

@@ -0,0 +1,28 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配药品信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配药品信息查看-接口入参")
+@Getter
+@Setter
+public class GetDrugByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 200248999132272360L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "药品编号不能为空")
+    private Long id;
+
+
+}

+ 28 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetOperationByIdVO.java

@@ -0,0 +1,28 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 手术匹配信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "手术匹配信息查看-接口入参")
+@Getter
+@Setter
+public class GetOperationByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 1193944396228513754L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "手术编号不能为空")
+    private Long id;
+
+
+}

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/DiseaseManagementController.java

@@ -2,11 +2,13 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetDiseaseInfoByIdDTO;
 import com.lantone.daqe.dto.GetDiseasePageDTO;
 import com.lantone.daqe.dto.GetMatchingDiseasePageDTO;
 import com.lantone.daqe.facade.DiseaseManagementFacade;
 import com.lantone.daqe.vo.AddDiseaseVO;
 import com.lantone.daqe.vo.DelDiseaseByIdVO;
+import com.lantone.daqe.vo.GetDiseaseInfoByIdVO;
 import com.lantone.daqe.vo.GetDiseasePageVO;
 import com.lantone.daqe.vo.GetMatchingDiseasePageVO;
 import com.lantone.daqe.vo.MatchingDiseaseVO;
@@ -78,4 +80,10 @@ public class DiseaseManagementController {
     public void importDisease(HttpServletResponse response, @RequestParam("file") MultipartFile file) {
         diseaseManagementFacade.importDisease(response, file);
     }
+
+    @ApiOperation(value = "已匹配诊断信息查看 [by:songxl]", notes = "已匹配诊断信息查看")
+    @PostMapping("/getDiseaseInfoById")
+    public CommonResult<GetDiseaseInfoByIdDTO> getDiseaseInfoById(@RequestBody GetDiseaseInfoByIdVO getDiseaseInfoByIdVO) {
+        return CommonResult.success(diseaseManagementFacade.getDiseaseInfoById(getDiseaseInfoByIdVO));
+    }
 }

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/DrugManagementController.java

@@ -2,11 +2,13 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetDrugByIdDTO;
 import com.lantone.daqe.dto.GetDrugPageDTO;
 import com.lantone.daqe.dto.GetMatchingDrugPageDTO;
 import com.lantone.daqe.facade.DrugManagementFacade;
 import com.lantone.daqe.vo.AddDrugVO;
 import com.lantone.daqe.vo.DelDrugByIdVO;
+import com.lantone.daqe.vo.GetDrugByIdVO;
 import com.lantone.daqe.vo.GetDrugPageVO;
 import com.lantone.daqe.vo.GetMatchingDrugPageVO;
 import com.lantone.daqe.vo.MatchingDrugVO;
@@ -79,4 +81,10 @@ public class DrugManagementController {
         return CommonResult.success(drugManagementFacade.getMatchingDrugPage(getMatchingDrugPageVO));
     }
 
+    @ApiOperation(value = "已匹配药品信息查看 [by:songxl]")
+    @PostMapping("/getDrugById")
+    public CommonResult<GetDrugByIdDTO> getDrugById(@RequestBody GetDrugByIdVO getDrugByIdVO) {
+        return CommonResult.success(drugManagementFacade.getDrugById(getDrugByIdVO));
+    }
+
 }

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/OperationManagementController.java

@@ -3,11 +3,13 @@ package com.lantone.daqe.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
 import com.lantone.daqe.dto.GetMatchingOperationPageDTO;
+import com.lantone.daqe.dto.GetOperationByIdDTO;
 import com.lantone.daqe.dto.GetOperationPageDTO;
 import com.lantone.daqe.facade.OperationManagementFacade;
 import com.lantone.daqe.vo.AddOperationVO;
 import com.lantone.daqe.vo.DelOperationByIdVO;
 import com.lantone.daqe.vo.GetMatchingOperationVO;
+import com.lantone.daqe.vo.GetOperationByIdVO;
 import com.lantone.daqe.vo.GetOperationPageVO;
 import com.lantone.daqe.vo.MatchingOperationVO;
 import com.lantone.daqe.vo.UpOperationByIdVO;
@@ -79,4 +81,10 @@ public class OperationManagementController {
         return CommonResult.success(operationManagementFacade.getMatchingOperationPage(getMatchingOperationVO));
     }
 
+    @ApiOperation(value = "手术匹配信息查看 [by:songxl]")
+    @PostMapping("/getOperationById")
+    public CommonResult<GetOperationByIdDTO> getOperationById(@RequestBody GetOperationByIdVO getOperationByIdVO) {
+        return CommonResult.success(operationManagementFacade.getOperationById(getOperationByIdVO));
+    }
+
 }