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.MedicalInstitutionDTO; import com.sinata.system.domain.query.DepartmentQuery; import com.sinata.system.domain.vo.DisposalUnitVO; import com.sinata.system.domain.vo.MedicalInstitutionVO; import com.sinata.system.service.SysDepartmentService; 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.validation.Valid; import java.util.List; /** * @author mitao * @date 2024/12/9 */ @Validated @RestController @RequestMapping("/backend/medical") @RequiredArgsConstructor @Api(tags = "医疗机构管理相关接口") public class MwMedicalInstitutionController { private final SysDepartmentService sysDepartmentService; /** * 医疗机构分页列表 * * @param query * @return */ @ApiOperation("医疗机构分页列表") @PostMapping("/page") public R> pageList(@RequestBody DepartmentQuery query) { return R.ok(sysDepartmentService.pageMedicalList(query)); } /** * 新增医疗机构 * * @param dto */ @ApiOperation("新增医疗机构") @PostMapping("/add") public R add(@Valid @RequestBody MedicalInstitutionDTO dto) { sysDepartmentService.addMedical(dto); return R.ok(); } /** * 根据父级区域id查询处置单位列表 * * @param id * @return */ @ApiOperation("根据父级区域id查询处置单位列表") @GetMapping("/getDisposalList/{id}") public R> getDisposalUnitList(@ApiParam(name = "id", value = "父级区域id") @PathVariable("id") Long id) { return R.ok(sysDepartmentService.getDisposalUnitListByParentId(id)); } /** * 编辑医疗机构 * * @param dto * @return */ @ApiOperation("编辑医疗机构") @PostMapping("/edit") public R edit(@Valid @RequestBody MedicalInstitutionDTO dto) { sysDepartmentService.editMedical(dto); return R.ok(); } /** * 医疗机构详情 * * @param id * @return */ @ApiOperation("医疗机构详情") @GetMapping("/detail/{id}") public R detail(@ApiParam(name = "id", value = "医疗机构id", required = true) @PathVariable("id") Long id) { return R.ok(sysDepartmentService.getMedicalDetailById(id)); } /** * 删除医疗机构 * * @param id */ @ApiOperation("删除医疗机构") @DeleteMapping("/{id}") public R delete(@ApiParam(name = "id", value = "医疗机构id", required = true) @PathVariable("id") Long id) { sysDepartmentService.deleteMedical(id); return R.ok(); } }