package com.ruoyi.web.controller.project; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.annotation.Log; 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.StringUtils; 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.ServiceDonorchargeorgan; import com.ruoyi.project.service.IServiceDonatecomporganService; import com.ruoyi.project.service.IServiceDonorchargeorganService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** * 捐献器官移植Controller * * @author ruoyi * @date 2023-12-25 */ @Slf4j @Api("捐献器官移植") @RestController @RequestMapping("/project/donatecomporgan") public class ServiceDonatecomporganController extends BaseController { @Autowired private IServiceDonatecomporganService serviceDonatecomporganService; @Autowired private IServiceDonorchargeorganService serviceDonorchargeorganService; /** * 查询捐献器官移植列表 */ @ApiOperation("查询捐献器官移植列表") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:list')") @GetMapping("/list") public TableDataInfo list(ServiceDonatecomporgan serviceDonatecomporgan) { startPage(); List list = serviceDonatecomporganService.queryList(serviceDonatecomporgan); return getDataTable(list); } /** * 导出捐献器官移植列表 */ @ApiOperation("导出捐献器官移植列表") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:export')") @Log(title = "捐献器官移植", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceDonatecomporgan serviceDonatecomporgan) { List list = serviceDonatecomporganService.queryList(serviceDonatecomporgan); ExcelUtil util = new ExcelUtil(ServiceDonatecomporgan.class); return util.exportExcel(list, "捐献器官移植数据"); } /** * 获取捐献器官移植详细信息 */ @ApiOperation("获取捐献器官移植详细信息") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceDonatecomporganService.getById(id)); } /** * 新增捐献器官移植 */ @ApiOperation("新增捐献器官移植") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:add')") @Log(title = "捐献器官移植", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit public AjaxResult add(@RequestBody ServiceDonatecomporgan serviceDonatecomporgan) { boolean save = serviceDonatecomporganService.save(serviceDonatecomporgan); if(save){ ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonatecomporgan, ServiceDonorchargeorgan.class); serviceDonorchargeorgan.setReceiveTime(serviceDonatecomporgan.getTransplanttime()); serviceDonorchargeorganService.save(serviceDonorchargeorgan); } return AjaxResult.success(serviceDonatecomporgan); } /** * 修改捐献器官移植 */ @ApiOperation("修改捐献器官移植") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:edit')") @Log(title = "捐献器官移植", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit public AjaxResult edit(@RequestBody ServiceDonatecomporgan serviceDonatecomporgan) { boolean result=serviceDonatecomporganService.updateById(serviceDonatecomporgan); if(result){ ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonatecomporgan, ServiceDonorchargeorgan.class); serviceDonorchargeorgan.setReceiveTime(serviceDonatecomporgan.getTransplanttime()); QueryWrapper queryWrapper=new QueryWrapper(); queryWrapper.eq("InfoID",serviceDonorchargeorgan.getInfoid()) .eq("OrganNo",serviceDonorchargeorgan.getOrganno()); List lists= serviceDonorchargeorganService.list(queryWrapper); if(lists.size()>0) { serviceDonorchargeorgan.setId(lists.get(0).getId()); serviceDonorchargeorganService.updateById(serviceDonorchargeorgan); } } return toAjax(result); } /** * 删除捐献器官移植 */ @ApiOperation("删除捐献器官移植") // // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:remove')") @Log(title = "捐献器官移植", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { List donatecomporgans = serviceDonatecomporganService.listByIds(Arrays.asList(ids)); boolean result=serviceDonatecomporganService.removeByIds(Arrays.asList(ids)); if(result){ for (ServiceDonatecomporgan donatecomporgan : donatecomporgans) { if (donatecomporgan.getInfoid() == null || StringUtils.isBlank(donatecomporgan.getOrganno())) { continue; } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("InfoID", donatecomporgan.getInfoid()) .eq("OrganNo", donatecomporgan.getOrganno()); serviceDonorchargeorganService.remove(queryWrapper); } } return toAjax(result); } @ApiOperation("新增或修改捐献器官移植") @PostMapping("/saveOrUpdateDonatecomporgan") public AjaxResult saveOrUpdateDonatecomporgan(@RequestBody List serviceDonatecomporganList) { if (CollectionUtils.isEmpty(serviceDonatecomporganList)) { throw new BaseException("请检查需要新增或修改的参数是否完整"); } Boolean i = null; for (ServiceDonatecomporgan serviceDonatecompletion : serviceDonatecomporganList) { log.info("捐献器官移植id是否为空 : {},基础表的id为 : {}", serviceDonatecompletion.getId(), serviceDonatecompletion.getInfoid()); ServiceDonatecomporgan sd = new ServiceDonatecomporgan(); sd.setInfoid(serviceDonatecompletion.getInfoid()); sd.setOrganno(serviceDonatecompletion.getOrganno()); sd.setDel_flag(0); ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonatecompletion, ServiceDonorchargeorgan.class); serviceDonorchargeorgan.setReceiveTime(serviceDonatecompletion.getTransplanttime()); List serviceDonatecomporgans = serviceDonatecomporganService.queryList(sd); if (serviceDonatecompletion.getId() == null && CollectionUtils.isEmpty(serviceDonatecomporgans)) { i = serviceDonatecomporganService.save(serviceDonatecompletion); } else { serviceDonatecompletion.setId(serviceDonatecomporgans.get(0).getId()); i = serviceDonatecomporganService.updateById(serviceDonatecompletion); } if (i) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("InfoID", serviceDonorchargeorgan.getInfoid()) .eq("OrganNo", serviceDonorchargeorgan.getOrganno()); List lists = serviceDonorchargeorganService.list(queryWrapper); if (lists.size() > 0) { serviceDonorchargeorgan.setId(lists.get(0).getId()); serviceDonorchargeorganService.updateById(serviceDonorchargeorgan); }else{ serviceDonorchargeorganService.save(serviceDonorchargeorgan); } } } // 回传带主键的列表,便于前端回填 id return AjaxResult.success(serviceDonatecomporganList); } }