package com.sinata.web.controller.backend; import com.sinata.common.core.domain.R; import com.sinata.common.entity.PageDTO; import com.sinata.system.domain.dto.MwStagingRoomDTO; import com.sinata.system.domain.query.CheckoutRecordQuery; import com.sinata.system.domain.query.MwStagingRoomQuery; import com.sinata.system.domain.query.StorageRecordQuery; import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwStagingRoomVO; import com.sinata.system.domain.vo.MwStorageRecordVO; import com.sinata.system.service.MwStagingRoomService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; /** *

* 暂存间 前端控制器 *

* * @author mitao * @since 2024-12-02 */ @Api(tags = {"暂存间管理相关接口"}) @Validated @RestController @RequiredArgsConstructor @RequestMapping("/backend/mwStagingRoom") public class MwStagingRoomController { private final MwStagingRoomService mwStagingRoomService; /** * 暂存间分页列表 * * @param query * @return */ @ApiOperation("暂存间分页列表") @PostMapping("/page") public R> pageList(@Valid @RequestBody MwStagingRoomQuery query) { return R.ok(mwStagingRoomService.pageList(query)); } /** * 新增暂存间 * * @param dto * @return */ @ApiOperation("新增暂存间") @PostMapping("/add") public R add(@Valid @RequestBody MwStagingRoomDTO dto) { mwStagingRoomService.add(dto); return R.ok(); } /** * 编辑暂存间 * * @param dto * @return */ @ApiOperation("编辑暂存间") @PostMapping("/edit") public R edit(@Valid @RequestBody MwStagingRoomDTO dto) { mwStagingRoomService.edit(dto); return R.ok(); } /** * 删除暂存间 * * @param id * @return */ @ApiOperation("删除暂存间") @DeleteMapping("/{id}") public R delete(@ApiParam(name = "id", value = "暂存间id", required = true) @PathVariable("id") Long id) { mwStagingRoomService.removeById(id); return R.ok(); } /** * 根据医院id查询暂存间 * * @param departmentId * @return */ @ApiOperation(value = "根据医院id查询暂存间", notes = "入库、出库记录暂存间筛选级联数据") @GetMapping("/getByHospitalId/{departmentId}") public R getByHospitalId(@ApiParam(name = "departmentId", value = "医院id", required = true) @PathVariable("departmentId") Long departmentId) { return R.ok(mwStagingRoomService.getByHospitalId(departmentId)); } /** * 暂存间入库记录 * * @param query * @return */ @ApiOperation("暂存间入库记录") @PostMapping("/storageRecord") public R> storageRecord(@Valid @RequestBody StorageRecordQuery query) { return R.ok(mwStagingRoomService.storageRecord(query)); } /** * 暂存间入库记录导出 * * @param query * @param response */ @ApiOperation("暂存间入库记录导出") @PostMapping("/storageRecord/export") public void storageRecordExport(@RequestBody StorageRecordQuery query, HttpServletResponse response) { try { mwStagingRoomService.storageRecordExport(query, response); } catch (IOException e) { throw new RuntimeException(e); } } /** * 暂存间出库记录 * * @param query * @return */ @ApiOperation("暂存间出库记录") @PostMapping("/checkoutRecord") public R> checkoutRecord(@Valid @RequestBody CheckoutRecordQuery query) { return R.ok(mwStagingRoomService.checkoutRecord(query)); } /** * 暂存间出库记录导出 * * @param query * @param response */ @ApiOperation("暂存间出库记录导出") @PostMapping("/checkoutRecord/export") public void checkoutRecordExport(@RequestBody CheckoutRecordQuery query, HttpServletResponse response) { try { mwStagingRoomService.checkoutRecordExport(query, response); } catch (IOException e) { throw new RuntimeException(e); } } /** * 暂存间待处理医废分页列表 * * @param query * @return */ @ApiOperation("暂存间待处理医废分页列表") @PostMapping("/temporarilyStoredMedicalWaste") public R> temporarilyStoredMedicalWaste(@Valid @RequestBody StorageRecordQuery query) { return R.ok(mwStagingRoomService.temporarilyStoredMedicalWaste(query)); } }