From a4c8c09a33ae26a460c7422f59b4d2f93d0f6dc5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 16 六月 2025 19:38:09 +0800 Subject: [PATCH] 代码提交 --- 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/controller/admin/appointment/AppointmentController.java | 34 ++++++----- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java | 9 ++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentPageReqVO.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/AppointmentTypeEnum.java | 46 +++++++++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 81 +++++++++++++++++++++++--- 7 files changed, 147 insertions(+), 29 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java index 11bc862..a91ea71 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java @@ -26,6 +26,7 @@ import cn.lihu.jh.framework.excel.core.util.ExcelUtils; import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; + import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; @@ -73,6 +74,14 @@ return success(true); } + @PostMapping("/updateStatus") + @Operation(summary = "鏇存柊鐢宠鐘舵��") + @PreAuthorize("@ss.hasPermission('ecg:appointment:update')") + public CommonResult<Boolean> updateAppointmentStatus(@Valid @RequestBody AppointmentSaveReqVO updateReqVO) { + appointmentService.updateAppointmentStatus(updateReqVO); + return success(true); + } + @DeleteMapping("/delete") @Operation(summary = "鍒犻櫎棰勭害") @Parameter(name = "id", description = "缂栧彿", required = true) @@ -95,9 +104,8 @@ @Operation(summary = "鏍规嵁鎮h�呯紪鍙�.鏌ヨ褰撳ぉ棰勭害") @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") - public CommonResult<AppointmentRespVO> getCurAppointmentByPatId(@RequestParam("patId") String patId, - @RequestParam("checkType") Integer checkType) { - AppointmentDO appointment = appointmentService.getCurAppointmentByPatIdAndCheckType( patId, checkType ); + public CommonResult<AppointmentRespVO> getCurAppointmentByPatId(@RequestParam("patId") String patId, @RequestParam("checkType") Integer checkType) { + AppointmentDO appointment = appointmentService.getCurAppointmentByPatIdAndCheckType(patId, checkType); return success(BeanUtils.toBean(appointment, AppointmentRespVO.class)); } @@ -106,7 +114,7 @@ @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") public CommonResult<List<AppointmentRespVO>> queryAndCreateAppointmentByPatId(@RequestParam("patId") String patId) { - List<AppointmentDO> appointmentDOList = appointmentService.queryAndCreateAppointmentByPatId( patId ); + List<AppointmentDO> appointmentDOList = appointmentService.queryAndCreateAppointmentByPatId(patId); return success(BeanUtils.toBean(appointmentDOList, AppointmentRespVO.class)); } @@ -115,9 +123,8 @@ @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") public CommonResult<AppointmentRespVO> queryHisByPatient(@RequestParam("patId") String patId) { - List<AppointmentDO> appointmentList = appointmentService.getAppointmentExtermal( patId ); - if ( 0 == appointmentList.size() ) - return error(APPOINTMENT_NOT_BILLING); + List<AppointmentDO> appointmentList = appointmentService.getAppointmentExtermal(patId); + if (0 == appointmentList.size()) return error(APPOINTMENT_NOT_BILLING); return success(BeanUtils.toBean(appointmentList.get(0), AppointmentRespVO.class)); } @@ -125,7 +132,6 @@ @Operation(summary = "鑾峰緱棰勭害鍒嗛〉") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") public CommonResult<PageResult<AppointmentRespVO>> getAppointmentPage(@Valid AppointmentPageReqVO pageReqVO) { - pageReqVO.setStatus("1"); PageResult<AppointmentDO> pageResult = appointmentService.getAppointmentPage(pageReqVO); return success(BeanUtils.toBean(pageResult, AppointmentRespVO.class)); } @@ -134,13 +140,11 @@ @Operation(summary = "瀵煎嚭棰勭害 Excel") @PreAuthorize("@ss.hasPermission('ecg:appointment:export')") @ApiAccessLog(operateType = EXPORT) - public void exportAppointmentExcel(@Valid AppointmentPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportAppointmentExcel(@Valid AppointmentPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<AppointmentDO> list = appointmentService.getAppointmentPage(pageReqVO).getList(); // 瀵煎嚭 Excel - ExcelUtils.write(response, "棰勭害.xls", "鏁版嵁", AppointmentRespVO.class, - BeanUtils.toBean(list, AppointmentRespVO.class)); + ExcelUtils.write(response, "棰勭害.xls", "鏁版嵁", AppointmentRespVO.class, BeanUtils.toBean(list, AppointmentRespVO.class)); } @PostMapping("/confirm") @@ -148,7 +152,7 @@ @PreAuthorize("@ss.hasPermission('ecg:appointment:confirm')") public CommonResult<Integer> appointmentConfirm(@RequestBody AppointmentConfirmReqVO confirmReqVO) { confirmReqVO.setIsVip(0); - Integer newSeqNo = appointmentService.appoitmentConfirm( confirmReqVO ); + Integer newSeqNo = appointmentService.appoitmentConfirm(confirmReqVO); return success(newSeqNo); } @@ -157,8 +161,8 @@ @PreAuthorize("@ss.hasPermission('ecg:appointment:confirm')") public CommonResult<Integer> appointmentConfirmVip(@RequestBody AppointmentConfirmReqVO confirmReqVO) { confirmReqVO.setIsVip(1); - confirmReqVO.setBookDate( LocalDate.now() ); - Integer newSeqNo = appointmentService.appoitmentConfirm( confirmReqVO ); + confirmReqVO.setBookDate(LocalDate.now()); + Integer newSeqNo = appointmentService.appoitmentConfirm(confirmReqVO); return success(newSeqNo); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentPageReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentPageReqVO.java index 99c449b..b37b303 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentPageReqVO.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentPageReqVO.java @@ -80,7 +80,7 @@ private String bookSrc; @Schema(description = "鐢宠鍗曠姸鎬�") - private String status; + private String[] status; @Schema(description = "宸蹭粯娆�") private Integer paid; 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 fc4c9ff..8d339f5 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 @@ -1,5 +1,6 @@ package cn.lihu.jh.module.ecg.dal.dataobject.patient; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -9,6 +10,7 @@ @Builder @NoArgsConstructor @AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) public class PatDetails { String Id; String Name; diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java index d864a17..0065aa4 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java @@ -40,7 +40,7 @@ .eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType()) .eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc()) .eqIfPresent(AppointmentDO::getPaid, reqVO.getPaid()) - .eqIfPresent(AppointmentDO::getStatus, reqVO.getStatus()) + .inIfPresent(AppointmentDO::getStatus, reqVO.getStatus()) .orderByDesc(AppointmentDO::getId)); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/AppointmentTypeEnum.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/AppointmentTypeEnum.java new file mode 100644 index 0000000..a46587a --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/AppointmentTypeEnum.java @@ -0,0 +1,46 @@ +package cn.lihu.jh.module.ecg.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * Action绫诲瀷鏋氫妇 + */ +@Getter +@AllArgsConstructor +public enum AppointmentTypeEnum { + SQDKL(" 1", " 鐢宠鍗曞紑绔�"), + SQDCX(" 2", "鐢宠鍗曟挙閿�"), + JCDJ(" 3 ", "妫�鏌ョ櫥璁�"), + QXJC(" 4", " 鍙栨秷妫�鏌�"), + JCKS(" 5", " 妫�鏌ュ紑濮�"), + GZYJ(" 6", " 缁欓�犲奖鍓�"), + JCJS(" 7", " 妫�鏌ョ粨鏉�"), + BGSC(" 8", " 鎶ュ憡鐢熸垚"), + BGCX(" 9", " 鎶ュ憡鎾ら攢"), + BGSH(" 10", " 鎶ュ憡瀹℃牳"); + + /** + * 绫诲瀷 + */ + private final String type; + /** + * 鎻忚堪 + */ + private final String description; + + /** + * 鏍规嵁绫诲瀷鑾峰彇鏋氫妇 + * + * @param type 绫诲瀷 + * @return 鏋氫妇 + */ + public static String getByType(String type) { + for (AppointmentTypeEnum value : values()) { + if (value.getType().equals(type)) { + return value.getDescription(); + } + } + return null; + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java index 8d4b3d7..b8bf763 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java @@ -33,6 +33,13 @@ void updateAppointment(@Valid AppointmentSaveReqVO updateReqVO); /** + * 鏇存柊棰勭害鐘舵�� + * + * @param updateReqVO 鏇存柊淇℃伅 + */ + void updateAppointmentStatus(@Valid AppointmentSaveReqVO updateReqVO); + + /** * 鍒犻櫎棰勭害 * * @param id 缂栧彿 @@ -47,7 +54,6 @@ */ AppointmentDO getAppointment(Long id); - /** * 鑾峰緱棰勭害鍒嗛〉 * @@ -55,7 +61,6 @@ * @return 棰勭害鍒嗛〉 */ PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO); - /** * 鐢宠鍗曞垱寤� 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 d43196c..8060822 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 @@ -11,13 +11,17 @@ import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails; import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; 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.feign.RemoteDataService; import cn.lihu.jh.module.ecg.service.config.EcgConfigService; +import cn.lihu.jh.module.ecg.service.devrent.ApplicationTemplate; import cn.lihu.jh.module.ecg.service.queue.QueueService; 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.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,6 +65,9 @@ @Resource private AppointmentMapper appointmentMapper; + @Autowired + private WebServiceClient webServiceClient; + @Override public Long createAppointment(AppointmentSaveReqVO createReqVO) { // 鎻掑叆 @@ -83,6 +90,56 @@ // 鏇存柊 AppointmentDO updateObj = BeanUtils.toBean(updateReqVO, AppointmentDO.class); appointmentMapper.updateById(updateObj); + } + + @Override + public void updateAppointmentStatus(AppointmentSaveReqVO updateReqVO) { + // 鏍¢獙瀛樺湪 + validateAppointmentExists(updateReqVO.getId()); + + // 鑾峰彇瀹屾暣鐨勯绾︿俊鎭� + AppointmentDO appointment = appointmentMapper.selectById(updateReqVO.getId()); + if (appointment == null) { + throw exception(APPOINTMENT_NOT_EXISTS); + } + + // 鏇存柊鐘舵�� + appointment.setStatus(updateReqVO.getStatus()); + + // 璋冪敤HIS绯荤粺鏇存柊鐘舵�� + String action = "S0405"; + ApplicationTemplate app = new ApplicationTemplate(); + String statusName = AppointmentTypeEnum.getByType(appointment.getStatus()); + String message = app.getXML( + appointment.getApplyNo(), + appointment.getStatus(), + statusName, + null, + appointment.getPatDeptCode(), + appointment.getPatDeptDesc(), + appointment.getPatWardCode(), + appointment.getPatWardDesc(), + appointment.getPatBedNo(), + appointment.getEpisodeId(), + String.valueOf(appointment.getBookSrc()), + appointment.getPatId(), + appointment.getPatName() + ); + + try { + String response = webServiceClient.callJHFWTYRK(action, "", message); + if (response.contains("鏇存柊鎴愬姛")) { + // 鏇存柊鏈湴鏁版嵁搴� + appointmentMapper.updateById(appointment); + + + } else { + throw exception(APPOINTMENT_UPDATE_FAIL); + } + } catch (Exception e) { + log.error("[updateAppointmentStatus][鏇存柊棰勭害鐘舵�佸け璐� appointment({})]", appointment, e); + throw exception(APPOINTMENT_UPDATE_FAIL); + } } @Override @@ -371,7 +428,6 @@ // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞朵繚瀛� AppointmentSaveReqVO saveReqVO = BeanUtils.toBean(appointment, AppointmentSaveReqVO.class); - saveReqVO.setStatus("1"); return createAppointment(saveReqVO); } catch (Exception e) { log.error("[handleAppointmentCreate][澶勭悊棰勭害鍒涘缓澶辫触 dataMap({})]", dataMap, e); @@ -559,22 +615,27 @@ // 瑙f瀽棰勭害鏃堕棿 LocalDateTime bookTime = LocalDateTime.parse(bookTimeStr, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); LocalDate bookDate = bookTime.toLocalDate(); + Integer bookTimeslot = null; // 鑾峰彇鏃堕棿娈� - String timeRange = (String) ((Map<String, Object>) actAppointment.get("ZDY")).get("time"); - String[] time1 = timeRange.split(" "); - String[] times = time1[1].split("-"); - String startTime = times[0].trim(); - String endTime = times[1].trim(); - - // 杞崲鏃堕棿娈垫牸寮忎负hhmmhhmm - int bookTimeslot = Integer.parseInt(startTime.replace(":", "")) * 10000 + Integer.parseInt(endTime.replace(":", "")); - + try { +// String timeRange = (String) ((Map<String, Object>) actAppointment.get("ZDY")).get("time");杩欒濡傛灉鏄洿鏂版搷浣滅殑鏃跺�欙紝鏈夊彲鑳芥姤绌烘寚閽�(浣嗕笉褰卞搷锛屽彲浠ヤ笉鐢ㄧ) + String timeRange = (String) ((Map<String, Object>) actAppointment.get("ZDY")).get("time"); + String[] time1 = timeRange.split(" "); + String[] times = time1[1].split("-"); + String startTime = times[0].trim(); + String endTime = times[1].trim(); + // 杞崲鏃堕棿娈垫牸寮忎负hhmmhhmm + bookTimeslot = Integer.parseInt(startTime.replace(":", "")) * 10000 + Integer.parseInt(endTime.replace(":", "")); + } catch (Exception e) { + e.printStackTrace(); + } // 鏇存柊棰勭害淇℃伅 appointment.setBookDate(bookDate); appointment.setBookTimeslot(bookTimeslot); appointment.setBookTime(bookTime); appointment.setBookSrc(Integer.parseInt(bookSrc)); + appointment.setStatus((String) ((Map<String, Object>) actAppointment.get("ZDY")).get("statusCode")); // 淇濆瓨鏇存柊 appointmentMapper.updateById(appointment); -- Gitblit v1.9.3