liusheng
8 天以前 34f78281cf395a24e1f3f1c3b861186ff8a03b7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package com.ruoyi.othervisit.service;
 
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.othervisit.domain.PatMedOperation;
import com.ruoyi.othervisit.mapper.PatMedOperationMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
/**
 * 患者手术记录({@code pat_med_operation})基础读写 —— 本模块<b>唯一</b>的写入口。
 *
 * <h3>迁移对应(@ b25c3b51)</h3>
 * 整体照搬 {@code com.smartor.service.impl.PatMedOperationServiceImpl} 里的 6 个纯 CRUD 方法:
 * <table border="1">
 *   <tr><th>本类方法</th><th>原实现</th></tr>
 *   <tr><td>{@link #selectById(Long)}</td><td>L46-48</td></tr>
 *   <tr><td>{@link #selectList(PatMedOperation)}</td><td>L57-59</td></tr>
 *   <tr><td>{@link #insert(PatMedOperation)}</td><td>L68-71(含 {@code setCreateTime})</td></tr>
 *   <tr><td>{@link #update(PatMedOperation)}</td><td>L80-83(含 {@code setUpdateTime})</td></tr>
 *   <tr><td>{@link #deleteByIds(Long[])}</td><td>L92-94</td></tr>
 *   <tr><td>{@link #deleteById(Long)}</td><td>L103-105</td></tr>
 * </table>
 *
 * <h3>⚠️ 与原实现逐字一致的地方(勿"顺手优化")</h3>
 * <ul>
 *   <li>{@code insert} 用 {@code DateUtils.getNowDate()} 设 {@code createTime},
 *       {@code update} 用同一个方法设 {@code updateTime} —— 原样保留,
 *       换成 {@code new Date()} 会让"当天"的判定语义变化({@code getNowDate} 有日期归一逻辑)。</li>
 * </ul>
 *
 * <h3>为什么必须有这一层</h3>
 * 按跨模块数据访问原则:{@code pat_med_operation} 的<b>写操作一律不许跨模块</b>。
 * 其它模块(HIS 采集 {@code CollectHISServiceImpl}、外部手术回传 {@code ServiceExternalServiceImpl}、
 * 出入院随访 {@code PatMedInhospServiceImpl})需要读写手术数据时,
 * <b>只能</b>经 {@link com.ruoyi.othervisit.api.OtherVisitFacade} 调用本类,
 * 不得再注入 {@link PatMedOperationMapper}。
 */
@Slf4j
@Service
public class OperationService {
 
    @Autowired
    private PatMedOperationMapper patMedOperationMapper;
 
    /**
     * 查询患者手术记录。
     * <p>原 {@code PatMedOperationServiceImpl#selectPatMedOperationById} L46-48,一行转发。
     */
    public PatMedOperation selectById(Long id) {
        return patMedOperationMapper.selectPatMedOperationById(id);
    }
 
    /**
     * 查询患者手术记录列表。
     * <p>
     * 原 {@code PatMedOperationServiceImpl#selectPatMedOperationList} L57-59,一行转发。
     * <p>
     * ⚠️ 与出入院/门诊不同,这里<b>没有</b>存储过程也没有展示富化 ——
     * 手术列表查询一直是普通 {@code selectPatMedOperationList},原样保留。
     */
    public List<PatMedOperation> selectList(PatMedOperation patMedOperation) {
        return patMedOperationMapper.selectPatMedOperationList(patMedOperation);
    }
 
    /**
     * 新增患者手术记录。
     * <p>原 L68-71:先 {@code setCreateTime(DateUtils.getNowDate())} 再 insert。
     */
    public int insert(PatMedOperation patMedOperation) {
        patMedOperation.setCreateTime(DateUtils.getNowDate());
        return patMedOperationMapper.insertPatMedOperation(patMedOperation);
    }
 
    /**
     * 修改患者手术记录。
     * <p>原 L80-83:先 {@code setUpdateTime(DateUtils.getNowDate())} 再 update。
     */
    public int update(PatMedOperation patMedOperation) {
        patMedOperation.setUpdateTime(DateUtils.getNowDate());
        return patMedOperationMapper.updatePatMedOperation(patMedOperation);
    }
 
    /**
     * 批量删除患者手术记录。
     * <p>
     * 原 L92-94,一行转发。
     * <p>
     * ⚠️ 底层 XML 里 {@code deletePatMedOperationById} / {@code deletePatMedOperationByIds}
     * 都是 {@code <update>}(软删,置 {@code del_flag}),不是物理删除 —— 名字有误导性,原样保留。
     */
    public int deleteByIds(Long[] ids) {
        return patMedOperationMapper.deletePatMedOperationByIds(ids);
    }
 
    /**
     * 删除患者手术记录。
     * <p>原 L103-105,一行转发(同上,底层是软删)。
     */
    public int deleteById(Long id) {
        return patMedOperationMapper.deletePatMedOperationById(id);
    }
}