瀏覽代碼

保存分母code调整

zhanghang 4 年之前
父節點
當前提交
4b19566681
共有 1 個文件被更改,包括 54 次插入24 次删除
  1. 54 24
      src/main/java/com/diagbot/facade/ConsoleFacade.java

+ 54 - 24
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -581,6 +581,11 @@ public class ConsoleFacade {
         qw.ge("start_date",filterVO.getStartDate()+" 00:00:00");
         qw.le("end_date", handleTime(filterVO.getEndDate()));
         medIndexResultFacade.remove(qw);
+        QueryWrapper<MedIndexRelevance> qwa = new QueryWrapper<>();
+        qwa.eq("hospital_id",filterVO.getHospitalId());
+        qwa.ge("start_date",filterVO.getStartDate()+" 00:00:00");
+        qwa.le("end_date", handleTime(filterVO.getEndDate()));
+        medIndexRelevanceFacade.remove(qwa);
         for (String startTime : timeList) {
             filterVO.setStartDate(startTime);
             filterVO.setEndDate( handleTime(startTime));
@@ -600,7 +605,7 @@ public class ConsoleFacade {
         MedIndexResult medIndexResult = new MedIndexResult();
        List<Map<String, String>> selectOperationNumMap = behospitalInfoFacade.selectOperationNum(filterVO);
         if(ListUtil.isNotEmpty(selectOperationNumMap)) {
-        //出院人数
+        CopyOnWriteArrayList<String> outHospitalCode = new CopyOnWriteArrayList<>();
         CopyOnWriteArrayList<String> operationCode = new CopyOnWriteArrayList<>();
         CopyOnWriteArrayList<String> operationPathologyCode = new CopyOnWriteArrayList<>();
         CopyOnWriteArrayList<String> antibiosisCode = new CopyOnWriteArrayList<>();
@@ -608,25 +613,24 @@ public class ConsoleFacade {
             filterVO.setFlagStr("2");
             List<MedManageParamsDTO> doctorAdviceMedManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
             Map<String, List<String>> adviceNum = getAdviceNum(filterVO, doctorAdviceMedManageParams);
-                Long startCount = (Long.valueOf(selectOperationNumMap.size()));
                 for (Map<String, String> stringStringMap : selectOperationNumMap) {
+                    String behospitalCode = stringStringMap.get("behospitalCode");
+                    //出院code
+                         outHospitalCode.add(behospitalCode);
                     if (Double.parseDouble(stringStringMap.get("operationFee"))>0){
-                        String behospitalCode = stringStringMap.get("behospitalCode");
+                        //手术code
                         operationCode.add(behospitalCode);
                     }
+                    if (Double.parseDouble(stringStringMap.get("operationFee"))>0 && Double.parseDouble(stringStringMap.get("pathologyFee"))>QualityContent.pathologyFee){
+                        //病理code
+                        operationPathologyCode.add(behospitalCode);
+                    }
+                    if (Double.parseDouble(stringStringMap.get("antibiosisFee"))>0){
+                        //抗菌code
+                        antibiosisCode.add(behospitalCode);
+                    }
                 }
-            for (Map<String, String> stringStringMap : selectOperationNumMap) {
-                if (Double.parseDouble(stringStringMap.get("operationFee"))>0 && Double.parseDouble(stringStringMap.get("pathologyFee"))>QualityContent.pathologyFee){
-                    String behospitalCode = stringStringMap.get("behospitalCode");
-                    operationPathologyCode.add(behospitalCode);
-                }
-            }
-            for (Map<String, String> stringStringMap : selectOperationNumMap) {
-                if (Double.parseDouble(stringStringMap.get("antibiosisFee"))>0){
-                    String behospitalCode = stringStringMap.get("behospitalCode");
-                    antibiosisCode.add(behospitalCode);
-                }
-            }
+            Long startCount = Long.valueOf(outHospitalCode.size());
             //手术人
                 List<String> operationList = adviceNum.get("operation");
                 if(ListUtil.isNotEmpty(operationList)){
@@ -634,18 +638,22 @@ public class ConsoleFacade {
                         operationCode.add(s);
                     }
                 }
-                operationFeeNum = Long.valueOf(String.valueOf(operationCode.size()));
+                if(ListUtil.isNotEmpty(operationCode)) {
+                    operationFeeNum = Long.valueOf(operationCode.size());
+                }else {
+                    operationFeeNum=0L;
+                }
                 //CT人数
                 List<String> ctList = adviceNum.get("CT");
                 Long CTNum=0L;
                 if(ListUtil.isNotEmpty(ctList)) {
-                    CTNum = Long.valueOf(String.valueOf(ctList.size()));
+                    CTNum = Long.valueOf(ctList.size());
                 }
                 //MR人数
                 List<String> mrList = adviceNum.get("MR");
                 Long MRNum=0L;
-                if(ListUtil.isNotEmpty(ctList)) {
-                    MRNum = Long.valueOf(String.valueOf(mrList.size()));
+                if(ListUtil.isNotEmpty(mrList)) {
+                    MRNum = Long.valueOf(mrList.size());
                 }
                 //手术病理人数
                 List<String> operationPathologyList = adviceNum.get("operationPathology");
@@ -654,17 +662,22 @@ public class ConsoleFacade {
                         operationPathologyCode.add(s);
                     }
                 }
-                Long operationPathologyFeeNum = Long.valueOf(operationPathologyCode.size());
+                 Long operationPathologyFeeNum=0L;
+                if(ListUtil.isNotEmpty(operationPathologyCode)) {
+                    operationPathologyFeeNum = Long.valueOf(operationPathologyCode.size());
+                }
                 //抗菌药物人数
 
                 List<String> antibiosisList = adviceNum.get("antibiosis");
-
                 if(ListUtil.isNotEmpty(antibiosisList)) {
                     for (String s : antibiosisList) {
                         antibiosisCode.add(s);
                     }
                 }
-                Long antibiosisFeeNum = Long.valueOf(antibiosisCode.size());
+                Long antibiosisFeeNum =0L;
+                if(ListUtil.isNotEmpty(antibiosisCode)) {
+                    antibiosisFeeNum = Long.valueOf(antibiosisCode.size());
+                }
                 //恶性肿瘤化学治疗人数
                 List<String> chemotherapyMalignantTumorsList = adviceNum.get("chemotherapyMalignantTumors");
                 Long chemotherapyMalignantTumorsNum =0L;
@@ -733,14 +746,31 @@ public class ConsoleFacade {
         medIndexRelevance.setStartDate(filterVO.getStartDate());
         medIndexRelevance.setEndDate(filterVO.getEndDate());
         medIndexRelevance.setGmtCreate(new Date());
-        if(ListUtil.isNotEmpty(ctList)) {
-            if(ListUtil.isNotEmpty(operationCode)) {
+            if(ListUtil.isNotEmpty(outHospitalCode)) {
                 medIndexRelevance.setRelevanceType(4);
+                for (String Code : outHospitalCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+                medIndexRelevance.setRelevanceType(6);
+                for (String Code : outHospitalCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+                medIndexRelevance.setRelevanceType(7);
+                for (String Code : outHospitalCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+            }
+            if(ListUtil.isNotEmpty(operationCode)) {
+                medIndexRelevance.setRelevanceType(5);
                 for (String Code : operationCode) {
                     medIndexRelevance.setBehospitalCode(Code);
                     medIndexRelevanceFacade.save(medIndexRelevance);
                 }
             }
+        if(ListUtil.isNotEmpty(ctList)) {
             medIndexRelevance.setRelevanceType(8);
             for (String CTCode : ctList) {
                 medIndexRelevance.setBehospitalCode(CTCode);