Browse Source

备用导入

zhoutg 5 years ago
parent
commit
9fae7d8b04

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

@@ -62,6 +62,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/consoleByDept/getDept").permitAll()
                 .antMatchers("/qc/casesEntryHospital/findQcCasesEntry").permitAll()
                 .antMatchers("/qc/dataimport/import").permitAll()
+                .antMatchers("/qc/dataimport/dataimportPrepare").permitAll()
                 .antMatchers("/qc/dataimport/test").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();

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

@@ -105,6 +105,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/consoleByDept/getDept", request)
                 || matchers("/qc/casesEntryHospital/findQcCasesEntry", request)
                 || matchers("/qc/dataimport/import", request)
+                || matchers("/qc/dataimport/dataimportPrepare", request)
                 || matchers("/qc/dataimport/test", request)
                 || matchers("/", request)) {
             return true;

+ 119 - 123
src/main/java/com/diagbot/facade/DataImportFacade.java

@@ -289,7 +289,7 @@ public class DataImportFacade {
                 }
                 int count = behospitalInfoService.count(queryWrapper);
                 if (count > 0) {
-                    behospitalInfoService.update(s,queryWrapper);
+                    behospitalInfoService.update(s, queryWrapper);
                 } else {
                     behospitalInfoService.save(s);
                 }
@@ -299,165 +299,161 @@ public class DataImportFacade {
         // 危急值信息
         List<MedCrisisInfo> medCrisisInfoList = dataImportVO.getMedCrisisInfoList();
         if (ListUtil.isNotEmpty(medCrisisInfoList)) {
-            List<String> recIdList = medCrisisInfoList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
-            if (ListUtil.isNotEmpty(recIdList)) {
-                // 先删除
-                medCrisisInfoService.remove(new QueryWrapper<MedCrisisInfo>()
-                        .eq("hospital_id", hospitalId)
-                        .in("rec_id", recIdList)
-                );
-                medCrisisInfoService.saveBatch(medCrisisInfoList);
-            }
+            medCrisisInfoList.forEach(s -> {
+                QueryWrapper<MedCrisisInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("rec_type", s.getRecType());
+                int count = medCrisisInfoService.count(queryWrapper);
+                if (count > 0) {
+                    medCrisisInfoService.update(s, queryWrapper);
+                } else {
+                    medCrisisInfoService.save(s);
+                }
+            });
         }
 
         // 病人医嘱
         List<DoctorAdvice> doctorAdviceList = dataImportVO.getDoctorAdviceList();
         if (ListUtil.isNotEmpty(doctorAdviceList)) {
-            List<String> doctorAdviceIdList = doctorAdviceList.stream().map(r -> r.getDoctorAdviceId()).collect(Collectors.toList());
-            if (ListUtil.isNotEmpty(doctorAdviceIdList)) {
-                // 先删除
-                doctorAdviceService.remove(new QueryWrapper<DoctorAdvice>()
-                        .eq("hospital_id", hospitalId)
-                        .in("doctor_advice_id", doctorAdviceIdList)
-                );
-                doctorAdviceService.saveBatch(doctorAdviceList);
-            }
+            doctorAdviceList.forEach(s -> {
+                QueryWrapper<DoctorAdvice> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("doctor_advice_id", s.getDoctorAdviceId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = doctorAdviceService.count(queryWrapper);
+                if (count > 0) {
+                    doctorAdviceService.update(s, queryWrapper);
+                } else {
+                    doctorAdviceService.save(s);
+                }
+            });
         }
 
         // 病案首页诊断
         List<HomeDiagnoseInfo> homeDiagnoseInfoList = dataImportVO.getHomeDiagnoseInfoList();
         if (ListUtil.isNotEmpty(homeDiagnoseInfoList)) {
-            StringBuffer sb = new StringBuffer();
-            sb.append(" ( ");
-            for (int i = 0; i < homeDiagnoseInfoList.size(); i++) {
-                HomeDiagnoseInfo s = homeDiagnoseInfoList.get(i);
-                if (i == 0) {
-                    sb.append(" (home_page_id = '" + s.getHomePageId() + "'"
-                            + " and diagnose_order_no = '" + s.getDiagnoseOrderNo() + "'"
-                            + ") " );
+            homeDiagnoseInfoList.forEach(s -> {
+                QueryWrapper<HomeDiagnoseInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("home_page_id", s.getHomePageId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("diagnose_order_no", s.getDiagnoseOrderNo());
+                int count = homeDiagnoseInfoService.count(queryWrapper);
+                if (count > 0) {
+                    homeDiagnoseInfoService.update(s, queryWrapper);
                 } else {
-                    sb.append(" or ( home_page_id = '" + s.getHomePageId() + "'"
-                            + " and diagnose_order_no = '" + s.getDiagnoseOrderNo() + "'"
-                            + ") " );
+                    homeDiagnoseInfoService.save(s);
                 }
-            }
-            sb.append(")");
-
-            // 先删除
-            homeDiagnoseInfoService.remove(new QueryWrapper<HomeDiagnoseInfo>()
-                    .eq("hospital_id", hospitalId)
-                    .apply(sb.toString())
-            );
-            homeDiagnoseInfoService.saveBatch(homeDiagnoseInfoList);
+            });
         }
 
         // 病案首页
         List<HomePage> homePageList = dataImportVO.getHomePageList();
         if (ListUtil.isNotEmpty(homePageList)) {
-            List<String> homePageIdList = homePageList.stream().map(r -> r.getHomePageId()).collect(Collectors.toList());
-            if (ListUtil.isNotEmpty(homePageIdList)) {
-                // 先删除
-                homePageService.remove(new QueryWrapper<HomePage>()
-                        .eq("hospital_id", hospitalId)
-                        .in("home_page_id", homePageIdList)
-                );
-                // 加密
-                for (HomePage homePage : dataImportVO.getHomePageList()) {
-                    // 姓名
-                    if (StringUtil.isNotBlank(homePage.getName())) {
-                        homePage.setName(homePage.getName().substring(0, 1) + "**");
-                    }
-                    // 身份证
-                    if (StringUtil.isNotBlank(homePage.getIdentityCardNo())) {
-                        homePage.setIdentityCardNo(homePage.getIdentityCardNo().substring(0, 1) + "*****************");
-                    }
-                    // 现住址电话
-                    if (StringUtil.isNotBlank(homePage.getCurPhone())) {
-                        homePage.setCurPhone(homePage.getCurPhone().substring(0, 1) + "**");
-                    }
-                    // 工作单位电话
-                    if (StringUtil.isNotBlank(homePage.getWorkPhone())) {
-                        homePage.setWorkPhone(homePage.getWorkPhone().substring(0, 1) + "**");
-                    }
-                    // 联系人姓名
-                    if (StringUtil.isNotBlank(homePage.getContactName())) {
-                        homePage.setContactName(homePage.getContactName().substring(0, 1) + "**");
-                    }
-                    // 联系人电话
-                    if (StringUtil.isNotBlank(homePage.getContactPhone())) {
-                        homePage.setContactPhone(homePage.getContactPhone().substring(0, 1) + "**");
-                    }
+            homePageList.stream().forEach(s -> {
+                // 姓名
+                if (StringUtil.isNotBlank(s.getName())) {
+                    s.setName(s.getName().substring(0, 1) + "**");
                 }
-                homePageService.saveBatch(homePageList);
-            }
+                // 身份证
+                if (StringUtil.isNotBlank(s.getIdentityCardNo())) {
+                    s.setIdentityCardNo(s.getIdentityCardNo().substring(0, 1) + "*****************");
+                }
+                // 现住址电话
+                if (StringUtil.isNotBlank(s.getCurPhone())) {
+                    s.setCurPhone(s.getCurPhone().substring(0, 1) + "**");
+                }
+                // 工作单位电话
+                if (StringUtil.isNotBlank(s.getWorkPhone())) {
+                    s.setWorkPhone(s.getWorkPhone().substring(0, 1) + "**");
+                }
+                // 联系人姓名
+                if (StringUtil.isNotBlank(s.getContactName())) {
+                    s.setContactName(s.getContactName().substring(0, 1) + "**");
+                }
+                // 联系人电话
+                if (StringUtil.isNotBlank(s.getContactPhone())) {
+                    s.setContactPhone(s.getContactPhone().substring(0, 1) + "**");
+                }
+
+                QueryWrapper<HomePage> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("home_page_id", s.getHomePageId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = homePageService.count(queryWrapper);
+                if (count > 0) {
+                    homePageService.update(s, queryWrapper);
+                } else {
+                    homePageService.save(s);
+                }
+            });
         }
 
         // 病案首页手术信息
         List<HomeOperationInfo> homeOperationInfoList = dataImportVO.getHomeOperationInfoList();
         if (ListUtil.isNotEmpty(homeOperationInfoList)) {
-            StringBuffer sb = new StringBuffer();
-            sb.append(" ( ");
-            for (int i = 0; i < homeOperationInfoList.size(); i++) {
-                HomeOperationInfo s = homeOperationInfoList.get(i);
-                if (i == 0) {
-                    sb.append(" (home_page_id = '" + s.getHomePageId() + "'"
-                            + " and operation_order_no = '" + s.getOperationOrderNo() + "'"
-                            + ") " );
-                } else {
-                    sb.append(" or ( home_page_id = '" + s.getHomePageId() + "'"
-                            + " and operation_order_no = '" + s.getOperationOrderNo() + "'"
-                            + ") " );
+            homeOperationInfoList.forEach(s -> {
+                if(s.getHomePageId()!=null && !"".equals(s.getOperationOrderNo())) {
+                    QueryWrapper<HomeOperationInfo> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("home_page_id", s.getHomePageId());
+                    queryWrapper.eq("hospital_id", s.getHospitalId());
+                    queryWrapper.eq("operation_order_no", s.getOperationOrderNo());
+                    int count = homeOperationInfoService.count(queryWrapper);
+                    if (count > 0) {
+                        homeOperationInfoService.update(s, queryWrapper);
+                    } else {
+                        homeOperationInfoService.save(s);
+                    }
                 }
-            }
-            sb.append(")");
-            // 先删除
-            homeOperationInfoService.remove(new QueryWrapper<HomeOperationInfo>()
-                    .eq("hospital_id", hospitalId)
-                    .apply(sb.toString())
-            );
-            homeOperationInfoService.saveBatch(homeOperationInfoList);
+            });
         }
 
         // 文书信息
         List<MedicalRecord> medicalRecordList = dataImportVO.getMedicalRecordList();
         if (ListUtil.isNotEmpty(medicalRecordList)) {
-            List<String> recIdList = medicalRecordList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
-            if (ListUtil.isNotEmpty(recIdList)) {
-                // 先删除
-                medicalRecordService.remove(new QueryWrapper<MedicalRecord>()
-                        .eq("hospital_id", hospitalId)
-                        .in("rec_id", recIdList)
-                );
-                medicalRecordService.saveBatch(medicalRecordList);
-            }
+            medicalRecordList.forEach(s -> {
+                QueryWrapper<MedicalRecord> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = medicalRecordService.count(queryWrapper);
+                if (count > 0) {
+                    medicalRecordService.update(s, queryWrapper);
+                } else {
+                    medicalRecordService.save(s);
+                }
+            });
         }
 
         // 文书明细信息
         List<MedicalRecordContent> medicalRecordContentList = dataImportVO.getMedicalRecordContentList();
         if (ListUtil.isNotEmpty(medicalRecordContentList)) {
-            List<String> recIdList = medicalRecordContentList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
-            if (ListUtil.isNotEmpty(recIdList)) {
-                // 先删除
-                medicalRecordContentService.remove(new QueryWrapper<MedicalRecordContent>()
-                        .eq("hospital_id", hospitalId)
-                        .in("rec_id", recIdList));
-
-                // 加密数据
-                if (encryptFlag) {
-                    String recId = "";
-                    try {
-                        EncrypDES encrypDES = new EncrypDES();
-                        for (MedicalRecordContent medicalRecordContent : medicalRecordContentList) {
-                            recId = medicalRecordContent.getRecId();
-                            if (StringUtil.isNotBlank(medicalRecordContent.getXmlText())) {
-                                medicalRecordContent.setXmlText(encrypDES.encrytor(medicalRecordContent.getXmlText()));
-                            }
+            // 加密数据
+            if (encryptFlag) {
+                String recId = "";
+                try {
+                    EncrypDES encrypDES = new EncrypDES();
+                    for (MedicalRecordContent s : medicalRecordContentList) {
+                        recId = s.getRecId();
+                        if (StringUtil.isNotBlank(s.getXmlText())) {
+                            s.setXmlText(encrypDES.encrytor(s.getXmlText()));
+                        }
+                        QueryWrapper<MedicalRecordContent> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("rec_id", s.getRecId());
+                        queryWrapper.eq("hospital_id", s.getHospitalId());
+                        queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                        int count = medicalRecordContentService.count(queryWrapper);
+                        if (count > 0) {
+                            medicalRecordContentService.update(s, queryWrapper);
+                        } else {
+                            medicalRecordContentService.save(s);
                         }
-                    } catch (Exception e) {
-                        throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "加密xml错误!recId=【" + recId + "】");
                     }
+                } catch (Exception e) {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "加密xml错误!recId=【" + recId + "】");
                 }
-                medicalRecordContentService.saveBatch(medicalRecordContentList, 100);
             }
         }
         return true;