liusheng
2024-09-18 722fa40345f1fc650eaeae4a721c3ae4106d92a8
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.smartor.service.impl;
 
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.PatArchiveImport;
import com.smartor.mapper.PatArchiveImportMapper;
import com.smartor.service.IPatArchiveImportService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
 
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * Excel导入患者档案Service业务层处理
 *
 * @author lihu
 * @date 2024-09-05
 */
@Service
public class PatArchiveImportServiceImpl implements IPatArchiveImportService {
    @Autowired
    private PatArchiveImportMapper patArchiveImportMapper;
 
    /**
     * 查询Excel导入患者档案
     *
     * @param id Excel导入患者档案主键
     * @return Excel导入患者档案
     */
    @Override
    public PatArchiveImport selectPatArchiveImportById(Long id) {
        return patArchiveImportMapper.selectPatArchiveImportById(id);
    }
 
    /**
     * 查询Excel导入患者档案列表
     *
     * @param patArchiveImport Excel导入患者档案
     * @return Excel导入患者档案
     */
    @Override
    public List<PatArchiveImport> selectPatArchiveImportList(PatArchiveImport patArchiveImport) {
        return patArchiveImportMapper.selectPatArchiveImportList(patArchiveImport);
    }
 
    /**
     * 新增Excel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return 结果
     */
    @Override
    public int insertPatArchiveImport(PatArchiveImport patArchiveImport) {
        patArchiveImport.setCreateTime(DateUtils.getNowDate());
        return patArchiveImportMapper.insertPatArchiveImport(patArchiveImport);
    }
 
    /**
     * 修改Excel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return 结果
     */
    @Override
    public int updatePatArchiveImport(PatArchiveImport patArchiveImport) {
        patArchiveImport.setUpdateTime(DateUtils.getNowDate());
        return patArchiveImportMapper.updatePatArchiveImport(patArchiveImport);
    }
 
    /**
     * 批量删除Excel导入患者档案
     *
     * @param ids 需要删除的Excel导入患者档案主键
     * @return 结果
     */
    @Override
    public int deletePatArchiveImportByIds(Long[] ids) {
        return patArchiveImportMapper.deletePatArchiveImportByIds(ids);
    }
 
    /**
     * 删除Excel导入患者档案信息
     *
     * @param id Excel导入患者档案主键
     * @return 结果
     */
    @Override
    public int deletePatArchiveImportById(Long id) {
        return patArchiveImportMapper.deletePatArchiveImportById(id);
    }
 
    @Override
    public List<PatArchiveImport> importPatInfo(MultipartFile multipartFile) {
        //用于返回
        List<PatArchiveImport> patArchiveImports = new ArrayList<>();
        try {
            Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream());
            Sheet sheet = workbook.getSheetAt(0);
 
            for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) {
                //导入患者对象
                PatArchiveImport patArchiveImport = new PatArchiveImport();
                Row row = sheet.getRow(i);
                //如果行为空,进行下一次循环
                if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) {
                    continue;
                }
                //判断数据是否有问题
 
 
                if (ObjectUtils.isNotEmpty(row.getCell(0).toString())) {
                    patArchiveImport.setName(row.getCell(0).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(1))) {
                    patArchiveImport.setIdcardno(row.getCell(1).toString());
                }
 
                if (ObjectUtils.isNotEmpty(row.getCell(2))) {
                    patArchiveImport.setTelcode(row.getCell(2).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(3))) {
                    patArchiveImport.setBatchName(row.getCell(3).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(4))) {
                    patArchiveImport.setPatientno(row.getCell(4).toString());
                }
 
                if (ObjectUtils.isNotEmpty(row.getCell(5))) {
                    patArchiveImport.setPattype(row.getCell(5).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(6))) {
                    patArchiveImport.setSex(Long.valueOf(row.getCell(6).toString()));
                }
                if (ObjectUtils.isNotEmpty(row.getCell(7))) {
                    patArchiveImport.setAge(Long.valueOf(row.getCell(7).toString()));
                }
 
                patArchiveImports.add(patArchiveImport);
 
                patArchiveImport.setCreateTime(new Date());
                patArchiveImport.setUpdateTime(new Date());
                //批量号(当前时间)
                patArchiveImport.setBatchNo(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
                insertPatArchiveImport(patArchiveImport);
            }
 
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return patArchiveImports;
    }
}