Selaa lähdekoodia

新增/修改药品、诊断、手术信息时,是否与已存在的其他信息冲突判断

rengb 3 vuotta sitten
vanhempi
commit
0131cb5f3c

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

@@ -96,7 +96,7 @@ public class DiseaseManagementFacade {
     public Boolean addDisease(AddDiseaseVO addDiseaseVO) {
         DiseaseInfo diseaseInfo = new DiseaseInfo();
         BeanUtil.copyProperties(addDiseaseVO, diseaseInfo);
-        diseaseInfoFacade.isExist(diseaseInfo);
+        diseaseInfoFacade.assertIsExist(diseaseInfo);
         String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
         Date now = DateUtil.now();
         diseaseInfo.setCreator(currentUserId);
@@ -118,7 +118,7 @@ public class DiseaseManagementFacade {
         }
         DiseaseInfo diseaseInfo = new DiseaseInfo();
         BeanUtil.copyProperties(upDiseaseByIdVO, diseaseInfo);
-        diseaseInfoFacade.isExist(diseaseInfo);
+        diseaseInfoFacade.assertIsExist(diseaseInfo);
         diseaseInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
         diseaseInfo.setGmtModified(DateUtil.now());
         return diseaseInfoFacade.updateById(diseaseInfo);

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

@@ -97,7 +97,7 @@ public class DrugManagementFacade {
     public boolean addDrug(AddDrugVO addDrugVO) {
         DrugInfo drugInfo = new DrugInfo();
         BeanUtil.copyProperties(addDrugVO, drugInfo);
-        drugInfoFacade.isExist(drugInfo);
+        drugInfoFacade.assertIsExist(drugInfo);
         String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
         Date now = DateUtil.now();
         drugInfo.setCreator(currentUserId);
@@ -119,7 +119,7 @@ public class DrugManagementFacade {
         }
         DrugInfo drugInfo = new DrugInfo();
         BeanUtil.copyProperties(upDrugByIdVO, drugInfo);
-        drugInfoFacade.isExist(drugInfo);
+        drugInfoFacade.assertIsExist(drugInfo);
         drugInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
         drugInfo.setGmtModified(DateUtil.now());
         return drugInfoFacade.updateById(drugInfo);

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

@@ -96,7 +96,7 @@ public class OperationManagementFacade {
     public boolean addOperation(AddOperationVO addOperationVO) {
         OperationInfo operationInfo = new OperationInfo();
         BeanUtil.copyProperties(addOperationVO, operationInfo);
-        operationInfoFacade.isExist(operationInfo);
+        operationInfoFacade.assertIsExist(operationInfo);
         String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
         Date now = DateUtil.now();
         operationInfo.setCreator(currentUserId);
@@ -118,7 +118,7 @@ public class OperationManagementFacade {
         }
         OperationInfo operationInfo = new OperationInfo();
         BeanUtil.copyProperties(upOperationByIdVO, operationInfo);
-        operationInfoFacade.isExist(operationInfo);
+        operationInfoFacade.assertIsExist(operationInfo);
         operationInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
         operationInfo.setGmtModified(DateUtil.now());
         return operationInfoFacade.updateById(operationInfo);

+ 41 - 3
daqe-center/src/main/java/com/lantone/daqe/facade/base/DiseaseInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.DiseaseInfo;
 import com.lantone.daqe.service.impl.DiseaseInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_disease_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class DiseaseInfoFacade extends DiseaseInfoServiceImpl {
 
-    public boolean isExist(DiseaseInfo diseaseInfo){
-        boolean flag = false;
-        return flag;
+    /**
+     * 判断即将新增/修改的诊断是否与已存在的其他诊断存在冲突
+     *
+     * @param diseaseInfo 即将新增/修改的诊断,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
+    public boolean isExist(DiseaseInfo diseaseInfo) {
+        if (diseaseInfo.getHospitalId() == null
+                || StringUtil.isBlank(diseaseInfo.getCode())
+                || StringUtil.isBlank(diseaseInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的诊断是否与已存在的其他诊断存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<DiseaseInfo> diseaseInfoQueryWrapper = new QueryWrapper<>();
+        diseaseInfoQueryWrapper.eq("hospital_id", diseaseInfo.getHospitalId());
+        diseaseInfoQueryWrapper.eq("code", diseaseInfo.getCode());
+        diseaseInfoQueryWrapper.eq("name", diseaseInfo.getName());
+        List<DiseaseInfo> diseaseInfoList = list(diseaseInfoQueryWrapper);
+        if (diseaseInfo.getId() == null) {
+            return ListUtil.isNotEmpty(diseaseInfoList);
+        } else {
+            return diseaseInfoList.size() > 1
+                    || (diseaseInfoList.size() == 1
+                    && diseaseInfoList.get(0).getId().longValue() != diseaseInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的诊断与已存在的其他诊断存在冲突时,抛出异常
+     *
+     * @param diseaseInfo 即将新增/修改的诊断,有id是修改,无id是新增。
+     */
+    public void assertIsExist(DiseaseInfo diseaseInfo) {
+        if (isExist(diseaseInfo)) {
+            Asserts.fail("与已存在的其他诊断存在冲突!");
+        }
     }
 
 }

+ 40 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/base/DrugInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.DrugInfo;
 import com.lantone.daqe.service.impl.DrugInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_drug_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class DrugInfoFacade extends DrugInfoServiceImpl {
 
+    /**
+     * 判断即将新增/修改的药品是否与已存在的其他药品存在冲突
+     *
+     * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
     public boolean isExist(DrugInfo drugInfo) {
-        boolean flag = false;
-        return flag;
+        if (drugInfo.getHospitalId() == null
+                || StringUtil.isBlank(drugInfo.getCode())
+                || StringUtil.isBlank(drugInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的药品是否与已存在的其他药品存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<DrugInfo> drugInfoQueryWrapper = new QueryWrapper<>();
+        drugInfoQueryWrapper.eq("hospital_id", drugInfo.getHospitalId());
+        drugInfoQueryWrapper.eq("code", drugInfo.getCode());
+        drugInfoQueryWrapper.eq("name", drugInfo.getName());
+        List<DrugInfo> drugInfoList = list(drugInfoQueryWrapper);
+        if (drugInfo.getId() == null) {
+            return ListUtil.isNotEmpty(drugInfoList);
+        } else {
+            return drugInfoList.size() > 1
+                    || (drugInfoList.size() == 1
+                    && drugInfoList.get(0).getId().longValue() != drugInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的药品与已存在的其他药品存在冲突时,抛出异常
+     *
+     * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
+     */
+    public void assertIsExist(DrugInfo drugInfo) {
+        if (isExist(drugInfo)) {
+            Asserts.fail("与已存在的其他药品存在冲突!");
+        }
     }
 
 }

+ 40 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/base/OperationInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.OperationInfo;
 import com.lantone.daqe.service.impl.OperationInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_operation_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class OperationInfoFacade extends OperationInfoServiceImpl {
 
+    /**
+     * 判断即将新增/修改的手术是否与已存在的其他手术存在冲突
+     *
+     * @param operationInfo 即将新增/修改的手术,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
     public boolean isExist(OperationInfo operationInfo) {
-        boolean flag = false;
-        return flag;
+        if (operationInfo.getHospitalId() == null
+                || StringUtil.isBlank(operationInfo.getCode())
+                || StringUtil.isBlank(operationInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的手术是否与已存在的其他手术存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<OperationInfo> operationInfoQueryWrapper = new QueryWrapper<>();
+        operationInfoQueryWrapper.eq("hospital_id", operationInfo.getHospitalId());
+        operationInfoQueryWrapper.eq("code", operationInfo.getCode());
+        operationInfoQueryWrapper.eq("name", operationInfo.getName());
+        List<OperationInfo> operationInfoList = list(operationInfoQueryWrapper);
+        if (operationInfo.getId() == null) {
+            return ListUtil.isNotEmpty(operationInfoList);
+        } else {
+            return operationInfoList.size() > 1
+                    || (operationInfoList.size() == 1
+                    && operationInfoList.get(0).getId().longValue() != operationInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的手术与已存在的其他手术存在冲突时,抛出异常
+     *
+     * @param operationInfo 即将新增/修改的手术,有id是修改,无id是新增。
+     */
+    public void assertIsExist(OperationInfo operationInfo) {
+        if (isExist(operationInfo)) {
+            Asserts.fail("与已存在的其他手术存在冲突!");
+        }
     }
 
 }