From c82e28156b9b0584ee9c2f6cf197015f7eb699bb Mon Sep 17 00:00:00 2001 From: leijx <1477272687@qq.com> Date: Mon, 22 Jun 2020 23:44:50 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A4=84=E7=90=86=E6=96=B0=E8=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E6=96=B9=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E8=80=81=E7=9A=84=E8=BF=98=E6=98=AF=E6=8C=89=E7=85=A7=E8=80=81?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E5=A4=84=E7=90=86=EF=BC=8C=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E6=96=B0=E7=9A=84=E6=96=B9=E5=BC=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=9B=202=E3=80=81=E4=BC=98=E5=8C=96pdf=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=81=E6=96=B0=E5=A2=9E=E6=A0=87=E8=AF=86?= =?UTF-8?q?=E3=80=81=E6=98=AF=E6=96=B0=E8=80=81=E6=95=B0=E6=8D=AE=EF=BC=9B?= =?UTF-8?q?=203=E3=80=81=E7=9F=A5=E6=83=85=E5=90=8C=E6=84=8F=E4=B8=8E?= =?UTF-8?q?=E7=9F=A5=E6=83=85=E6=96=87=E4=BB=B6=E5=90=88=E5=B9=B6=EF=BC=8C?= =?UTF-8?q?=E8=80=81=E6=95=B0=E6=8D=AE=E8=BF=98=E6=98=AF=E7=9F=A5=E6=83=85?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BD=9C=E5=BA=9F=EF=BC=8C=E6=96=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=90=88=E5=B9=B6=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ann/demo/entity/constant/AliasName.java | 2 +- .../ann/demo/entity/filing/ArchiveDetail.java | 1 + .../demo/entity/filing/dto/MessageDto.java | 3 + .../entity/interfaceEntity/MessageLog.java | 3 +- .../impl/HomepageDictionaryImpl.java | 144 +++++++++++++----- .../repository/ArchiveDetailRepository.java | 8 + .../demo/repository/MessageRepository.java | 2 +- .../com/ann/demo/service/AnalysisService.java | 4 +- .../demo/service/ArchiveDetailService.java | 6 + .../impl/ArchiveDetailServiceImpl.java | 15 ++ src/main/resources/application.yml | 36 ++--- 11 files changed, 161 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/ann/demo/entity/constant/AliasName.java b/src/main/java/com/ann/demo/entity/constant/AliasName.java index 3d77b8e..d9d8143 100644 --- a/src/main/java/com/ann/demo/entity/constant/AliasName.java +++ b/src/main/java/com/ann/demo/entity/constant/AliasName.java @@ -96,7 +96,7 @@ public class AliasName { NURSE_MAP.put("首次护理记录", "7"); NURSE_MAP.put("护理文书", "6"); NURSE_MAP.put("专科单护理", "24"); - NURSE_MAP.put("知情文件", "8"); + NURSE_MAP.put("知情文件", "20"); NURSE_MAP.put("体温单", "5"); NURSE_MAP.put("护理记录", "2"); NURSE_MAP.put("评估单", "4"); diff --git a/src/main/java/com/ann/demo/entity/filing/ArchiveDetail.java b/src/main/java/com/ann/demo/entity/filing/ArchiveDetail.java index 884d254..efd22df 100644 --- a/src/main/java/com/ann/demo/entity/filing/ArchiveDetail.java +++ b/src/main/java/com/ann/demo/entity/filing/ArchiveDetail.java @@ -40,6 +40,7 @@ public class ArchiveDetail { private String title; + // 0 使用 1是系统作废 2是老数据作废 3是新数据作废 88历史数据作废 private String flag = "0"; private String sys; diff --git a/src/main/java/com/ann/demo/entity/filing/dto/MessageDto.java b/src/main/java/com/ann/demo/entity/filing/dto/MessageDto.java index 1dc96b9..34fd137 100644 --- a/src/main/java/com/ann/demo/entity/filing/dto/MessageDto.java +++ b/src/main/java/com/ann/demo/entity/filing/dto/MessageDto.java @@ -58,6 +58,9 @@ public class MessageDto { //2019-12-10 新增一个提交时间 private Date commitTime; + //20200609 0是老数据 1是新数据 + private String isOld; + public MessageDto() { } diff --git a/src/main/java/com/ann/demo/entity/interfaceEntity/MessageLog.java b/src/main/java/com/ann/demo/entity/interfaceEntity/MessageLog.java index 27635d8..66cfb88 100644 --- a/src/main/java/com/ann/demo/entity/interfaceEntity/MessageLog.java +++ b/src/main/java/com/ann/demo/entity/interfaceEntity/MessageLog.java @@ -102,7 +102,7 @@ public class MessageLog { } - public void setValue(String outContent, Integer result, String outJson, Date xmlCreateTime, Long executionTime, Date endTime, String type) { + public void setValue(String outContent, Integer result, String outJson, Date xmlCreateTime, Long executionTime, Date endTime, String type,String remark) { this.outContent = outContent; this.result = result; this.outJson = outJson; @@ -110,6 +110,7 @@ public class MessageLog { this.executionTime = executionTime; this.endTime = endTime; this.type = type; + this.remark = remark; } public void setValue1(String outContent, Integer result, Long executionTime, Date endTime) { diff --git a/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java b/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java index 871cd44..655ed42 100644 --- a/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java +++ b/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.ann.demo.entity.constant.AliasName; import com.ann.demo.entity.constant.InterfaceName; +import com.ann.demo.entity.filing.ArchiveDetail; import com.ann.demo.entity.filing.MessageSubordinate; import com.ann.demo.entity.filing.dto.MessageDto; import com.ann.demo.entity.filing.dto.PatientMainDto; @@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.jws.WebService; import java.util.Date; +import java.util.Objects; /** * @Author: LeiJiaXin @@ -51,7 +53,7 @@ public class HomepageDictionaryImpl implements HomepageDictionary { // 1、定义变量 boolean flag = false; Integer result = 0; - String type = "", patientMainStr = null; + String type = "", patientMainStr = null,remark = null; ArchiveMaster archiveMaster ; long startTime = System.currentTimeMillis(); Date xmlCreateTime = null; @@ -63,7 +65,6 @@ public class HomepageDictionaryImpl implements HomepageDictionary { if (messageDto != null) { archiveMaster = archiveMasterRepository.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(),messageDto.getVisitId(),0); if(archiveMaster != null){ - // 区分类型 String reportType = messageDto.getType(); if (reportType != null) { @@ -81,46 +82,69 @@ public class HomepageDictionaryImpl implements HomepageDictionary { } messageDto.setType(type); } - // 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废 - messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-nurse-"+messageDto.getCommitTime()); - if(!(archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") || + if(! (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") || archiveMaster.getArchiveState().equals("复审退回") )){ - String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource()); - if(temp != null){ - messageLog.setRemark(temp); + String addFlag = messageDto.getAddFlag(); + if(Objects.equals(addFlag,"delete") || Objects.equals(addFlag,"update") || Objects.equals(addFlag,"insert")){ + if(Objects.equals(messageDto.getIsOld(),"0")){ + if(messageDto.getType().equals("20")){ + messageDto.setType("8"); + } + messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-nurse-"+messageDto.getCommitTime()); + remark = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource()); + + }else if(Objects.equals(messageDto.getIsOld(),"1")){ + ArchiveDetail archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); + if(archiveDetail == null && !Objects.equals(addFlag,"insert")){ + remark = messageDto.getSubType()+"没有生成对应的文件不能"+addFlag; + }else{ + if(Objects.equals(addFlag,"delete")){ + if(!archiveDetailService.delete(archiveDetail.getId())){ + remark = messageDto.getSubType()+"删除失败!"; + }else{ + remark = "ok"; + } + } + } + }else{ + remark = "数据有问题"; + } }else{ - patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue); - result = 1; - flag = true; + remark = "标识不包括insert/update/delete"; } + }else{ - messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收"); + remark = "该病历已"+archiveMaster.getArchiveState()+",不再接收"; } } // 保存消息从属表 xmlCreateTime = messageDto.getXmlCreateTime(); }else{ - messageLog.setRemark("没有入院消息。。"); + remark = "没有入院消息"; } } else { - messageLog.setRemark("传过来的消息无法解析。。"); + remark = "传过来的消息无法解析"; + } + + if(remark == null || remark.equals("ok") ){ + result = 1; + flag = true; + patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue); } // 4、判断是否成功 失败 的原因 我们插入报错 然后无法解析xml 传入参数为null - outContent = AnalysisService.getReturnResult(flag); + outContent = AnalysisService.getReturnResult(flag,remark); // 更新日志表 long endTime = System.currentTimeMillis(); - messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type); + messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type,remark); messageService.save(messageLog); - - if (flag) { + if( remark == null && flag){ messageSubordinateService.save(new MessageSubordinate(messageLog.getId(), patientMainStr, JSON.toJSONString(messageLog))); } - logger.info("-----------------------护理总时长:" + (endTime - startTime) + "-------------------------"); }catch (Exception e){ try { logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]); - return AnalysisService.getReturnResult(false); + return AnalysisService.getReturnResult(false,e.toString()); } catch (Exception e1) { logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e1,e1.getStackTrace()[0]); return outContent; @@ -136,7 +160,7 @@ public class HomepageDictionaryImpl implements HomepageDictionary { // 1、定义变量 boolean flag = false; Integer result = 0; - String type = "", patientMainStr = null; + String type = "", patientMainStr = null,remark = null; ArchiveMaster archiveMaster ; long startTime = System.currentTimeMillis(); Date xmlCreateTime = null; @@ -165,44 +189,84 @@ public class HomepageDictionaryImpl implements HomepageDictionary { } messageDto.setType(type); } - // 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废 - messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId() + "-doctor-" + messageDto.getCommitTime()); - if(!(archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") || + + if(! (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") || archiveMaster.getArchiveState().equals("复审退回") )){ - String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource()); - if (temp != null) { - messageLog.setRemark(temp); - } else { - result = 1; - flag = true; - patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue); + String addFlag = messageDto.getAddFlag(); + if(Objects.equals(addFlag,"delete") || Objects.equals(addFlag,"update") || Objects.equals(addFlag,"insert")){ + if(Objects.equals(messageDto.getIsOld(),"0")){ + messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-doctor-"+messageDto.getCommitTime()); + remark = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource()); + + }else if(Objects.equals(messageDto.getIsOld(),"1")){ + ArchiveDetail archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); + if(archiveDetail == null && !Objects.equals(addFlag,"insert")){ + remark = messageDto.getSubType()+"没有生成对应的文件不能"+addFlag; + }else{ + if(Objects.equals(addFlag,"delete")){ + if(!archiveDetailService.delete(archiveDetail.getId())){ + remark = messageDto.getSubType()+"删除失败!"; + }else{ + remark = "ok"; + } + } + } + }else{ + remark = "数据有问题"; + } + }else{ + remark = "标识不包括insert/update/delete"; } + }else{ - messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收"); + remark = "该病历已"+archiveMaster.getArchiveState()+",不再接收"; } + + // 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废 +// messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId() + "-doctor-" + messageDto.getCommitTime()); +// if((archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") || +// archiveMaster.getArchiveState().equals("复审退回") )){ +// String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource()); +// if (temp != null) { +// messageLog.setRemark(temp); +// } else { +// result = 1; +// flag = true; +// patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue); +// } +// messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收"); +// } +// else{ +// +// } } xmlCreateTime = messageDto.getXmlCreateTime(); }else{ - messageLog.setRemark("没有入院消息。。"); + remark = "没有入院消息。。"; } } else { - messageLog.setRemark("传过来的消息无法解析。。"); + remark = "传过来的消息无法解析。。"; + } + + if(remark == null || remark.equals("ok")){ + result = 1; + flag = true; + patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue); } + // 4、判断是否成功 失败 的原因 我们插入报错 然后无法解析xml 传入参数为null - outContent = AnalysisService.getReturnResult(flag); + outContent = AnalysisService.getReturnResult(flag,remark); // 更新日志表 long endTime = System.currentTimeMillis(); - messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type); + messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type,remark); messageService.save(messageLog); - - if (flag) { + if( remark == null && flag){ messageSubordinateService.save(new MessageSubordinate(messageLog.getId(), patientMainStr, JSON.toJSONString(messageLog))); } - logger.info("-----------------------医生总时长:" + (endTime - startTime) + "-------------------------"); }catch (Exception e){ try { logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]); - return AnalysisService.getReturnResult(false); + return AnalysisService.getReturnResult(false,e.toString()); } catch (Exception e1) { logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e1,e1.getStackTrace()[0]); } diff --git a/src/main/java/com/ann/demo/repository/ArchiveDetailRepository.java b/src/main/java/com/ann/demo/repository/ArchiveDetailRepository.java index c838dab..52276e8 100644 --- a/src/main/java/com/ann/demo/repository/ArchiveDetailRepository.java +++ b/src/main/java/com/ann/demo/repository/ArchiveDetailRepository.java @@ -36,6 +36,14 @@ public interface ArchiveDetailRepository extends JpaRepository { @Query("select o from MessageLog o ") public List findAllHaha(); - @Query(nativeQuery = true,value = " select id from archive_master where (inp_No = ?1 ) and (visit_id = ?2 ) ") + @Query(nativeQuery = true,value = " select id from archive_master where (inp_No = ?1 ) and (visit_id = ?2 ) and archiveState <> '作废' and is_valid = 0 ") public String getArchiveMasterId(String inpNo,String visitId); diff --git a/src/main/java/com/ann/demo/service/AnalysisService.java b/src/main/java/com/ann/demo/service/AnalysisService.java index fc98d89..59b7471 100644 --- a/src/main/java/com/ann/demo/service/AnalysisService.java +++ b/src/main/java/com/ann/demo/service/AnalysisService.java @@ -15,11 +15,11 @@ import org.springframework.stereotype.Component; @Component public class AnalysisService { - public static String getReturnResult(boolean resultCode) throws Exception { + public static String getReturnResult(boolean resultCode,String content) throws Exception { OutPara outPara = new OutPara(); if (!resultCode) { outPara.setRESULT_CODE(false); - outPara.setRESULT_CONTENT("失败"); + outPara.setRESULT_CONTENT(content); } else { outPara.setRESULT_CODE(true); outPara.setRESULT_CONTENT("成功"); diff --git a/src/main/java/com/ann/demo/service/ArchiveDetailService.java b/src/main/java/com/ann/demo/service/ArchiveDetailService.java index e98f1c7..b885013 100644 --- a/src/main/java/com/ann/demo/service/ArchiveDetailService.java +++ b/src/main/java/com/ann/demo/service/ArchiveDetailService.java @@ -1,5 +1,7 @@ package com.ann.demo.service; +import com.ann.demo.entity.filing.ArchiveDetail; + /** * @Author: LeiJiaXin * @Date: 2019/9/4 10:05 @@ -9,4 +11,8 @@ public interface ArchiveDetailService { // public String updateFlag(String applyId) throws Exception; String updateAllFlag(String applyId, String source) throws Exception; + + ArchiveDetail isExit(String id, String type, String source, String applyId); + + boolean delete(String id); } diff --git a/src/main/java/com/ann/demo/service/impl/ArchiveDetailServiceImpl.java b/src/main/java/com/ann/demo/service/impl/ArchiveDetailServiceImpl.java index fd8dcf9..1a278ba 100644 --- a/src/main/java/com/ann/demo/service/impl/ArchiveDetailServiceImpl.java +++ b/src/main/java/com/ann/demo/service/impl/ArchiveDetailServiceImpl.java @@ -1,5 +1,6 @@ package com.ann.demo.service.impl; +import com.ann.demo.entity.filing.ArchiveDetail; import com.ann.demo.entity.interfaceEntity.ArchiveMaster; import com.ann.demo.repository.ArchiveDetailRepository; import com.ann.demo.repository.ArchiveMasterRepository; @@ -69,4 +70,18 @@ public class ArchiveDetailServiceImpl implements ArchiveDetailService { } return null; } + + @Override + public ArchiveDetail isExit(String id, String type, String source, String applyId) { + if (archiveDetailRepository.countByMasterIDAndAssortIDAndSourceAndApplyId(id, type, source, applyId) > 0) + return archiveDetailRepository.findByMasterIDAndAssortIDAndSourceAndApplyIdAndFlag(id, type, source, applyId,"0"); + return null; + } + + @Override + public boolean delete(String id) { + if(archiveDetailRepository.updateFlagById(id) > 0) + return true; + return false; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5d8fc7f..36d3aec 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,26 +1,26 @@ spring: datasource: - url: jdbc:mysql://localhost:3306/test - # url: jdbc:mysql://10.6.1.127:3306/test - username: root - password: 123456 - driver-class-name: com.mysql.jdbc.Driver + # url: jdbc:mysql://localhost:3306/test + # # url: jdbc:mysql://10.6.1.127:3306/test + # username: root + # password: 123456 + # driver-class-name: com.mysql.jdbc.Driver + # jpa: + # database: mysql + # show-sql: false + # hibernate: + # ddl-auto: update + # database-platform: org.hibernate.dialect.MySQL5InnoDBDialect + # url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record + url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY + username: sa + password: docus@702 + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver jpa: - database: mysql + database: sql_server show-sql: false hibernate: - ddl-auto: update - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect - # url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record - # url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY - # username: sa - # password: docus@702 - # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - # jpa: - # database: sql_server - # show-sql: false - # hibernate: - # dialect: org.hibernate.dialect.SQLServer2008Dialect + dialect: org.hibernate.dialect.SQLServer2008Dialect hikari: #是否为只读数据库 read-only: false