From d41c78c9e9190038b8c5d1009ba07186f8a5e401 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期日, 28 九月 2025 09:47:40 +0800 Subject: [PATCH] 代码提交 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 83 ++++++++++++++++++++++++++++++++--------- 1 files changed, 65 insertions(+), 18 deletions(-) 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 00230cd..4e56850 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 @@ -13,6 +13,7 @@ import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; import cn.lihu.jh.module.ecg.enums.AppointmentTypeEnum; import cn.lihu.jh.module.ecg.enums.HisCheckCodeEnum; +import cn.lihu.jh.module.ecg.enums.HisCheckNameEnum; import cn.lihu.jh.module.ecg.feign.RemoteDataService; import cn.lihu.jh.module.ecg.service.config.EcgConfigService; import cn.lihu.jh.module.ecg.service.devrent.ApplicationTemplate; @@ -20,6 +21,7 @@ import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; import cn.lihu.jh.module.ecg.webservice.WebServiceClient; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; @@ -378,7 +380,7 @@ // 鍖荤敓寮�鍗曟椂闂� Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("author")).map(author -> (Map<String, Object>) author.get("time")).map(time -> (String) time.get("value")).map(str -> { try { - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str); + return new SimpleDateFormat("yyyyMMddHHmmss").parse(str); } catch (Exception e) { e.printStackTrace(); return null; @@ -431,21 +433,6 @@ Optional.ofNullable(patientPerson.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> !items.isEmpty()).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setMedicalCard); }); - // 璁剧疆绉戝鍜岀梾鍖轰俊鎭� - Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(location -> (Map<String, Object>) location.get("serviceProviderOrganization")).ifPresent(org -> { - // 璁剧疆绉戝浠g爜鍜屽悕绉� - Optional.ofNullable(org.get("id")).map(id -> (Map<String, Object>) id).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatDeptCode); - - Optional.ofNullable(org.get("name")).map(name -> (Map<String, Object>) name).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatDeptDesc); - - // 璁剧疆鐥呭尯浠g爜鍜屽悕绉� - Optional.ofNullable(org.get("asOrganizationPartOf")).map(wardOrg -> (Map<String, Object>) wardOrg).map(wardOrg -> (Map<String, Object>) wardOrg.get("wholeOrganization")).ifPresent(wardOrg -> { - Optional.ofNullable(wardOrg.get("id")).map(id -> (Map<String, Object>) id).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatWardCode); - - Optional.ofNullable(wardOrg.get("name")).map(name -> (Map<String, Object>) name).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatWardDesc); - }); - }); - // 璁剧疆鏀粯鐘舵�� Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("zdy")).map(zdy -> { Object payStatus = zdy.get("PayStatus"); @@ -465,8 +452,37 @@ //璁剧疆妫�鏌ョ被鍨� // String checkType = Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("code")).map(code -> (String) code.get("code")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); String checkType = Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("code")).map(code -> (String) code.get("code")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); - if (checkType != null || checkType != "") - appointment.setBookCheckType(Integer.valueOf(HisCheckCodeEnum.getByCode(checkType.substring(1)))); + String checkName = Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("code")).map(code -> (Map<String, Object>) code.get("displayName")).map(displayName -> (String) displayName.get("value")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); + if (appointment.getPatSrc() != null && appointment.getPatSrc() != 4) { + if (checkType != null || checkType != "") + appointment.setBookCheckType(Integer.valueOf(HisCheckCodeEnum.getByCode(checkType.substring(1)))); + } else if (appointment.getPatSrc() != null && appointment.getPatSrc() == 4) { + if (StringUtils.isNotEmpty(checkName)) { + checkName = checkName.replaceAll("\\s+", ""); + appointment.setBookCheckType(Integer.valueOf(HisCheckNameEnum.getByName(checkName))); + } + } + + + // 璁剧疆绉戝鍜岀梾鍖轰俊鎭� + Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(location -> (Map<String, Object>) location.get("serviceProviderOrganization")).ifPresent(org -> { + // 璁剧疆绉戝浠g爜鍜屽悕绉� + Optional.ofNullable(org.get("id")).map(id -> (Map<String, Object>) id).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatDeptCode); + + Optional.ofNullable(org.get("name")).map(name -> (Map<String, Object>) name).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatDeptDesc); + + // 璁剧疆鐥呭尯浠g爜鍜屽悕绉� + Optional.ofNullable(org.get("asOrganizationPartOf")).map(wardOrg -> (Map<String, Object>) wardOrg).map(wardOrg -> (Map<String, Object>) wardOrg.get("wholeOrganization")).ifPresent(wardOrg -> { + Optional.ofNullable(wardOrg.get("id")).map(id -> (Map<String, Object>) id).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatWardCode); + if (appointment.getPatSrc() != null && appointment.getPatSrc() == 4) { + //浣撴灏辫繖涓�涓瀹� + appointment.setPatDeptDesc("鍋ュ悍绠$悊涓績"); + } else { + Optional.ofNullable(wardOrg.get("name")).map(name -> (Map<String, Object>) name).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatWardDesc); + } + }); + }); + // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞朵繚瀛� AppointmentSaveReqVO saveReqVO = BeanUtils.toBean(appointment, AppointmentSaveReqVO.class); @@ -686,6 +702,37 @@ appointmentMapper.updateById(appointment); } + @Override + public void handleAppointmentStatusUpdate(Map<String, Object> dataMap) { + if (dataMap == null) { + throw exception(APPOINTMENT_STATUS_REGISTER_UPDATE_FAIL); + } + //鑾峰彇applyNo + Map<String, Object> controlActProcess = (Map<String, Object>) dataMap.get("controlActProcess"); + Map<String, Object> subject = (Map<String, Object>) controlActProcess.get("subject"); + Map<String, Object> placerGroup = (Map<String, Object>) subject.get("placerGroup"); + Map<String, Object> component2 = (Map<String, Object>) placerGroup.get("component2"); + Map<String, Object> observationRequest = (Map<String, Object>) component2.get("observationRequest"); + Map<String, Object> id = (Map<String, Object>) observationRequest.get("id"); + Map<String, Object> item = (Map<String, Object>) id.get("item"); + String applyNo = (String) item.get("extension"); + + //鑾峰彇status + Map<String, Object> component1 = (Map<String, Object>) observationRequest.get("component1"); + Map<String, Object> processStep = (Map<String, Object>) component1.get("processStep"); + Map<String, Object> codeMap = (Map<String, Object>) processStep.get("code"); + String status = String.valueOf(codeMap.get("code")); + Date date = null; + if (status.equals("3")) { + //璁板綍鐧昏鏃堕棿 + date = new Date(); + } + //鐘舵�佹洿鏂� + Integer i = appointmentMapper.updateStatusByApplyNo(applyNo, status, date); + log.info("鐢宠鍗曠櫥璁癮pplyNo:{},鐘舵�乻tatus:{},鏇存柊缁撴灉锛歿}", applyNo, status, i); + + } + public AppointmentDO getByApplyNo(String applyNo) { return appointmentMapper.getByApplyNo(applyNo); } -- Gitblit v1.9.3