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("/backend/statics") public class StaticsController { private final StaticsService staticsService; /** * 机构分布-获取机构列表 * * @param type 1:全部 2:医院 3:处置单位 * @return */ //@ApiOperation("机构分布-获取机构列表 1:全部 2:医院 3:处置单位") @GetMapping(value = "/departmentList/{type}") public R> departmentList(@ApiParam(name = "type", value = "机构类型", required = true) @PathVariable(value = "type") Integer type) { return R.ok(staticsService.departmentList(type)); } //@ApiOperation("医疗监管-医废统计") @GetMapping("/medicalWaste") public R medicalWaste() { return R.ok(staticsService.medicalWaste()); } /** * 医院报表 * * @param query * @return */ @ApiOperation("医院报表") @PostMapping("/hospitalReport") public R 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 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 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 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); } } }