mitao
2024-12-27 9c717849bee3d6cc25f29ad69a93a507e3de7d13
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java
@@ -1,7 +1,29 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.query.CheckoutRecordQuery;
import com.sinata.system.domain.query.MwCheckoutRecordItemQuery;
import com.sinata.system.domain.query.MwTransitRecordQuery;
import com.sinata.system.domain.vo.MwCheckoutRecordVO;
import com.sinata.system.domain.vo.MwMedicalWasteBoxVO;
import com.sinata.system.domain.vo.MwTransitRecordVO;
import com.sinata.system.service.MwCheckoutRecordService;
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.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;
/**
 * <p>
@@ -11,8 +33,98 @@
 * @author mitao
 * @since 2024-12-02
 */
@Api(tags = {"转运记录、运输记录相关接口"})
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/backend/mwCheckoutRecord")
public class MwCheckoutRecordController {
    private final MwCheckoutRecordService mwCheckoutRecordService;
    /**
     * 转运记录分页列表
     *
     * @param query
     * @return
     */
    @ApiOperation(value = "转运记录分页列表")
    @PostMapping("/hospital/page")
    public R<PageDTO<MwCheckoutRecordVO>> pageList(@Valid @RequestBody CheckoutRecordQuery query) {
        return R.ok(mwCheckoutRecordService.pageHospitalTransitList(query));
    }
    /**
     * 转运记录导出
     *
     * @param query
     * @param response
     */
    @ApiOperation("转运记录导出")
    @PostMapping("/hospital/export")
    public void checkoutRecordExport(@RequestBody CheckoutRecordQuery query, HttpServletResponse response) {
        try {
            mwCheckoutRecordService.checkoutRecordExport(query, response);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 转运记录详情
     *
     * @param departmentId
     * @return
     */
    @ApiOperation(value = "转运记录详情")
    @GetMapping("/hospital/detail/{departmentId}")
    public R<MwCheckoutRecordVO> hospitalDetail(@ApiParam(name = "id", value = "医院id", required = true) @PathVariable("departmentId") Long departmentId) {
        return R.ok(mwCheckoutRecordService.hospitalDetail(departmentId));
    }
    /**
     * 转运记录医废详情分页列表
     *
     * @param query
     * @return
     */
    @ApiOperation(value = "转运记录医废详情分页列表")
    @PostMapping("/hospital/detailPage")
    public R<PageDTO<MwMedicalWasteBoxVO>> hospitalDetailPage(@Valid @RequestBody MwCheckoutRecordItemQuery query) {
        return R.ok(mwCheckoutRecordService.hospitalDetailPage(query));
    }
    /**
     * 运输记录分页列表
     *
     * @param query
     * @return
     */
    @ApiOperation(value = "运输记录分页列表")
    @PostMapping("/transit/page")
    public R<PageDTO<MwTransitRecordVO>> transitPageList(@Valid @RequestBody MwTransitRecordQuery query) {
        return R.ok(mwCheckoutRecordService.transitPageList(query));
    }
    /**
     * 运输记录详情
     *
     * @param id
     * @return
     */
    @ApiOperation("运输记录详情")
    @GetMapping("/transit/detail/{id}")
    public R<MwTransitRecordVO> transitDetail(@ApiParam(name = "id", value = "运输记录id", required = true) @PathVariable("id") Long id) {
        return R.ok(mwCheckoutRecordService.transitDetail(id));
    }
    /**
     * 运输记录详情分页列表
     *
     * @param query
     * @return
     */
    @ApiOperation("运输记录详情分页列表")
    @PostMapping("/transit/detailPage")
    public R<PageDTO<MwMedicalWasteBoxVO>> transitDetailPage(@Valid @RequestBody MwTransitRecordQuery query) {
        return R.ok(mwCheckoutRecordService.transitDetailPageList(query));
    }
}