package com.ruoyi.web.controller.project; 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.utils.poi.ExcelUtil; import com.ruoyi.project.domain.ServiceFund; import com.ruoyi.project.domain.ServiceFundtax; import com.ruoyi.project.domain.vo.FundTaxVO; import com.ruoyi.project.domain.vo.TotalTaxVO; import com.ruoyi.project.service.IServiceFundService; import com.ruoyi.project.service.IServiceFunddetailService; import com.ruoyi.project.service.IServiceFundtaxService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.UUID; /** * 专家费用算税申请主Controller * * @author ruoyi * @date 2024-03-13 */ @Api("专家费用算税申请主") @RestController @RequestMapping("/project/fundtax") public class ServiceFundtaxController extends BaseController { @Autowired private IServiceFundtaxService serviceFundtaxService; @Autowired private IServiceFundService serviceFundService; /** * 查询专家费用算税申请主列表 */ @ApiOperation("查询专家费用算税申请主列表") @PreAuthorize("@ss.hasPermi('system:fundtax:list')") @GetMapping("/list") public TableDataInfo list(ServiceFundtax serviceFundtax) { startPage(); List list = serviceFundtaxService.queryList(serviceFundtax); return getDataTable(list); } // // /** // * 导出专家费用算税申请主列表 // */ // @ApiOperation("导出专家费用算税申请主列表") // @PreAuthorize("@ss.hasPermi('system:fundtax:export')") // @Log(title = "专家费用算税申请主", businessType = BusinessType.EXPORT) // @GetMapping("/export") // public AjaxResult export(ServiceFundtax serviceFundtax) { // List list = serviceFundtaxService.queryList(serviceFundtax); // ExcelUtil util = new ExcelUtil(ServiceFundtax.class); // return util.exportExcel(list, "专家费用算税申请主数据"); // } // // /** // * 获取专家费用算税申请主详细信息 // */ // @ApiOperation("获取专家费用算税申请主详细信息") // @PreAuthorize("@ss.hasPermi('system:fundtax:query')") // @GetMapping(value = "/getInfo/{id}") // public AjaxResult getInfo(@PathVariable("id") Long id) { // return AjaxResult.success(serviceFundtaxService.getById(id)); // } // /** * 修改专家费用算税申请主 */ @ApiOperation("修改专家费用算税申请主") @PreAuthorize("@ss.hasPermi('system:fundtax:edit')") @Log(title = "专家费用算税申请主", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit public AjaxResult edit(@RequestBody ServiceFundtax serviceFundtax) { return toAjax(serviceFundtaxService.updateById(serviceFundtax)); } /** * 删除专家费用算税申请主 */ @ApiOperation("删除专家费用算税申请主") @PreAuthorize("@ss.hasPermi('system:fundtax:remove')") @Log(title = "专家费用算税申请主", businessType = BusinessType.DELETE) @GetMapping("/remove/{id}") public AjaxResult remove(@PathVariable Long id) { return toAjax(serviceFundtaxService.removeById(id)); } /** * 新增专家费用算税申请主 */ @ApiOperation("新增专家费用算税申请主") @PreAuthorize("@ss.hasPermi('system:fundtax:add')") @Log(title = "专家费用算税申请主", businessType = BusinessType.INSERT) @PostMapping("/addFundTax") public AjaxResult addFundTax(@RequestBody ServiceFundtax serviceFundtax) { serviceFundtax.setTaxedtime(new Date()); serviceFundtax.setApplyno(UUID.randomUUID().toString()); serviceFundtaxService.save(serviceFundtax); for (ServiceFund serviceFund : serviceFundtax.getServiceFunds()) { serviceFund.setFundTaxId(serviceFundtax.getId()); serviceFundService.updateById(serviceFund); } return toAjax(serviceFundtax.getId().intValue()); } /** * 获取fundTaxid的最大值 * * @return */ @ApiOperation("获取fundTaxid的最大值") @GetMapping(value = "/getMaxFundTaxId") public AjaxResult getMaxFundTaxId() { Integer maxFundTaxId = serviceFundtaxService.getMaxFundTaxId(); return success(maxFundTaxId.toString()); } /** * 批量算税 * * @param fundTaxVO * @return */ @ApiOperation("批量算税") @PostMapping(value = "/batchFundTax") public AjaxResult batchFundTax(@RequestBody FundTaxVO fundTaxVO) { return toAjax(serviceFundtaxService.batchFundTax(fundTaxVO)); } }