liujie
2026-09-20 25999c575dd42b4715e49d3fe57e73c2c3204ccb
admin-server/src/main/java/com/estate/expert/admin/service/impl/ReportServiceImpl.java
@@ -15,6 +15,7 @@
import com.estate.expert.admin.service.eval.EvalFuzzyService;
import com.estate.expert.admin.service.eval.EvalScoreService;
import com.estate.expert.admin.stat.report.builder.DeviceReportBuilder;
import com.estate.expert.admin.stat.report.builder.ChengduHengtaiSystemReportBuilder;
import com.estate.expert.admin.stat.report.builder.ReportBuilderBase;
import com.estate.expert.admin.stat.report.builder.SystemReportBuilder;
import com.estate.expert.admin.stat.report.data.DeviceReportData;
@@ -48,8 +49,11 @@
@Service
public class ReportServiceImpl implements ReportService {
    private static final String DAIGUAN_REMARK = "daiguan";
    private static final String DAIGUAN_TECH_REMARK = "岱观科技";
    private static final String DAIGUAN_SYSTEM_TEMPLATE_FILE = "第三方评估报告new.docx";
    private static final String DAIGUAN_REMARK = "岱观科技";
    private static final String DAIGUAN_DEVICE_TEMPLATE_FILE = "设备风险评估报告new.docx";
    private static final String CHENGDU_HENGTAI_REMARK = "成都衡泰";
    @Resource
    private ReportTemplateService reportTemplateService;
@@ -192,6 +196,12 @@
        BizResultCode.BIZ_REPORT_TEMPLATE_NOT_EXIST.check(reportTemplate == null);
        switch (reportTemplate.getType()) {
            case ThirdPartyReport:
                if (isChengduHengtaiTemplate(reportTemplate)) {
                    return new ChengduHengtaiSystemReportBuilder(userFileService);
                }
                if (isDaiguanTechTemplate(reportTemplate)) {
                    return new SystemReportBuilder(userFileService, DAIGUAN_SYSTEM_TEMPLATE_FILE);
                }
                return new SystemReportBuilder(userFileService);
            case DeviceReport:
                if (DAIGUAN_REMARK.equals(reportTemplate.getRemark())) {
@@ -467,6 +477,19 @@
        return reportTemplate != null && DAIGUAN_REMARK.equals(reportTemplate.getRemark());
    }
    private boolean isDaiguanTechTemplate(ReportTemplate reportTemplate) {
        if (reportTemplate == null || reportTemplate.getRemark() == null) {
            return false;
        }
        return DAIGUAN_TECH_REMARK.equals(reportTemplate.getRemark().trim());
    }
    private boolean isChengduHengtaiTemplate(ReportTemplate reportTemplate) {
        return reportTemplate != null
                && reportTemplate.getRemark() != null
                && CHENGDU_HENGTAI_REMARK.equals(reportTemplate.getRemark().trim());
    }
    private long countProjectChecks(Integer projectId) {
        if (projectId == null) {
            return 0L;