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 —— 出入院随访模块自带。
|
*
|
* <h3>来源对照(@ b25c3b51)</h3>
|
* <table border="1">
|
* <tr><th>本方法</th><th>原方法</th><th>原 XML</th></tr>
|
* <tr><td>{@link #selectList}</td><td>{@code selectServiceSubtaskPreachformList}</td>
|
* <td>L44-73({@code del_flag = 0} + 8 个可选条件)</td></tr>
|
* <tr><td>{@link #insert}</td><td>{@code insertServiceSubtaskPreachform}</td>
|
* <td>L81-151({@code useGeneratedKeys},15 个可选列)</td></tr>
|
* </table>
|
*
|
* <h3>⚠️ 与 smartor 的 Mapper 是两套等价的 SQL</h3>
|
* 同 {@code VisitInhospMapper} 的纪律:改任一边必须同步另一边,并重跑
|
* {@code verify_inhospvisit_mapper.py} 与 {@code verify_inhospvisit_sql_expansion.py}。
|
*/
|
@Mapper
|
public interface VisitPreachformMapper {
|
|
/**
|
* 按条件查(原 {@code selectServiceSubtaskPreachformList})。
|
* <p>
|
* 原 XML 的固定条件是 {@code del_flag = 0};其余 8 个字段为可选条件:
|
* {@code subid / taskid / current_send_time / preachform / sendstate / orgid / sort / compensate_time}。
|
* <b>全部照抄</b>——虽然调用点只用到 {@code subid + taskid + preachform},
|
* 但完整照抄后"等价"就是可机械验证的事实(这是第 6d 步返工学到的)。
|
*/
|
List<VisitPreachformRow> 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})。
|
* <p>
|
* ⚠️ 原方法名容易误解:它<b>不按 subtask 主键查</b>,而是以
|
* {@code del_flag = 0} 加可选的 {@code taskid}、{@code orgid} 为条件。
|
* 参数类型原为 {@code ServiceSubtask},实际只用到这两个字段。
|
*/
|
List<VisitPreachformRow> selectByTaskidAndOrgid(@Param("taskid") Long taskid,
|
@Param("orgid") String orgid);
|
|
/**
|
* 按主键更新(原 {@code updateServiceSubtaskPreachform})。
|
* <p>原 XML 的 WHERE 是 {@code where id = #{id}};SET 各列均为 {@code <if test="xxx != null">}。
|
*/
|
int updateById(VisitPreachformRow row);
|
|
/**
|
* 按条件更新(原 {@code updateSSPByCondition})。
|
* <p>
|
* SET 子句与 {@link #updateById} <b>完全相同</b>,区别只在 WHERE:
|
* 这里按 {@code subid / taskid / preachform / remark / orgid} 逐项可选,
|
* 且<b>没有 id 条件</b>。两处刻意分开保留,不合并 —— 合并会改变"按什么定位行"的语义。
|
*/
|
int updateByCondition(VisitPreachformRow row);
|
|
/**
|
* 按主键软删(原 {@code deleteServiceSubtaskPreachformById})。
|
* <p>⚠️ 原标签是 {@code <update>} 不是 {@code delete}:实际执行 {@code set del_flag = 1}。
|
*/
|
int softDeleteById(Long id);
|
|
/**
|
* 按主键集合软删(原 {@code deleteServiceSubtaskPreachformByIds})。
|
* <p>⚠️ 同样是 {@code <update>},且走 {@code array} 集合:{@code where id in (...)}。
|
*/
|
int softDeleteByIds(Long[] ids);
|
|
/**
|
* 按 {@code subid} 软删(原 {@code deleteServiceSubtaskPreachformBySubid})。
|
* <p>⚠️ 原标签是 {@code <delete>} 但语句是 {@code update ... set del_flag = 1}(原样保留)。
|
*/
|
int softDeleteBySubid(Long subid);
|
}
|