From 1d9063ac1d60b0d49b664c81426c32f1ba6cd1cc Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 26 十一月 2024 20:53:06 +0800 Subject: [PATCH] 自动确费 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 206 insertions(+), 34 deletions(-) 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 8e2dc08..2d0f616 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,6 +1,12 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent; import cn.lihu.jh.framework.common.util.exception.ExceptionUtils; +import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; +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.devmanage.DeviceService; +import cn.lihu.jh.module.ecg.service.queue.QueueService; +import io.swagger.v3.oas.models.security.SecurityScheme; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -17,16 +23,11 @@ import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.common.util.object.BeanUtils; -import static cn.lihu.jh.framework.common.pojo.CommonResult.error; -import static cn.lihu.jh.framework.common.pojo.CommonResult.success; - import cn.lihu.jh.framework.excel.core.util.ExcelUtils; import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; -import static cn.lihu.jh.framework.common.util.exception.ExceptionUtils.formatException; -import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.DEV_DISMANTLE_EXCEPTION; -import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.DEV_INSTALL_EXCEPTION; +import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; @@ -36,7 +37,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -@Tag(name = "绠$悊鍚庡彴 - 瑁呮満鎷嗘満") +@Tag(name = "瑁呮満鎷嗘満") @RestController @RequestMapping("/ecg/dev-rent") @Validated @@ -46,39 +47,106 @@ @Resource private DevRentService devRentService; + @Resource + private DeviceService deviceService; + + @Resource + private QueueService queueService; + + // 甯歌妫�鏌� 瀹屾垚 + @PostMapping("/routine-finish") + @Operation(summary = "甯歌妫�鏌ュ畬鎴�") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> routineFinish(@Valid @RequestBody RoutineFinishReqVO routineFinishReqVO) { + CommonResult<Long> result = devRentService.routineFinishOperation(routineFinishReqVO); + + String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); + Long rentId = routineFinishReqVO.getId(); + devRentService.feeConfirm(rentId, userHisId, userNickname, true); // 鏁呮剰 涓嶆鏌ヨ繑鍥炲�� + + return result; + } + + @PostMapping("/dev-ready") + @Operation(summary = "璁惧棰嗙敤") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devReady(@Valid @RequestBody DevRentSaveReqVO createReqVO) { + CommonResult<Long> result = devRentService.readyOperation(createReqVO); + + String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); + Long rentId = createReqVO.getId(); + devRentService.feeConfirm(rentId, userHisId, userNickname, true); // 鏁呮剰 涓嶆鏌ヨ繑鍥炲�� + + return result; + } + @PostMapping("/dev-install") @Operation(summary = "瑁呮満") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devInstall(@Valid @RequestBody DevRentSaveReqVO createReqVO) { - try { - Long rent_id = devRentService.installOperation(createReqVO); - return success(rent_id); - } catch ( RuntimeException runtimeException ) { - String err = ExceptionUtils.formatException( runtimeException ); - log.error("devInstall: " + err); - return error(DEV_INSTALL_EXCEPTION); - } + return devRentService.installOperation(createReqVO); } @PostMapping("/dev-dismantle") @Operation(summary = "鎷嗘満") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devDismantle(@Valid @RequestBody DevRentSaveReqVO createReqVO) { - try { - devRentService.dismantleOperation(createReqVO); - return success(0L); - } catch ( RuntimeException runtimeException ) { - String err = ExceptionUtils.formatException( runtimeException ); - log.error("devDismantle: " + err); - return error(DEV_DISMANTLE_EXCEPTION); - } + devRentService.dismantleOperation(createReqVO); + return CommonResult.success(0L); + } + + @PostMapping("/dev-data-entry") + @Operation(summary = "鏁版嵁褰曞叆") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devDataEntry(@Valid @RequestBody DevRentSaveReqVO createReqVO) { + devRentService.dataEntryOperation(createReqVO); + return CommonResult.success(0L); + } + + @PostMapping("/routine-check-cancel") + @Operation(summary = "鍙栨秷甯歌妫�鏌�") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> routineCheckCancel(@Valid @RequestBody DevCancelReqVO cancelReqVO) { + return devRentService.cancelRoutineOperation(cancelReqVO); + } + + @PostMapping("/dev-ready-cancel") + @Operation(summary = "鍙栨秷棰嗙敤") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devReadyCancel(@Valid @RequestBody DevCancelReqVO cancelReqVO) { + return devRentService.cancelReadyOperation(cancelReqVO); + } + + @PostMapping("/dev-install-cancel") + @Operation(summary = "鍙栨秷瑁呮満") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devInstallCancel(@Valid @RequestBody DevCancelReqVO cancelReqVO) { + return devRentService.cancelInstallOperation(cancelReqVO); + } + + @PostMapping("/dev-lose") + @Operation(summary = "閬楀け") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devLose(@Valid @RequestBody DevRentSaveReqVO loseReqVO) { + loseReqVO.setState( DevStateEnum.LOST.getState() ); + return devRentService.dismantleExceptionOperation(loseReqVO); + } + + @PostMapping("/dev-damage") + @Operation(summary = "鎹熷潖") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Long> devDamage(@Valid @RequestBody DevRentSaveReqVO damageReqVO) { + damageReqVO.setState( DevStateEnum.DAMAGED.getState() ); + return devRentService.dismantleExceptionOperation(damageReqVO); } @PostMapping("/create") @Operation(summary = "鍒涘缓瑁呮満鎷嗘満") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> createDevRent(@Valid @RequestBody DevRentSaveReqVO createReqVO) { - return success(devRentService.createDevRent(createReqVO)); + return CommonResult.success(devRentService.createDevRent(createReqVO)); } @PutMapping("/update") @@ -86,7 +154,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Boolean> updateDevRent(@Valid @RequestBody DevRentSaveReqVO updateReqVO) { devRentService.updateDevRent(updateReqVO); - return success(true); + return CommonResult.success(true); } @DeleteMapping("/delete") @@ -95,7 +163,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Boolean> deleteDevRent(@RequestParam("id") Long id) { devRentService.deleteDevRent(id); - return success(true); + return CommonResult.success(true); } @GetMapping("/get") @@ -104,7 +172,16 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<DevRentRespVO> getDevRent(@RequestParam("id") Long id) { DevRentDO devRent = devRentService.getDevRent(id); - return success(BeanUtils.toBean(devRent, DevRentRespVO.class)); + + DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); + + DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); + if (null != deviceDO) { + devRentRespVO.setCategory(deviceDO.getCategory()); + devRentRespVO.setBrand(deviceDO.getBrand()); + devRentRespVO.setModel(deviceDO.getModel()); + } + return CommonResult.success(devRentRespVO); } @GetMapping("/page") @@ -112,7 +189,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<PageResult<DevRentRespVO>> getDevRentPage(@Valid DevRentPageReqVO pageReqVO) { PageResult<DevRentDO> pageResult = devRentService.getDevRentPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, DevRentRespVO.class)); + return CommonResult.success(BeanUtils.toBean(pageResult, DevRentRespVO.class)); } @GetMapping("/export-excel") @@ -128,13 +205,108 @@ BeanUtils.toBean(list, DevRentRespVO.class)); } - @GetMapping("/get-latest-rent") - @Operation(summary = "鑾峰彇鎮h�呰澶囩殑鏈�杩戠璧佹儏鍐�") - @Parameter(name = "dev-id", description = "璁惧缂栧彿", required = true, example = "1024") + @GetMapping("/get-free-rent") + @Operation(summary = "鏍规嵁鎮h�呮垨璁惧, 鑾峰彇宸查鍙栫璧佹儏鍐�") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") - public CommonResult<DevRentRespVO> getLatestRent( @RequestParam("dev-id") String devId ) + public CommonResult<DevRentRespVO> getFreeRent( @Valid DevRentSearchReqVO searchReqVO ) { - DevRentDO devRent = devRentService.getLatestRent( devId ); - return success(BeanUtils.toBean(devRent, DevRentRespVO.class)); + DevRentDO devRent = devRentService.getFreeRent( searchReqVO ); + if (null == devRent) { + return CommonResult.success(null); + } + + DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); + return CommonResult.success(devRentRespVO); + } + + @GetMapping("/get-ready-rent") + @Operation(summary = "鑾峰彇宸查鍙栫璧佹儏鍐�") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + 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() ); + if (null != deviceDO) { + devRentRespVO.setCategory(deviceDO.getCategory()); + devRentRespVO.setBrand(deviceDO.getBrand()); + devRentRespVO.setModel(deviceDO.getModel()); + } + return CommonResult.success(devRentRespVO); + } + + @GetMapping("/get-installed-rent") + @Operation(summary = "鑾峰彇宸插畨瑁呯璧佹儏鍐�") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<DevRentRespVO> getInstalledRent( @Valid DevRentSearchReqVO searchReqVO ) + { + DevRentDO devRent = devRentService.getInstalledOrCancelledRent( searchReqVO ); + if (null == devRent) { + return CommonResult.success(null); + } + + 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() ); + 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 ); + if (null == devRent) { + return CommonResult.success(null); + } + + 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() ); + return CommonResult.success(devRentRespVO); + } + + // 纭垂 + @GetMapping("/fee-confirm") + @Operation(summary = "纭垂") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Integer> feeConfirm(@Valid Long rentId) { + Long userId = SecurityFrameworkUtils.getLoginUserId(); + String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); + + Integer result = devRentService.feeConfirm(rentId, userHisId, userNickname, true); + if (1 == result) + return CommonResult.error(result, "纭垂澶辫触"); + + return CommonResult.success(result); + } + + // 鍙栨秷纭垂 + @GetMapping("/fee-cancel") + @Operation(summary = "鍙栨秷纭垂") + @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") + public CommonResult<Integer> feeCancel(@Valid Long rentId) { + Long userId = SecurityFrameworkUtils.getLoginUserId(); + String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + String userHisId = SecurityFrameworkUtils.getLoginUserHisId(); + + Integer result = devRentService.feeConfirm(rentId, userHisId, userNickname, false); + if (1 == result) + return CommonResult.error(result, "鍙栨秷纭垂澶辫触"); + + return CommonResult.success(result); } } -- Gitblit v1.9.3