From 4bd7739f13a5a38e03d27282bd042509dabd54b5 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Wed, 10 Jan 2024 11:29:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E8=A7=A3=E5=B0=81?= =?UTF-8?q?=E6=82=A3=E8=80=85=E7=97=85=E5=8E=86=E6=96=87=E4=BB=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- src/main/java/com/docus/server/CxfConfig.java | 9 +-- .../server/reportmanager/entity/TSeal.java | 58 ++++++++++++++ .../mapper/ScanAssortMapper.java | 9 +++ .../reportmanager/mapper/TSealMapper.java | 14 ++++ .../service/ReportSealedService.java | 21 +++++ .../impl/SzyReportSealedServiceImpl.java | 77 +++++++++++++++++++ src/main/resources/bin/update.bat | 4 +- src/main/resources/bin/winsw.xml | 6 +- src/main/resources/bootstrap.yml | 10 +-- src/main/resources/logback.xml | 4 +- .../resources/mapper/ScanAssortMapper.xml | 5 ++ src/main/resources/mapper/TSealMapper.xml | 27 +++++++ 13 files changed, 228 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/docus/server/reportmanager/entity/TSeal.java create mode 100644 src/main/java/com/docus/server/reportmanager/mapper/TSealMapper.java create mode 100644 src/main/java/com/docus/server/reportmanager/service/ReportSealedService.java create mode 100644 src/main/java/com/docus/server/reportmanager/service/impl/SzyReportSealedServiceImpl.java create mode 100644 src/main/resources/mapper/TSealMapper.xml diff --git a/pom.xml b/pom.xml index 725c737..947aa10 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 -docus-report-manager +docus-report-unblocking diff --git a/src/main/java/com/docus/server/CxfConfig.java b/src/main/java/com/docus/server/CxfConfig.java index b06f8e6..20dca40 100644 --- a/src/main/java/com/docus/server/CxfConfig.java +++ b/src/main/java/com/docus/server/CxfConfig.java @@ -1,12 +1,11 @@ package com.docus.server; -import com.docus.server.reportmanager.service.ReportManagerService; +import com.docus.server.reportmanager.service.ReportSealedService; import org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBus; import org.apache.cxf.jaxws.EndpointImpl; import org.apache.cxf.transport.servlet.CXFServlet; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.servlet.ServletRegistrationBean; @@ -18,8 +17,8 @@ import javax.xml.ws.Endpoint; @Configuration public class CxfConfig { @Autowired - @Qualifier("SzyReportManagerService") - private ReportManagerService reportManagerService; + @Qualifier("SzyReportSealedService") + private ReportSealedService reportSealedService; /** * 注入Servlet,注意beanName不能为dispatcherServlet @@ -40,7 +39,7 @@ public class CxfConfig { @Bean @Qualifier("reportEndPoint") public Endpoint reportEndPoint() { - EndpointImpl endpoint = new EndpointImpl(springBus(), reportManagerService); + EndpointImpl endpoint = new EndpointImpl(springBus(), reportSealedService); endpoint.publish("/report"); return endpoint; } diff --git a/src/main/java/com/docus/server/reportmanager/entity/TSeal.java b/src/main/java/com/docus/server/reportmanager/entity/TSeal.java new file mode 100644 index 0000000..62d572c --- /dev/null +++ b/src/main/java/com/docus/server/reportmanager/entity/TSeal.java @@ -0,0 +1,58 @@ +package com.docus.server.reportmanager.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 在院封存 + *

+ * + * @author jiashi + * @since 2023-05-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="TSeal对象", description="在院封存") +public class TSeal implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "在院封存病案主键") + private String patientId; + + @ApiModelProperty(value = "封存id") + private String sealId; + + @ApiModelProperty(value = "住院号") + private String inpatientNo; + + @ApiModelProperty(value = "住院就诊号") + private String jzh; + + @ApiModelProperty(value = "患者姓名") + private String name; + + @ApiModelProperty(value = "住院时间") + private Date admissDate; + + @ApiModelProperty(value = "封存时间") + private Date sealDate; + + @ApiModelProperty(value = "文件来源") + private Integer fileSource; + + @ApiModelProperty(value = "就诊次数") + private Integer admissTimes; + + @ApiModelProperty(value = "纸质是否签名 0:否 1:是") + private Integer signinfo; + + @ApiModelProperty(value = "备注") + private String remark; +} diff --git a/src/main/java/com/docus/server/reportmanager/mapper/ScanAssortMapper.java b/src/main/java/com/docus/server/reportmanager/mapper/ScanAssortMapper.java index 3975fa5..3bdc23e 100644 --- a/src/main/java/com/docus/server/reportmanager/mapper/ScanAssortMapper.java +++ b/src/main/java/com/docus/server/reportmanager/mapper/ScanAssortMapper.java @@ -31,4 +31,13 @@ public interface ScanAssortMapper { * @author YongBin Wen */ List getIdByPatientTask(@Param("patientId") String patientId, @Param("taskId") Long taskId); + + /** + * 解封,修改文件表该患者下病案的状态 + * @date 2024/1/10 11:25 + * @author YongBin Wen + * @param patientId 病案主键 + * @return int 数据库影响行 + */ + int unblocking(@Param("patientId")String patientId); } diff --git a/src/main/java/com/docus/server/reportmanager/mapper/TSealMapper.java b/src/main/java/com/docus/server/reportmanager/mapper/TSealMapper.java new file mode 100644 index 0000000..e0df46a --- /dev/null +++ b/src/main/java/com/docus/server/reportmanager/mapper/TSealMapper.java @@ -0,0 +1,14 @@ +package com.docus.server.reportmanager.mapper; + + +import com.docus.server.reportmanager.entity.TSeal; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @author wyb + */ +@Mapper +public interface TSealMapper { + TSeal findByCondition(@Param("condition") TSeal condition); +} diff --git a/src/main/java/com/docus/server/reportmanager/service/ReportSealedService.java b/src/main/java/com/docus/server/reportmanager/service/ReportSealedService.java new file mode 100644 index 0000000..4a8b924 --- /dev/null +++ b/src/main/java/com/docus/server/reportmanager/service/ReportSealedService.java @@ -0,0 +1,21 @@ +package com.docus.server.reportmanager.service; + +import javax.jws.WebService; + +/** + * 报告管理服务接口 + * + * @author YongBin Wen + * @date 2024/1/3 16:11 + */ +@WebService +public interface ReportSealedService { + /** + * 解封患者病历 + * + * @param message 解封信息 + * @return 处理结果 + */ + String Q_WS_JFHZBL(String message); + +} diff --git a/src/main/java/com/docus/server/reportmanager/service/impl/SzyReportSealedServiceImpl.java b/src/main/java/com/docus/server/reportmanager/service/impl/SzyReportSealedServiceImpl.java new file mode 100644 index 0000000..3723576 --- /dev/null +++ b/src/main/java/com/docus/server/reportmanager/service/impl/SzyReportSealedServiceImpl.java @@ -0,0 +1,77 @@ +package com.docus.server.reportmanager.service.impl; + +import com.docus.infrastructure.core.exception.BaseException; +import com.docus.server.reportmanager.entity.TSeal; +import com.docus.server.reportmanager.mapper.ScanAssortMapper; +import com.docus.server.reportmanager.mapper.TSealMapper; +import com.docus.server.reportmanager.service.ReportSealedService; +import com.docus.server.reportmanager.util.XmlUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.w3c.dom.Node; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 广东省中医报告管理服务接口 + * + * @author YongBin Wen + * @date 2024/1/3 16:11 + */ +@Service("SzyReportSealedService") +@Slf4j +public class SzyReportSealedServiceImpl implements ReportSealedService { + + @Resource + private ScanAssortMapper scanAssortMapper; + @Resource + private TSealMapper sealMapper; + + @Override + public String Q_WS_JFHZBL(String message) { + log.info("广东省中医报告解封,收到解封患者病历的信息:{}", message); + try { + XmlUtil xmlUtil = XmlUtil.of(message); + // 住院流水号 + Node jzhNode = xmlUtil.getNode("/Request/INHOSP_NO"); + String jzh = jzhNode.getTextContent(); + + TSeal condition = new TSeal(); + condition.setJzh(jzh); + + TSeal seal = sealMapper.findByCondition(condition); + if (Objects.isNull(seal)) { + log.error("不存在封存患者信息"); + return error("不存在封存患者信息"); + } + scanAssortMapper.unblocking(seal.getPatientId()); + return success(); + } catch (BaseException baseException) { + log.error(baseException.getMessage(), baseException); + return error(baseException.getMessage()); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return error("系统内部错误,请联系开发人员"); + } + } + + + private String error(String msg) { + return "\n" + + " \n" + + " 1\n" + + " " + msg + "\n" + + " \n" + + ""; + } + + private String success() { + return "\n" + + " \n" + + " 0\n" + + " 成功\n" + + " \n" + + ""; + } +} diff --git a/src/main/resources/bin/update.bat b/src/main/resources/bin/update.bat index 8c9b881..feefdcd 100644 --- a/src/main/resources/bin/update.bat +++ b/src/main/resources/bin/update.bat @@ -1,7 +1,7 @@ @echo off -set deployDir=%1\docus-report-manager -if %deployDir%=="" set deployDir=d:\webroot\docus-report-manager +set deployDir=%1\docus-report-unblocking +if %deployDir%=="" set deployDir=d:\webroot\docus-report-unblocking set curr_file=%cd% cd /d %deployDir% diff --git a/src/main/resources/bin/winsw.xml b/src/main/resources/bin/winsw.xml index d7fe58a..5bd89d1 100644 --- a/src/main/resources/bin/winsw.xml +++ b/src/main/resources/bin/winsw.xml @@ -1,7 +1,7 @@ - docus-report-manager - 生产-嘉时-报告管理服务 - 生产-嘉时-报告管理服务 + docus-report-unblocking + 生产-嘉时-报告解封 + 生产-嘉时-报告解封 Automatic %BASE%\start.bat diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 2861362..f6c236e 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -1,11 +1,11 @@ server: - port: 9444 + port: 9445 spring: application: name: @artifactId@ profiles: - active: test + active: prod datasource: dynamic: primary: master #设置默认的数据源,默认值为master @@ -67,11 +67,11 @@ xxl: admin: addresses: http://job.docus.cn:8180/xxl-job-admin executor: - appname: docus-report-manager + appname: docus-report-unblocking address: ip: - port: 19444 + port: 19445 logretentiondays: 30 - logpath: D:/xxl-job/docus-report-manager + logpath: D:/xxl-job/docus-report-unblocking diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 337c3c2..28cd3dc 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,6 +1,6 @@ - docus-report-manager + docus-report-unblocking @@ -21,7 +21,7 @@ ${log.path}%d.%i.log - 500MB + 100MB 60 diff --git a/src/main/resources/mapper/ScanAssortMapper.xml b/src/main/resources/mapper/ScanAssortMapper.xml index 761c191..be0676f 100644 --- a/src/main/resources/mapper/ScanAssortMapper.xml +++ b/src/main/resources/mapper/ScanAssortMapper.xml @@ -12,6 +12,11 @@ #{id} + + UPDATE `docus_archivefile`.`t_scan_assort` + SET `sealed` = 1 + WHERE `patient_id` = #{patientId} + + SELECT + * + FROM `docus_medicalrecord`.`t_seal` + + + and jzh=#{condition.jzh} + + + and seal_id=#{condition.sealId} + + + and patient_id=#{condition.patientId} + + + and name=#{condition.name} + + + +