package com.ruoyi.satisfaction.service.strategy; import com.ruoyi.satisfaction.domain.ServiceSubtaskDetailRatioExport; import java.math.BigDecimal; import java.util.List; /** * 满意度「站点口径」策略:一个站点一套综合满意度得分口径。 *

* 这是本模块用来区分「南华」与「省立同德」两套满意度口径的策略接口: *

* 由 {@link SatisfactionScoreStrategyResolver} 按站点标识选择实现;调用方(Controller / Service) * 只依赖本接口 + 解析器,不再自己写站点分支 —— 以后新增站点只需新增一个实现类。 *

* 入参统一为{@code List}("问题详情占比"行:选项 + 数量 + 分值), * 因为两个站点的综评入口拿到的都是这个结构。 */ public interface SatisfactionScoreStrategy { /** * 站点标识(规范值,取自 {@link SatisfactionSites}) */ String site(); /** * 站点名称(中文,用于文档与日志) */ String siteName(); /** * 计算「综合满意度得分」。 *

* 返回值语义由各站点口径自行定义(通用口径是平均分保留 1 位; * 同德口径是百分制加权得分保留 2 位),调用方按站点既有约定呈现。 * * @param rows 同一道题(或同一批)的选项占比行 * @return 得分;无法计算时返回 {@code null}(调用方按站点既有约定回退,例如同德回退为 "0.00") */ BigDecimal comprehensiveScore(List rows); }