yeg
2026-09-29 b78295e8da96c3e5e76befeef9582ce5273dbb74
ruoyi-admin/src/main/java/com/battery/business/web/CompareReportController.java
@@ -1,9 +1,12 @@
package com.battery.business.web;
import com.battery.business.report.CompareReportRepository;
import com.battery.business.report.CompareReportService;
import com.battery.business.report.CompareReportRequest;
import com.battery.business.report.CompareReportEditRequest;
import com.battery.business.service.report.CompareReportRepository;
import com.battery.business.service.report.CompareReportService;
import com.battery.business.service.report.CompareReportRequest;
import com.battery.business.service.report.CompareReportEditRequest;
import com.battery.business.service.report.CompareFieldTemplateRepository;
import com.battery.business.service.report.CompareFieldTemplateRequest;
import com.battery.business.service.report.CompareFieldTemplateService;
import jakarta.validation.Valid;
import java.util.List;
import com.ruoyi.common.core.controller.BaseController;
@@ -14,6 +17,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
@@ -24,8 +28,29 @@
{
    private final CompareReportRepository reports;
    private final CompareReportService service;
    public CompareReportController(CompareReportRepository reports, CompareReportService service)
    { this.reports = reports; this.service = service; }
    private final CompareFieldTemplateRepository templates;
    private final CompareFieldTemplateService templateService;
    public CompareReportController(CompareReportRepository reports, CompareReportService service, CompareFieldTemplateRepository templates, CompareFieldTemplateService templateService)
    { this.reports = reports; this.service = service; this.templates = templates; this.templateService = templateService; }
    /** 查看或编写报表均可读取模板,不额外要求测试或共享字段管理权限。 */
    @PreAuthorize("@ss.hasAnyPermi('system:compare-report:query,system:compare-report:add,system:compare-report:edit')")
    @GetMapping("/templates")
    public AjaxResult templates() { return success(templates.list()); }
    /** 模板新增复用报表新增权限;只接收经过验证的字段结构。 */
    @PreAuthorize("@ss.hasPermi('system:compare-report:add')")
    @PostMapping("/templates")
    public AjaxResult createTemplate(@Valid @RequestBody CompareFieldTemplateRequest request)
    {
        return success().put("id", templateService.create(request, getUserId(), getUsername()));
    }
    /** 模板更新复用报表编辑权限,允许跨创建人协作。 */
    @PreAuthorize("@ss.hasPermi('system:compare-report:edit')")
    @PutMapping("/templates/{id}")
    public AjaxResult updateTemplate(@PathVariable long id, @Valid @RequestBody CompareFieldTemplateRequest request)
    { templateService.update(id, request); return success(); }
    /** 查询报表摘要;筛选与分页沿用现有列表交互。 */
    @PreAuthorize("@ss.hasPermi('system:compare-report:query')")