package com.ruoyi.web.controller.project; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.common.IdGeneratorUtils; import com.ruoyi.project.domain.ServiceDonatebaseinfoReport; import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile; import com.ruoyi.project.domain.VUserOrg; import com.ruoyi.project.service.IServiceDonatebaseinfoReportFileService; import com.ruoyi.project.service.IServiceDonatebaseinfoReportService; import com.ruoyi.project.service.IVUserOrgService; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; import com.sun.org.apache.bcel.internal.generic.NEW; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 捐献上报基础Controller * * @author ruoyi * @date 2025-12-15 */ @Api(description = "捐献上报基础") @RestController @RequestMapping("/project/donatebaseinforeport") public class ServiceDonatebaseinfoReportController extends BaseController { @Autowired private IServiceDonatebaseinfoReportService serviceDonatebaseinfoReportService; @Autowired private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService; @Autowired private ISysConfigService sysConfigService; @Autowired private IVUserOrgService vUserOrgService; /** * 查询捐献上报基础列表 */ @ApiOperation("查询捐献上报基础列表") @PostMapping("/list") public Map list(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { Page serviceDonatebaseinfoReportPage = serviceDonatebaseinfoReportService.queryList(serviceDonatebaseinfoReport); return getDataTable(serviceDonatebaseinfoReportPage.getRecords(), (int) serviceDonatebaseinfoReportPage.getTotal()); } /** * 获取总数 */ @ApiOperation("获取各类型的总数") @PostMapping("/getTotal") public Map getTotal(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { //去配置文件中,获取上报类型 SysConfig config = new SysConfig(); config.setConfigKey("sys.report.type"); List sysConfigs = sysConfigService.selectConfigList(config); String type = ""; if (sysConfigs != null) { type = sysConfigs.get(0).getConfigValue(); } Map map = serviceDonatebaseinfoReportService.getTotal(serviceDonatebaseinfoReport, type); return getDataTable(map, null); } /** * 导出捐献上报基础列表 */ @ApiOperation("导出捐献上报基础列表") @Log(title = "捐献上报基础", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { List list = serviceDonatebaseinfoReportService.queryList(serviceDonatebaseinfoReport).getRecords(); ExcelUtil util = new ExcelUtil(ServiceDonatebaseinfoReport.class); return util.exportExcel(list, "捐献上报基础数据"); } /** * 获取捐献上报基础详细信息 */ @ApiOperation("获取捐献上报基础详细信息") @GetMapping(value = "/getInfo/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { ServiceDonatebaseinfoReport serviceDonatebaseinfoReport = serviceDonatebaseinfoReportService.getById(id); //补充附件 ServiceDonatebaseinfoReportFile serviceDonatebaseinfoReportFile = new ServiceDonatebaseinfoReportFile(); serviceDonatebaseinfoReportFile.setDonatebaseinfoReportId(serviceDonatebaseinfoReport.getId()); serviceDonatebaseinfoReportFile.setCaseNo(serviceDonatebaseinfoReport.getCaseNo()); serviceDonatebaseinfoReportFile.setDelFlag(0); List serviceDonatebaseinfoReportFiles = serviceDonatebaseinfoReportFileService.queryList(serviceDonatebaseinfoReportFile); serviceDonatebaseinfoReport.setAnnexfilesList(serviceDonatebaseinfoReportFiles); return AjaxResult.success(serviceDonatebaseinfoReport); } /** * 新增捐献上报基础 */ @ApiOperation("新增捐献上报基础") @Log(title = "捐献上报基础", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit public AjaxResult add(@RequestBody ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { //生成案例上报ID String caseNo = String.valueOf(IdGeneratorUtils.nextId()); serviceDonatebaseinfoReport.setCaseNo(caseNo); //获取协调员信息 LoginUser loginUser = SecurityUtils.getLoginUser(); String userName = loginUser.getUser().getUserName(); VUserOrg vUserOrg= new VUserOrg(); vUserOrg.setUserName(userName); List vUserOrgs = vUserOrgService.queryList(vUserOrg); if(CollectionUtils.isNotEmpty(vUserOrgs)){ serviceDonatebaseinfoReport.setCoordinatorNo(vUserOrgs.get(0).getCoordinatorNo()); serviceDonatebaseinfoReport.setCoordinatorName(vUserOrgs.get(0).getCoordinatorName()); } boolean save = serviceDonatebaseinfoReportService.save(serviceDonatebaseinfoReport); //将生成的文件地址存储到数据库中 if (save) serviceDonatebaseinfoReportFileService.addList(serviceDonatebaseinfoReport.getAnnexfilesList(), serviceDonatebaseinfoReport.getCaseNo(), getNickName()); return toAjax(save); } /** * 修改捐献上报基础 */ @ApiOperation("修改捐献上报基础") @Log(title = "捐献上报基础", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit public AjaxResult edit(@RequestBody ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { if (StringUtils.isEmpty(serviceDonatebaseinfoReport.getCaseNo())) { throw new BaseException("案例编号为空,请检查后再修改"); } boolean b = serviceDonatebaseinfoReportService.updateById(serviceDonatebaseinfoReport); if (b) { serviceDonatebaseinfoReportFileService.updateList(serviceDonatebaseinfoReport.getAnnexfilesList(), serviceDonatebaseinfoReport.getId(), serviceDonatebaseinfoReport.getCaseNo(), getNickName()); if (serviceDonatebaseinfoReport.getReportStatus().equals("3")) { //如果同意上报,那就可以建档了(往 ServiceDonatebaseinfo新增) serviceDonatebaseinfoReportService.createDocument(serviceDonatebaseinfoReport); } } return toAjax(b); } /** * 删除捐献上报基础 */ @ApiOperation("删除捐献上报基础") @GetMapping("/remove/{id}") public AjaxResult remove(@PathVariable Long id) { ServiceDonatebaseinfoReport serviceDonatebaseinfoReport = new ServiceDonatebaseinfoReport(); serviceDonatebaseinfoReport.setId(id); serviceDonatebaseinfoReport.setDelFlag(1); return toAjax(serviceDonatebaseinfoReportService.updateById(serviceDonatebaseinfoReport)); } }