package com.ruoyi.web.controller.project;
|
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.NotRepeatCommit;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.exception.base.BaseException;
|
import com.ruoyi.common.utils.bean.DtoConversionUtils;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.project.domain.ServiceDonatecomporgan;
|
import com.ruoyi.project.domain.ServiceDonateorgan;
|
import com.ruoyi.project.domain.ServiceDonateorganVO;
|
import com.ruoyi.project.domain.ServiceOrganallocation;
|
import com.ruoyi.project.domain.vo.DonateOrganVO;
|
import com.ruoyi.project.domain.vo.TimeVO;
|
import com.ruoyi.project.service.IServiceDonateorganService;
|
import com.ruoyi.project.service.IServiceOrganallocationService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* 捐献器官管理Controller
|
*
|
* @author ruoyi
|
* @date 2021-11-10
|
*/
|
@Slf4j
|
@Api("捐献器官管理")
|
@RestController
|
@RequestMapping("/project/donateorgan")
|
public class ServiceDonateorganController extends BaseController {
|
@Autowired
|
private IServiceDonateorganService serviceDonateorganService;
|
|
@Autowired
|
private IServiceOrganallocationService serviceOrganallocationService;
|
|
|
/**
|
* 查询捐献器官管理列表
|
*/
|
@ApiOperation("捐献器官列表")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(ServiceDonateorgan serviceDonateorgan) {
|
startPage();
|
List<ServiceDonateorgan> list = serviceDonateorganService.queryList(serviceDonateorgan);
|
return getDataTable(list);
|
}
|
|
|
/**
|
* 器官分配累计
|
*/
|
@ApiOperation("器官分配累计")
|
@GetMapping("/countList")
|
public TableDataInfo countList(ServiceDonateorgan serviceDonateorgan) {
|
startPage();
|
List<ServiceDonateorgan> list = serviceDonateorganService.countList(serviceDonateorgan);
|
return getDataTable(list);
|
}
|
|
@GetMapping("/listnew")
|
public TableDataInfo listnew(DonateOrganVO donateOrganVO) {
|
startPage();
|
List<DonateOrganVO> list = serviceDonateorganService.selectVOList(donateOrganVO);
|
return getDataTable(list);
|
}
|
|
|
/**
|
* 导出捐献器官管理列表
|
*/
|
@ApiOperation("导出捐献器官列表")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:export')")
|
@Log(title = "捐献器官管理", businessType = BusinessType.EXPORT)
|
@GetMapping("/export")
|
public AjaxResult export(ServiceDonateorgan serviceDonateorgan) {
|
List<ServiceDonateorgan> list = serviceDonateorganService.queryList(serviceDonateorgan);
|
ExcelUtil<ServiceDonateorgan> util = new ExcelUtil<ServiceDonateorgan>(ServiceDonateorgan.class);
|
return util.exportExcel(list, "捐献器官管理数据");
|
}
|
|
/**
|
* 获取捐献器官管理详细信息
|
*/
|
@ApiOperation("通过id获得捐献器官信息")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
return AjaxResult.success(serviceDonateorganService.getById(id));
|
}
|
|
/**
|
* 新增捐献器官管理
|
*/
|
@ApiOperation("新增捐献器官信息")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:add')")
|
@Log(title = "捐献器官管理", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@RepeatSubmit
|
public AjaxResult add(@RequestBody ServiceDonateorgan serviceDonateorgan) {
|
String organNumber = serviceDonateorgan.getDonorno() + "." + serviceDonateorgan.getOrganno();
|
if (organNumber == "") {
|
return AjaxResult.error("新增时生成的编号为空,创建失败!");
|
} else {
|
ServiceDonateorgan serviceDonateorgan1 = new ServiceDonateorgan();
|
serviceDonateorgan1.setOrgannumber(organNumber);
|
List<ServiceDonateorgan> listrecord = serviceDonateorganService.queryList(serviceDonateorgan);
|
if (listrecord.size() > 0) {
|
return AjaxResult.error("新增时生成的编号" + organNumber + "已存在,无法保存!");
|
}
|
}
|
serviceDonateorgan.setOrgannumber(organNumber);
|
boolean save = serviceDonateorganService.save(serviceDonateorgan);
|
return AjaxResult.success(serviceDonateorgan);
|
}
|
|
|
/**
|
* 新增捐献器官管理
|
*/
|
@ApiOperation("新增捐献器官信息")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:add')")
|
@Log(title = "捐献器官管理", businessType = BusinessType.INSERT)
|
@PostMapping("/addData")
|
@RepeatSubmit
|
public TableDataInfo addData(@RequestBody List<ServiceDonateorgan> serviceDonateorgans) {
|
List<ServiceDonateorgan> serviceDonateorgans1 = serviceDonateorganService.saveData(serviceDonateorgans);
|
return saveDataTable(serviceDonateorgans1);
|
}
|
|
|
/**
|
* 修改器官分配
|
*/
|
@ApiOperation("修改器官分配信息")
|
//// @PreAuthorize("@ss.hasPermi('project:organallocation:edit')")
|
@Log(title = "器官分配", businessType = BusinessType.UPDATE)
|
@PostMapping("/editarraydata")
|
@RepeatSubmit
|
public AjaxResult editArrayData(@RequestBody List<ServiceDonateorgan> serviceDonateorgans) {
|
return AjaxResult.success(serviceDonateorganService.editArrayData(serviceDonateorgans));
|
}
|
|
/**
|
* 修改捐献器官管理
|
*/
|
@ApiOperation("修改捐献器官信息")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:edit')")
|
@Log(title = "捐献器官管理", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
@RepeatSubmit
|
public AjaxResult edit(@RequestBody ServiceDonateorgan serviceDonateorgan) {
|
return toAjax(serviceDonateorganService.updateById(serviceDonateorgan));
|
}
|
|
/**
|
* 删除捐献器官管理
|
*/
|
@ApiOperation("删除捐献器官信息")
|
//// @PreAuthorize("@ss.hasPermi('project:donateorgan:remove')")
|
@Log(title = "捐献器官管理", businessType = BusinessType.DELETE)
|
@GetMapping("/remove/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
return toAjax(serviceDonateorganService.removeByIds(Arrays.asList(ids)));
|
}
|
|
@ApiOperation("得到浙江各市下的捐献信息")
|
@GetMapping("/numberOfOrgans")
|
public AjaxResult numberOfOrgans() {
|
return AjaxResult.success(serviceDonateorganService.getNumberOfOrgans());
|
}
|
|
@ApiOperation("得到各医院的捐献信息")
|
@PostMapping("/OrgansOfHospital")
|
public AjaxResult OrgansOfHospital(String cityName) {
|
return AjaxResult.success(serviceDonateorganService.getOrgansOfHospital(cityName));
|
}
|
|
|
@ApiOperation("全省捐献器官信息汇总")
|
@GetMapping("/allOrgansInfo")
|
public AjaxResult allOrgansInfo(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getAllOrgansInfo(timeVO));
|
}
|
|
@ApiOperation("本年度器官质量情况分析")
|
@GetMapping("/organQuality")
|
public AjaxResult organQuality(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getOrganQuality(timeVO));
|
}
|
|
@ApiOperation("捐献累计信息")
|
@GetMapping("/donateNumber")
|
public AjaxResult donateNumber(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDonateNumber(timeVO));
|
}
|
|
|
@ApiOperation("按月度统计的潜在捐献数量")
|
@GetMapping("/donateBaseInfoByMonth")
|
public AjaxResult donateBaseInfoByMonth() {
|
return AjaxResult.success(serviceDonateorganService.getDonateBaseInfoByMonth());
|
}
|
|
@ApiOperation("按月度统计的捐献案例数")
|
@GetMapping("/donatePeopleByMonth")
|
public AjaxResult donatePeopleByMonth(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDonatePeopleByMonth(timeVO));
|
}
|
|
@ApiOperation("按月度统计的捐献案例数-完成案例")
|
@GetMapping("/getDonatePeopleByMonthFromCompletioninfo")
|
public AjaxResult getDonatePeopleByMonthFromCompletioninfo(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDonatePeopleByMonthFromCompletioninfo(timeVO));
|
}
|
|
@ApiOperation("按月度统计的捐献器官数")
|
@GetMapping("/donateNumberByMonth")
|
public AjaxResult donateNumberByMonth(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDonateNumberByMonth(timeVO));
|
}
|
|
@ApiOperation("按月度统计的捐献医院数")
|
@GetMapping("/donateHospitalByMonth")
|
public AjaxResult donateHospitalByMonth(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDonateHospitalByMonth(timeVO));
|
}
|
|
@ApiOperation("按月度统计的获取医院数")
|
@GetMapping("/acceptHospitalByMonth")
|
public AjaxResult acceptHospitalByMonth() {
|
return AjaxResult.success(serviceDonateorganService.getAcceptHospitalByMonth());
|
}
|
|
@ApiOperation("按月度统计的各医院的捐献信息")
|
@GetMapping("/OrgansOfHospitalByMonth")
|
public AjaxResult OrgansOfHospitalByMonth(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.OrgansOfHospitalByMonth(timeVO));
|
}
|
|
@ApiOperation("按时间统计的各医院的捐献信息")
|
@GetMapping("/OrgansOfHospitalByTime")
|
public AjaxResult OrgansOfHospitalByTime(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.OrgansOfHospitalByTime(timeVO));
|
}
|
|
@ApiOperation("每百万人口的捐献率")
|
@GetMapping("/getPMPRate")
|
public AjaxResult getPMPRate(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getPMPRate(timeVO));
|
}
|
|
@ApiOperation("根据地市返回捐献、完成、器官数")
|
@GetMapping("/getDistrictDonateCalculate")
|
public AjaxResult getDistrictDonateCalculate() {
|
return AjaxResult.success(serviceDonateorganService.getDistrictDonateCalculate());
|
}
|
|
@ApiOperation("根据时间地市返回捐献、完成、器官数")
|
@GetMapping("/getDistrictDonateCalculateByTime")
|
public AjaxResult getDistrictDonateCalculateByTime(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getDistrictDonateCalculateByTime(timeVO));
|
}
|
|
@ApiOperation("根据机构返回器官总数")
|
@GetMapping("/getOrganNumberByOrg")
|
public AjaxResult getOrganNumberByOrg(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getOrganNumberByOrg(timeVO));
|
}
|
|
@ApiOperation("返回器官总数")
|
@GetMapping("/getOrganCount")
|
public AjaxResult getOrganCount(TimeVO timeVO) {
|
return AjaxResult.success(serviceDonateorganService.getOrganCount(timeVO));
|
}
|
|
@RepeatSubmit
|
@ApiOperation("新增或修改捐献器官管理")
|
@Log(title = "捐献完成", businessType = BusinessType.UPDATE)
|
@PostMapping("/saveOrUpdateDonateorgan")
|
public AjaxResult saveOrUpdateDonateorgan(@RequestBody List<ServiceDonateorgan> serviceDonateorganList) {
|
if (CollectionUtils.isEmpty(serviceDonateorganList)) {
|
throw new BaseException("请检查需要新增或修改的捐献器官管理参数是否完整");
|
}
|
Boolean i = null;
|
for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganList) {
|
log.info("捐献器官移植id是否为空 : {},基础表的id为 : {}", serviceDonateorgan.getId(), serviceDonateorgan.getInfoid());
|
if (serviceDonateorgan.getId() == null) {
|
i = serviceDonateorganService.save(serviceDonateorgan);
|
} else {
|
i = serviceDonateorganService.updateById(serviceDonateorgan);
|
}
|
}
|
return toAjax(i);
|
}
|
|
}
|