package com.ruoyi.inhospvisit.mapper; import com.ruoyi.common.core.service.dto.VisitPreachformRow; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * 随访子任务「执行方式明细」({@code service_subtask_preachform})Mapper —— 出入院随访模块自带。 * *

来源对照(@ b25c3b51)

* * * * * * *
本方法原方法原 XML
{@link #selectList}{@code selectServiceSubtaskPreachformList}L44-73({@code del_flag = 0} + 8 个可选条件)
{@link #insert}{@code insertServiceSubtaskPreachform}L81-151({@code useGeneratedKeys},15 个可选列)
* *

⚠️ 与 smartor 的 Mapper 是两套等价的 SQL

* 同 {@code VisitInhospMapper} 的纪律:改任一边必须同步另一边,并重跑 * {@code verify_inhospvisit_mapper.py} 与 {@code verify_inhospvisit_sql_expansion.py}。 */ @Mapper public interface VisitPreachformMapper { /** * 按条件查(原 {@code selectServiceSubtaskPreachformList})。 *

* 原 XML 的固定条件是 {@code del_flag = 0};其余 8 个字段为可选条件: * {@code subid / taskid / current_send_time / preachform / sendstate / orgid / sort / compensate_time}。 * 全部照抄——虽然调用点只用到 {@code subid + taskid + preachform}, * 但完整照抄后"等价"就是可机械验证的事实(这是第 6d 步返工学到的)。 */ List selectList(VisitPreachformRow query); /** * 新增(原 {@code insertServiceSubtaskPreachform},自增主键回填到 {@code id})。 */ int insert(VisitPreachformRow row); // ========================================================================== // 以下 7 个方法为「跨模块 SQL 收口」补齐 —— 原 smartor 的 // ServiceSubtaskPreachformMapper 共 9 个方法,本模块原先只有 2 个。 // 逐方法与原 XML 对应,条件/列/顺序照抄,不做精简。 // ========================================================================== /** * 按主键查(原 {@code selectServiceSubtaskPreachformById})。 */ VisitPreachformRow selectById(Long id); /** * 按 {@code taskid + orgid} 查(原 {@code selectBySubtask})。 *

* ⚠️ 原方法名容易误解:它不按 subtask 主键查,而是以 * {@code del_flag = 0} 加可选的 {@code taskid}、{@code orgid} 为条件。 * 参数类型原为 {@code ServiceSubtask},实际只用到这两个字段。 */ List selectByTaskidAndOrgid(@Param("taskid") Long taskid, @Param("orgid") String orgid); /** * 按主键更新(原 {@code updateServiceSubtaskPreachform})。 *

原 XML 的 WHERE 是 {@code where id = #{id}};SET 各列均为 {@code }。 */ int updateById(VisitPreachformRow row); /** * 按条件更新(原 {@code updateSSPByCondition})。 *

* SET 子句与 {@link #updateById} 完全相同,区别只在 WHERE: * 这里按 {@code subid / taskid / preachform / remark / orgid} 逐项可选, * 且没有 id 条件。两处刻意分开保留,不合并 —— 合并会改变"按什么定位行"的语义。 */ int updateByCondition(VisitPreachformRow row); /** * 按主键软删(原 {@code deleteServiceSubtaskPreachformById})。 *

⚠️ 原标签是 {@code } 不是 {@code delete}:实际执行 {@code set del_flag = 1}。 */ int softDeleteById(Long id); /** * 按主键集合软删(原 {@code deleteServiceSubtaskPreachformByIds})。 *

⚠️ 同样是 {@code },且走 {@code array} 集合:{@code where id in (...)}。 */ int softDeleteByIds(Long[] ids); /** * 按 {@code subid} 软删(原 {@code deleteServiceSubtaskPreachformBySubid})。 *

⚠️ 原标签是 {@code } 但语句是 {@code update ... set del_flag = 1}(原样保留)。 */ int softDeleteBySubid(Long subid); }