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.project.domain.ServiceDonateannex; 
 | 
import com.ruoyi.project.domain.ServiceFund; 
 | 
import com.ruoyi.project.domain.ServiceFundtax; 
 | 
import com.ruoyi.project.domain.vo.FundTaxVO; 
 | 
import com.ruoyi.project.service.IServiceFundService; 
 | 
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.text.SimpleDateFormat; 
 | 
import java.util.*; 
 | 
  
 | 
/** 
 | 
 * 专家费用算税申请主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("查询专家费用算税申请主列表") 
 | 
    @GetMapping("/list") 
 | 
    public TableDataInfo list(ServiceFundtax serviceFundtax) { 
 | 
        startPage(); 
 | 
        List<ServiceFundtax> list = serviceFundtaxService.queryList(serviceFundtax); 
 | 
        Collections.sort(list, (sft1, sft2) -> { 
 | 
            Long i = sft2.getId() - sft1.getId(); 
 | 
            return i.intValue(); 
 | 
        }); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
// 
 | 
//    /** 
 | 
//     * 导出专家费用算税申请主列表 
 | 
//     */ 
 | 
//    @ApiOperation("导出专家费用算税申请主列表") 
 | 
//    // @PreAuthorize("@ss.hasPermi('system:fundtax:export')") 
 | 
//    @Log(title = "专家费用算税申请主", businessType = BusinessType.EXPORT) 
 | 
//    @GetMapping("/export") 
 | 
//    public AjaxResult export(ServiceFundtax serviceFundtax) { 
 | 
//        List<ServiceFundtax> list = serviceFundtaxService.queryList(serviceFundtax); 
 | 
//        ExcelUtil<ServiceFundtax> util = new ExcelUtil<ServiceFundtax>(ServiceFundtax.class); 
 | 
//        return util.exportExcel(list, "专家费用算税申请主数据"); 
 | 
//    } 
 | 
  
 | 
    /** 
 | 
     * 获取专家费用算税申请主详细信息 
 | 
     */ 
 | 
    @ApiOperation("获取专家费用算税申请主详细信息") 
 | 
    @GetMapping(value = "/getInfo/{id}") 
 | 
    public AjaxResult getInfo(@PathVariable("id") Long id) { 
 | 
        ServiceFundtax serviceFundtax = serviceFundtaxService.getById(id); 
 | 
        ServiceFund serviceFund = new ServiceFund(); 
 | 
        serviceFund.setFundTaxId(id); 
 | 
        serviceFundtax.setServiceFunds(serviceFundService.queryList(serviceFund)); 
 | 
        return AjaxResult.success(serviceFundtax); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 修改专家费用算税申请主 
 | 
     */ 
 | 
    @ApiOperation("修改专家费用算税申请主") 
 | 
    @Log(title = "专家费用算税申请主", businessType = BusinessType.UPDATE) 
 | 
    @PostMapping("/edit") 
 | 
    @RepeatSubmit 
 | 
    public AjaxResult edit(@RequestBody ServiceFundtax serviceFundtax) { 
 | 
        return toAjax(serviceFundtaxService.updateById(serviceFundtax)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除专家费用算税申请主 
 | 
     */ 
 | 
    @ApiOperation("删除专家费用算税申请主") 
 | 
    @Log(title = "专家费用算税申请主", businessType = BusinessType.DELETE) 
 | 
    @GetMapping("/remove/{id}") 
 | 
    public AjaxResult remove(@PathVariable Long id) { 
 | 
        return toAjax(serviceFundtaxService.removeById(id)); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 新增专家费用算税申请主 
 | 
     */ 
 | 
    @ApiOperation("新增专家费用算税申请主") 
 | 
    @Log(title = "专家费用算税申请主", businessType = BusinessType.INSERT) 
 | 
    @PostMapping("/addFundTax") 
 | 
    public AjaxResult addFundTax(@RequestBody ServiceFundtax serviceFundtax) { 
 | 
        serviceFundtax.setTaxedtime(new Date()); 
 | 
  
 | 
        serviceFundtax.setApplyno(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); 
 | 
        serviceFundtaxService.save(serviceFundtax); 
 | 
        for (ServiceFund serviceFund : serviceFundtax.getServiceFunds()) { 
 | 
            serviceFund.setFundTaxId(serviceFundtax.getId()); 
 | 
            serviceFundService.updateById(serviceFund); 
 | 
        } 
 | 
        Map<String, Long> map = new HashMap<>(); 
 | 
        map.put("fundTaxId", serviceFundtax.getId()); 
 | 
        return AjaxResult.success(map); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取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)); 
 | 
    } 
 | 
} 
 |