From eb3195e397b023cfae1ee4dea7fbc29f1271504f Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期六, 07 六月 2025 15:37:51 +0800 Subject: [PATCH] 代码提交 --- jh-server/src/main/resources/application-prod.yaml | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java | 510 +++++++++----------- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java | 8 jh-server/src/main/resources/application.yaml | 3 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 544 ++++++++++++++++------ jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java | 3 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/HisCheckCodeEnum.java | 52 ++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java | 58 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentSaveReqVO.java | 9 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java | 64 +- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java | 25 jh-module-ecg/jh-module-ecg-biz/pom.xml | 29 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/external/ExternalController.java | 80 +++ 13 files changed, 897 insertions(+), 490 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java index e7e097e..fc083ce 100644 --- a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java +++ b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java @@ -17,6 +17,9 @@ ErrorCode APPOINTMENT_EXIST_TODAY = new ErrorCode(1_010_001_020, "褰撳ぉ棰勭害宸插瓨鍦�"); ErrorCode APPOINTMENT_HAVE_QUEUED = new ErrorCode(1_010_001_030, "鎮ㄥ凡缁忓湪鎺掗槦涓簡"); ErrorCode APPOINTMENT_NOT_BILLING = new ErrorCode(1_010_001_040, "鏌ヨ涓嶅埌寮�鍗曚俊鎭�"); + ErrorCode APPOINTMENT_CREATE_FAIL = new ErrorCode(1_010_001_050, "鐢宠鍗曞垱寤哄け璐�"); + ErrorCode APPOINTMENT_UPDATE_FAIL = new ErrorCode(1_010_001_060, "鐢宠鍗曟洿鏂板け璐�"); + ErrorCode APPOINTMENT_STATUS_UPDATE_FAIL = new ErrorCode(1_010_001_070, "鐢宠鍗曠姸鎬佹洿鏂�"); ErrorCode ROOM_NOT_EXISTS = new ErrorCode(1_010_002_000, "璇婂鍜岃瘖鐤楀簥涓嶅瓨鍦�"); ErrorCode ROOM_NOT_SIT = new ErrorCode(1_010_002_001, "璇烽噸鏂板氨搴�"); diff --git a/jh-module-ecg/jh-module-ecg-biz/pom.xml b/jh-module-ecg/jh-module-ecg-biz/pom.xml index 32cead0..c9756f8 100644 --- a/jh-module-ecg/jh-module-ecg-biz/pom.xml +++ b/jh-module-ecg/jh-module-ecg-biz/pom.xml @@ -146,6 +146,35 @@ <scope>test</scope> </dependency> + <!-- WebService鐩稿叧渚濊禆 --> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-frontend-jaxws</artifactId> + <version>3.5.5</version> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-transports-http</artifactId> + <version>3.5.5</version> + </dependency> + <dependency> + <groupId>javax.xml.ws</groupId> + <artifactId>jaxws-api</artifactId> + <version>2.3.1</version> + </dependency> + <dependency> + <groupId>javax.jws</groupId> + <artifactId>javax.jws-api</artifactId> + <version>1.1</version> + </dependency> + + <!-- Spring Boot 閰嶇疆澶勭悊鍣� --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <optional>true</optional> + </dependency> + </dependencies> </project> diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentSaveReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentSaveReqVO.java index 6dbc150..52ce8f5 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentSaveReqVO.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentSaveReqVO.java @@ -1,6 +1,7 @@ package cn.lihu.jh.module.ecg.controller.admin.appointment.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -21,6 +22,11 @@ @Schema(description = "灏辫瘖娴佹按鍙�", example = "2024546") //@NotEmpty(message = "灏辫瘖娴佹按鍙�") private String episodeId; + + /** + * 鎮h�呮潵婧愮被鍨� 01闂瘖 02鎬ヨ瘖 03浣撴 04浣忛櫌 + */ + private Integer patSrc; @Schema(description = "鎮h�呯紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED, example = "29034") @NotEmpty(message = "鎮h�呯紪鍙蜂笉鑳戒负绌�") @@ -82,4 +88,7 @@ @Schema(description = "宸蹭粯娆�") private Integer paid; + + @TableField(exist = false) + private String status; } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java index 5ffdbc1..5e6efac 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java @@ -1,8 +1,10 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; +import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.module.ecg.enums.DevStateEnum; +import cn.lihu.jh.module.ecg.service.appointment.AppointmentService; import cn.lihu.jh.module.ecg.service.devmanage.DeviceService; import cn.lihu.jh.module.ecg.service.queue.QueueService; import lombok.extern.slf4j.Slf4j; @@ -24,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 cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; @@ -49,6 +52,9 @@ @Resource private QueueService queueService; + + @Resource + private AppointmentService appointmentService; // 甯歌妫�鏌� 瀹屾垚 @PostMapping("/routine-finish") @@ -135,7 +141,7 @@ @Operation(summary = "閬楀け") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devLose(@Valid @RequestBody DevRentSaveReqVO loseReqVO) { - loseReqVO.setState( DevStateEnum.LOST.getState() ); + loseReqVO.setState(DevStateEnum.LOST.getState()); return devRentService.dismantleExceptionOperation(loseReqVO); } @@ -143,7 +149,7 @@ @Operation(summary = "鎹熷潖") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devDamage(@Valid @RequestBody DevRentSaveReqVO damageReqVO) { - damageReqVO.setState( DevStateEnum.DAMAGED.getState() ); + damageReqVO.setState(DevStateEnum.DAMAGED.getState()); return devRentService.dismantleExceptionOperation(damageReqVO); } @@ -180,7 +186,7 @@ DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); - DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); + DeviceDO deviceDO = deviceService.getDevice(devRent.getDevId()); if (null != deviceDO) { devRentRespVO.setCategory(deviceDO.getCategory()); devRentRespVO.setBrand(deviceDO.getBrand()); @@ -202,21 +208,18 @@ @Operation(summary = "瀵煎嚭瑁呮満鎷嗘満 Excel") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:export')") @ApiAccessLog(operateType = EXPORT) - public void exportDevRentExcel(@Valid DevRentPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportDevRentExcel(@Valid DevRentPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<DevRentDO> list = devRentService.getDevRentPage(pageReqVO).getList(); // 瀵煎嚭 Excel - ExcelUtils.write(response, "瑁呮満鎷嗘満.xls", "鏁版嵁", DevRentRespVO.class, - BeanUtils.toBean(list, DevRentRespVO.class)); + ExcelUtils.write(response, "瑁呮満鎷嗘満.xls", "鏁版嵁", DevRentRespVO.class, BeanUtils.toBean(list, DevRentRespVO.class)); } @GetMapping("/get-free-rent") @Operation(summary = "鏍规嵁鎮h�呮垨璁惧, 鑾峰彇宸查鍙栫璧佹儏鍐�") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") - public CommonResult<DevRentRespVO> getFreeRent( @Valid DevRentSearchReqVO searchReqVO ) - { - DevRentDO devRent = devRentService.getFreeRent( searchReqVO ); + public CommonResult<DevRentRespVO> getFreeRent(@Valid DevRentSearchReqVO searchReqVO) { + DevRentDO devRent = devRentService.getFreeRent(searchReqVO); if (null == devRent) { return CommonResult.success(null); } @@ -228,16 +231,15 @@ @GetMapping("/get-ready-rent") @Operation(summary = "鑾峰彇宸查鍙栫璧佹儏鍐�") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") - public CommonResult<DevRentRespVO> getReadyRent( @Valid DevRentSearchReqVO searchReqVO ) - { - DevRentDO devRent = devRentService.getReadyOrCancelledRent( searchReqVO ); + public CommonResult<DevRentRespVO> getReadyRent(@Valid DevRentSearchReqVO searchReqVO) { + DevRentDO devRent = devRentService.getReadyOrCancelledRent(searchReqVO); if (null == devRent) { return CommonResult.success(null); } DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); - DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); + DeviceDO deviceDO = deviceService.getDevice(devRent.getDevId()); if (null != deviceDO) { devRentRespVO.setCategory(deviceDO.getCategory()); devRentRespVO.setBrand(deviceDO.getBrand()); @@ -250,39 +252,37 @@ @GetMapping("/get-existing-rent") @Operation(summary = "鑾峰彇宸插畨瑁呫�佸凡棰嗙敤鐨勭璧佹儏鍐�") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") - public CommonResult<DevRentRespVO> getInstalledRent( @Valid DevRentSearchReqVO searchReqVO ) - { - DevRentDO devRent = devRentService.getExistingRent( searchReqVO ); + public CommonResult<DevRentRespVO> getInstalledRent(@Valid DevRentSearchReqVO searchReqVO) { + DevRentDO devRent = devRentService.getExistingRent(searchReqVO); if (null == devRent) { return CommonResult.success(null); } - DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); + DeviceDO deviceDO = deviceService.getDevice(devRent.getDevId()); DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); - devRentRespVO.setCategory( deviceDO.getCategory() ); - devRentRespVO.setBrand( deviceDO.getBrand() ); - devRentRespVO.setModel( deviceDO.getModel() ); - devRentRespVO.setDevState( devRent.getState() ); + devRentRespVO.setCategory(deviceDO.getCategory()); + devRentRespVO.setBrand(deviceDO.getBrand()); + devRentRespVO.setModel(deviceDO.getModel()); + devRentRespVO.setDevState(devRent.getState()); return CommonResult.success(devRentRespVO); } @GetMapping("/get-dismantled-rent") @Operation(summary = "鑾峰彇宸叉媶鍗哥璧佹儏鍐�") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") - public CommonResult<DevRentRespVO> getDismantledRent( @Valid DevRentSearchReqVO searchReqVO ) - { - DevRentDO devRent = devRentService.getDismantledRent( searchReqVO ); + public CommonResult<DevRentRespVO> getDismantledRent(@Valid DevRentSearchReqVO searchReqVO) { + DevRentDO devRent = devRentService.getDismantledRent(searchReqVO); if (null == devRent) { return CommonResult.success(null); } - DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); + DeviceDO deviceDO = deviceService.getDevice(devRent.getDevId()); DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); - devRentRespVO.setCategory( deviceDO.getCategory() ); - devRentRespVO.setBrand( deviceDO.getBrand() ); - devRentRespVO.setModel( deviceDO.getModel() ); + devRentRespVO.setCategory(deviceDO.getCategory()); + devRentRespVO.setBrand(deviceDO.getBrand()); + devRentRespVO.setModel(deviceDO.getModel()); return CommonResult.success(devRentRespVO); } @@ -296,8 +296,7 @@ String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); Integer result = devRentService.feeConfirm(rentId, userHisId, userNickname, true); - if (1 == result) - return CommonResult.error(result, "纭垂澶辫触"); + if (1 == result) return CommonResult.error(result, "纭垂澶辫触"); return CommonResult.success(result); } @@ -312,8 +311,7 @@ String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); Integer result = devRentService.feeConfirm(rentId, userHisId, userNickname, false); - if (1 == result) - return CommonResult.error(result, "鍙栨秷纭垂澶辫触"); + if (1 == result) return CommonResult.error(result, "鍙栨秷纭垂澶辫触"); return CommonResult.success(result); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/external/ExternalController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/external/ExternalController.java new file mode 100644 index 0000000..19c49b6 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/external/ExternalController.java @@ -0,0 +1,80 @@ +package cn.lihu.jh.module.ecg.controller.admin.external; + +import cn.lihu.jh.framework.common.pojo.CommonResult; +import cn.lihu.jh.module.ecg.enums.ActionTypeEnum; +import cn.lihu.jh.module.ecg.service.appointment.AppointmentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Map; +import java.util.function.Consumer; + +import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.lihu.jh.framework.common.pojo.CommonResult.success; +import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.APPOINTMENT_CREATE_FAIL; + +@Tag(name = "渚涚涓夋柟璋冪敤鎺ュ彛") +@RestController +@RequestMapping("/ecg/external") +@Validated +@Slf4j +public class ExternalController { + + @Resource + private AppointmentService appointmentService; + + /** + * 閫氱敤鎺ュ彛 + * <p> + * 鏀寔浠ヤ笅action绫诲瀷锛� + * - S0201ECG: 棰勭害鍒涘缓 + * - S0202ECG: 棰勭害鏇存柊 + * + * @param dataMap 璇锋眰鏁版嵁 + * @param headers 璇锋眰澶达紝蹇呴』鍖呭惈action瀛楁 + * @return 澶勭悊缁撴灉 + */ + @PermitAll + @Operation(summary = "閫氱敤鎺ュ彛") + @PostMapping("/generalInterface") + public CommonResult<Boolean> generalInterface( + @RequestBody @NotNull(message = "璇锋眰鏁版嵁涓嶈兘涓虹┖") Map<String, Object> dataMap, + @RequestHeader @NotEmpty(message = "璇锋眰澶翠笉鑳戒负绌�") Map<String, String> headers) { + log.info("[generalInterface][寮�濮嬪鐞嗚姹� action({}) dataMap({})]", headers.get("action"), dataMap); + + String actionType = headers.get("action"); + ActionTypeEnum action = ActionTypeEnum.getByType(actionType); + if (action == null) { + log.warn("[generalInterface][鏈煡鐨刟ction绫诲瀷 action({})]", actionType); + throw exception(APPOINTMENT_CREATE_FAIL); + } + + try { + // 浣跨敤绛栫暐妯″紡澶勭悊涓嶅悓鐨刟ction + Map<ActionTypeEnum, Consumer<Map<String, Object>>> actionHandlers = Map.of( + ActionTypeEnum.S0201ECG, appointmentService::handleAppointmentCreate, + ActionTypeEnum.S0202ECG, appointmentService::handleAppointmentUpdate, + ActionTypeEnum.S040501HIS, appointmentService::handleAppointmentStateUpdate, + ActionTypeEnum.S050401, appointmentService::handleCheckAppointmentUpdate, + ActionTypeEnum.S050501, appointmentService::handleCheckAppointmentUpdate + ); + + Consumer<Map<String, Object>> handler = actionHandlers.get(action); + if (handler == null) { + throw exception(APPOINTMENT_CREATE_FAIL); + } + + handler.accept(dataMap); + return success(true); + } catch (Exception e) { + throw exception(APPOINTMENT_CREATE_FAIL); + } + } +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java index 1dcdebb..62ec996 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java @@ -11,6 +11,7 @@ import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; + import com.baomidou.mybatisplus.annotation.*; import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; @@ -57,7 +58,7 @@ private String patName; /** * 鎮h�呮�у埆 - * + * <p> * 鏋氫妇 {@link TODO system_user_sex 瀵瑰簲鐨勭被} */ private Byte patGender; @@ -115,7 +116,6 @@ private LocalDateTime bookTime; /** * 棰勭害妫�鏌ョ被鍨� - * */ private Integer bookCheckType; /** @@ -137,4 +137,6 @@ @TableField(exist = false) private Integer bookSeqNum; -} \ No newline at end of file + private String status; + +} 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 c943597..98c9d1a 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 @@ -1,11 +1,11 @@ package cn.lihu.jh.module.ecg.dal.mysql.appointment; import cn.lihu.jh.framework.common.pojo.PageResult; -import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; +import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentPageReqVO; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import org.apache.ibatis.annotations.Mapper; -import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -21,12 +21,9 @@ public interface AppointmentMapper extends BaseMapperX<AppointmentDO> { default PageResult<AppointmentDO> selectPage(AppointmentPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX<AppointmentDO>() - .eqIfPresent(AppointmentDO::getApplyNo, reqVO.getApplyNo()) - .eqIfPresent(AppointmentDO::getEpisodeId, reqVO.getEpisodeId()) .eqIfPresent(AppointmentDO::getPatId, reqVO.getPatId()) - .likeIfPresent(AppointmentDO::getPatName, reqVO.getPatName()) + .eqIfPresent(AppointmentDO::getPatName, reqVO.getPatName()) .eqIfPresent(AppointmentDO::getPatGender, reqVO.getPatGender()) .eqIfPresent(AppointmentDO::getPatBirthday, reqVO.getPatBirthday()) .eqIfPresent(AppointmentDO::getPatMobile, reqVO.getPatMobile()) @@ -37,27 +34,25 @@ .eqIfPresent(AppointmentDO::getPatDeptDesc, reqVO.getPatDeptDesc()) .eqIfPresent(AppointmentDO::getPatWardCode, reqVO.getPatWardCode()) .eqIfPresent(AppointmentDO::getPatWardDesc, reqVO.getPatWardDesc()) - .eqIfPresent(AppointmentDO::getPatBedNo, reqVO.getPatBedNo()) .eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate()) .eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot()) - .betweenIfPresent(AppointmentDO::getBookTime, reqVO.getBookTime()) .eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType()) .eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc()) + .eqIfPresent(AppointmentDO::getPaid, reqVO.getPaid()) .orderByDesc(AppointmentDO::getId)); } -/* + @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now())") - List<AppointmentDO> getCurrentPatId(@Param("patId") String patId); -*/ + List<AppointmentDO> getCurrentPatId(String patId); @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(Now()) limit 1") - AppointmentDO getCurrentByPatAndCheckType(@Param("patId") String patId, @Param("checkType") Integer checkType); - - @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(#{book_date}) limit 1") - AppointmentDO getByPatAndCheckTypeAndBookDate(@Param("patId") String patId, @Param("checkType") Integer checkType, @Param("book_date") LocalDate book_date); + AppointmentDO getByPatAndCheckTypeAndBookDate(@Param("patId") String patId, @Param("checkType") Integer checkType); @Select("select * from lihu.appointment where episode_id = #{episodeId} and apply_no = #{applyNo} limit 1") AppointmentDO getByEpisodeIdAndApplyNo(@Param("episodeId") String episodeId, @Param("applyNo") String applyNo); + + @Select("select * from lihu.appointment where apply_no = #{applyNo} limit 1") + AppointmentDO getByApplyNo(@Param("applyNo") String applyNo); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/HisCheckCodeEnum.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/HisCheckCodeEnum.java new file mode 100644 index 0000000..c22dcce --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/enums/HisCheckCodeEnum.java @@ -0,0 +1,52 @@ +package cn.lihu.jh.module.ecg.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * His鐨凜heck_type绫诲瀷鏋氫妇 + */ +@Getter +@AllArgsConstructor +public enum HisCheckCodeEnum { + Y691133607("691133607", "100"), Y201605("201605", "200"), Y200327("200327", "300"), Y201652("201652", "400"), Y502490914("502490914", "500"), Y419562119("419562119", "600"), Y201604("201604", "700"), Y1202042("1202042", "800"), Y1202058("1202058", "900"), Y1202065("1202065", "1000"), Y559542128("559542128", "1100"), Y590244511("590244511", "1200"), Y666454217("666454217", "1300"), Y720791490("720791490", "1400"), Y720792077("720792077", "1500"); + + /** + * 绫诲瀷 + */ + private final String code; + /** + * 鎻忚堪 + */ + private final String value; + + /** + * 鏍规嵁绫诲瀷鑾峰彇鏋氫妇 + * + * @param type 绫诲瀷 + * @return 鏋氫妇 + */ + public static String getByCode(String code) { + for (HisCheckCodeEnum value : values()) { + if (value.getCode().equals(code)) { + return value.getValue(); + } + } + return null; + } + + /** + * 鏍规嵁绫诲瀷鑾峰彇鏋氫妇 + * + * @param val 鍊肩被鍨� + * @return 鏋氫妇 + */ + public static String getByValue(String val) { + for (HisCheckCodeEnum value : values()) { + if (value.getValue().equals(val)) { + return value.getCode(); + } + } + 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 3543317..8d4b3d7 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 @@ -1,11 +1,14 @@ package cn.lihu.jh.module.ecg.service.appointment; -import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; -import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentConfirmReqVO; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentPageReqVO; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentSaveReqVO; +import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import javax.validation.Valid; import java.util.List; +import java.util.Map; /** * 棰勭害 Service 鎺ュ彛 @@ -44,6 +47,45 @@ */ AppointmentDO getAppointment(Long id); + + /** + * 鑾峰緱棰勭害鍒嗛〉 + * + * @param pageReqVO 鍒嗛〉鏌ヨ + * @return 棰勭害鍒嗛〉 + */ + PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO); + + + /** + * 鐢宠鍗曞垱寤� + * + * @param dataMap 璇锋眰鏁版嵁 + * @return 棰勭害缂栧彿 + */ + Long handleAppointmentCreate(Map<String, Object> dataMap); + + /** + * 鐢宠鍗曟洿鏂� + * + * @param dataMap 璇锋眰鏁版嵁 + */ + void handleAppointmentUpdate(Map<String, Object> dataMap); + + /** + * 鐢宠鍗曠姸鎬佹洿鏂� + * + * @param dataMap 璇锋眰鏁版嵁 + */ + void handleAppointmentStateUpdate(Map<String, Object> dataMap); + + /** + * 澶勭悊妫�鏌ラ绾︾姸鎬佹柊澧� + * + * @param dataMap 璇锋眰鏁版嵁 + */ + void handleCheckAppointmentUpdate(Map<String, Object> dataMap); + /** * 鑾峰緱褰撳ぉ鐨勯绾� 鏍规嵁PatID and CheckType * @@ -55,20 +97,14 @@ /** * 鑾峰緱棰勭害 * - * @param patId 缂栧彿 + * @param patCode 缂栧彿 * @return 棰勭害 */ List<AppointmentDO> queryAndCreateAppointmentByPatId(String patCode); - /** - * 鑾峰緱棰勭害鍒嗛〉 - * - * @param pageReqVO 鍒嗛〉鏌ヨ - * @return 棰勭害鍒嗛〉 - */ - PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO); - List<AppointmentDO> getAppointmentExtermal(String patId); Integer appoitmentConfirm(AppointmentConfirmReqVO appointmentConfirmReqVO); + + public AppointmentDO getByApplyNo(String applyNo); } 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 980feb8..13e68f3 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 @@ -1,45 +1,39 @@ package cn.lihu.jh.module.ecg.service.appointment; +import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.util.date.DateUtils; -import cn.lihu.jh.framework.common.util.date.LocalDateTimeUtils; +import cn.lihu.jh.framework.common.util.object.BeanUtils; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentConfirmReqVO; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentPageReqVO; +import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentSaveReqVO; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO; -import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; +import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; 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.HisCheckCodeEnum; import cn.lihu.jh.module.ecg.feign.RemoteDataService; -import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo; -import cn.lihu.jh.module.ecg.feign.RestApiResult; -import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; import cn.lihu.jh.module.ecg.service.config.EcgConfigService; import cn.lihu.jh.module.ecg.service.queue.QueueService; -import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions; import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; -import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; -import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; -import cn.lihu.jh.framework.common.pojo.PageResult; -import cn.lihu.jh.framework.common.util.object.BeanUtils; - -import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; - import javax.annotation.Resource; -import javax.xml.crypto.Data; - import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.lihu.jh.framework.common.pojo.CommonResult.error; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** @@ -71,8 +65,6 @@ public Long createAppointment(AppointmentSaveReqVO createReqVO) { // 鎻掑叆 AppointmentDO appointment = BeanUtils.toBean(createReqVO, AppointmentDO.class); - - appointment.setBookTime( LocalDateTime.now() ); try { appointmentMapper.insert(appointment); @@ -114,7 +106,7 @@ @Override public AppointmentDO getCurAppointmentByPatIdAndCheckType(String patId, Integer checkType) { - AppointmentDO appointmentDO = appointmentMapper.getByPatAndCheckTypeAndBookDate( patId, checkType, LocalDate.now() ); + AppointmentDO appointmentDO = appointmentMapper.getByPatAndCheckTypeAndBookDate(patId, checkType); return appointmentDO; } @@ -125,23 +117,22 @@ @Override public List<AppointmentDO> queryAndCreateAppointmentByPatId(String patCode) { // 浠庡尰闄㈠钩鍙版煡璇� - List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal( patCode ); + List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal(patCode); - for ( int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++ ) { + for (int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++) { AppointmentDO appointmentExtermal = appointmentExtermalList.get(appointmentIndex); - if (null == appointmentExtermal ) - continue; + if (null == appointmentExtermal) continue; // 浠嶥B鏌ヨ棰勭害锛屾槸鍚﹀凡缁忓瓨鍦� AppointmentDO appointmentDO = appointmentMapper.getByEpisodeIdAndApplyNo(appointmentExtermal.getEpisodeId(), appointmentExtermal.getApplyNo()); if (null == appointmentDO) { appointmentMapper.insert(appointmentExtermal); } else { - appointmentExtermal.setId( appointmentDO.getId() ); // 纭繚 杩斿洖鍊煎寘鍚� appointment id + appointmentExtermal.setId(appointmentDO.getId()); // 纭繚 杩斿洖鍊煎寘鍚� appointment id // 澶勭悊绗竴娆$‘璁ゆ椂杩樻病鏈夐绾︽椂闂达紝鍐嶆潵纭鏃跺凡鏈夐绾︽椂闂寸殑鎯呭喌 if (appointmentDO.getBookDate() != appointmentExtermal.getBookDate()) { - appointmentMapper.updateById( appointmentExtermal ); + appointmentMapper.updateById(appointmentExtermal); } } } @@ -170,74 +161,77 @@ @Override public List<AppointmentDO> getAppointmentExtermal(String patId) { - List<AppointmentDO> curAppointDOList = new ArrayList<AppointmentDO>(); - - RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); - if (18 == patId.length()) { - reqBodyVo.setSfzh( patId ); - } else { - reqBodyVo.setMzzyh(patId); - } - - // QueryRisReportList queryEcgRequest - RestApiResult<AppointmentExternal> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); - if (0 == result.getRow().size()) { - return curAppointDOList; - } - - for (int appointIndex=0; appointIndex < result.getRow().size(); appointIndex++ ) { - AppointmentExternal appointmentExternal = result.getRow().get( appointIndex ); - - AppointmentDO appointmentDO = BeanUtils.toBean(appointmentExternal, AppointmentDO.class); - appointmentDO.setApplyNo( appointmentExternal.getReqIdeApplyno() ); - appointmentDO.setEpisodeId( appointmentExternal.getEpisodeID() ); - appointmentDO.setPatSrc( getCorrespondingPatientSource(appointmentExternal.getAdmTypeCode()) ); - appointmentDO.setPatId(appointmentExternal.getPatientID()); // 鍐呭涓� 韬唤璇佸彿 鎴� 闂ㄨ瘖浣忛櫌鍙� - appointmentDO.setPatName(appointmentExternal.getPatName()); - appointmentDO.setPatGender(Byte.valueOf(appointmentExternal.getPatgender())); - appointmentDO.setPatBirthday(DateUtils.ofUTC(appointmentExternal.getEncPatBirthDate()).toLocalDate()); - appointmentDO.setPatIdentityId(appointmentExternal.getIdentityID()); - appointmentDO.setPatAddr(appointmentExternal.getAddress()); - appointmentDO.setPatDeptCode(appointmentExternal.getPatLocDeptCode()); - appointmentDO.setPatDeptDesc(appointmentExternal.getPatLocDeptDesc()); - appointmentDO.setPatWardCode(appointmentExternal.getPatLocWardCode()); - appointmentDO.setPatWardDesc(appointmentExternal.getPatLocWardDesc()); - appointmentDO.setPatMobile(appointmentExternal.getPhone()); - appointmentDO.setPatBedNo(appointmentExternal.getEnBedno()); - appointmentDO.setBookCheckType(getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode())); - appointmentDO.setBookTime(DateUtils.ofUTC(appointmentExternal.getReqAuthoredOn())); // 寮�鍗曟椂闂� - appointmentDO.setBookSrc( 0 ); - - // 鍏夊紑鍗曠殑鎯呭喌锛屾病鏈夐绾︽椂闂� - if (null != appointmentExternal.getReqExtBooktime() ) { - appointmentDO.setBookDate(DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()).toLocalDate()); - LocalDateTime bookStartTime = DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()); - LocalDateTime bookEndTime = bookStartTime.plusMinutes( ecgConfigService.getTimeslotLength()); - appointmentDO.setBookTimeslot((bookStartTime.getHour() * 100 + bookStartTime.getMinute()) * 10000 + bookEndTime.getHour() * 100 + bookEndTime.getMinute()); - } - - appointmentDO.setPaid( 0 ); - - curAppointDOList.add( appointmentDO ); - } - - return curAppointDOList; + return appointmentMapper.getCurrentPatId(patId); } + +// @Override +// public List<AppointmentDO> getAppointmentExtermal(String patId) { +// List<AppointmentDO> curAppointDOList = new ArrayList<AppointmentDO>(); +// +// RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); +// if (18 == patId.length()) { +// reqBodyVo.setSfzh( patId ); +// } else { +// reqBodyVo.setMzzyh(patId); +// } +// +// // QueryRisReportList queryEcgRequest +// RestApiResult<AppointmentExternal> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); +// if (0 == result.getRow().size()) { +// return curAppointDOList; +// } +// +// for (int appointIndex=0; appointIndex < result.getRow().size(); appointIndex++ ) { +// AppointmentExternal appointmentExternal = result.getRow().get( appointIndex ); +// +// AppointmentDO appointmentDO = BeanUtils.toBean(appointmentExternal, AppointmentDO.class); +// appointmentDO.setApplyNo( appointmentExternal.getReqIdeApplyno() ); +// appointmentDO.setEpisodeId( appointmentExternal.getEpisodeID() ); +// appointmentDO.setPatSrc( getCorrespondingPatientSource(appointmentExternal.getAdmTypeCode()) ); +// appointmentDO.setPatId(appointmentExternal.getPatientID()); // 鍐呭涓� 韬唤璇佸彿 鎴� 闂ㄨ瘖浣忛櫌鍙� +// appointmentDO.setPatName(appointmentExternal.getPatName()); +// appointmentDO.setPatGender(Byte.valueOf(appointmentExternal.getPatgender())); +// appointmentDO.setPatBirthday(DateUtils.ofUTC(appointmentExternal.getEncPatBirthDate()).toLocalDate()); +// appointmentDO.setPatIdentityId(appointmentExternal.getIdentityID()); +// appointmentDO.setPatAddr(appointmentExternal.getAddress()); +// appointmentDO.setPatDeptCode(appointmentExternal.getPatLocDeptCode()); +// appointmentDO.setPatDeptDesc(appointmentExternal.getPatLocDeptDesc()); +// appointmentDO.setPatWardCode(appointmentExternal.getPatLocWardCode()); +// appointmentDO.setPatWardDesc(appointmentExternal.getPatLocWardDesc()); +// appointmentDO.setPatMobile(appointmentExternal.getPhone()); +// appointmentDO.setPatBedNo(appointmentExternal.getEnBedno()); +// appointmentDO.setBookCheckType(getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode())); +// appointmentDO.setBookTime(DateUtils.ofUTC(appointmentExternal.getReqAuthoredOn())); // 寮�鍗曟椂闂� +// appointmentDO.setBookSrc( 0 ); +// +// // 鍏夊紑鍗曠殑鎯呭喌锛屾病鏈夐绾︽椂闂� +// if (null != appointmentExternal.getReqExtBooktime() ) { +// appointmentDO.setBookDate(DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()).toLocalDate()); +// LocalDateTime bookStartTime = DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()); +// LocalDateTime bookEndTime = bookStartTime.plusMinutes( ecgConfigService.getTimeslotLength()); +// appointmentDO.setBookTimeslot((bookStartTime.getHour() * 100 + bookStartTime.getMinute()) * 10000 + bookEndTime.getHour() * 100 + bookEndTime.getMinute()); +// } +// +// appointmentDO.setPaid( 0 ); +// +// curAppointDOList.add( appointmentDO ); +// } +// +// return curAppointDOList; +// } @Override @Transactional(rollbackFor = Exception.class) public Integer appoitmentConfirm(AppointmentConfirmReqVO confirmReqVO) { AppointmentDO appointment = getAppointment(confirmReqVO.getId()); - if (null == appointment) - throw exception(PATIENT_NOT_EXISTS); + if (null == appointment) throw exception(PATIENT_NOT_EXISTS); // 鎵嬪姩棰勭害锛岀洿鎺ヨ缃绾︽棩鏈熶负褰撳ぉ if (confirmReqVO.getIsVip() == 1) { - appointment.setBookDate( LocalDate.now() ); + appointment.setBookDate(LocalDate.now()); } - if ( !DateUtils.isToday(appointment.getBookDate()) ) - throw exception( APPOINTMENT_NOT_TODAY); + if (!DateUtils.isToday(appointment.getBookDate())) throw exception(APPOINTMENT_NOT_TODAY); Integer newSeqNo = null; @@ -249,20 +243,20 @@ try { QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO(); - queueSaveReqVO.setApplyNo( appointment.getApplyNo() ); - queueSaveReqVO.setEpisodeId( appointment.getEpisodeId() ); + queueSaveReqVO.setApplyNo(appointment.getApplyNo()); + queueSaveReqVO.setEpisodeId(appointment.getEpisodeId()); queueSaveReqVO.setAppointId(appointment.getId()); queueSaveReqVO.setPatId(appointment.getPatId()); queueSaveReqVO.setPatName(appointment.getPatName()); queueSaveReqVO.setPatGender(appointment.getPatGender()); queueSaveReqVO.setBookDate(appointment.getBookDate()); - queueSaveReqVO.setBookTimeslot( confirmReqVO.getBookTimeslot() ); /*appointment.getBookTimeslot()*/ + queueSaveReqVO.setBookTimeslot(confirmReqVO.getBookTimeslot()); /*appointment.getBookTimeslot()*/ queueSaveReqVO.setBookCheckType(appointment.getBookCheckType()); - queueSaveReqVO.setBookSeqNum( newSeqNo ); - queueSaveReqVO.setIsVip( confirmReqVO.getIsVip() ); + queueSaveReqVO.setBookSeqNum(newSeqNo); + queueSaveReqVO.setIsVip(confirmReqVO.getIsVip()); queueSaveReqVO.setPassed((byte) 0); queueSaveReqVO.setExpired((byte) 0); - queueSaveReqVO.setPatDetails( getPatDetails(appointment) ); + queueSaveReqVO.setPatDetails(getPatDetails(appointment)); queueService.queue(queueSaveReqVO); } catch (DuplicateKeyException duplicateKeyException) { throw exception(APPOINTMENT_HAVE_QUEUED); @@ -271,67 +265,321 @@ return newSeqNo; } - private Integer getCorrespondingCheckType(String strPlanDefItemcode) { - if (strPlanDefItemcode.equals("691133607")) - return 100; - else if (strPlanDefItemcode.equals("201605")) - return 200; - else if (strPlanDefItemcode.equals("200327")) - return 300; - else if (strPlanDefItemcode.equals("201652")) - return 400; - else if (strPlanDefItemcode.equals("502490914")) - return 500; - else if (strPlanDefItemcode.equals("419562119")) - return 600; - else if (strPlanDefItemcode.equals("201604")) - return 700; - else if (strPlanDefItemcode.equals("1202042")) - return 800; - else if (strPlanDefItemcode.equals("1202058")) - return 900; - else if (strPlanDefItemcode.equals("1202065")) - return 1000; - else if (strPlanDefItemcode.equals("559542128")) - return 1100; - else if (strPlanDefItemcode.equals("590244511")) - return 1200; - else if (strPlanDefItemcode.equals("666454217")) - return 1300; - else if (strPlanDefItemcode.equals("720791490")) - return 1400; - else if (strPlanDefItemcode.equals("720792077")) - return 1500; - - return 100; - } - - private Integer getCorrespondingPatientSource(String admTypeCode) { - if (admTypeCode.equals("AMB")) - return 1; - else if (admTypeCode.equals("EMER")) - return 2; - else if (admTypeCode.equals("IMP")) - return 3; - else if (admTypeCode.equals("PHY")) - return 4; - - return 0; - } - private PatDetails getPatDetails(AppointmentDO appointment) { PatDetails patDetails = new PatDetails(); - patDetails.setAppointmentId( appointment.getId() ); - patDetails.setId( appointment.getPatId() ); - patDetails.setName( appointment.getPatName() ); - patDetails.setMobile( appointment.getPatMobile() ); - patDetails.setDeptCode( appointment.getPatDeptCode() ); - patDetails.setDeptDesc( appointment.getPatDeptDesc() ); - patDetails.setWardCode( appointment.getPatWardCode() ); - patDetails.setWardDesc( appointment.getPatWardDesc() ); - patDetails.setBedNo( appointment.getPatBedNo() ); - patDetails.setSource( appointment.getPatSrc() ); + patDetails.setAppointmentId(appointment.getId()); + patDetails.setId(appointment.getPatId()); + patDetails.setName(appointment.getPatName()); + patDetails.setMobile(appointment.getPatMobile()); + patDetails.setDeptCode(appointment.getPatDeptCode()); + patDetails.setDeptDesc(appointment.getPatDeptDesc()); + patDetails.setWardCode(appointment.getPatWardCode()); + patDetails.setWardDesc(appointment.getPatWardDesc()); + patDetails.setBedNo(appointment.getPatBedNo()); + patDetails.setSource(appointment.getPatSrc()); return patDetails; } + + @Override + public Long handleAppointmentCreate(Map<String, Object> dataMap) { + if (dataMap == null) { + throw exception(APPOINTMENT_CREATE_FAIL); + } + + try { + // 鍒涘缓AppointmentDO瀵硅薄 + AppointmentDO appointment = new AppointmentDO(); + + // 浠巇ataMap涓彁鍙栨暟鎹� + Map<String, Object> encounter = extractEncounter(dataMap); + if (encounter == null) { + throw exception(APPOINTMENT_CREATE_FAIL); + } + + // 璁剧疆灏辫瘖娴佹按鍙� + Optional.ofNullable(encounter.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setEpisodeId); + + Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(serviceDeliveryLocation -> (Map<String, Object>) serviceDeliveryLocation.get("location")).map(location -> (Map<String, Object>) location.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatBedNo); + + + // 璁剧疆鎮h�呮潵婧愮被鍨� + Optional.ofNullable(encounter.get("code")).map(code -> (Map<String, Object>) code).map(code -> (String) code.get("code")).map(Integer::parseInt).ifPresent(appointment::setPatSrc); + + // 璁剧疆鎮h�呬俊鎭� + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("patientPerson")).ifPresent(patientPerson -> { + // 璁剧疆鎮h�匢D + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatId); + + // 璁剧疆鎮h�呭鍚� + Optional.ofNullable(patientPerson.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::setPatName); + + // 璁剧疆鎮h�呮墜鏈哄拰鐢佃瘽 + Optional.ofNullable(patientPerson.get("telecom")).map(telecom -> (Map<String, Object>) telecom).map(telecom -> (Map<String, Object>) telecom.get("item")).map(item -> (String) item.get("value")).ifPresent(phone -> { + appointment.setPatMobile(phone); + appointment.setPatPhone(phone); + }); + + // 璁剧疆鎮h�呮�у埆 + Optional.ofNullable(patientPerson.get("administrativeGenderCode")).map(genderCode -> (Map<String, Object>) genderCode).map(genderCode -> (String) genderCode.get("code")).map(Byte::parseByte).ifPresent(appointment::setPatGender); + + // 璁剧疆鎮h�呯敓鏃� + Optional.ofNullable(patientPerson.get("birthTime")).map(birthTime -> (Map<String, Object>) birthTime).map(birthTime -> (String) birthTime.get("value")).map(birthdayStr -> LocalDate.parse(birthdayStr, DateTimeFormatter.ofPattern("yyyyMMdd"))).ifPresent(appointment::setPatBirthday); + + // 璁剧疆鎮h�呭湴鍧� + Optional.ofNullable(patientPerson.get("addr")).map(addr -> (Map<String, Object>) addr).map(addr -> (Map<String, Object>) addr.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatAddr); + + // 璁剧疆鎮h�呰韩浠借瘉鍙� + 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(0)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatIdentityId); + }); + + // 璁剧疆绉戝鍜岀梾鍖轰俊鎭� + 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"); + if (payStatus != null) { + try { + return Integer.parseInt(payStatus.toString()); + } catch (NumberFormatException e) { + log.warn("PayStatus杞崲澶辫触: {}", payStatus); + return null; + } + } + return null; + }).ifPresent(appointment::setPaid); + // 璁剧疆鐢宠鍗曞彿 + 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("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setApplyNo); + + //璁剧疆妫�鏌ョ被鍨� +// 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)))); + + // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞朵繚瀛� + AppointmentSaveReqVO saveReqVO = BeanUtils.toBean(appointment, AppointmentSaveReqVO.class); + return createAppointment(saveReqVO); + } catch (Exception e) { + log.error("[handleAppointmentCreate][澶勭悊棰勭害鍒涘缓澶辫触 dataMap({})]", dataMap, e); + throw exception(APPOINTMENT_CREATE_FAIL); + } + } + + @Override + public void handleAppointmentUpdate(Map<String, Object> dataMap) { + if (dataMap == null) { + throw exception(APPOINTMENT_UPDATE_FAIL); + } + + try { + // 浠巇ataMap涓彁鍙栫敵璇峰崟鍙� + String applyNo = 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("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); + + // 鏌ヨ鐜版湁棰勭害璁板綍 + AppointmentDO existingAppointment = appointmentMapper.getByApplyNo(applyNo); + + // 濡傛灉璁板綍涓嶅瓨鍦紝鍒欒皟鐢╤andleAppointmentCreate杩涜鏂板 + if (existingAppointment == null) { + handleAppointmentCreate(dataMap); + return; + } + + // 浠巇ataMap涓彁鍙栨暟鎹� + Map<String, Object> encounter = extractEncounter(dataMap); + if (encounter == null) { + throw exception(APPOINTMENT_CREATE_FAIL); + } + + // 鏇存柊灏辫瘖娴佹按鍙� + Optional.ofNullable(encounter.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(existingAppointment::setEpisodeId); + + // 璁剧疆搴婁綅鍙� + Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(serviceDeliveryLocation -> (Map<String, Object>) serviceDeliveryLocation.get("location")).map(location -> (Map<String, Object>) location.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(existingAppointment::setPatBedNo); + + + // 鏇存柊鎮h�呮潵婧愮被鍨� + Optional.ofNullable(encounter.get("code")).map(code -> (Map<String, Object>) code).map(code -> (String) code.get("code")).map(Integer::parseInt).ifPresent(existingAppointment::setPatSrc); + + // 鏇存柊鎮h�呬俊鎭� + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("patientPerson")).ifPresent(patientPerson -> { + // 鏇存柊鎮h�匢D + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(existingAppointment::setPatId); + + // 鏇存柊鎮h�呭鍚� + Optional.ofNullable(patientPerson.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(existingAppointment::setPatName); + + // 鏇存柊鎮h�呮墜鏈哄拰鐢佃瘽 + Optional.ofNullable(patientPerson.get("telecom")).map(telecom -> (Map<String, Object>) telecom).map(telecom -> (Map<String, Object>) telecom.get("item")).map(item -> (String) item.get("value")).ifPresent(phone -> { + existingAppointment.setPatMobile(phone); + existingAppointment.setPatPhone(phone); + }); + + // 鏇存柊鎮h�呮�у埆 + Optional.ofNullable(patientPerson.get("administrativeGenderCode")).map(genderCode -> (Map<String, Object>) genderCode).map(genderCode -> (String) genderCode.get("code")).map(Byte::parseByte).ifPresent(existingAppointment::setPatGender); + + // 鏇存柊鎮h�呯敓鏃� + Optional.ofNullable(patientPerson.get("birthTime")).map(birthTime -> (Map<String, Object>) birthTime).map(birthTime -> (String) birthTime.get("value")).map(birthdayStr -> LocalDate.parse(birthdayStr, DateTimeFormatter.ofPattern("yyyyMMdd"))).ifPresent(existingAppointment::setPatBirthday); + + // 鏇存柊鎮h�呭湴鍧� + Optional.ofNullable(patientPerson.get("addr")).map(addr -> (Map<String, Object>) addr).map(addr -> (Map<String, Object>) addr.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(existingAppointment::setPatAddr); + + // 鏇存柊鎮h�呰韩浠借瘉鍙� + 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(0)).map(item -> (String) item.get("extension")).ifPresent(existingAppointment::setPatIdentityId); + }); + + // 鏇存柊绉戝鍜岀梾鍖轰俊鎭� + 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(existingAppointment::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(existingAppointment::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(existingAppointment::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(existingAppointment::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"); + if (payStatus != null) { + try { + return Integer.parseInt(payStatus.toString()); + } catch (NumberFormatException e) { + log.warn("PayStatus杞崲澶辫触: {}", payStatus); + return null; + } + } + return null; + }).ifPresent(existingAppointment::setPaid); + //璁剧疆妫�鏌ョ被鍨� + 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 != "") + existingAppointment.setBookCheckType(Integer.valueOf(HisCheckCodeEnum.getByCode(checkType.substring(1)))); + + // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞舵洿鏂� + AppointmentSaveReqVO updateReqVO = BeanUtils.toBean(existingAppointment, AppointmentSaveReqVO.class); + updateAppointment(updateReqVO); + } catch (Exception e) { + log.error("[handleAppointmentUpdate][鐢宠鍗曟洿鏂板け璐� dataMap({})]", dataMap, e); + throw exception(APPOINTMENT_UPDATE_FAIL); + } + } + + @Override + public void handleAppointmentStateUpdate(Map<String, Object> dataMap) { + if (dataMap == null) { + throw exception(APPOINTMENT_STATUS_UPDATE_FAIL); + } + // 浠巇ataMap涓彁鍙栫敵璇峰崟鍙� + String applyNo = 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("placerGroup")).map(placerGroup -> (Map<String, Object>) placerGroup.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); + + // 鏌ヨ鐜版湁棰勭害璁板綍 + AppointmentDO existingAppointment = appointmentMapper.getByApplyNo(applyNo); + + // 濡傛灉璁板綍涓嶅瓨鍦紝鍒欒皟鐢╤andleAppointmentCreate杩涜鏂板 + if (existingAppointment == null) { + handleAppointmentCreate(dataMap); + return; + } + + + // 浠巇ataMap涓彁鍙栫敵璇峰崟鍙� + String status = 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("placerGroup")).map(placerGroup -> (Map<String, Object>) placerGroup.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("component1")).map(component1 -> (Map<String, Object>) component1.get("processStep")).map(processStep -> (Map<String, Object>) processStep.get("code")).map(code -> (Map<String, Object>) code.get("displayName")).map(displayName -> (String) displayName.get("value")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); + + existingAppointment.setStatus(status); + // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞舵洿鏂� + AppointmentSaveReqVO updateReqVO = BeanUtils.toBean(existingAppointment, AppointmentSaveReqVO.class); + updateAppointment(updateReqVO); + } + + + /** + * 浠巇ataMap涓彁鍙杄ncounter鏁版嵁 + */ + private Map<String, Object> extractEncounter(Map<String, Object> dataMap) { + return 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("componentOf1")).map(componentOf1 -> (Map<String, Object>) componentOf1.get("encounter")).orElse(null); + } + + @Override + public void handleCheckAppointmentUpdate(Map<String, Object> dataMap) { + // 浠巇ataMap涓幏鍙朿ontrolActProcess + Map<String, Object> controlActProcess = (Map<String, Object>) dataMap.get("controlActProcess"); + Map<String, Object> subject = (Map<String, Object>) controlActProcess.get("subject"); + Map<String, Object> actAppointment = (Map<String, Object>) subject.get("actAppointment"); + + // 鑾峰彇鐢宠缂栧彿 + List<Map<String, Object>> referencedOrders = (List<Map<String, Object>>) actAppointment.get("referencedOrder"); + String applyNo = null; + if (!CollectionUtils.isEmpty(referencedOrders)) { + Map<String, Object> actOrder = (Map<String, Object>) referencedOrders.get(0).get("actOrder"); + Map<String, Object> id = (Map<String, Object>) actOrder.get("id"); + applyNo = (String) id.get("extension"); + } + + if (applyNo == null) { + log.warn("[handleCheckAppointmentUpdate][鏈壘鍒扮敵璇风紪鍙穄"); + return; + } + + // 鏍规嵁applyNo鏌ヨ棰勭害璁板綍 + AppointmentDO appointment = appointmentMapper.getByApplyNo(applyNo); + if (appointment == null) { + log.warn("[handleCheckAppointmentUpdate][鏈壘鍒伴绾﹁褰� applyNo({})]", applyNo); + return; + } + + // 鑾峰彇棰勭害鏃堕棿 + Map<String, Object> effectiveTime = (Map<String, Object>) actAppointment.get("effectiveTime"); + Map<String, Object> any = (Map<String, Object>) effectiveTime.get("any"); + String bookTimeStr = (String) any.get("value"); + + // 鑾峰彇棰勭害鏉ユ簮 + Map<String, Object> code = (Map<String, Object>) actAppointment.get("code"); + String bookSrc = (String) code.get("code"); + + // 瑙f瀽棰勭害鏃堕棿 + LocalDateTime bookTime = LocalDateTime.parse(bookTimeStr, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + LocalDate bookDate = bookTime.toLocalDate(); + + // 鑾峰彇鏃堕棿娈� + 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(":", "")); + + // 鏇存柊棰勭害淇℃伅 + appointment.setBookDate(bookDate); + appointment.setBookTimeslot(bookTimeslot); + appointment.setBookTime(bookTime); + appointment.setBookSrc(Integer.parseInt(bookSrc)); + + // 淇濆瓨鏇存柊 + appointmentMapper.updateById(appointment); + } + + public AppointmentDO getByApplyNo(String applyNo) { + return appointmentMapper.getByApplyNo(applyNo); + } } 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 4dede33..263b9a5 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 @@ -1,43 +1,42 @@ package cn.lihu.jh.module.ecg.service.devrent; import cn.lihu.jh.framework.common.pojo.CommonResult; +import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.framework.common.util.object.BeanUtils; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; +import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; 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.devrent.DevRentDO; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO; 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.dal.mysql.checktype.CheckTypeMapper; import cn.lihu.jh.module.ecg.dal.mysql.devmanage.DeviceMapper; +import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper; import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper; import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper; 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.FeeConfirmFeignService; import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions; +import cn.lihu.jh.module.ecg.webservice.client.JHFWWebServiceClient; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; -import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; -import cn.lihu.jh.framework.common.pojo.PageResult; -import cn.lihu.jh.framework.common.util.object.BeanUtils; - -import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper; - -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.getCurTimeString; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** @@ -66,10 +65,17 @@ DeviceMapper deviceMapper; @Resource + AppointmentMapper appointmentMapper; + + @Resource QueueMapper queueMapper; @Resource CheckTypeMapper checkTypeMapper; + + @Resource + private JHFWWebServiceClient jhfwWebServiceClient; + @Override public CommonResult<Long> registerOperation(DevRentSaveReqVO createReqVO) { @@ -90,21 +96,20 @@ Long rent_id = createReqVO.getId(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.ROUTINE_FINISH.getState()); - jobTypeList.add( DevRentStateEnum.ROUTINE_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.ROUTINE_FINISH.getState()); + jobTypeList.add(DevRentStateEnum.ROUTINE_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); - if (devRentDOList.size() == 0) - throw exception(DEV_INSTALL_NOT_APPOINTMENT); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); + if (devRentDOList.size() == 0) throw exception(DEV_INSTALL_NOT_APPOINTMENT); else if (devRentDOList.size() != 1) { - throw exception(DEV_INSTALL_EXCEPTION); + throw exception(DEV_INSTALL_EXCEPTION); } rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.ROUTINE_FINISH.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.ROUTINE_FINISH.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -114,21 +119,21 @@ jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.ROUTINE_FINISH.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.ROUTINE_FINISH.getState()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { // 鎾ら攢 鏀惧純鎿嶄綔 - createReqVO.setState( DevRentStateEnum.ROUTINE_FINISH.getState() ); + createReqVO.setState(DevRentStateEnum.ROUTINE_FINISH.getState()); - updateDevRent( createReqVO ); + updateDevRent(createReqVO); jobRecordDO.setDevId(createReqVO.getDevId()); - jobRecordDO.setJobType( DevRentStateEnum.ROUTINE_FINISH.getState() ); + jobRecordDO.setJobType(DevRentStateEnum.ROUTINE_FINISH.getState()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); @@ -140,16 +145,15 @@ //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); - QueueDO firstOnStageQueueItem = queueMapper.getBedFirstQueueItemByStatus(createReqVO.getRoomId(), - createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); + QueueDO firstOnStageQueueItem = queueMapper.getBedFirstQueueItemByStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); // QueueStatusEnum.ONSTAGE => QueueStatusEnum.FINISH firstOnStageQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 榛樿鐘舵�� 璁剧疆 - queueMapper.updateById( firstOnStageQueueItem ); + queueMapper.updateById(firstOnStageQueueItem); // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 - CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstOnStageQueueItem.getBookCheckType() ); + CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem(firstOnStageQueueItem.getBookCheckType()); if (checkTypeDO.getAffinityCheckTypes().length > 0) { - procAffinityWhenRoutineFinish( firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes() ); + procAffinityWhenRoutineFinish(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes()); } return CommonResult.success(rent_id); @@ -157,6 +161,7 @@ /** * 棰嗙敤瀹屾垚 鎿嶄綔 + * * @param createReqVO 鍒涘缓淇℃伅 * @return */ @@ -175,22 +180,29 @@ throw exception(DEVICE_NOT_FREE); } +// //璁惧棰嗗彇瀹屾垚鍚庯紝姝ゆ椂妫�鏌ョ櫥璁板啓鎴愪簡锛岄渶瑕佸皢杩欎釜鍥炲啓缁欓泦鎴愬钩鍙� +// String action = "S0405"; +// String message = ""; + + +// jhfwWebServiceClient.callJHFWTYRK(action, message); + + List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.RECEIVED.getState()); - jobTypeList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.RECEIVED.getState()); + jobTypeList.add(DevRentStateEnum.RECEIVED_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); - if (devRentDOList.size() == 0) - throw exception(DEV_INSTALL_NOT_APPOINTMENT); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); + if (devRentDOList.size() == 0) throw exception(DEV_INSTALL_NOT_APPOINTMENT); else if (devRentDOList.size() != 1) { throw exception(DEV_INSTALL_EXCEPTION); } rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.RECEIVED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.RECEIVED.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -200,21 +212,21 @@ jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.RECEIVED.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.RECEIVED.getState()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { // 鎾ら攢 鏀惧純鎿嶄綔 - createReqVO.setState( DevRentStateEnum.RECEIVED.getState() ); + createReqVO.setState(DevRentStateEnum.RECEIVED.getState()); - updateDevRent( createReqVO ); + updateDevRent(createReqVO); jobRecordDO.setDevId(createReqVO.getDevId()); - jobRecordDO.setJobType( DevRentStateEnum.RECEIVED.getState() ); + jobRecordDO.setJobType(DevRentStateEnum.RECEIVED.getState()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); @@ -227,18 +239,17 @@ // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); // QueueStatusEnum.ONSTAGE => QueueStatusEnum.RECEIVED - QueueDO bedOnStageQueueItem = queueMapper.getBedFirstQueueItemByStatus( - createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus() ); - CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( bedOnStageQueueItem.getBookCheckType() ); + QueueDO bedOnStageQueueItem = queueMapper.getBedFirstQueueItemByStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); + CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem(bedOnStageQueueItem.getBookCheckType()); bedOnStageQueueItem.setStatus(QueueStatusEnum.RECEIVED.getStatus()); // [宸查鐢╙ 鐘舵�� - bedOnStageQueueItem.setAffinityItem( 0 ); // 浜插拰鏍囪 娓呴櫎锛屽湪瀹夎闃舵閲嶆柊浜插拰 + bedOnStageQueueItem.setAffinityItem(0); // 浜插拰鏍囪 娓呴櫎锛屽湪瀹夎闃舵閲嶆柊浜插拰 // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 , 鏇存柊 bedOnStageQueueItem if (checkTypeDO.getAffinityCheckTypes().length > 0) { procAffinityWhenReadyFinish(/*IN, OUT*/bedOnStageQueueItem, checkTypeDO.getAffinityCheckTypes()); } - queueMapper.updateById( bedOnStageQueueItem ); + queueMapper.updateById(bedOnStageQueueItem); return CommonResult.success(rent_id); } @@ -252,7 +263,7 @@ DevRentDO devRentDO = getDevRent(rent_id); // 瀵逛簬宸叉湁棰嗙敤锛屼絾鏄鏈烘椂浣跨敤鐨勪笉鏄凡棰嗙敤璁惧锛屾姤閿� - if ( null != devRentDO.getDevId() && !createReqVO.getDevId().equals(devRentDO.getDevId()) ) { + if (null != devRentDO.getDevId() && !createReqVO.getDevId().equals(devRentDO.getDevId())) { throw exception(DEVICE_NOT_PAT_RECEIVED); } @@ -264,23 +275,22 @@ // 妫�鏌� job_record 鐢ㄤ簬纭鏄惁鏄涓�娆″畨瑁呮搷浣� List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.INSTALLED.getState()); - jobTypeList.add( DevRentStateEnum.INSTALL_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.INSTALLED.getState()); + jobTypeList.add(DevRentStateEnum.INSTALL_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); // 绗竴娆� 瀹夎鎿嶄綔 if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState()); - if (devRentDOList.size() == 0) - throw exception(DEV_INSTALL_NOT_RECEIVED); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState()); + if (devRentDOList.size() == 0) throw exception(DEV_INSTALL_NOT_RECEIVED); else if (devRentDOList.size() != 1) { throw exception(DEV_INSTALL_EXCEPTION); } rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.INSTALLED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.INSTALLED.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -290,20 +300,20 @@ jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.INSTALLED.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.INSTALLED.getState()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { // 鎾ら攢 鏀惧純鎿嶄綔 - createReqVO.setState( DevRentStateEnum.INSTALLED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setState(DevRentStateEnum.INSTALLED.getState()); + updateDevRent(createReqVO); jobRecordDO.setDevId(createReqVO.getDevId()); - jobRecordDO.setJobType( DevRentStateEnum.INSTALLED.getState() ); + jobRecordDO.setJobType(DevRentStateEnum.INSTALLED.getState()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); @@ -316,13 +326,12 @@ // QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); // QueueStatusEnum.INSTALLING => QueueStatusEnum.FINISH - QueueDO bedInstallingQueueItem = queueMapper.getBedFirstQueueItemByStatus( - createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.INSTALLING.getStatus()); + QueueDO bedInstallingQueueItem = queueMapper.getBedFirstQueueItemByStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.INSTALLING.getStatus()); bedInstallingQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 榛樿鐘舵�� 璁剧疆 - queueMapper.updateById( bedInstallingQueueItem ); + queueMapper.updateById(bedInstallingQueueItem); // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 - CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( bedInstallingQueueItem.getBookCheckType() ); + CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem(bedInstallingQueueItem.getBookCheckType()); if (checkTypeDO.getAffinityCheckTypes().length > 0) { procAffinityWhenInstallFinish(bedInstallingQueueItem, checkTypeDO.getAffinityCheckTypes()); } @@ -333,41 +342,41 @@ @Override @Transactional(rollbackFor = Exception.class) public Long dismantleOperation(DevRentSaveReqVO updateReqVO) { - updateReqVO.setState( DevRentStateEnum.DISMANTLED.getState() ); - updateDevRent( updateReqVO ); + updateReqVO.setState(DevRentStateEnum.DISMANTLED.getState()); + updateDevRent(updateReqVO); Long rentId = updateReqVO.getId(); Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); // 璁惧鎭㈠鍒扮┖闂� - markDevFree( updateReqVO.getDevId(), rentId ); + markDevFree(updateReqVO.getDevId(), rentId); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.DISMANTLED.getState()); + jobTypeList.add(DevRentStateEnum.DISMANTLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId, jobTypeList); if (null == jobRecordDO) { JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); - jobRecordSaveReqVO.setRentId( updateReqVO.getId() ); - jobRecordSaveReqVO.setDevId( updateReqVO.getDevId() ); - jobRecordSaveReqVO.setDocId( userId ); - jobRecordSaveReqVO.setDocName( userNickname ); - jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() ); - jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() ); - jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() ); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.DISMANTLED.getState() ); - jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); - jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); + jobRecordSaveReqVO.setRentId(updateReqVO.getId()); + jobRecordSaveReqVO.setDevId(updateReqVO.getDevId()); + jobRecordSaveReqVO.setDocId(userId); + jobRecordSaveReqVO.setDocName(userNickname); + jobRecordSaveReqVO.setPatId(updateReqVO.getPatId()); + jobRecordSaveReqVO.setPatName(updateReqVO.getPatName()); + jobRecordSaveReqVO.setJobTime(updateReqVO.getReturnTime()); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.DISMANTLED.getState()); + jobRecordSaveReqVO.setRemark(updateReqVO.getRemark()); + jobRecordSaveReqVO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordSaveReqVO.setCheckType(updateReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - jobRecordDO.setJobType( DevRentStateEnum.DISMANTLED.getState() ); - jobRecordDO.setJobTime( updateReqVO.getReturnTime() ); - jobRecordDO.setRemark( updateReqVO.getRemark() ); - jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordDO.setUpdater( String.valueOf(userId) ); - jobRecordDO.setUpdateTime( LocalDateTime.now() ); + jobRecordDO.setJobType(DevRentStateEnum.DISMANTLED.getState()); + jobRecordDO.setJobTime(updateReqVO.getReturnTime()); + jobRecordDO.setRemark(updateReqVO.getRemark()); + jobRecordDO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordDO.setUpdater(String.valueOf(userId)); + jobRecordDO.setUpdateTime(LocalDateTime.now()); jobRecordMapper.updateById(jobRecordDO); } return updateReqVO.getId(); @@ -376,36 +385,36 @@ @Override @Transactional(rollbackFor = Exception.class) public Long dataEntryOperation(DevRentSaveReqVO updateReqVO) { - updateReqVO.setState( DevRentStateEnum.DATAENTERED.getState() ); - updateDevRent( updateReqVO ); + updateReqVO.setState(DevRentStateEnum.DATAENTERED.getState()); + updateDevRent(updateReqVO); Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.DATAENTERED.getState()); + jobTypeList.add(DevRentStateEnum.DATAENTERED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId, jobTypeList); if (null == jobRecordDO) { JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); - jobRecordSaveReqVO.setRentId( updateReqVO.getId() ); - jobRecordSaveReqVO.setDevId( updateReqVO.getDevId() ); - jobRecordSaveReqVO.setDocId( userId ); - jobRecordSaveReqVO.setDocName( userNickname ); - jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() ); - jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() ); - jobRecordSaveReqVO.setJobTime( updateReqVO.getEntryTime() ); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.DATAENTERED.getState() ); - jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); - jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); + jobRecordSaveReqVO.setRentId(updateReqVO.getId()); + jobRecordSaveReqVO.setDevId(updateReqVO.getDevId()); + jobRecordSaveReqVO.setDocId(userId); + jobRecordSaveReqVO.setDocName(userNickname); + jobRecordSaveReqVO.setPatId(updateReqVO.getPatId()); + jobRecordSaveReqVO.setPatName(updateReqVO.getPatName()); + jobRecordSaveReqVO.setJobTime(updateReqVO.getEntryTime()); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.DATAENTERED.getState()); + jobRecordSaveReqVO.setRemark(updateReqVO.getRemark()); + jobRecordSaveReqVO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordSaveReqVO.setCheckType(updateReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - jobRecordDO.setJobType( DevRentStateEnum.DATAENTERED.getState() ); - jobRecordDO.setJobTime( updateReqVO.getEntryTime() ); - jobRecordDO.setRemark( updateReqVO.getRemark() ); - jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordDO.setUpdater( String.valueOf(userId) ); + jobRecordDO.setJobType(DevRentStateEnum.DATAENTERED.getState()); + jobRecordDO.setJobTime(updateReqVO.getEntryTime()); + jobRecordDO.setRemark(updateReqVO.getRemark()); + jobRecordDO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordDO.setUpdater(String.valueOf(userId)); jobRecordMapper.updateById(jobRecordDO); } return updateReqVO.getId(); @@ -420,23 +429,22 @@ DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class); createReqVO.setDevId(null); - createReqVO.setState( DevRentStateEnum.ROUTINE_CANCELLED.getState()); + createReqVO.setState(DevRentStateEnum.ROUTINE_CANCELLED.getState()); Long rent_id = createReqVO.getId(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.ROUTINE_FINISH.getState()); - jobTypeList.add( DevRentStateEnum.ROUTINE_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.ROUTINE_FINISH.getState()); + jobTypeList.add(DevRentStateEnum.ROUTINE_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); - if (devRentDOList.size() != 1) - throw exception(ROUTINE_CHECK_EXIST); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); + if (devRentDOList.size() != 1) throw exception(ROUTINE_CHECK_EXIST); rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.ROUTINE_CANCELLED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.ROUTINE_CANCELLED.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -445,16 +453,16 @@ jobRecordSaveReqVO.setDocName(userNickname); jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.ROUTINE_CANCELLED.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.ROUTINE_CANCELLED.getState()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - updateDevRent( createReqVO ); + updateDevRent(createReqVO); jobRecordDO.setDevId(null); jobRecordDO.setJobType(DevRentStateEnum.ROUTINE_CANCELLED.getState()); @@ -476,28 +484,27 @@ // 鑻ヤ粠 瑁呮満 鏀逛负 鍙栨秷瑁呮満锛屾仮澶嶈澶囩姸鎬� if (null != cancelReqVO.getDevId()) { - markDevFree( cancelReqVO.getDevId(), rentId ); + markDevFree(cancelReqVO.getDevId(), rentId); } DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class); createReqVO.setDevId(null); - createReqVO.setState( DevRentStateEnum.RECEIVED_CANCELLED.getState()); + createReqVO.setState(DevRentStateEnum.RECEIVED_CANCELLED.getState()); Long rent_id = createReqVO.getId(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.RECEIVED.getState()); - jobTypeList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.RECEIVED.getState()); + jobTypeList.add(DevRentStateEnum.RECEIVED_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); - if (devRentDOList.size() != 1) - throw exception(DEV_INSTALL_EXIST); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); + if (devRentDOList.size() != 1) throw exception(DEV_INSTALL_EXIST); rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.RECEIVED_CANCELLED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.RECEIVED_CANCELLED.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -506,16 +513,16 @@ jobRecordSaveReqVO.setDocName(userNickname); jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.RECEIVED_CANCELLED.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.RECEIVED_CANCELLED.getState()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - updateDevRent( createReqVO ); + updateDevRent(createReqVO); jobRecordDO.setDevId(null); jobRecordDO.setJobType(DevRentStateEnum.RECEIVED_CANCELLED.getState()); @@ -537,28 +544,27 @@ // 鑻ヤ粠 瑁呮満 鏀逛负 鍙栨秷瑁呮満锛屾仮澶嶈澶囩姸鎬� if (null != cancelReqVO.getDevId()) { - markDevFree( cancelReqVO.getDevId(), rentId ); + markDevFree(cancelReqVO.getDevId(), rentId); } DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class); createReqVO.setDevId(null); - createReqVO.setState( DevRentStateEnum.INSTALL_CANCELLED.getState() ); + createReqVO.setState(DevRentStateEnum.INSTALL_CANCELLED.getState()); Long rent_id = createReqVO.getId(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.INSTALLED.getState()); - jobTypeList.add( DevRentStateEnum.INSTALL_CANCELLED.getState()); + jobTypeList.add(DevRentStateEnum.INSTALLED.getState()); + jobTypeList.add(DevRentStateEnum.INSTALL_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null == jobRecordDO) { - List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState()); - if (devRentDOList.size() != 1) - throw exception(DEV_INSTALL_EXIST); + List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState()); + if (devRentDOList.size() != 1) throw exception(DEV_INSTALL_EXIST); rent_id = devRentDOList.getFirst().getId(); - createReqVO.setId( rent_id ); - createReqVO.setState( DevRentStateEnum.INSTALL_CANCELLED.getState() ); - updateDevRent( createReqVO ); + createReqVO.setId(rent_id); + createReqVO.setState(DevRentStateEnum.INSTALL_CANCELLED.getState()); + updateDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); @@ -567,19 +573,19 @@ jobRecordSaveReqVO.setDocName(userNickname); jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); - jobRecordSaveReqVO.setJobType( DevRentStateEnum.INSTALL_CANCELLED.getState() ); + jobRecordSaveReqVO.setJobType(DevRentStateEnum.INSTALL_CANCELLED.getState()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); - jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); + jobRecordSaveReqVO.setCheckType(createReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - updateDevRent( createReqVO ); + updateDevRent(createReqVO); jobRecordDO.setDevId(null); - jobRecordDO.setJobType( DevRentStateEnum.INSTALL_CANCELLED.getState() ); + jobRecordDO.setJobType(DevRentStateEnum.INSTALL_CANCELLED.getState()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); @@ -597,49 +603,46 @@ if (updateReqVO.getState() == DevStateEnum.DAMAGED.getState()) { devStateEnum = DevStateEnum.DAMAGED; devRentStateEnum = DevRentStateEnum.DAMAGED; - } - else if (updateReqVO.getState() == DevStateEnum.LOST.getState()) { + } else if (updateReqVO.getState() == DevStateEnum.LOST.getState()) { devStateEnum = DevStateEnum.LOST; devRentStateEnum = DevRentStateEnum.LOST; - } - else - throw exception(DEV_DISMANTLE_EXCEPTION); + } else throw exception(DEV_DISMANTLE_EXCEPTION); // 璁惧閬楀け鏃�, 鏍囨敞閬楀け - markDevDismantleException( updateReqVO.getDevId(), updateReqVO.getId(), updateReqVO.getReturnTime().toLocalDate(), devStateEnum ); + markDevDismantleException(updateReqVO.getDevId(), updateReqVO.getId(), updateReqVO.getReturnTime().toLocalDate(), devStateEnum); - updateReqVO.setState( devRentStateEnum.getState() ); - updateDevRent( updateReqVO ); + updateReqVO.setState(devRentStateEnum.getState()); + updateDevRent(updateReqVO); Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); List<Integer> jobTypeList = new ArrayList<Integer>(); - jobTypeList.add( DevRentStateEnum.DAMAGED.getState()); - jobTypeList.add( DevRentStateEnum.LOST.getState()); + jobTypeList.add(DevRentStateEnum.DAMAGED.getState()); + jobTypeList.add(DevRentStateEnum.LOST.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId, jobTypeList); if (null == jobRecordDO) { JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); - jobRecordSaveReqVO.setRentId( updateReqVO.getId() ); - jobRecordSaveReqVO.setDevId( updateReqVO.getDevId() ); - jobRecordSaveReqVO.setDocId( userId ); - jobRecordSaveReqVO.setDocName( userNickname ); - jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() ); - jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() ); - jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() ); - jobRecordSaveReqVO.setJobType( devRentStateEnum.getState() ); - jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); - jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); + jobRecordSaveReqVO.setRentId(updateReqVO.getId()); + jobRecordSaveReqVO.setDevId(updateReqVO.getDevId()); + jobRecordSaveReqVO.setDocId(userId); + jobRecordSaveReqVO.setDocName(userNickname); + jobRecordSaveReqVO.setPatId(updateReqVO.getPatId()); + jobRecordSaveReqVO.setPatName(updateReqVO.getPatName()); + jobRecordSaveReqVO.setJobTime(updateReqVO.getReturnTime()); + jobRecordSaveReqVO.setJobType(devRentStateEnum.getState()); + jobRecordSaveReqVO.setRemark(updateReqVO.getRemark()); + jobRecordSaveReqVO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordSaveReqVO.setCheckType(updateReqVO.getCheckType()); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { - jobRecordDO.setJobType( devRentStateEnum.getState() ); - jobRecordDO.setJobTime( updateReqVO.getReturnTime() ); - jobRecordDO.setRemark( updateReqVO.getRemark() ); - jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); - jobRecordDO.setUpdater( String.valueOf(userId) ); - jobRecordDO.setUpdateTime( LocalDateTime.now() ); + jobRecordDO.setJobType(devRentStateEnum.getState()); + jobRecordDO.setJobTime(updateReqVO.getReturnTime()); + jobRecordDO.setRemark(updateReqVO.getRemark()); + jobRecordDO.setSummary(updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment()); + jobRecordDO.setUpdater(String.valueOf(userId)); + jobRecordDO.setUpdateTime(LocalDateTime.now()); jobRecordMapper.updateById(jobRecordDO); } @@ -692,34 +695,34 @@ @Override public DevRentDO getExistingRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); - stateList.add( DevRentStateEnum.INSTALLED.getState() ); - stateList.add( DevRentStateEnum.RECEIVED.getState()); - searchReqVO.setStateList( stateList ); + stateList.add(DevRentStateEnum.INSTALLED.getState()); + stateList.add(DevRentStateEnum.RECEIVED.getState()); + searchReqVO.setStateList(stateList); return devRentMapper.getRentByState(searchReqVO); } @Override public DevRentDO getFreeRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); - stateList.add( DevRentStateEnum.FREE.getState() ); - searchReqVO.setStateList( stateList ); + stateList.add(DevRentStateEnum.FREE.getState()); + searchReqVO.setStateList(stateList); return devRentMapper.getRentByState(searchReqVO); } @Override public DevRentDO getReadyOrCancelledRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); - stateList.add( DevRentStateEnum.RECEIVED.getState() ); - stateList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState()); - searchReqVO.setStateList( stateList ); + stateList.add(DevRentStateEnum.RECEIVED.getState()); + stateList.add(DevRentStateEnum.RECEIVED_CANCELLED.getState()); + searchReqVO.setStateList(stateList); return devRentMapper.getRentByState(searchReqVO); } @Override public DevRentDO getDismantledRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); - stateList.add( DevRentStateEnum.DISMANTLED.getState() ); - searchReqVO.setStateList( stateList ); + stateList.add(DevRentStateEnum.DISMANTLED.getState()); + searchReqVO.setStateList(stateList); return devRentMapper.getRentByState(searchReqVO); } @@ -735,34 +738,10 @@ return 2; } - PatDetails patDetails = devRentDO.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(devRentDO.getCheckType()) ); // - item.setItemStatus( isFeeConfirmOrCancel? "5" : "6" ); // 5 纭垂 6 鍙栨秷纭垂 - 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( devRentDO.getApplyNo() ); // - exmRequest.setPatientType( getPatientType(patDetails.getSource()) ); // - exmRequest.setItem(item); - hisFeeConfirmReqBody.setExmRequest(exmRequest); - Integer returnValue = 1; try { - HisFeeConfirmRespResult result = feeConfirmFeignService.httpFeeApi("UpdateExmRequestStatus", "ECG", "ECG", hisFeeConfirmReqBody); - log.info( result.getMsgHeader().getStatus() ); - returnValue = result.getMsgHeader().getStatus().equals("true") ? 0 : 1; + AppointmentDO appointmentDO = appointmentMapper.getByApplyNo(devRentDO.getApplyNo()); + returnValue = appointmentDO.getPaid() == 1 ? 0 : 1; } catch (RuntimeException ex) { returnValue = 1; } @@ -778,10 +757,10 @@ // 璁惧鏍囨敞 宸查鍙� DeviceDO deviceDO = deviceMapper.getDeviceByDevId(devId); if (null != deviceDO && DevStateEnum.FREE.isEqual(deviceDO.getState())) { - deviceDO.setState( DevStateEnum.RECEIVED.getState() ); - deviceDO.setRentId( rentId ); - deviceDO.setStateDate( LocalDate.now() ); - deviceDO.setPatDetails( patDetails ); + deviceDO.setState(DevStateEnum.RECEIVED.getState()); + deviceDO.setRentId(rentId); + deviceDO.setStateDate(LocalDate.now()); + deviceDO.setPatDetails(patDetails); return deviceMapper.updateById(deviceDO); } @@ -791,19 +770,18 @@ // 鏍囪 璁惧宸茶浣跨敤 private Integer markDevInUse(String devId, Long rentId) { DeviceDO deviceDO = deviceMapper.getDeviceByDevId(devId); - if (null == deviceDO) - return 0; + if (null == deviceDO) return 0; if (DevStateEnum.RECEIVED.isEqual(deviceDO.getState()) && rentId.equals(deviceDO.getRentId())) { - deviceDO.setState( DevStateEnum.INUSE.getState() ); - deviceDO.setStateDate( LocalDate.now() ); + deviceDO.setState(DevStateEnum.INUSE.getState()); + deviceDO.setStateDate(LocalDate.now()); return deviceMapper.updateById(deviceDO); } if (DevStateEnum.FREE.isEqual(deviceDO.getState())) { - deviceDO.setState( DevStateEnum.INUSE.getState() ); - deviceDO.setStateDate( LocalDate.now() ); - deviceDO.setRentId( rentId ); + deviceDO.setState(DevStateEnum.INUSE.getState()); + deviceDO.setStateDate(LocalDate.now()); + deviceDO.setRentId(rentId); return deviceMapper.updateById(deviceDO); } @@ -814,8 +792,8 @@ // 璁惧鏍囨敞閬楀け DeviceDO deviceDO = deviceMapper.getDeviceByDevId(devId); if (null != deviceDO && DevStateEnum.INUSE.isEqual(deviceDO.getState()) && rentId.equals(deviceDO.getRentId())) { - deviceDO.setState( devStateEnum.getState() ); - deviceDO.setStateDate( localDate ); + deviceDO.setState(devStateEnum.getState()); + deviceDO.setStateDate(localDate); return deviceMapper.updateById(deviceDO); } @@ -824,22 +802,21 @@ private Integer markDevFree(String devId, Long rentId) { // 璁惧鏍囨敞閬楀け 鎭㈠涓虹┖闂� - DeviceDO deviceDO = deviceMapper.getDeviceByDevId( devId ); + DeviceDO deviceDO = deviceMapper.getDeviceByDevId(devId); if (null != deviceDO && rentId.equals(deviceDO.getRentId())) { - deviceDO.setState( DevStateEnum.FREE.getState() ); - deviceDO.setStateDate( LocalDate.now() ); + deviceDO.setState(DevStateEnum.FREE.getState()); + deviceDO.setStateDate(LocalDate.now()); deviceDO.setRentId(null); deviceDO.setPatDetails(null); return deviceMapper.updateById(deviceDO); } - + return 0; } private void procAffinityWhenRoutineFinish(String patId, Integer[] affinityCheckTypes) { // 濡傛灉瀛樺湪 [浜插拰-鎺掗槦] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [灏辫瘖涓璢 - List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus( - patId, affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus()); + List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(patId, affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus()); if (!affinityAffinityWaitingItems.isEmpty()) { QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); @@ -852,83 +829,60 @@ */ private void procAffinityWhenReadyFinish(/*IN,OUT*/QueueDO bedOnStageQueueItem, Integer[] affinityCheckTypes) { // 濡傛灉瀛樺湪 [瀹夎涓璢 [瀹夎杩囧彿] [瀹夎鍙洖] 鑳借渚濋檮鐨勬鏌ラ」锛屽垯渚濋檮鍒板叾涓竴涓鏌ラ」 - List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatusList( - bedOnStageQueueItem.getPatId(), affinityCheckTypes, - List.of(QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.PASSED_INSTALL.getStatus(), - QueueStatusEnum.RECALLED_INSTALL.getStatus())); + List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatusList(bedOnStageQueueItem.getPatId(), affinityCheckTypes, List.of(QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.PASSED_INSTALL.getStatus(), QueueStatusEnum.RECALLED_INSTALL.getStatus())); if (!affinityInstallingItems.isEmpty()) { QueueDO affinityInstallingItem = affinityInstallingItems.get(0); bedOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_INSTALL.getStatus()); // 浜插拰-棰嗙敤 bedOnStageQueueItem.setAffinityItem(1); - bedOnStageQueueItem.setRoomId( affinityInstallingItem.getRoomId() ); - bedOnStageQueueItem.setBedNo( affinityInstallingItem.getBedNo() ); // 棰嗙敤 鍒� 瀹夎 鍙兘浼氬湪涓嶅悓宸ヤ綅 + bedOnStageQueueItem.setRoomId(affinityInstallingItem.getRoomId()); + bedOnStageQueueItem.setBedNo(affinityInstallingItem.getBedNo()); // 棰嗙敤 鍒� 瀹夎 鍙兘浼氬湪涓嶅悓宸ヤ綅 } // 濡傛灉瀛樺湪 [浜插拰-鎺掗槦] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [灏辫瘖涓璢 - List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus( - bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus()); + List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus()); if (!affinityAffinityWaitingItems.isEmpty()) { QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); - queueMapper.updateById( tmpQueueDO ); + queueMapper.updateById(tmpQueueDO); } } // 濡傛灉瀛樺湪 [浜插拰-棰嗙敤] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [瀹夎涓璢 private void procAffinityWhenInstallFinish(QueueDO bedInstallingQueueItem, Integer[] affinityCheckTypes) { - List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus( - bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_INSTALL.getStatus()); + List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus(bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_INSTALL.getStatus()); if (!affinityAffinityReceivedItems.isEmpty()) { QueueDO tmpQueueDO = affinityAffinityReceivedItems.get(0); tmpQueueDO.setStatus(QueueStatusEnum.INSTALLING.getStatus()); - tmpQueueDO.setRoomId( bedInstallingQueueItem.getRoomId() ); - tmpQueueDO.setBedNo( bedInstallingQueueItem.getBedNo() ); // 浠� [棰嗙敤] 鍒� [瀹夎]锛� 鍙灔鍦ㄤ笉鍚屽伐浣嶄笂鎿嶄綔 + tmpQueueDO.setRoomId(bedInstallingQueueItem.getRoomId()); + tmpQueueDO.setBedNo(bedInstallingQueueItem.getBedNo()); // 浠� [棰嗙敤] 鍒� [瀹夎]锛� 鍙灔鍦ㄤ笉鍚屽伐浣嶄笂鎿嶄綔 queueMapper.updateById(tmpQueueDO); } } 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"; + 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"; + 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-server/src/main/resources/application-prod.yaml b/jh-server/src/main/resources/application-prod.yaml index beb7b64..fac211f 100644 --- a/jh-server/src/main/resources/application-prod.yaml +++ b/jh-server/src/main/resources/application-prod.yaml @@ -58,7 +58,7 @@ # url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 杩炴帴鐨勭ず渚� # url: jdbc:kingbase8://127.0.0.1:54321/test # 浜哄ぇ閲戜粨 KingbaseES 杩炴帴鐨勭ず渚� # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 杩炴帴鐨勭ず渚� - username: root + username: lihu password: Smartor.2023 # username: sa # SQL Server 杩炴帴鐨勭ず渚� # password: Jh@2024 # SQL Server 杩炴帴鐨勭ず渚� diff --git a/jh-server/src/main/resources/application.yaml b/jh-server/src/main/resources/application.yaml index bd496d3..54a1011 100644 --- a/jh-server/src/main/resources/application.yaml +++ b/jh-server/src/main/resources/application.yaml @@ -3,6 +3,7 @@ name: jh-server profiles: +# active: prod active: stage main: @@ -314,4 +315,4 @@ key: pLXUGAwK5305 customer: E77DF18BE109F454A5CD319E44BF5177 -debug: false \ No newline at end of file +debug: false -- Gitblit v1.9.3