package com.ruoyi.web.controller.project; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; 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.PageDomain; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.PageUtils; 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.*; import com.ruoyi.project.service.IServiceDonorchargeorganService; 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.security.access.prepost.PreAuthorize; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 捐献器官Controller * * @author ruoyi * @date 2023-12-25 */ @Slf4j @Api("捐献器官") @RestController @RequestMapping("/project/donorchargeorgan") public class ServiceDonorchargeorganController extends BaseController { @Autowired private IServiceDonorchargeorganService serviceDonorchargeorganService; /** * 查询捐献器官列表 */ @ApiOperation("查询捐献器官列表") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:list')") @GetMapping("/list") public TableDataInfo list(ServiceDonorchargeorgan serviceDonorchargeorgan) { log.info("查询捐献器官列表的入参:{}", serviceDonorchargeorgan); startPage(); List list = null; if (serviceDonorchargeorgan.getPaymentidIsNotNull()) { list = serviceDonorchargeorganService.queryList(serviceDonorchargeorgan); } else { list = serviceDonorchargeorganService.queryListBypaymentidIsNull(serviceDonorchargeorgan); } List serviceDonorchargeorganVOList = DtoConversionUtils.sourceToTarget(list, ServiceDonorchargeorganVO.class); for (ServiceDonorchargeorganVO serviceDonorchargeorganVO : serviceDonorchargeorganVOList) { if (!StringUtils.isEmpty(serviceDonorchargeorganVO.getAnnexFiles())) { List rbDetailFiles = JSONArray.parseArray(serviceDonorchargeorganVO.getAnnexFiles(), RbDetailFile.class); serviceDonorchargeorganVO.setAnnexFilesList(rbDetailFiles); } } return getDataTable2(serviceDonorchargeorganVOList, list); } /** * 导出捐献器官列表 */ @ApiOperation("导出捐献器官列表") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:export')") @Log(title = "捐献器官", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceDonorchargeorgan serviceDonorchargeorgan) { List list = serviceDonorchargeorganService.queryList(serviceDonorchargeorgan); ExcelUtil util = new ExcelUtil(ServiceDonorchargeorgan.class); return util.exportExcel(list, "捐献器官数据"); } /** * 获取捐献器官详细信息 */ @ApiOperation("获取捐献器官详细信息") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:query')") @GetMapping(value = "/getInfo/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceDonorchargeorganService.getById(id)); } /** * 新增捐献器官 */ @ApiOperation("新增捐献器官") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:add')") @Log(title = "捐献器官", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit public AjaxResult add(@RequestBody ServiceDonorchargeorganVO serviceDonorchargeorganvo) { if (!CollectionUtils.isEmpty(serviceDonorchargeorganvo.getAnnexFilesList())) { serviceDonorchargeorganvo.setAnnexFiles(JSON.toJSONString(serviceDonorchargeorganvo.getAnnexFilesList())); } ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonorchargeorganvo, ServiceDonorchargeorgan.class); boolean save = serviceDonorchargeorganService.save(serviceDonorchargeorgan); return AjaxResult.success(serviceDonorchargeorgan); } /** * 修改捐献器官 */ @ApiOperation("修改捐献器官") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:edit')") @Log(title = "捐献器官", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit public AjaxResult edit(@RequestBody ServiceDonorchargeorganVO serviceDonorchargeorganVO) { if (!CollectionUtils.isEmpty(serviceDonorchargeorganVO.getAnnexFilesList())) { serviceDonorchargeorganVO.setAnnexFiles(JSON.toJSONString(serviceDonorchargeorganVO.getAnnexFilesList())); } ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonorchargeorganVO, ServiceDonorchargeorgan.class); return toAjax(serviceDonorchargeorganService.updateById(serviceDonorchargeorgan)); } /** * 删除捐献器官 */ @ApiOperation("删除捐献器官") // @PreAuthorize("@ss.hasPermi('project:donorchargeorgan:remove')") @Log(title = "捐献器官", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceDonorchargeorganService.removeByIds(Arrays.asList(ids))); } @RepeatSubmit @ApiOperation("新增或修改捐献器官") @Log(title = "捐献器官", businessType = BusinessType.UPDATE) @PostMapping("/saveOrUpdateDonorchargeorgan") public AjaxResult saveOrUpdateDonorchargeorgan(@RequestBody List serviceDonorchargeorganList) { if (CollectionUtils.isEmpty(serviceDonorchargeorganList)) { throw new BaseException("请检查需要新增或修改的捐献器官参数是否完整"); } Boolean i = null; for (ServiceDonorchargeorganVO serviceDonorchargeorganVO : serviceDonorchargeorganList) { log.info("捐献器官id是否为空 : {},基础表的id为 : {}", serviceDonorchargeorganVO.getId(), serviceDonorchargeorganVO.getInfoid()); ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonorchargeorganVO, ServiceDonorchargeorgan.class); serviceDonorchargeorgan.setAnnexFiles(JSON.toJSONString(serviceDonorchargeorganVO.getAnnexFilesList())); if (serviceDonorchargeorgan.getDel_flag() == null) { serviceDonorchargeorgan.setDel_flag(0); } if (serviceDonorchargeorgan.getId() == null) { i = serviceDonorchargeorganService.save(serviceDonorchargeorgan); } else { i = serviceDonorchargeorganService.updateDonorchargeorgan(serviceDonorchargeorgan); } } return toAjax(i); } @ApiOperation("收费统计") @PostMapping("/getListBySpStatChange") public TableDataInfo getListBySpStatChange(@RequestBody SpStatChangeReq spStatChangeReq) { return getDataTable(serviceDonorchargeorganService.getListBySpStatChange(spStatChangeReq)); } }