liusheng
2024-04-22 63ebc0007e9958bd6680c6841a7460b053275790
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
package com.ruoyi.web.controller.project;
 
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.NotRepeatCommit;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.ServiceDonatecomporgan;
import com.ruoyi.project.domain.ServiceDonateorgan;
import com.ruoyi.project.domain.ServiceDonateorganVO;
import com.ruoyi.project.domain.ServiceOrganallocation;
import com.ruoyi.project.domain.vo.DonateOrganVO;
import com.ruoyi.project.domain.vo.TimeVO;
import com.ruoyi.project.service.IServiceDonateorganService;
import com.ruoyi.project.service.IServiceOrganallocationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
 
import java.util.Arrays;
import java.util.List;
 
/**
 * 捐献器官管理Controller
 *
 * @author ruoyi
 * @date 2021-11-10
 */
@Slf4j
@Api("捐献器官管理")
@RestController
@RequestMapping("/project/donateorgan")
public class ServiceDonateorganController extends BaseController {
    @Autowired
    private IServiceDonateorganService serviceDonateorganService;
 
    @Autowired
    private IServiceOrganallocationService serviceOrganallocationService;
 
 
    /**
     * 查询捐献器官管理列表
     */
    @ApiOperation("捐献器官列表")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceDonateorgan serviceDonateorgan) {
        startPage();
        List<ServiceDonateorgan> list = serviceDonateorganService.queryList(serviceDonateorgan);
        return getDataTable(list);
    }
 
 
    /**
     * 器官分配累计
     */
    @ApiOperation("器官分配累计")
    @GetMapping("/countList")
    public TableDataInfo countList(ServiceDonateorgan serviceDonateorgan) {
        startPage();
        List<ServiceDonateorgan> list = serviceDonateorganService.countList(serviceDonateorgan);
        return getDataTable(list);
    }
 
    @GetMapping("/listnew")
    public TableDataInfo listnew(DonateOrganVO donateOrganVO) {
        startPage();
        List<DonateOrganVO> list = serviceDonateorganService.selectVOList(donateOrganVO);
        return getDataTable(list);
    }
 
 
    /**
     * 导出捐献器官管理列表
     */
    @ApiOperation("导出捐献器官列表")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:export')")
    @Log(title = "捐献器官管理", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceDonateorgan serviceDonateorgan) {
        List<ServiceDonateorgan> list = serviceDonateorganService.queryList(serviceDonateorgan);
        ExcelUtil<ServiceDonateorgan> util = new ExcelUtil<ServiceDonateorgan>(ServiceDonateorgan.class);
        return util.exportExcel(list, "捐献器官管理数据");
    }
 
    /**
     * 获取捐献器官管理详细信息
     */
    @ApiOperation("通过id获得捐献器官信息")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceDonateorganService.getById(id));
    }
 
    /**
     * 新增捐献器官管理
     */
    @ApiOperation("新增捐献器官信息")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:add')")
    @Log(title = "捐献器官管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceDonateorgan serviceDonateorgan) {
        String organNumber = serviceDonateorgan.getDonorno() + "." + serviceDonateorgan.getOrganno();
        if (organNumber == "") {
            return AjaxResult.error("新增时生成的编号为空,创建失败!");
        } else {
            ServiceDonateorgan serviceDonateorgan1 = new ServiceDonateorgan();
            serviceDonateorgan1.setOrgannumber(organNumber);
            List<ServiceDonateorgan> listrecord = serviceDonateorganService.queryList(serviceDonateorgan);
            if (listrecord.size() > 0) {
                return AjaxResult.error("新增时生成的编号" + organNumber + "已存在,无法保存!");
            }
        }
        serviceDonateorgan.setOrgannumber(organNumber);
        boolean save = serviceDonateorganService.save(serviceDonateorgan);
        return AjaxResult.success(serviceDonateorgan);
    }
 
 
    /**
     * 新增捐献器官管理
     */
    @ApiOperation("新增捐献器官信息")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:add')")
    @Log(title = "捐献器官管理", businessType = BusinessType.INSERT)
    @PostMapping("/addData")
    @RepeatSubmit
    public TableDataInfo addData(@RequestBody List<ServiceDonateorgan> serviceDonateorgans) {
        List<ServiceDonateorgan> serviceDonateorgans1 = serviceDonateorganService.saveData(serviceDonateorgans);
        return saveDataTable(serviceDonateorgans1);
    }
 
 
    /**
     * 修改器官分配
     */
    @ApiOperation("修改器官分配信息")
    //// @PreAuthorize("@ss.hasPermi('project:organallocation:edit')")
    @Log(title = "器官分配", businessType = BusinessType.UPDATE)
    @PostMapping("/editarraydata")
    @RepeatSubmit
    public AjaxResult editArrayData(@RequestBody List<ServiceDonateorgan> serviceDonateorgans) {
        return AjaxResult.success(serviceDonateorganService.editArrayData(serviceDonateorgans));
    }
 
    /**
     * 修改捐献器官管理
     */
    @ApiOperation("修改捐献器官信息")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:edit')")
    @Log(title = "捐献器官管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceDonateorgan serviceDonateorgan) {
        return toAjax(serviceDonateorganService.updateById(serviceDonateorgan));
    }
 
    /**
     * 删除捐献器官管理
     */
    @ApiOperation("删除捐献器官信息")
    //// @PreAuthorize("@ss.hasPermi('project:donateorgan:remove')")
    @Log(title = "捐献器官管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceDonateorganService.removeByIds(Arrays.asList(ids)));
    }
 
    @ApiOperation("得到浙江各市下的捐献信息")
    @GetMapping("/numberOfOrgans")
    public AjaxResult numberOfOrgans() {
        return AjaxResult.success(serviceDonateorganService.getNumberOfOrgans());
    }
 
    @ApiOperation("得到各医院的捐献信息")
    @PostMapping("/OrgansOfHospital")
    public AjaxResult OrgansOfHospital(String cityName) {
        return AjaxResult.success(serviceDonateorganService.getOrgansOfHospital(cityName));
    }
 
 
    @ApiOperation("全省捐献器官信息汇总")
    @GetMapping("/allOrgansInfo")
    public AjaxResult allOrgansInfo(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getAllOrgansInfo(timeVO));
    }
 
    @ApiOperation("本年度器官质量情况分析")
    @GetMapping("/organQuality")
    public AjaxResult organQuality(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getOrganQuality(timeVO));
    }
 
    @ApiOperation("捐献累计信息")
    @GetMapping("/donateNumber")
    public AjaxResult donateNumber(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDonateNumber(timeVO));
    }
 
 
    @ApiOperation("按月度统计的潜在捐献数量")
    @GetMapping("/donateBaseInfoByMonth")
    public AjaxResult donateBaseInfoByMonth() {
        return AjaxResult.success(serviceDonateorganService.getDonateBaseInfoByMonth());
    }
 
    @ApiOperation("按月度统计的捐献案例数")
    @GetMapping("/donatePeopleByMonth")
    public AjaxResult donatePeopleByMonth(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDonatePeopleByMonth(timeVO));
    }
 
    @ApiOperation("按月度统计的捐献案例数-完成案例")
    @GetMapping("/getDonatePeopleByMonthFromCompletioninfo")
    public AjaxResult getDonatePeopleByMonthFromCompletioninfo(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDonatePeopleByMonthFromCompletioninfo(timeVO));
    }
 
    @ApiOperation("按月度统计的捐献器官数")
    @GetMapping("/donateNumberByMonth")
    public AjaxResult donateNumberByMonth(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDonateNumberByMonth(timeVO));
    }
 
    @ApiOperation("按月度统计的捐献医院数")
    @GetMapping("/donateHospitalByMonth")
    public AjaxResult donateHospitalByMonth(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDonateHospitalByMonth(timeVO));
    }
 
    @ApiOperation("按月度统计的获取医院数")
    @GetMapping("/acceptHospitalByMonth")
    public AjaxResult acceptHospitalByMonth() {
        return AjaxResult.success(serviceDonateorganService.getAcceptHospitalByMonth());
    }
 
    @ApiOperation("按月度统计的各医院的捐献信息")
    @GetMapping("/OrgansOfHospitalByMonth")
    public AjaxResult OrgansOfHospitalByMonth(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.OrgansOfHospitalByMonth(timeVO));
    }
 
    @ApiOperation("按时间统计的各医院的捐献信息")
    @GetMapping("/OrgansOfHospitalByTime")
    public AjaxResult OrgansOfHospitalByTime(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.OrgansOfHospitalByTime(timeVO));
    }
 
    @ApiOperation("每百万人口的捐献率")
    @GetMapping("/getPMPRate")
    public AjaxResult getPMPRate(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getPMPRate(timeVO));
    }
 
    @ApiOperation("根据地市返回捐献、完成、器官数")
    @GetMapping("/getDistrictDonateCalculate")
    public AjaxResult getDistrictDonateCalculate() {
        return AjaxResult.success(serviceDonateorganService.getDistrictDonateCalculate());
    }
 
    @ApiOperation("根据时间地市返回捐献、完成、器官数")
    @GetMapping("/getDistrictDonateCalculateByTime")
    public AjaxResult getDistrictDonateCalculateByTime(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getDistrictDonateCalculateByTime(timeVO));
    }
 
    @ApiOperation("根据机构返回器官总数")
    @GetMapping("/getOrganNumberByOrg")
    public AjaxResult getOrganNumberByOrg(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getOrganNumberByOrg(timeVO));
    }
 
    @ApiOperation("返回器官总数")
    @GetMapping("/getOrganCount")
    public AjaxResult getOrganCount(TimeVO timeVO) {
        return AjaxResult.success(serviceDonateorganService.getOrganCount(timeVO));
    }
 
    @RepeatSubmit
    @ApiOperation("新增或修改捐献器官管理")
    @Log(title = "捐献完成", businessType = BusinessType.UPDATE)
    @PostMapping("/saveOrUpdateDonateorgan")
    public AjaxResult saveOrUpdateDonateorgan(@RequestBody List<ServiceDonateorgan> serviceDonateorganList) {
        if (CollectionUtils.isEmpty(serviceDonateorganList)) {
            throw new BaseException("请检查需要新增或修改的捐献器官管理参数是否完整");
        }
        Boolean i = null;
        for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganList) {
            log.info("捐献器官移植id是否为空 : {},基础表的id为 : {}", serviceDonateorgan.getId(), serviceDonateorgan.getInfoid());
            if (serviceDonateorgan.getId() == null) {
                i = serviceDonateorganService.save(serviceDonateorgan);
            } else {
                i = serviceDonateorganService.updateById(serviceDonateorgan);
            }
        }
        return toAjax(i);
    }
 
}