package com.ruoyi.inhospvisit.api; import com.ruoyi.common.core.service.PreachformApi; import com.ruoyi.common.core.service.dto.VisitPreachformRow; import com.ruoyi.inhospvisit.mapper.VisitPreachformMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Collections; import java.util.List; /** * {@link PreachformApi} 的唯一实现(常驻 Bean)。 * *

它做什么

* 把 {@code service_subtask_preachform} 的读写收敛到本模块的 * {@link VisitPreachformMapper},对 {@link PreachformApi} 逐方法纯转发。 *

* 本类存在的意义是"跨模块 SQL 收口":收口前 smartor 里另有一整份同表的 * {@code ServiceSubtaskPreachformMapper} + XML,且有 15 个文件直连它 —— * 同一个表两套 CRUD,改一边就可能与另一边漂移。收口后外部只经本模块访问。 * *

⚠️ 不含任何业务判断,也不判开关

* 逐方法与原 Mapper 对应,条件/列/顺序照抄。 * "什么时候该插一条、置什么状态"属于调用方的业务。 * 开关({@code inhospvisit.enabled})只管"要不要生成随访",不该让数据访问整体不可用。 * *

⚠️ 三个 softDelete* 是软删

* 原实现里那三个 {@code deleteServiceSubtaskPreachform* } 的语句都是 * {@code update ... set del_flag = 1},本类按实际行为命名与转发。 */ @Slf4j @Component public class DefaultPreachformApi implements PreachformApi { @Autowired private VisitPreachformMapper mapper; @Override public VisitPreachformRow findById(Long id) { return mapper.selectById(id); } @Override public List findList(VisitPreachformRow query) { List rows = mapper.selectList(query); return rows == null ? Collections.emptyList() : rows; } @Override public List findByTaskidAndOrgid(Long taskid, String orgid) { List rows = mapper.selectByTaskidAndOrgid(taskid, orgid); return rows == null ? Collections.emptyList() : rows; } @Override public boolean insert(VisitPreachformRow row) { return mapper.insert(row) == 1; } @Override public boolean updateById(VisitPreachformRow row) { return mapper.updateById(row) == 1; } @Override public boolean updateByCondition(VisitPreachformRow row) { return mapper.updateByCondition(row) == 1; } @Override public boolean softDeleteById(Long id) { return mapper.softDeleteById(id) == 1; } @Override public boolean softDeleteByIds(Long[] ids) { return mapper.softDeleteByIds(ids) == 1; } @Override public boolean softDeleteBySubid(Long subid) { return mapper.softDeleteBySubid(subid) == 1; } }