luodangjia
2024-12-28 7dff38876f582644ae95daad8ac21d4f57088d56
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java
New file
@@ -0,0 +1,163 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.system.domain.MedicalWasteStaticsVO;
import com.sinata.system.domain.SysDepartment;
import com.sinata.system.domain.query.DisposalReportQuery;
import com.sinata.system.domain.query.HospitalReportQuery;
import com.sinata.system.domain.query.TransformQuery;
import com.sinata.system.domain.vo.DepartmentReportVO;
import com.sinata.system.service.biz.StaticsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
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.validation.Valid;
import java.io.IOException;
import java.util.List;
/**
 * @author mitao
 * @date 2024/12/25
 */
@RestController
@Api(tags = {"统计分析相关接口"})
@RequiredArgsConstructor
@RequestMapping("/statics")
public class StaticsController {
    private final StaticsService staticsService;
    /**
     * 机构分布-获取机构列表
     *
     * @param type 1:全部 2:医院 3:处置单位
     * @return
     */
    //@ApiOperation("机构分布-获取机构列表 1:全部 2:医院 3:处置单位")
    @GetMapping(value = "/departmentList/{type}")
    public R<List<SysDepartment>> departmentList(@ApiParam(name = "type", value = "机构类型", required = true) @PathVariable(value = "type") Integer type) {
        return R.ok(staticsService.departmentList(type));
    }
    //@ApiOperation("医疗监管-医废统计")
    @GetMapping("/medicalWaste")
    public R<MedicalWasteStaticsVO> medicalWaste() {
        return R.ok(staticsService.medicalWaste());
    }
    /**
     * 医院报表
     *
     * @param query
     * @return
     */
    @ApiOperation("医院报表")
    @PostMapping("/hospitalReport")
    public R<DepartmentReportVO> hospitalReport(@Valid @RequestBody HospitalReportQuery query) {
        return R.ok(staticsService.hospitalReport(query));
    }
    /**
     * 医院报表-导出
     *
     * @param query
     */
    @ApiOperation("医院报表-导出")
    @PostMapping("/hospitalReportExport")
    public void hospitalReportExport(@Valid @RequestBody HospitalReportQuery query) {
        try {
            staticsService.hospitalReportExport(query);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 转运联单
     *
     * @param query
     * @return
     */
    @ApiOperation("转运联单")
    @PostMapping("/transformList")
    public R<DepartmentReportVO> transformList(@Valid @RequestBody TransformQuery query) {
        return R.ok(staticsService.transformList(query));
    }
    /**
     * 转运联单导出
     *
     * @param query
     */
    @ApiOperation("转运联单导出")
    @PostMapping("/transformListExport")
    public void transformListExport(@Valid @RequestBody TransformQuery query) {
        try {
            staticsService.transformListExport(query);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 处置报表
     *
     * @param query
     * @return
     */
    @ApiOperation("处置报表")
    @PostMapping("/disposalReport")
    public R<DepartmentReportVO> disposalReport(@Valid @RequestBody DisposalReportQuery query) {
        return R.ok(staticsService.disposalReport(query));
    }
    /**
     * 处置报表导出
     *
     * @param query
     * @return
     */
    @ApiOperation("处置报表导出")
    @PostMapping("/disposalReportExport")
    public void disposalReportExport(@Valid @RequestBody DisposalReportQuery query) {
        try {
            staticsService.disposalReportExport(query);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 监管报表
     *
     * @param query
     * @return
     */
    @ApiOperation("监管报表")
    @PostMapping("/regulationReport")
    public R<DepartmentReportVO> regulationReport(@Valid @RequestBody DisposalReportQuery query) {
        return R.ok(staticsService.regulationReport(query));
    }
    /**
     * 监管报表导出
     *
     * @param query
     */
    @ApiOperation("监管报表导出")
    @PostMapping("/regulationReportExport")
    public void regulationReportExport(@Valid @RequestBody DisposalReportQuery query) {
        try {
            staticsService.regulationReportExport(query);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}