From 74868ba9e0775ccc21d02ef9e0f805bd1e6ae0aa Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 21 十一月 2024 18:15:33 +0800 Subject: [PATCH] 确费逻辑 --- jh-dependencies/pom.xml | 6 jh-framework/jh-common/src/main/java/cn/lihu/jh/framework/common/util/date/DateUtils.java | 7 jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserSaveReqVO.java | 2 jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/dal/dataobject/user/AdminUserDO.java | 2 jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/util/SecurityFrameworkUtils.java | 11 + jh-module-system/jh-module-system-api/src/main/java/cn/lihu/jh/module/system/api/user/dto/AdminUserRespDTO.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/ExmRequest.java | 47 +++++ jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserRespVO.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgRespHeader.java | 27 +++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java | 90 +++++++++++ jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/service/oauth2/OAuth2TokenServiceImpl.java | 4 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 20 ++ jh-module-ecg/jh-module-ecg-biz/src/test/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImplTest.java | 34 ++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/patient/PatDetails.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/AppointmentExternal.java | 2 jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/LoginUser.java | 1 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/RemoteDataService.java | 6 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmRespResult.java | 22 ++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgHeader.java | 37 ++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmReqBody.java | 31 +++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/Item.java | 87 ++++++++++ jh-module-ecg/jh-module-ecg-biz/pom.xml | 5 22 files changed, 438 insertions(+), 9 deletions(-) diff --git a/jh-dependencies/pom.xml b/jh-dependencies/pom.xml index cea3b02..cfcb2d0 100644 --- a/jh-dependencies/pom.xml +++ b/jh-dependencies/pom.xml @@ -75,6 +75,7 @@ <justauth.version>1.0.8</justauth.version> <jimureport.version>1.7.8</jimureport.version> <xercesImpl.version>2.12.2</xercesImpl.version> + <jackson-dataformat-xml.version>2.14.0</jackson-dataformat-xml.version> <weixin-java.version>4.6.0</weixin-java.version> </properties> @@ -623,6 +624,11 @@ <artifactId>xercesImpl</artifactId> <version>${xercesImpl.version}</version> </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-xml</artifactId> + <version>${jackson-dataformat-xml.version}</version> + </dependency> </dependencies> </dependencyManagement> diff --git a/jh-framework/jh-common/src/main/java/cn/lihu/jh/framework/common/util/date/DateUtils.java b/jh-framework/jh-common/src/main/java/cn/lihu/jh/framework/common/util/date/DateUtils.java index 7eccc47..ea1aa71 100644 --- a/jh-framework/jh-common/src/main/java/cn/lihu/jh/framework/common/util/date/DateUtils.java +++ b/jh-framework/jh-common/src/main/java/cn/lihu/jh/framework/common/util/date/DateUtils.java @@ -3,6 +3,7 @@ import cn.hutool.core.date.LocalDateTimeUtil; import java.time.*; +import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; @@ -175,4 +176,10 @@ return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now().minusDays(1)); } + public static String getCurTimeString() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + LocalDateTime now = LocalDateTime.now(); + return now.format(formatter); + } + } diff --git a/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/LoginUser.java b/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/LoginUser.java index 1b7a4fa..20c413b 100644 --- a/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/LoginUser.java +++ b/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/LoginUser.java @@ -20,6 +20,7 @@ public static final String INFO_KEY_NICKNAME = "nickname"; public static final String INFO_KEY_DEPT_ID = "deptId"; + public static final String INFO_KEY_HIS_ID = "hisId"; /** * 鐢ㄦ埛缂栧彿 diff --git a/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/util/SecurityFrameworkUtils.java b/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/util/SecurityFrameworkUtils.java index 57062fc..13e8541 100644 --- a/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/util/SecurityFrameworkUtils.java +++ b/jh-framework/jh-spring-boot-starter-security/src/main/java/cn/lihu/jh/framework/security/core/util/SecurityFrameworkUtils.java @@ -102,6 +102,17 @@ } /** + * 鑾峰緱褰撳墠鐢ㄦ埛鐨凥is Id锛屼粠涓婁笅鏂囦腑 + * + * @return hisId + */ + @Nullable + public static String getLoginUserHisId() { + LoginUser loginUser = getLoginUser(); + return loginUser != null ? MapUtil.getStr(loginUser.getInfo(), LoginUser.INFO_KEY_HIS_ID) : null; + } + + /** * 鑾峰緱褰撳墠鐢ㄦ埛鐨勯儴闂ㄧ紪鍙凤紝浠庝笂涓嬫枃涓� * * @return 閮ㄩ棬缂栧彿 diff --git a/jh-module-ecg/jh-module-ecg-biz/pom.xml b/jh-module-ecg/jh-module-ecg-biz/pom.xml index bb42c4b..32cead0 100644 --- a/jh-module-ecg/jh-module-ecg-biz/pom.xml +++ b/jh-module-ecg/jh-module-ecg-biz/pom.xml @@ -126,6 +126,11 @@ </dependency> <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-xml</artifactId> + </dependency> + + <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>${openfeign.version}</version> diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/patient/PatDetails.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/patient/PatDetails.java index 0520a47..44b61e5 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/patient/PatDetails.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/patient/PatDetails.java @@ -18,4 +18,6 @@ String wardCode; String wardDesc; String bedNo; + Integer source; + String applyNo; } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/ExmRequest.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/ExmRequest.java new file mode 100644 index 0000000..2155fc5 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/ExmRequest.java @@ -0,0 +1,47 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; + +public class ExmRequest { + + private String authorOrganization; + private String requestId; + private String patientType; + private Item item; + + @JacksonXmlProperty(localName = "AuthorOrganization") + public String getAuthorOrganization() { + return authorOrganization; + } + + public void setAuthorOrganization(String authorOrganization) { + this.authorOrganization = authorOrganization; + } + + @JacksonXmlProperty(localName = "RequestId") + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + @JacksonXmlProperty(localName = "PatientType") + public String getPatientType() { + return patientType; + } + + public void setPatientType(String patientType) { + this.patientType = patientType; + } + + @JacksonXmlProperty(localName = "Item") + public Item getItem() { + return item; + } + + public void setItem(Item item) { + this.item = item; + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmReqBody.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmReqBody.java new file mode 100644 index 0000000..795cac1 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmReqBody.java @@ -0,0 +1,31 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; + + +@JacksonXmlRootElement(localName = "BSXml") +public class HisFeeConfirmReqBody { + + private MsgHeader msgHeader; + private ExmRequest exmRequest; + + @JacksonXmlProperty(localName = "MsgHeader") + public MsgHeader getMsgHeader() { + return msgHeader; + } + + public void setMsgHeader(MsgHeader msgHeader) { + this.msgHeader = msgHeader; + } + + @JacksonXmlProperty(localName = "ExmRequest") + public ExmRequest getExmRequest() { + return exmRequest; + } + + public void setExmRequest(ExmRequest exmRequest) { + this.exmRequest = exmRequest; + } +} + diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmRespResult.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmRespResult.java new file mode 100644 index 0000000..99bdd1e --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/HisFeeConfirmRespResult.java @@ -0,0 +1,22 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; + + +@JacksonXmlRootElement(localName = "BSXml") +public class HisFeeConfirmRespResult { + + private MsgRespHeader msgHeader; + + @JacksonXmlProperty(localName = "MsgHeader") + public MsgRespHeader getMsgHeader() { + return msgHeader; + } + + public void setMsgHeader(MsgRespHeader msgHeader) { + this.msgHeader = msgHeader; + } + +} + diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/Item.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/Item.java new file mode 100644 index 0000000..e16c016 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/Item.java @@ -0,0 +1,87 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; + +public class Item { + + private String itemCode; + private String itemStatus; + private String exeOrganization; + private String exeDeptName; + private String exeDept; + private String exeDoctor; + private String exeDoctorName; + private String exeDateTime; + + @JacksonXmlProperty(localName = "ItemCode") + public String getItemCode() { + return itemCode; + } + + public void setItemCode(String itemCode) { + this.itemCode = itemCode; + } + + @JacksonXmlProperty(localName = "ItemStatus") + public String getItemStatus() { + return itemStatus; + } + + public void setItemStatus(String itemStatus) { + this.itemStatus = itemStatus; + } + + @JacksonXmlProperty(localName = "ExeOrganization") + public String getExeOrganization() { + return exeOrganization; + } + + public void setExeOrganization(String exeOrganization) { + this.exeOrganization = exeOrganization; + } + + @JacksonXmlProperty(localName = "ExeDeptName") + public String getExeDeptName() { + return exeDeptName; + } + + public void setExeDeptName(String exeDeptName) { + this.exeDeptName = exeDeptName; + } + + @JacksonXmlProperty(localName = "ExeDept") + public String getExeDept() { + return exeDept; + } + + public void setExeDept(String exeDept) { + this.exeDept = exeDept; + } + + @JacksonXmlProperty(localName = "ExeDoctor") + public String getExeDoctor() { + return exeDoctor; + } + + public void setExeDoctor(String exeDoctor) { + this.exeDoctor = exeDoctor; + } + + @JacksonXmlProperty(localName = "ExeDoctorName") + public String getExeDoctorName() { + return exeDoctorName; + } + + public void setExeDoctorName(String exeDoctorName) { + this.exeDoctorName = exeDoctorName; + } + + @JacksonXmlProperty(localName = "ExeDateTime") + public String getExeDateTime() { + return exeDateTime; + } + + public void setExeDateTime(String exeDateTime) { + this.exeDateTime = exeDateTime; + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgHeader.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgHeader.java new file mode 100644 index 0000000..7beedbc --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgHeader.java @@ -0,0 +1,37 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; + +public class MsgHeader { + + private String sender; + private String msgType; + private String msgVersion; + + @JacksonXmlProperty(localName = "Sender") + public String getSender() { + return sender; + } + + public void setSender(String sender) { + this.sender = sender; + } + + @JacksonXmlProperty(localName = "MsgType") + public String getMsgType() { + return msgType; + } + + public void setMsgType(String msgType) { + this.msgType = msgType; + } + + @JacksonXmlProperty(localName = "MsgVersion") + public String getMsgVersion() { + return msgVersion; + } + + public void setMsgVersion(String msgVersion) { + this.msgVersion = msgVersion; + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgRespHeader.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgRespHeader.java new file mode 100644 index 0000000..afd7696 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/MsgRespHeader.java @@ -0,0 +1,27 @@ +package cn.lihu.jh.module.ecg.feign; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; + +public class MsgRespHeader { + + private String status; + private String detail; + + @JacksonXmlProperty(localName = "Status") + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @JacksonXmlProperty(localName = "Detail") + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/RemoteDataService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/RemoteDataService.java index 2fa84dd..17a0ca1 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/RemoteDataService.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/RemoteDataService.java @@ -12,4 +12,10 @@ @RequestParam("urid") String urid, @RequestParam("pwd") String pwd, @RequestBody RestApiReqBodyVo bodyVo); + + @PostMapping(value="/hai/HttpEntry/", produces = MediaType.APPLICATION_XML_VALUE/*, consumes = MediaType.APPLICATION_JSON_VALUE*/) + public HisFeeConfirmRespResult httpFeeApi( @RequestParam("service") String service, + @RequestParam("urid") String urid, + @RequestParam("pwd") String pwd, + @RequestBody HisFeeConfirmReqBody bodyVo); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/AppointmentExternal.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/AppointmentExternal.java index 1fb3991..f6d60ab 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/AppointmentExternal.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/AppointmentExternal.java @@ -9,6 +9,7 @@ import java.util.Date; public class AppointmentExternal { + @JsonProperty private String ReqIdeApplyno; private String ReqStatus; private String ReqCodeItemclass; @@ -19,6 +20,7 @@ private String OutMedNO; private String InMedNO; private String VisitNum; + @JsonProperty private String AdmTypeCode; private String AdmTypeDesc; private String AdmStatus; diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java index e6fdb12..e433dcd 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java @@ -73,7 +73,6 @@ AppointmentDO appointment = BeanUtils.toBean(createReqVO, AppointmentDO.class); appointment.setBookTime( LocalDateTime.now() ); - appointment.setBookSrc( 1 ); try { appointmentMapper.insert(appointment); @@ -203,6 +202,7 @@ appointmentDO.setBookId(appointmentExternal.getReqIdeApplyno()); appointmentDO.setBookCheckType(getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode())); appointmentDO.setBookTime(DateUtils.ofUTC(appointmentExternal.getReqAuthoredOn())); // 寮�鍗曟椂闂� + appointmentDO.setBookSrc( getBookSource(appointmentExternal.getAdmTypeCode()) ); // 鍏夊紑鍗曠殑鎯呭喌锛屾病鏈夐绾︽椂闂� if (null != appointmentExternal.getReqExtBooktime() ) { @@ -212,8 +212,7 @@ appointmentDO.setBookTimeslot((bookStartTime.getHour() * 100 + bookStartTime.getMinute()) * 10000 + bookEndTime.getHour() * 100 + bookEndTime.getMinute()); } - appointmentDO.setBookSrc(0); - appointmentDO.setPaid(1); + appointmentDO.setPaid( 0 ); // TODO curAppointDOList.add( appointmentDO ); } @@ -264,6 +263,19 @@ } return newSeqNo; + } + + private Integer getBookSource(String admTypeCode) { + if (admTypeCode.equals("AMB")) // 闂ㄨ瘖 + return 1; + else if (admTypeCode.equals("EMER")) // 鎬ヨ瘖 + return 2; + else if (admTypeCode.equals("PHY")) // 浣撴 + return 3; + else if (admTypeCode.equals("IMP")) // 浣忛櫌 + return 4; + + return 1; } private Integer getCorrespondingCheckType(String strPlanDefItemcode) { @@ -324,6 +336,8 @@ patDetails.setWardCode( appointment.getPatWardCode() ); patDetails.setWardDesc( appointment.getPatWardDesc() ); patDetails.setBedNo( appointment.getPatBedNo() ); + patDetails.setSource( appointment.getPatSrc() ); + patDetails.setApplyNo( appointment.getApplyNo() ); return patDetails; } } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java index 5607b22..45ce17b 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java @@ -3,6 +3,7 @@ import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordSaveReqVO; +import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO; @@ -14,11 +15,16 @@ import cn.lihu.jh.module.ecg.enums.DevRentStateEnum; import cn.lihu.jh.module.ecg.enums.DevStateEnum; import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; +import cn.lihu.jh.module.ecg.feign.*; +import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.io.Console; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; @@ -35,6 +41,8 @@ import javax.annotation.Resource; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static cn.lihu.jh.framework.common.util.date.DateUtils.getCurTimeString; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** @@ -48,6 +56,9 @@ @Resource QueueServiceTxFunctions queueServiceTxFunctions; + + @Resource + private RemoteDataService remoteDataService; @Resource private DevRentMapper devRentMapper; @@ -74,8 +85,9 @@ Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); - // 鍚屾牱 鍦ㄩ绾︾‘瀹炴椂 灏辫繘鍏� [dev_rent] 琛ㄤ簡 + // 鍚屾牱 鍦ㄩ绾︾‘璁ゆ椂 灏辫繘鍏� [dev_rent] 琛ㄤ簡 Long rent_id = createReqVO.getId(); List<Integer> jobTypeList = new ArrayList<Integer>(); @@ -141,6 +153,8 @@ procAffinityWhenRoutineFinish( firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes() ); } + // 纭垂澶勭悊 + feeConfirm(firstOnStageQueueItem, userHisId, userNickname); return CommonResult.success(rent_id); } @@ -814,5 +828,79 @@ } } + private void feeConfirm(QueueDO queueItem, String hisId, String userNickname, Boolean isFeeConfirmCancel) throws JsonProcessingException { + PatDetails patDetails = queueItem.getPatDetails(); + + HisFeeConfirmReqBody hisFeeConfirmReqBody = new HisFeeConfirmReqBody(); + MsgHeader msgHeader = new MsgHeader(); + msgHeader.setMsgType("ODS_2212"); + msgHeader.setMsgVersion("3.0"); + msgHeader.setSender("ECG"); + hisFeeConfirmReqBody.setMsgHeader(msgHeader); + Item item = new Item(); + item.setItemCode( getHisCheckCode(queueItem.getBookCheckType()) ); // + item.setItemStatus( isFeeConfirmCancel? "6" : "5" ); // + item.setExeOrganization("47162057-2"); + item.setExeDeptName("蹇冪數绉�"); + item.setExeDept("蹇冪數绉�"); + item.setExeDoctor( hisId ); // + item.setExeDoctorName( userNickname ); // + item.setExeDateTime( getCurTimeString() ); // + ExmRequest exmRequest = new ExmRequest(); + exmRequest.setAuthorOrganization("47162057-2"); + exmRequest.setRequestId( patDetails.getApplyNo() ); // + exmRequest.setPatientType( getPatientType(patDetails.getSource()) ); // + exmRequest.setItem(item); + hisFeeConfirmReqBody.setExmRequest(exmRequest); + HisFeeConfirmRespResult result = remoteDataService.httpFeeApi("UpdateExmRequestStatus", "ECG", "ECG", hisFeeConfirmReqBody); + result.getMsgHeader().getStatus(); + } + + private String getHisCheckCode(Integer checkType) { + if (100 == checkType) + return "691133607"; + else if (200 == checkType) + return "201605"; + else if (300 == checkType) + return "200327"; + else if (400 == checkType) + return "201652"; + else if (500 == checkType) + return "502490914"; + else if (600 == checkType) + return "419562119"; + else if (700 == checkType) + return "201604"; + else if (800 == checkType) + return "1202042"; + else if (900 == checkType) + return "1202058"; + else if (1000 == checkType) + return "1202065"; + else if (1100 == checkType) + return "559542128"; + else if (1200 == checkType) + return "590244511"; + else if (1300 == checkType) + return "666454217"; + else if (1400 == checkType) + return "720791490"; + else if (1500 == checkType) + return "720792077"; + + return "691133607"; + } + + String getPatientType( Integer patientSource ) { + if (1 == patientSource || 2 == patientSource) + return "01"; + else if (3 == patientSource) + return "03"; + else if (4 == patientSource) + return "04"; + + return "01"; + } + } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/test/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImplTest.java b/jh-module-ecg/jh-module-ecg-biz/src/test/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImplTest.java index 456246d..9d7a7e9 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/test/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImplTest.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/test/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImplTest.java @@ -5,6 +5,12 @@ import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.module.ecg.feign.ExmRequest; +import cn.lihu.jh.module.ecg.feign.HisFeeConfirmReqBody; +import cn.lihu.jh.module.ecg.feign.Item; +import cn.lihu.jh.module.ecg.feign.MsgHeader; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.junit.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; @@ -53,4 +59,32 @@ System.out.println("Domain: " + Integer.valueOf(domain)); } } + + @Test + public void test2() throws JsonProcessingException { + HisFeeConfirmReqBody hisFeeConfirmReqBody = new HisFeeConfirmReqBody(); + MsgHeader msgHeader = new MsgHeader(); + msgHeader.setMsgType("ODS_2212"); + msgHeader.setMsgVersion("3.0"); + msgHeader.setSender("ECG"); + hisFeeConfirmReqBody.setMsgHeader(msgHeader); + Item item = new Item(); + item.setItemCode("559542128"); + item.setItemStatus("5"); + item.setExeOrganization("47162057-2"); + item.setExeDeptName("蹇冪數绉�"); + item.setExeDept("蹇冪數绉�"); + item.setExeDoctor("0457"); + item.setExeDoctorName("寰愬皬鑻�"); + item.setExeDateTime("2024-11-21 16:28:28"); + ExmRequest exmRequest = new ExmRequest(); + exmRequest.setAuthorOrganization("47162057-2"); + exmRequest.setRequestId("815769404"); + exmRequest.setPatientType("01"); + exmRequest.setItem(item); + hisFeeConfirmReqBody.setExmRequest(exmRequest); + XmlMapper xmlMapper = new XmlMapper(); + String xml = xmlMapper.writeValueAsString(hisFeeConfirmReqBody); + System.out.println(xml); + } } \ No newline at end of file diff --git a/jh-module-system/jh-module-system-api/src/main/java/cn/lihu/jh/module/system/api/user/dto/AdminUserRespDTO.java b/jh-module-system/jh-module-system-api/src/main/java/cn/lihu/jh/module/system/api/user/dto/AdminUserRespDTO.java index 241a670..89b38b4 100644 --- a/jh-module-system/jh-module-system-api/src/main/java/cn/lihu/jh/module/system/api/user/dto/AdminUserRespDTO.java +++ b/jh-module-system/jh-module-system-api/src/main/java/cn/lihu/jh/module/system/api/user/dto/AdminUserRespDTO.java @@ -48,5 +48,5 @@ * HIS绯荤粺涓敤鎴风紪鍙� * */ - private Integer hisId; + private String hisId; } diff --git a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserRespVO.java b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserRespVO.java index 13533e7..9a33056 100644 --- a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserRespVO.java +++ b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -57,7 +57,7 @@ private String avatar; @Schema(description = "His鐢ㄦ埛缂栧彿", example = "9999") - private Integer hisId; + private String hisId; @Schema(description = "鐘舵�侊紝鍙傝 CommonStatusEnum 鏋氫妇绫�", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty(value = "甯愬彿鐘舵��", converter = DictConvert.class) diff --git a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserSaveReqVO.java index 5f616db..500f4dc 100644 --- a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserSaveReqVO.java +++ b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -65,7 +65,7 @@ private String avatar; @Schema(description = "HIS缂栧彿", example = "9999") - private Integer hisId; + private String hisId; // ========== 浠呫�愬垱寤恒�戞椂锛岄渶瑕佷紶閫掔殑瀛楁 ========== diff --git a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/dal/dataobject/user/AdminUserDO.java b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/dal/dataobject/user/AdminUserDO.java index 289fe26..f4565d7 100644 --- a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/dal/dataobject/user/AdminUserDO.java +++ b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/dal/dataobject/user/AdminUserDO.java @@ -82,7 +82,7 @@ * HIS绯荤粺涓敤鎴风紪鍙� * */ - private Integer hisId; + private String hisId; /** * 甯愬彿鐘舵�� * diff --git a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 4d48aef..294ad6e 100644 --- a/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/jh-module-system/jh-module-system-biz/src/main/java/cn/lihu/jh/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -191,7 +191,9 @@ if (userType.equals(UserTypeEnum.ADMIN.getValue())) { AdminUserDO user = adminUserService.getUser(userId); return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname()) - .put(LoginUser.INFO_KEY_DEPT_ID, StrUtil.toStringOrNull(user.getDeptId())).build(); + .put(LoginUser.INFO_KEY_DEPT_ID, StrUtil.toStringOrNull(user.getDeptId())) + .put(LoginUser.INFO_KEY_HIS_ID, user.getHisId()) + .build(); } else if (userType.equals(UserTypeEnum.MEMBER.getValue())) { // 娉ㄦ剰锛氱洰鍓� Member 鏆傛椂涓嶈鍙栵紝鍙互鎸夐渶瀹炵幇 return Collections.emptyMap(); -- Gitblit v1.9.3