Sfoglia il codice sorgente

Merge branch 'dev/20201210_1.4.9' into dev/20201224_2.0.0-正式

# Conflicts:
#	src/main/java/com/diagbot/vo/str/StrAdmissionNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrBloodResultVO.java
#	src/main/java/com/diagbot/vo/str/StrBloodTransfusionVO.java
#	src/main/java/com/diagbot/vo/str/StrConsultationApplyVO.java
#	src/main/java/com/diagbot/vo/str/StrConsultationNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrConsultationRecordVO.java
#	src/main/java/com/diagbot/vo/str/StrConsultationResultVO.java
#	src/main/java/com/diagbot/vo/str/StrCrisisNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrDeathDiscussionVO.java
#	src/main/java/com/diagbot/vo/str/StrDeathNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrDifficultCaseVO.java
#	src/main/java/com/diagbot/vo/str/StrFirstRecordVO.java
#	src/main/java/com/diagbot/vo/str/StrIllCriticallyVO.java
#	src/main/java/com/diagbot/vo/str/StrIllSeriouslVO.java
#	src/main/java/com/diagbot/vo/str/StrLeaveHospitalVO.java
#	src/main/java/com/diagbot/vo/str/StrOperativeFirstRecordVO.java
#	src/main/java/com/diagbot/vo/str/StrOperativeNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrPeriodConclusionVO.java
#	src/main/java/com/diagbot/vo/str/StrPreoperativeDiscussionVO.java
#	src/main/java/com/diagbot/vo/str/StrRescueNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrTransferInNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrTransferOutNoteVO.java
#	src/main/java/com/diagbot/vo/str/StrWardRecordVO.java
#	src/main/resources/application-dev.yml
#	src/main/resources/application-local.yml
#	src/main/resources/application-pre.yml
#	src/main/resources/application-pro.yml
#	src/main/resources/application-test.yml
#	src/main/resources/mapper/BehospitalInfoMapper.xml
chengyao 4 anni fa
parent
commit
d44b642b97
33 ha cambiato i file con 2014 aggiunte e 117 eliminazioni
  1. 23 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 23 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 7 8
      src/main/java/com/diagbot/dto/QcResultApiDTO.java
  4. 167 78
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  5. 1 0
      src/main/java/com/diagbot/facade/data/ColumnFacade.java
  6. 66 1
      src/main/java/com/diagbot/facade/data/AStrAdmissionNoteFacade.java
  7. 81 1
      src/main/java/com/diagbot/facade/data/AStrBloodResultFacade.java
  8. 71 1
      src/main/java/com/diagbot/facade/data/AStrBloodTransfusionFacade.java
  9. 66 1
      src/main/java/com/diagbot/facade/data/AStrConsultationApplyFacade.java
  10. 65 1
      src/main/java/com/diagbot/facade/data/AStrConsultationNoteFacade.java
  11. 66 5
      src/main/java/com/diagbot/facade/data/AStrConsultationRecordFacade.java
  12. 70 1
      src/main/java/com/diagbot/facade/data/AStrConsultationResultFacade.java
  13. 66 1
      src/main/java/com/diagbot/facade/data/AStrCrisisNoteFacade.java
  14. 65 1
      src/main/java/com/diagbot/facade/data/AStrDeathDiscussionFacade.java
  15. 66 1
      src/main/java/com/diagbot/facade/data/AStrDeathNoteFacade.java
  16. 66 1
      src/main/java/com/diagbot/facade/data/AStrDifficultCaseFacade.java
  17. 65 1
      src/main/java/com/diagbot/facade/data/AStrFirstRecordFacade.java
  18. 65 1
      src/main/java/com/diagbot/facade/data/AStrIllCriticallyFacade.java
  19. 65 1
      src/main/java/com/diagbot/facade/data/AStrIllSeriouslFacade.java
  20. 66 1
      src/main/java/com/diagbot/facade/data/AStrLeaveHospitalFacade.java
  21. 65 1
      src/main/java/com/diagbot/facade/data/AStrOperativeFirstRecord.java
  22. 66 1
      src/main/java/com/diagbot/facade/data/AStrOperativeNoteFacade.java
  23. 65 2
      src/main/java/com/diagbot/facade/data/AStrPeriodConclusionFacade.java
  24. 66 1
      src/main/java/com/diagbot/facade/data/AStrPreoperativeDiscussionFacade.java
  25. 66 1
      src/main/java/com/diagbot/facade/data/AStrRescueNoteFacade.java
  26. 65 1
      src/main/java/com/diagbot/facade/data/AStrTransferInNoteFacade.java
  27. 65 1
      src/main/java/com/diagbot/facade/data/AStrTransferOutNoteFacade.java
  28. 66 1
      src/main/java/com/diagbot/facade/data/AStrWardRecordFacade.java
  29. 1 1
      src/main/java/com/diagbot/util/ColumnCacheUtil.java
  30. 2 0
      src/main/java/com/diagbot/vo/AnalyzeRunVO.java
  31. 253 0
      src/main/java/com/diagbot/web/ADataStrController.java
  32. 2 2
      src/main/java/com/diagbot/web/BehospitalInfoController.java
  33. 2 0
      src/main/resources/mapper/BehospitalInfoMapper.xml

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

@@ -164,6 +164,29 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/getColumnZhAndCh").permitAll()
                 .antMatchers("/qc/data/analyseRec").permitAll()
                 .antMatchers("/qc/data/hisDataDeal").permitAll()
+                .antMatchers("/qc/data_str/sendAdmissionNote").permitAll()
+                .antMatchers("/qc/data_str/sendBloodResult").permitAll()
+                .antMatchers("/qc/data_str/sendBloodTransfusion").permitAll()
+                .antMatchers("/qc/data_str/sendConsultationApply").permitAll()
+                .antMatchers("/qc/data_str/sendConsultationNote").permitAll()
+                .antMatchers("/qc/data_str/sendConsultationRecord").permitAll()
+                .antMatchers("/qc/data_str/sendConsultationResult").permitAll()
+                .antMatchers("/qc/data_str/sendCrisisNote").permitAll()
+                .antMatchers("/qc/data_str/sendDeathDiscussion").permitAll()
+                .antMatchers("/qc/data_str/sendDeathNote").permitAll()
+                .antMatchers("/qc/data_str/sendDifficultCase").permitAll()
+                .antMatchers("/qc/data_str/sendFirstRecord").permitAll()
+                .antMatchers("/qc/data_str/sendIllCritically").permitAll()
+                .antMatchers("/qc/data_str/sendIllSeriousl").permitAll()
+                .antMatchers("/qc/data_str/sendLeaveHospital").permitAll()
+                .antMatchers("/qc/data_str/sendOperativeFirstRecord").permitAll()
+                .antMatchers("/qc/data_str/sendOperativeNote").permitAll()
+                .antMatchers("/qc/data_str/sendWardRecord").permitAll()
+                .antMatchers("/qc/data_str/sendTransferOutNote").permitAll()
+                .antMatchers("/qc/data_str/sendTransferInNote").permitAll()
+                .antMatchers("/qc/data_str/sendRescueNote").permitAll()
+                .antMatchers("/qc/data_str/sendPeriodConclusion").permitAll()
+                .antMatchers("/qc/data_str/sendPreoperativeDiscussion").permitAll()
                 .antMatchers("/qc/doctoradvice/getPage").permitAll()
                 .antMatchers("/qc/medPacsInfo/getCheckPage").permitAll()
                 .antMatchers("/qc/medLisInfo/getExaminePage").permitAll()

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

@@ -208,6 +208,29 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/getColumnZhAndCh", request)
                 || matchers("/qc/data/analyseRec", request)
                 || matchers("/qc/data/hisDataDeal", request)
+                || matchers("/qc/data_str/sendAdmissionNote", request)
+                || matchers("/qc/data_str/sendBloodResult", request)
+                || matchers("/qc/data_str/sendBloodTransfusion", request)
+                || matchers("/qc/data_str/sendConsultationApply", request)
+                || matchers("/qc/data_str/sendConsultationNote", request)
+                || matchers("/qc/data_str/sendConsultationRecord", request)
+                || matchers("/qc/data_str/sendConsultationResult", request)
+                || matchers("/qc/data_str/sendCrisisNote", request)
+                || matchers("/qc/data_str/sendDeathDiscussion", request)
+                || matchers("/qc/data_str/sendDeathNote", request)
+                || matchers("/qc/data_str/sendDifficultCase", request)
+                || matchers("/qc/data_str/sendFirstRecord", request)
+                || matchers("/qc/data_str/sendIllCritically", request)
+                || matchers("/qc/data_str/sendIllSeriousl", request)
+                || matchers("/qc/data_str/sendLeaveHospital", request)
+                || matchers("/qc/data_str/sendOperativeFirstRecord", request)
+                || matchers("/qc/data_str/sendOperativeNote", request)
+                || matchers("/qc/data_str/sendWardRecord", request)
+                || matchers("/qc/data_str/sendTransferOutNote", request)
+                || matchers("/qc/data_str/sendTransferInNote", request)
+                || matchers("/qc/data_str/sendRescueNote", request)
+                || matchers("/qc/data_str/sendPeriodConclusion", request)
+                || matchers("/qc/data_str/sendPreoperativeDiscussion", request)
                 || matchers("/qc/doctoradvice/getPage", request)
                 || matchers("/qc/medPacsInfo/getCheckPage", request)
                 || matchers("/qc/medLisInfo/getExaminePage", request)

+ 7 - 8
src/main/java/com/diagbot/dto/QcResultApiDTO.java

@@ -18,14 +18,13 @@ public class QcResultApiDTO implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * 等级
-     */
-    private String level;
-
-    /**
-     * 最后得分
-     */
+    //得分
     private BigDecimal scoreRes;
+    //等级
+    private String level;
+    //缺陷总数
+    private Long num;
+    //缺陷总扣分
+    private BigDecimal numScore;
 
 }

+ 167 - 78
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -46,6 +46,7 @@ import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -156,6 +157,9 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     MedTransferRecordFacade medTransferRecordFacade;
     @Autowired
     MedNurseFacade medNurseFacade;
+    @Autowired
+    SysHospitalSetFacade sysHospitalSetFacade;
+
 
 
     /**
@@ -270,48 +274,6 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         return res;
     }
 
-    /**
-     *  仅获取缺陷总揽提示信息
-     *
-     * @param analyzeRunVO
-     * @return
-     */
-    public List<MsgDTO> getMsgByBehospitalCode(AnalyzeRunVO analyzeRunVO) {
-        // 获取病历信息
-        BehospitalInfo behospitalInfo = this.getOne(new QueryWrapper<BehospitalInfo>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", analyzeRunVO.getHospitalId())
-                .eq("behospital_code", analyzeRunVO.getBehospitalCode()), false
-        );
-        if (null == behospitalInfo) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历不存在或已删除!");
-        }
-        // 获取质控条目
-        AnalyzeVO analyzeVO = new AnalyzeVO();
-        BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
-        List<QcCasesEntryDTO> qcCasesEntryDTOList = qcCasesEntryFacade.getQcCasesEntry(analyzeVO);
-        if (ListUtil.isEmpty(qcCasesEntryDTOList)) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历无关联的质控条目!");
-        }
-
-        List<MsgDTO> msgDTOList = getMsg(analyzeVO);
-            if (ListUtil.isNotEmpty(msgDTOList)) {
-                // 从qc_question_info的cases_entry_ids获取
-                Map<String, Object> paramMap = new HashMap<>();
-                paramMap.put("hospitalId",  analyzeRunVO.getHospitalId());
-                paramMap.put("casesEntryIds", msgDTOList.stream().map(r -> r.getCasesEntryId()).collect(Collectors.toList()));
-                Map<Long, List<QuestionEntryDTO>> quesEntryMap = qcQuestionFacade.getByCaseEntryIdsFac(paramMap);
-                for (MsgDTO msgDTO : msgDTOList) {
-                    if (quesEntryMap.get(msgDTO.getCasesEntryId()) != null) {
-                        msgDTO.setPageKeyList(quesEntryMap.get(msgDTO.getCasesEntryId())
-                                .stream().map(r -> r.getId()).collect(Collectors.toList()));
-                    }
-                }
-            }
-        return msgDTOList;
-    }
-
-
     /**
      * 处理数据(公共方法)
      *
@@ -950,9 +912,14 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
 
         // 病案首页
-        if (homePage != null) {
+        //义乌数据回来还要处理
+        if(analyzeVO.getHospitalId()==5 && ListUtil.isNotEmpty(recMap.get("病案首页"))){
+            addDataWithInnerKey("病案首页", recMap, medrecVoList);
+        }else {
+            if(homePage != null){
             addDataWithFirstPage("病案首页", homePage, medrecVoList, dicMap,
                     homePageList, homeOperationInfoList);
+             }
         }
 
         queryVo.setMedrec(medrecVoList);
@@ -974,7 +941,6 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         analyzeVO.setHospitalId(hospitalId);
 
         // 处理公共数据
-
             QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
         queryVo.setUseCrfCache(analyzeVO.isUseCrfCache());
         //  调用质控接口
@@ -1566,23 +1532,115 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     /**
      * 评分api
      *
-     * @param analyzeApiVO
+     * @param analyzeRunVO
      * @return
      */
-    public Map<String, Object> analyzeApi(AnalyzeApiVO analyzeApiVO) {
+    public Map<String, Object> analyzeApi(AnalyzeRunVO analyzeRunVO) {
+        Map<String, Object> resMapData = new HashMap<>(); // 返回结果
         AnalyzeVO analyzeVO = new AnalyzeVO();
-        BeanUtil.copyProperties(analyzeApiVO, analyzeVO);
-        // 评分
-        analyze(analyzeVO);
-        // 获取结果
-        GetDetailVO getDetailVO = new GetDetailVO();
-        getDetailVO.setHospitalId(analyzeApiVO.getHospitalId());
-        getDetailVO.setBehospitalCode(analyzeApiVO.getBehospitalCode());
-        getDetailVO.setNeedGroup(analyzeApiVO.getNeedGroup());
-        return getByBehospitalCodeApi(getDetailVO);
+        BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
+        Long hospitalId = analyzeVO.getHospitalId();
+        // 获取病历信息
+        BehospitalInfo behospitalInfo = this.getOne(new QueryWrapper<BehospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", analyzeRunVO.getHospitalId())
+                .eq("behospital_code", analyzeRunVO.getBehospitalCode()), false
+        );
+        if (null == behospitalInfo) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历不存在或已删除!");
+        }
+        // 处理公共数据
+        QueryVo queryVo = dealCommonData(hospitalId, analyzeVO);
+        //  调用质控接口
+        Response<OutputInfo> response = qcServiceClient.extract(queryVo);
+        if (response == null || response.getData() == null) {
+            if (null == response) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR, "远程质控接口没有返回数据!【" + analyzeVO.getBehospitalCode() + "】");
+            } else {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "远程质控接口没有返回数据!【" + analyzeVO.getBehospitalCode() + "】错误原因:" + response.getMsg());
+            }
+        }
+        OutputInfo outputInfo = response.getData();
+        // 质控编码列表
+        List<String> codeList = new ArrayList<>();
+        // code和info的映射map
+        Map<String, String> codeToInfoMap = new LinkedHashMap<>();
+        // 对codeList 和 codeToInfoMap进行赋值
+        setCodeData(outputInfo, codeList, codeToInfoMap);
+        AlgorithmDTO algorithmDTO = new AlgorithmDTO();
+        // 如果是1,说明已是终末质控,不再保存质控结果数据;如果是0,则保存质控结果数据
+        if ("0".equals(analyzeRunVO.getIsPlacefile())) {
+            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+            algorithmDTO = (AlgorithmDTO) resMap.get("algorithmDTO");
+        }else{
+            //终末质控不保存数据
+            Map<String, Object> resMap = calScore(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+            algorithmDTO = (AlgorithmDTO) resMap.get("algorithmDTO");
+        }
+
+        List<MsgDTO> msgDTOList = getMsg(analyzeVO);
+        if (ListUtil.isNotEmpty(msgDTOList)) {
+            // 从qc_question_info的cases_entry_ids获取
+            Map<String, Object> paramMap = new HashMap<>();
+            paramMap.put("hospitalId",  analyzeRunVO.getHospitalId());
+            paramMap.put("casesEntryIds", msgDTOList.stream().map(r -> r.getCasesEntryId()).collect(Collectors.toList()));
+            Map<Long, List<QuestionEntryDTO>> quesEntryMap = qcQuestionFacade.getByCaseEntryIdsFac(paramMap);
+            for (MsgDTO msgDTO : msgDTOList) {
+                if (quesEntryMap.get(msgDTO.getCasesEntryId()) != null) {
+                    msgDTO.setPageKeyList(quesEntryMap.get(msgDTO.getCasesEntryId())
+                            .stream().map(r -> r.getId()).collect(Collectors.toList()));
+                }
+            }
+        }
+
+        //返回参数组装
+        BigDecimal bigDecimal = new BigDecimal(0);
+        BigDecimal res = new BigDecimal(120);
+        BigDecimal resPr = new BigDecimal(100);
+        String reNum = "0";
+        SysHospitalSet sysHospitalSet
+                = sysHospitalSetFacade.getOne(new QueryWrapper<SysHospitalSet>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", analyzeRunVO.getHospitalId())
+                , false);
+        if (null != sysHospitalSet && sysHospitalSet.getValue().equals("1")) {
+            //百分制
+            reNum = "1";
+        }
+        QcResultApiDTO qcResultApiDTO = new QcResultApiDTO();
+        if(StringUtils.isNotEmpty(algorithmDTO.getLevel()) && algorithmDTO.getScore()!=null && msgDTOList != null){
+            if("1".equals(reNum)) {
+                bigDecimal = resPr.subtract(algorithmDTO.getScore());
+            }else if("0".equals(reNum)){
+                bigDecimal = res.subtract(algorithmDTO.getScore().multiply(new BigDecimal(120))
+                        .divide(new BigDecimal(100), 1, RoundingMode.HALF_UP));
+            }
+
+        //缺陷总数
+        Long num = msgDTOList
+                .stream()
+                .filter(Objects::nonNull)
+                .count();
+            qcResultApiDTO.setScoreRes(algorithmDTO.getScore());
+            qcResultApiDTO.setLevel(algorithmDTO.getLevel());
+            qcResultApiDTO.setNum(num);
+            qcResultApiDTO.setNumScore(bigDecimal);
+            resMapData.put("result", qcResultApiDTO);
+            List<MsgApiDTO> msgApiDTOList = BeanUtil.listCopyTo(msgDTOList, MsgApiDTO.class);
+            if (analyzeRunVO.getNeedGroup() == 0) {
+                resMapData.put("details", msgApiDTOList);
+            } else {
+                Map<String, List<MsgApiDTO>> msgMap = EntityUtil.makeEntityListMap(msgApiDTOList, "modelName");
+                resMapData.put("details", msgMap);
+            }
+        };
+        return resMapData;
     }
 
 
+
+
     /**
      * 获取明细api
      *
@@ -1668,31 +1726,62 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @return
      */
     public AnalyzeRunDTO analyzeRun(AnalyzeRunVO analyzeRunVO) {
-        List<MsgDTO> msgDTOList = this.getMsgByBehospitalCode(analyzeRunVO);
+        Long modeId = analyzeRunVO.getModeId();
+        analyzeRunVO.setModeId(null);
+        AnalyzeVO analyzeVO = new AnalyzeVO();
+        BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
+        Long hospitalId = analyzeVO.getHospitalId();
+
+        // 处理公共数据
+            QueryVo queryVo = dealCommonData(hospitalId, analyzeVO);
+        //  调用质控接口
+        Response<OutputInfo> response = qcServiceClient.extract(queryVo);
+        if (response == null || response.getData() == null) {
+            if (null == response) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR, "远程质控接口没有返回数据!【" + analyzeVO.getBehospitalCode() + "】");
+            } else {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "远程质控接口没有返回数据!【" + analyzeVO.getBehospitalCode() + "】错误原因:" + response.getMsg());
+            }
+        }
+        OutputInfo outputInfo = response.getData();
+        // 质控编码列表
+        List<String> codeList = new ArrayList<>();
+        // code和info的映射map
+        Map<String, String> codeToInfoMap = new LinkedHashMap<>();
+        // 对codeList 和 codeToInfoMap进行赋值
+        setCodeData(outputInfo, codeList, codeToInfoMap);
+
+        // 如果是1,说明已是终末质控,不再保存质控结果数据;如果是0,则保存质控结果数据
+        if ("0".equals(analyzeRunVO.getIsPlacefile())) {
+            // 计算分值并保存结果至数据库
+            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+        }
+
+        // 返回缺陷提示信息
+        List<MsgDTO> msgDTOList = new ArrayList<>();
+        if (ListUtil.isNotEmpty(codeList)) {
+            AnalyzeCodeVO analyzeCodeVO = new AnalyzeCodeVO();
+            analyzeCodeVO.setCodeList(codeList);
+            analyzeCodeVO.setHospitalId(hospitalId);
+            analyzeCodeVO.setModeId(modeId);
+            // 获取缺陷条目信息
+            msgDTOList = getMsgByEntryCode(analyzeCodeVO);
+            // 设置info信息
+            if (codeToInfoMap != null && !codeToInfoMap.isEmpty()) {
+                for (MsgDTO msgDTO : msgDTOList) {
+                    String info = codeToInfoMap.get(msgDTO.getCode());
+                    if (StringUtil.isNotBlank(info)) {
+                        msgDTO.setInfo(info);
+                    }
+                }
+            }
+        }
+
         //返回参数组装
         AnalyzeRunDTO analyzeRunDTO = new AnalyzeRunDTO();
-        //缺陷总扣分
-        BigDecimal numScore = msgDTOList
-                .stream()
-                .map(MsgDTO::getScore)
-                .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-        //缺陷总数
-        Long num = msgDTOList
-                .stream()
-                .filter(Objects::nonNull)
-                .count();
-        analyzeRunDTO.setNum(num);
-        analyzeRunDTO.setNumScore(numScore);
-        QcresultInfo qcresultInfo = qcresultInfoFacade.getOne(new QueryWrapper<QcresultInfo>()
-                .eq("behospital_code", analyzeRunVO.getBehospitalCode())
-                .eq("hospital_id", analyzeRunVO.getHospitalId())
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .select("behospital_code", "level", "score_res"));
-        BigDecimal bigDecimal = new BigDecimal(0);
-        if(null != qcresultInfo){
-            analyzeRunDTO.setLevel(qcresultInfo.getLevel()==null?"":qcresultInfo.getLevel());
-            analyzeRunDTO.setScoreRes(qcresultInfo.getScoreRes() ==null ? bigDecimal : qcresultInfo.getScoreRes());
-        }
+        // analyzeRunDTO.setScoreRes(algorithmDTO.getScore());
+        // analyzeRunDTO.setLevel(algorithmDTO.getLevel());
         analyzeRunDTO.setMsgDTOList(msgDTOList);
         return analyzeRunDTO;
     }

+ 1 - 0
src/main/java/com/diagbot/facade/data/ColumnFacade.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.OutputInfo;
 import com.diagbot.dto.Response;
 import com.diagbot.enums.CacheKeyEnum;
 import com.diagbot.facade.QcClientFacade;
+import com.diagbot.facade.str.*;
 import com.diagbot.service.impl.ColumnServiceImpl;
 import com.diagbot.vo.QueryVo;
 import lombok.extern.slf4j.Slf4j;

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrAdmissionNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrAdmissionNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrAdmissionNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrAdmissionNoteVO;
+import com.diagbot.vo.str.StrAdmissionNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strAdmissionNoteServiceImpl")
+    private StrAdmissionNoteServiceImpl strAdmissionNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -84,4 +95,58 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
         return flag;
     }
 
+    public RespDTO execDealData(List<StrAdmissionNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrAdmissionNoteVO strAdmissionNoteVO:list) {
+                if("".equals(strAdmissionNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strAdmissionNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strAdmissionNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrAdmissionNote> strAdmissionNoteList=Lists.newArrayList();
+            strAdmissionNoteList=BeanUtil.listCopyTo(list,StrAdmissionNote.class);
+            execute(strAdmissionNoteList);
+
+            return RespDTO.onSuc(strAdmissionNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrAdmissionNote> list){
+        try {
+            List<StrAdmissionNote> addE = Lists.newLinkedList();
+            List<StrAdmissionNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrAdmissionNote strAdmissionNote = this.getOne(new QueryWrapper<StrAdmissionNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strAdmissionNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strAdmissionNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
+
 }

+ 81 - 1
src/main/java/com/diagbot/facade/data/AStrBloodResultFacade.java

@@ -1,25 +1,41 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrBloodResult;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrBloodResultServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrBloodResultVO;
+import com.diagbot.vo.str.StrBloodResultVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @Description:输血后效果评价-业务类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
 @Component
 public class AStrBloodResultFacade extends StrBloodResultServiceImpl {
+
+    @Autowired
+    @Qualifier("strBloodResultServiceImpl")
+    private StrBloodResultServiceImpl strBloodResultService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -68,6 +84,11 @@ public class AStrBloodResultFacade extends StrBloodResultServiceImpl {
 
     }
 
+    /**
+     * @Description: 是否存在
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
     public Boolean isExist(StrBloodResult strBloodResult){
         Boolean flag=true;
         int count = this.baseMapper.selectCount(new QueryWrapper<StrBloodResult>()
@@ -79,4 +100,63 @@ public class AStrBloodResultFacade extends StrBloodResultServiceImpl {
         }
         return flag;
     }
+
+    /**
+     * @Description:数据处理
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrBloodResultVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrBloodResultVO strBloodResultVO:list) {
+                if("".equals(strBloodResultVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strBloodResultVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strBloodResultVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrBloodResult> strBloodResultList= Lists.newArrayList();
+            strBloodResultList= BeanUtil.listCopyTo(list,StrBloodResult.class);
+            execute(strBloodResultList);
+
+            return RespDTO.onSuc(strBloodResultList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrBloodResult> list){
+        try {
+            List<StrBloodResult> addE = Lists.newLinkedList();
+            List<StrBloodResult> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrBloodResult strBloodResult = this.getOne(new QueryWrapper<StrBloodResult>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strBloodResult != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strBloodResultService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血后效果评价","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 71 - 1
src/main/java/com/diagbot/facade/data/AStrBloodTransfusionFacade.java

@@ -1,25 +1,41 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrBloodTransfusion;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrBloodTransfusionServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrBloodTransfusionVO;
+import com.diagbot.vo.str.StrBloodTransfusionVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @Description:输血/血制品病程记录-业务类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
 @Component
 public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
+
+    @Autowired
+    @Qualifier("strBloodTransfusionServiceImpl")
+    private StrBloodTransfusionServiceImpl strBloodTransfusionService;
     @Autowired
     private ColumnFacade columnFacade;
 
@@ -85,4 +101,58 @@ public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrBloodTransfusionVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrBloodTransfusionVO strBloodTransfusionVO:list) {
+                if("".equals(strBloodTransfusionVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strBloodTransfusionVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strBloodTransfusionVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrBloodTransfusion> strBloodTransfusionList= Lists.newArrayList();
+            strBloodTransfusionList= BeanUtil.listCopyTo(list,StrBloodTransfusion.class);
+            execute(strBloodTransfusionList);
+
+            return RespDTO.onSuc(strBloodTransfusionList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrBloodTransfusion> list){
+        try {
+            List<StrBloodTransfusion> addE = Lists.newLinkedList();
+            List<StrBloodTransfusion> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrBloodTransfusion strBloodTransfusion = this.getOne(new QueryWrapper<StrBloodTransfusion>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strBloodTransfusion != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strBloodTransfusionService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrConsultationApplyFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrConsultationApply;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrConsultationApplyServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrConsultationApplyVO;
+import com.diagbot.vo.str.StrConsultationApplyVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrConsultationApplyFacade extends StrConsultationApplyServiceImpl {
+
+    @Autowired
+    @Qualifier("strConsultationApplyServiceImpl")
+    private StrConsultationApplyServiceImpl strConsultationApplyService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -86,4 +97,58 @@ public class AStrConsultationApplyFacade extends StrConsultationApplyServiceImpl
         return flag;
     }
 
+    public RespDTO execDealData(List<StrConsultationApplyVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrConsultationApplyVO strConsultationApplyVO:list) {
+                if("".equals(strConsultationApplyVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strConsultationApplyVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strConsultationApplyVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrConsultationApply> strConsultationApplyList= Lists.newArrayList();
+            strConsultationApplyList= BeanUtil.listCopyTo(list,StrConsultationApply.class);
+            execute(strConsultationApplyList);
+
+            return RespDTO.onSuc(strConsultationApplyList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrConsultationApply> list){
+        try {
+            List<StrConsultationApply> addE = Lists.newLinkedList();
+            List<StrConsultationApply> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrConsultationApply strConsultationApply = this.getOne(new QueryWrapper<StrConsultationApply>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strConsultationApply != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strConsultationApplyService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
+
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrConsultationNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrConsultationNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrConsultationNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrConsultationNoteVO;
+import com.diagbot.vo.str.StrConsultationNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrConsultationNoteFacade extends StrConsultationNoteServiceImpl {
 
+    @Autowired
+    @Qualifier("strConsultationNoteServiceImpl")
+    private StrConsultationNoteServiceImpl strConsultationNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -88,4 +98,58 @@ public class AStrConsultationNoteFacade extends StrConsultationNoteServiceImpl {
         return flag;
     }
 
+    public RespDTO execDealData(List<StrConsultationNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrConsultationNoteVO strConsultationNoteVO:list) {
+                if("".equals(strConsultationNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strConsultationNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strConsultationNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrConsultationNote> strConsultationNoteList= Lists.newArrayList();
+            strConsultationNoteList= BeanUtil.listCopyTo(list,StrConsultationNote.class);
+            execute(strConsultationNoteList);
+
+            return RespDTO.onSuc(strConsultationNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrConsultationNote> list){
+        try {
+            List<StrConsultationNote> addE = Lists.newLinkedList();
+            List<StrConsultationNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrConsultationNote strConsultationNote = this.getOne(new QueryWrapper<StrConsultationNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strConsultationNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strConsultationNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
+
 }

+ 66 - 5
src/main/java/com/diagbot/facade/data/AStrConsultationRecordFacade.java

@@ -1,19 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrConsultationRecord;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrConsultationRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.AStrConsultationRecordVO;
-import com.diagbot.vo.data.AStrConsultationNoteVO;
-import com.diagbot.vo.data.AStrConsultationResultVO;
+import com.diagbot.vo.str.StrConsultationRecordVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -22,7 +27,9 @@ import java.util.Map;
 @Component
 public class AStrConsultationRecordFacade extends StrConsultationRecordServiceImpl {
 
-
+    @Autowired
+    @Qualifier("strConsultationRecordServiceImpl")
+    private StrConsultationRecordServiceImpl strConsultationRecordService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -37,7 +44,7 @@ public class AStrConsultationRecordFacade extends StrConsultationRecordServiceIm
         Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
         Boolean flag=columnFacade.createColumn(columnMap,"strConsultationRecord");
 
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        //Map<String, String> map=columnFacade.getColumn("strConsultationRecord");
         if(!flag){
             return;
         }
@@ -89,4 +96,58 @@ public class AStrConsultationRecordFacade extends StrConsultationRecordServiceIm
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrConsultationRecordVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrConsultationRecordVO strConsultationRecordVO:list) {
+                if("".equals(strConsultationRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strConsultationRecordVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strConsultationRecordVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrConsultationRecord> strConsultationRecordList= Lists.newArrayList();
+            strConsultationRecordList= BeanUtil.listCopyTo(list,StrConsultationRecord.class);
+            execute(strConsultationRecordList);
+
+            return RespDTO.onSuc(strConsultationRecordList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrConsultationRecord> list){
+        try {
+            List<StrConsultationRecord> addE = Lists.newLinkedList();
+            List<StrConsultationRecord> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrConsultationRecord strConsultationRecord = this.getOne(new QueryWrapper<StrConsultationRecord>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strConsultationRecord != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strConsultationRecordService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 70 - 1
src/main/java/com/diagbot/facade/data/AStrConsultationResultFacade.java

@@ -1,26 +1,41 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrConsultationResult;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrConsultationResultServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrConsultationResultVO;
+import com.diagbot.vo.str.StrConsultationResultVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @Description:会诊结果单-业务类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
 @Component
 public class AStrConsultationResultFacade extends StrConsultationResultServiceImpl {
 
+    @Autowired
+    @Qualifier("strConsultationResultServiceImpl")
+    private StrConsultationResultServiceImpl strConsultationResultService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -87,4 +102,58 @@ public class AStrConsultationResultFacade extends StrConsultationResultServiceIm
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrConsultationResultVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrConsultationResultVO strConsultationResultVO:list) {
+                if("".equals(strConsultationResultVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strConsultationResultVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strConsultationResultVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrConsultationResult> strConsultationResultList= Lists.newArrayList();
+            strConsultationResultList= BeanUtil.listCopyTo(list,StrConsultationResult.class);
+            execute(strConsultationResultList);
+
+            return RespDTO.onSuc(strConsultationResultList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrConsultationResult> list){
+        try {
+            List<StrConsultationResult> addE = Lists.newLinkedList();
+            List<StrConsultationResult> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrConsultationResult strConsultationResult = this.getOne(new QueryWrapper<StrConsultationResult>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strConsultationResult != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strConsultationResultService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊结果单","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrCrisisNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrCrisisNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrCrisisNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrCrisisNoteVO;
+import com.diagbot.vo.str.StrCrisisNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrCrisisNoteFacade extends StrCrisisNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strCrisisNoteServiceImpl")
+    private StrCrisisNoteServiceImpl strCrisisNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -82,4 +93,58 @@ public class AStrCrisisNoteFacade extends StrCrisisNoteServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrCrisisNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrCrisisNoteVO strCrisisNoteVO:list) {
+                if("".equals(strCrisisNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strCrisisNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strCrisisNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrCrisisNote> strCrisisNoteList= Lists.newArrayList();
+            strCrisisNoteList= BeanUtil.listCopyTo(list,StrCrisisNote.class);
+            execute(strCrisisNoteList);
+
+            return RespDTO.onSuc(strCrisisNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrCrisisNote> list){
+        try {
+            List<StrCrisisNote> addE = Lists.newLinkedList();
+            List<StrCrisisNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrCrisisNote strCrisisNote = this.getOne(new QueryWrapper<StrCrisisNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strCrisisNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strCrisisNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-危急值记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrDeathDiscussionFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrDeathDiscussion;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrDeathDiscussionServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrDeathDiscussionVO;
+import com.diagbot.vo.str.StrDeathDiscussionVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,9 @@ import java.util.Map;
 
 @Component
 public class AStrDeathDiscussionFacade extends StrDeathDiscussionServiceImpl {
+    @Autowired
+    @Qualifier("strDeathDiscussionServiceImpl")
+    private StrDeathDiscussionServiceImpl strDeathDiscussionService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -85,4 +95,58 @@ public class AStrDeathDiscussionFacade extends StrDeathDiscussionServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrDeathDiscussionVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrDeathDiscussionVO strDeathDiscussionVO:list) {
+                if("".equals(strDeathDiscussionVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strDeathDiscussionVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strDeathDiscussionVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrDeathDiscussion> strDeathDiscussionList= Lists.newArrayList();
+            strDeathDiscussionList= BeanUtil.listCopyTo(list,StrDeathDiscussion.class);
+            execute(strDeathDiscussionList);
+
+            return RespDTO.onSuc(strDeathDiscussionList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrDeathDiscussion> list){
+        try {
+            List<StrDeathDiscussion> addE = Lists.newLinkedList();
+            List<StrDeathDiscussion> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrDeathDiscussion strDeathDiscussion = this.getOne(new QueryWrapper<StrDeathDiscussion>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strDeathDiscussion != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strDeathDiscussionService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡病例讨论记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrDeathNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrDeathNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrDeathNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrDeathNoteVO;
+import com.diagbot.vo.str.StrDeathNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrDeathNoteFacade extends StrDeathNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strDeathNoteServiceImpl")
+    private StrDeathNoteServiceImpl strDeathNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -85,4 +96,58 @@ public class AStrDeathNoteFacade extends StrDeathNoteServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrDeathNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrDeathNoteVO strDeathNoteVO:list) {
+                if("".equals(strDeathNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strDeathNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strDeathNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrDeathNote> strDeathNoteList= Lists.newArrayList();
+            strDeathNoteList= BeanUtil.listCopyTo(list,StrDeathNote.class);
+            execute(strDeathNoteList);
+
+            return RespDTO.onSuc(strDeathNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrDeathNote> list){
+        try {
+            List<StrDeathNote> addE = Lists.newLinkedList();
+            List<StrDeathNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrDeathNote strDeathNote = this.getOne(new QueryWrapper<StrDeathNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strDeathNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strDeathNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrDifficultCaseFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrDifficultCase;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrDifficultCaseServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrDifficultCaseVO;
+import com.diagbot.vo.str.StrDifficultCaseVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrDifficultCaseFacade extends StrDifficultCaseServiceImpl{
+
+    @Autowired
+    @Qualifier("strDifficultCaseServiceImpl")
+    private StrDifficultCaseServiceImpl strDifficultCaseService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -82,4 +93,58 @@ public class AStrDifficultCaseFacade extends StrDifficultCaseServiceImpl{
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrDifficultCaseVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrDifficultCaseVO strDifficultCaseVO:list) {
+                if("".equals(strDifficultCaseVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strDifficultCaseVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strDifficultCaseVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrDifficultCase> strDifficultCaseList= Lists.newArrayList();
+            strDifficultCaseList= BeanUtil.listCopyTo(list,StrDifficultCase.class);
+            execute(strDifficultCaseList);
+
+            return RespDTO.onSuc(strDifficultCaseList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrDifficultCase> list){
+        try {
+            List<StrDifficultCase> addE = Lists.newLinkedList();
+            List<StrDifficultCase> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrDifficultCase strDifficultCase = this.getOne(new QueryWrapper<StrDifficultCase>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strDifficultCase != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strDifficultCaseService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrFirstRecordFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrFirstRecord;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrFirstRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrFirstRecordVO;
+import com.diagbot.vo.str.StrFirstRecordVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrFirstRecordFacade extends StrFirstRecordServiceImpl {
 
+    @Autowired
+    @Qualifier("strFirstRecordServiceImpl")
+    private StrFirstRecordServiceImpl strFirstRecordService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -83,4 +93,58 @@ public class AStrFirstRecordFacade extends StrFirstRecordServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrFirstRecordVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrFirstRecordVO strFirstRecordVO:list) {
+                if("".equals(strFirstRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strFirstRecordVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strFirstRecordVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrFirstRecord> strFirstRecordList= Lists.newArrayList();
+            strFirstRecordList= BeanUtil.listCopyTo(list,StrFirstRecord.class);
+            execute(strFirstRecordList);
+
+            return RespDTO.onSuc(strFirstRecordList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrFirstRecord> list){
+        try {
+            List<StrFirstRecord> addE = Lists.newLinkedList();
+            List<StrFirstRecord> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrFirstRecord strFirstRecord = this.getOne(new QueryWrapper<StrFirstRecord>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strFirstRecord != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strFirstRecordService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-首次病程录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrIllCriticallyFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrIllCritically;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrIllCriticallyServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrIllCriticallyVO;
+import com.diagbot.vo.str.StrIllCriticallyVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrIllCriticallyFacade extends StrIllCriticallyServiceImpl {
 
+    @Autowired
+    @Qualifier("strIllCriticallyServiceImpl")
+    private StrIllCriticallyServiceImpl strIllCriticallyService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -82,4 +92,58 @@ public class AStrIllCriticallyFacade extends StrIllCriticallyServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrIllCriticallyVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrIllCriticallyVO strIllCriticallyVO:list) {
+                if("".equals(strIllCriticallyVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strIllCriticallyVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strIllCriticallyVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrIllCritically> strIllCriticallyList= Lists.newArrayList();
+            strIllCriticallyList= BeanUtil.listCopyTo(list,StrIllCritically.class);
+            execute(strIllCriticallyList);
+
+            return RespDTO.onSuc(strIllCriticallyList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrIllCritically> list){
+        try {
+            List<StrIllCritically> addE = Lists.newLinkedList();
+            List<StrIllCritically> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrIllCritically strIllCritically = this.getOne(new QueryWrapper<StrIllCritically>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strIllCritically != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strIllCriticallyService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病危通知单","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrIllSeriouslFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrIllSeriousl;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrIllSeriouslServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrIllSeriouslVO;
+import com.diagbot.vo.str.StrIllSeriouslVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrIllSeriouslFacade extends StrIllSeriouslServiceImpl {
 
+    @Autowired
+    @Qualifier("strIllSeriouslServiceImpl")
+    private StrIllSeriouslServiceImpl strIllSeriouslService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -82,4 +92,58 @@ public class AStrIllSeriouslFacade extends StrIllSeriouslServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrIllSeriouslVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrIllSeriouslVO strIllSeriouslVO:list) {
+                if("".equals(strIllSeriouslVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strIllSeriouslVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strIllSeriouslVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrIllSeriousl> strIllSeriouslList= Lists.newArrayList();
+            strIllSeriouslList= BeanUtil.listCopyTo(list,StrIllSeriousl.class);
+            execute(strIllSeriouslList);
+
+            return RespDTO.onSuc(strIllSeriouslList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrIllSeriousl> list){
+        try {
+            List<StrIllSeriousl> addE = Lists.newLinkedList();
+            List<StrIllSeriousl> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrIllSeriousl strIllSeriousl = this.getOne(new QueryWrapper<StrIllSeriousl>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strIllSeriousl != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strIllSeriouslService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病重通知单","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrLeaveHospitalFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrLeaveHospital;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrLeaveHospitalServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrLeaveHospitalVO;
+import com.diagbot.vo.str.StrLeaveHospitalVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrLeaveHospitalFacade extends StrLeaveHospitalServiceImpl {
+
+    @Autowired
+    @Qualifier("strLeaveHospitalServiceImpl")
+    private StrLeaveHospitalServiceImpl strLeaveHospitalService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -85,4 +96,58 @@ public class AStrLeaveHospitalFacade extends StrLeaveHospitalServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrLeaveHospitalVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrLeaveHospitalVO strLeaveHospitalVO:list) {
+                if("".equals(strLeaveHospitalVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strLeaveHospitalVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strLeaveHospitalVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrLeaveHospital> strLeaveHospitalList= Lists.newArrayList();
+            strLeaveHospitalList= BeanUtil.listCopyTo(list,StrLeaveHospital.class);
+            execute(strLeaveHospitalList);
+
+            return RespDTO.onSuc(strLeaveHospitalList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrLeaveHospital> list){
+        try {
+            List<StrLeaveHospital> addE = Lists.newLinkedList();
+            List<StrLeaveHospital> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrLeaveHospital strLeaveHospital = this.getOne(new QueryWrapper<StrLeaveHospital>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strLeaveHospital != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strLeaveHospitalService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-出院小结","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrOperativeFirstRecord.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrOperativeFirstRecord;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrOperativeFirstRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrOperativeFirstRecordVO;
+import com.diagbot.vo.str.StrOperativeFirstRecordVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrOperativeFirstRecord extends StrOperativeFirstRecordServiceImpl {
 
+    @Autowired
+    @Qualifier("strOperativeFirstRecordServiceImpl")
+    private StrOperativeFirstRecordServiceImpl strOperativeFirstRecordService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -87,4 +97,58 @@ public class AStrOperativeFirstRecord extends StrOperativeFirstRecordServiceImpl
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrOperativeFirstRecordVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrOperativeFirstRecordVO strOperativeFirstRecordVO:list) {
+                if("".equals(strOperativeFirstRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strOperativeFirstRecordVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strOperativeFirstRecordVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrOperativeFirstRecord> strOperativeFirstRecordList= Lists.newArrayList();
+            strOperativeFirstRecordList= BeanUtil.listCopyTo(list,StrOperativeFirstRecord.class);
+            execute(strOperativeFirstRecordList);
+
+            return RespDTO.onSuc(strOperativeFirstRecordList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrOperativeFirstRecord> list){
+        try {
+            List<StrOperativeFirstRecord> addE = Lists.newLinkedList();
+            List<StrOperativeFirstRecord> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrOperativeFirstRecord strOperativeFirstRecord = this.getOne(new QueryWrapper<StrOperativeFirstRecord>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strOperativeFirstRecord != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strOperativeFirstRecordService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术后首程","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrOperativeNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrOperativeNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrOperativeNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrOperativeNoteVO;
+import com.diagbot.vo.str.StrOperativeNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrOperativeNoteFacade extends StrOperativeNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strOperativeNoteServiceImpl")
+    private StrOperativeNoteServiceImpl strOperativeNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -86,4 +97,58 @@ public class AStrOperativeNoteFacade extends StrOperativeNoteServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrOperativeNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrOperativeNoteVO strOperativeNoteVO:list) {
+                if("".equals(strOperativeNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strOperativeNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strOperativeNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrOperativeNote> strOperativeNoteList= Lists.newArrayList();
+            strOperativeNoteList= BeanUtil.listCopyTo(list,StrOperativeNote.class);
+            execute(strOperativeNoteList);
+
+            return RespDTO.onSuc(strOperativeNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrOperativeNote> list){
+        try {
+            List<StrOperativeNote> addE = Lists.newLinkedList();
+            List<StrOperativeNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrOperativeNote strOperativeNote = this.getOne(new QueryWrapper<StrOperativeNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strOperativeNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strOperativeNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-手术记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 2
src/main/java/com/diagbot/facade/data/AStrPeriodConclusionFacade.java

@@ -1,18 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrPeriodConclusion;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrPeriodConclusionServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrAdmissionNoteVO;
 import com.diagbot.vo.data.AStrPeriodConclusionVO;
+import com.diagbot.vo.str.StrPeriodConclusionVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -22,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrPeriodConclusionFacade extends StrPeriodConclusionServiceImpl {
 
+    @Autowired
+    @Qualifier("strPeriodConclusionServiceImpl")
+    private StrPeriodConclusionServiceImpl strPeriodConclusionService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -85,4 +94,58 @@ public class AStrPeriodConclusionFacade extends StrPeriodConclusionServiceImpl {
         return flag;
     }
 
+    public RespDTO execDealData(List<StrPeriodConclusionVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrPeriodConclusionVO strPeriodConclusionVO:list) {
+                if("".equals(strPeriodConclusionVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strPeriodConclusionVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strPeriodConclusionVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrPeriodConclusion> strPeriodConclusionList= Lists.newArrayList();
+            strPeriodConclusionList= BeanUtil.listCopyTo(list,StrPeriodConclusion.class);
+            execute(strPeriodConclusionList);
+
+            return RespDTO.onSuc(strPeriodConclusionList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrPeriodConclusion> list){
+        try {
+            List<StrPeriodConclusion> addE = Lists.newLinkedList();
+            List<StrPeriodConclusion> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrPeriodConclusion strPeriodConclusion = this.getOne(new QueryWrapper<StrPeriodConclusion>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strPeriodConclusion != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strPeriodConclusionService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-阶段小结","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
+
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrPreoperativeDiscussionFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrPreoperativeDiscussion;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrPreoperativeDiscussionServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrPreoperativeDiscussionVO;
+import com.diagbot.vo.str.StrPreoperativeDiscussionVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrPreoperativeDiscussionFacade extends StrPreoperativeDiscussionServiceImpl {
+
+    @Autowired
+    @Qualifier("strPreoperativeDiscussionServiceImpl")
+    private StrPreoperativeDiscussionServiceImpl strPreoperativeDiscussionService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -84,4 +95,58 @@ public class AStrPreoperativeDiscussionFacade extends StrPreoperativeDiscussionS
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrPreoperativeDiscussionVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrPreoperativeDiscussionVO strPreoperativeDiscussionVO:list) {
+                if("".equals(strPreoperativeDiscussionVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strPreoperativeDiscussionVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strPreoperativeDiscussionVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrPreoperativeDiscussion> strPreoperativeDiscussionList= Lists.newArrayList();
+            strPreoperativeDiscussionList= BeanUtil.listCopyTo(list,StrPreoperativeDiscussion.class);
+            execute(strPreoperativeDiscussionList);
+
+            return RespDTO.onSuc(strPreoperativeDiscussionList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrPreoperativeDiscussion> list){
+        try {
+            List<StrPreoperativeDiscussion> addE = Lists.newLinkedList();
+            List<StrPreoperativeDiscussion> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrPreoperativeDiscussion strPreoperativeDiscussion = this.getOne(new QueryWrapper<StrPreoperativeDiscussion>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strPreoperativeDiscussion != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strPreoperativeDiscussionService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术前讨论小结","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrRescueNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrRescueNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrRescueNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrRescueNoteVO;
+import com.diagbot.vo.str.StrRescueNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrRescueNoteFacade extends StrRescueNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strRescueNoteServiceImpl")
+    private StrRescueNoteServiceImpl strRescueNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -84,4 +95,58 @@ public class AStrRescueNoteFacade extends StrRescueNoteServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrRescueNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrRescueNoteVO strRescueNoteVO:list) {
+                if("".equals(strRescueNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strRescueNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strRescueNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrRescueNote> strRescueNoteList= Lists.newArrayList();
+            strRescueNoteList= BeanUtil.listCopyTo(list,StrRescueNote.class);
+            execute(strRescueNoteList);
+
+            return RespDTO.onSuc(strRescueNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrRescueNote> list){
+        try {
+            List<StrRescueNote> addE = Lists.newLinkedList();
+            List<StrRescueNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrRescueNote strRescueNote = this.getOne(new QueryWrapper<StrRescueNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strRescueNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strRescueNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-抢救记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrTransferInNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrTransferInNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrTransferInNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrTransferInNoteVO;
+import com.diagbot.vo.str.StrTransferInNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrTransferInNoteFacade extends StrTransferInNoteServiceImpl {
 
+    @Autowired
+    @Qualifier("strTransferInNoteServiceImpl")
+    private StrTransferInNoteServiceImpl strTransferInNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -84,4 +94,58 @@ public class AStrTransferInNoteFacade extends StrTransferInNoteServiceImpl {
         return flag;
     }
 
+    public RespDTO execDealData(List<StrTransferInNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrTransferInNoteVO strTransferInNoteVO:list) {
+                if("".equals(strTransferInNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strTransferInNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strTransferInNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrTransferInNote> strTransferInNoteList= Lists.newArrayList();
+            strTransferInNoteList= BeanUtil.listCopyTo(list,StrTransferInNote.class);
+            execute(strTransferInNoteList);
+
+            return RespDTO.onSuc(strTransferInNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrTransferInNote> list){
+        try {
+            List<StrTransferInNote> addE = Lists.newLinkedList();
+            List<StrTransferInNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrTransferInNote strTransferInNote = this.getOne(new QueryWrapper<StrTransferInNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strTransferInNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strTransferInNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转入记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
+
 }

+ 65 - 1
src/main/java/com/diagbot/facade/data/AStrTransferOutNoteFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrTransferOutNote;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrTransferOutNoteServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrTransferOutNoteVO;
+import com.diagbot.vo.str.StrTransferOutNoteVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.Map;
 @Component
 public class AStrTransferOutNoteFacade extends StrTransferOutNoteServiceImpl {
 
+    @Autowired
+    @Qualifier("strTransferOutNoteServiceImpl")
+    private StrTransferOutNoteServiceImpl strTransferOutNoteService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -82,4 +92,58 @@ public class AStrTransferOutNoteFacade extends StrTransferOutNoteServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrTransferOutNoteVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrTransferOutNoteVO strTransferOutNoteVO:list) {
+                if("".equals(strTransferOutNoteVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strTransferOutNoteVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strTransferOutNoteVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrTransferOutNote> strTransferOutNoteList= Lists.newArrayList();
+            strTransferOutNoteList= BeanUtil.listCopyTo(list,StrTransferOutNote.class);
+            execute(strTransferOutNoteList);
+
+            return RespDTO.onSuc(strTransferOutNoteList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrTransferOutNote> list){
+        try {
+            List<StrTransferOutNote> addE = Lists.newLinkedList();
+            List<StrTransferOutNote> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrTransferOutNote strTransferOutNote = this.getOne(new QueryWrapper<StrTransferOutNote>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strTransferOutNote != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strTransferOutNoteService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转出记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 66 - 1
src/main/java/com/diagbot/facade/data/AStrWardRecordFacade.java

@@ -1,17 +1,24 @@
-package com.diagbot.facade.data;
+package com.diagbot.facade.str;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrWardRecord;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrWardRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.vo.data.AStrWardRecordVO;
+import com.diagbot.vo.str.StrWardRecordVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -20,6 +27,10 @@ import java.util.Map;
 
 @Component
 public class AStrWardRecordFacade extends StrWardRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("strWardRecordServiceImpl")
+    private StrWardRecordServiceImpl strWardRecordService;
     @Autowired
     private ColumnFacade columnFacade;
     @Autowired
@@ -84,4 +95,58 @@ public class AStrWardRecordFacade extends StrWardRecordServiceImpl {
         }
         return flag;
     }
+
+    public RespDTO execDealData(List<StrWardRecordVO> list){
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (StrWardRecordVO strWardRecordVO:list) {
+                if("".equals(strWardRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入记录编号!");
+                }else if(strWardRecordVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(strWardRecordVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<StrWardRecord> strWardRecordList= Lists.newArrayList();
+            strWardRecordList= BeanUtil.listCopyTo(list,StrWardRecord.class);
+            execute(strWardRecordList);
+
+            return RespDTO.onSuc(strWardRecordList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<StrWardRecord> list){
+        try {
+            List<StrWardRecord> addE = Lists.newLinkedList();
+            List<StrWardRecord> updateE = Lists.newLinkedList();
+            if (list != null && list.size() > 0) {
+                list.stream().forEach(s -> {
+                    StrWardRecord strWardRecord = this.getOne(new QueryWrapper<StrWardRecord>()
+                            .eq("rec_id", s.getRecId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("behospital_code",s.getBehospitalCode()), false);
+                    if (strWardRecord != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                strWardRecordService.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-查房记录","", JSON.toJSONString(list),"",e.getMessage());
+        }
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/util/ColumnCacheUtil.java

@@ -1,6 +1,6 @@
 package com.diagbot.util;
 
-import com.diagbot.facade.data.*;
+import com.diagbot.facade.str.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;

+ 2 - 0
src/main/java/com/diagbot/vo/AnalyzeRunVO.java

@@ -22,4 +22,6 @@ public class AnalyzeRunVO {
     private Long modeId;
     // 归档字段
     private String isPlacefile = "0";
+
+    private Integer NeedGroup = 0;
 }

+ 253 - 0
src/main/java/com/diagbot/web/ADataStrController.java

@@ -0,0 +1,253 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.str.*;
+import com.diagbot.vo.str.*;
+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.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/qc/data_str")
+@Api(value = "对接接口API-结构化", tags = { "对接接口API-结构化" })
+public class ADataStrController {
+
+    @Autowired
+    private AStrAdmissionNoteFacade aStrAdmissionNoteFacade;
+
+    @Autowired
+    private AStrBloodResultFacade aStrBloodResultFacade;
+
+    @Autowired
+    private AStrBloodTransfusionFacade aStrBloodTransfusionFacade;
+
+    @Autowired
+    private AStrConsultationApplyFacade aStrConsultationApplyFacade;
+
+    @Autowired
+    private AStrCrisisNoteFacade aStrCrisisNoteFacade;
+
+    @Autowired
+    private AStrConsultationRecordFacade aStrConsultationRecordFacade;
+
+    @Autowired
+    private AStrConsultationResultFacade aStrConsultationResultFacade;
+
+    @Autowired
+    private AStrConsultationNoteFacade aStrConsultationNoteFacade;
+
+    @Autowired
+    private AStrFirstRecordFacade aStrFirstRecordFacade;
+
+    @Autowired
+    private AStrDifficultCaseFacade aStrDifficultCaseFacade;
+
+    @Autowired
+    private AStrDeathDiscussionFacade aStrDeathDiscussionFacade;
+
+    @Autowired
+    private AStrDeathNoteFacade aStrDeathNoteFacade;
+
+    @Autowired
+    private AStrOperativeFirstRecord aStrOperativeFirstRecordFacade;
+
+    @Autowired
+    private AStrLeaveHospitalFacade aStrLeaveHospitalFacade;
+
+    @Autowired
+    private AStrIllCriticallyFacade aStrIllCriticallyFacade;
+
+    @Autowired
+    private AStrIllSeriouslFacade aStrIllSeriouslFacade;
+
+
+    @Autowired
+    private AStrPreoperativeDiscussionFacade aStrPreoperativeDiscussionFacade;
+
+    @Autowired
+    private AStrPeriodConclusionFacade aStrPeriodConclusionFacade;
+
+    @Autowired
+    private AStrRescueNoteFacade aStrRescueNoteFacade;
+
+    @Autowired
+    private AStrTransferInNoteFacade aStrTransferInNoteFacade;
+
+    @Autowired
+    private AStrTransferOutNoteFacade aStrTransferOutNoteFacade;
+
+    @Autowired
+    private AStrWardRecordFacade aStrWardRecordFacade;
+
+    @Autowired
+    private AStrOperativeNoteFacade aStrOperativeNoteFacade;
+
+    @ApiOperation(value = "入院记录")
+    @PostMapping("/sendAdmissionNote")
+    @SysLogger("sendAdmissionNote")
+    public RespDTO sendAdmissionNote(@RequestBody List<StrAdmissionNoteVO> list){
+        return aStrAdmissionNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "输血后效果评价")
+    @PostMapping("/sendBloodResult")
+    @SysLogger("sendBloodResult")
+    public RespDTO sendBloodResult(@RequestBody List<StrBloodResultVO> list){
+        return aStrBloodResultFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "输血/血制品病程记录")
+    @PostMapping("/sendBloodTransfusion")
+    @SysLogger("sendBloodTransfusion")
+    public RespDTO sendBloodTransfusion(@RequestBody List<StrBloodTransfusionVO> list){
+        return aStrBloodTransfusionFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "会诊申请单")
+    @PostMapping("/sendConsultationApply")
+    @SysLogger("sendConsultationApply")
+    public RespDTO sendConsultationApply(@RequestBody List<StrConsultationApplyVO> list){
+        return aStrConsultationApplyFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "会诊单(申请和结果)")
+    @PostMapping("/sendConsultationNote")
+    @SysLogger("sendConsultationNote")
+    public RespDTO sendConsultationNote(@RequestBody List<StrConsultationNoteVO> list){
+        return aStrConsultationNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "会诊记录")
+    @PostMapping("/sendConsultationRecord")
+    @SysLogger("sendConsultationRecord")
+    public RespDTO sendConsultationRecord(@RequestBody List<StrConsultationRecordVO> list){
+        return aStrConsultationRecordFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "会诊结果单")
+    @PostMapping("/sendConsultationResult")
+    @SysLogger("sendConsultationResult")
+    public RespDTO sendConsultationResult(@RequestBody List<StrConsultationResultVO> list){
+        return aStrConsultationResultFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "危急值记录")
+    @PostMapping("/sendCrisisNote")
+    @SysLogger("sendCrisisNote")
+    public RespDTO sendCrisisNote(@RequestBody List<StrCrisisNoteVO> list){
+        return aStrCrisisNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "死亡病例讨论记录")
+    @PostMapping("/sendDeathDiscussion")
+    @SysLogger("sendDeathDiscussion")
+    public RespDTO sendDeathDiscussion(@RequestBody List<StrDeathDiscussionVO> list){
+        return aStrDeathDiscussionFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "死亡记录")
+    @PostMapping("/sendDeathNote")
+    @SysLogger("sendDeathNote")
+    public RespDTO sendDeathNote(@RequestBody List<StrDeathNoteVO> list){
+        return aStrDeathNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "疑难病例讨论记录")
+    @PostMapping("/sendDifficultCase")
+    @SysLogger("sendDifficultCase")
+    public RespDTO sendDifficultCase(@RequestBody List<StrDifficultCaseVO> list){
+        return aStrDifficultCaseFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "首次病程录")
+    @PostMapping("/sendFirstRecord")
+    @SysLogger("sendFirstRecord")
+    public RespDTO sendFirstRecord(@RequestBody List<StrFirstRecordVO> list){
+        return aStrFirstRecordFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "病危通知单")
+    @PostMapping("/sendIllCritically")
+    @SysLogger("sendIllCritically")
+    public RespDTO sendIllCritically(@RequestBody List<StrIllCriticallyVO> list){
+        return aStrIllCriticallyFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "病重通知单")
+    @PostMapping("/sendIllSeriousl")
+    @SysLogger("sendIllSeriousl")
+    public RespDTO sendIllSeriousl(@RequestBody List<StrIllSeriouslVO> list){
+        return aStrIllSeriouslFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "出院小结")
+    @PostMapping("/sendLeaveHospital")
+    @SysLogger("sendLeaveHospital")
+    public RespDTO sendLeaveHospital(@RequestBody List<StrLeaveHospitalVO> list){
+        return aStrLeaveHospitalFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "术后首程")
+    @PostMapping("/sendOperativeFirstRecord")
+    @SysLogger("sendOperativeFirstRecord")
+    public RespDTO sendOperativeFirstRecord(@RequestBody List<StrOperativeFirstRecordVO> list){
+        return aStrOperativeFirstRecordFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "手术记录")
+    @PostMapping("/sendOperativeNote")
+    @SysLogger("sendOperativeNote")
+    public RespDTO sendOperativeNote(@RequestBody List<StrOperativeNoteVO> list){
+        return aStrOperativeNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "查房记录")
+    @PostMapping("/sendWardRecord")
+    @SysLogger("sendWardRecord")
+    public RespDTO sendWardRecord(@RequestBody List<StrWardRecordVO> list){
+        return aStrWardRecordFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "转出记录")
+    @PostMapping("/sendTransferOutNote")
+    @SysLogger("sendTransferOutNote")
+    public RespDTO sendTransferOutNote(@RequestBody List<StrTransferOutNoteVO> list){
+        return aStrTransferOutNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "转入记录")
+    @PostMapping("/sendTransferInNote")
+    @SysLogger("sendTransferInNote")
+    public RespDTO sendTransferInNote(@RequestBody List<StrTransferInNoteVO> list){
+        return aStrTransferInNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "抢救记录")
+    @PostMapping("/sendRescueNote")
+    @SysLogger("sendRescueNote")
+    public RespDTO sendRescueNote(@RequestBody List<StrRescueNoteVO> list){
+        return aStrRescueNoteFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "阶段小结")
+    @PostMapping("/sendPeriodConclusion")
+    @SysLogger("sendPeriodConclusion")
+    public RespDTO sendPeriodConclusion(@RequestBody List<StrPeriodConclusionVO> list){
+        return aStrPeriodConclusionFacade.execDealData(list);
+    }
+
+    @ApiOperation(value = "术前讨论小结")
+    @PostMapping("/sendPreoperativeDiscussion")
+    @SysLogger("sendPreoperativeDiscussion")
+    public RespDTO sendPreoperativeDiscussion(@RequestBody List<StrPreoperativeDiscussionVO> list){
+        return aStrPreoperativeDiscussionFacade.execDealData(list);
+    }
+
+}

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

@@ -122,8 +122,8 @@ public class BehospitalInfoController {
     @SysLogger("analyze_api")
     @Transactional
     //    @ApiIgnore
-    public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
-        return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
+    public RespDTO<Map<String, Object> > analyzeApi(@RequestBody AnalyzeRunVO analyzeRunVO) {
+        return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeRunVO));
     }
 
 

+ 2 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -6431,6 +6431,8 @@
             AND (
             ( IFNULL( t2.newborn_day, '' ) != '' AND t2.newborn_day != '0' AND t2.newborn_day != '-'AND t2.newborn_day != '—' )
             OR ( IFNULL( t2.newborn_month, '' )!= '' AND t2.newborn_month != '0' AND t2.newborn_month != '-'AND t2.newborn_month != '—' )
+            ( IFNULL( t2.newborn_day, '' ) != '' AND t2.newborn_day != '0' AND t2.newborn_day != '-'AND t2.newborn_day != '—' )
+            OR ( IFNULL( t2.newborn_month, '' )!= '' AND t2.newborn_month != '0' AND t2.newborn_month != '-'AND t2.newborn_month != '—' )
             )
         </if>
         <if test="qcResultShortPageVO.leaveHosType != null and qcResultShortPageVO.leaveHosType ==1">