eight
2024-08-23 3e696d457f13338a7eb5ad0935a7d2c7affcf605
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
package cn.lihu.jh.module.ecg.controller.admin.queue;
 
import cn.lihu.jh.framework.common.exception.ErrorCode;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
 
import java.util.*;
import java.io.IOException;
 
import cn.lihu.jh.framework.common.pojo.PageParam;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.pojo.CommonResult;
import cn.lihu.jh.framework.common.util.object.BeanUtils;
 
import static cn.lihu.jh.framework.common.pojo.CommonResult.error;
import static cn.lihu.jh.framework.common.pojo.CommonResult.success;
 
import cn.lihu.jh.framework.excel.core.util.ExcelUtils;
 
import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog;
import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*;
 
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
import cn.lihu.jh.module.ecg.service.queue.QueueService;
 
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.annotation.Resource;
 
@Tag(name = "管理后台 - 排队")
@RestController
@RequestMapping("/ecg/queue")
@Validated
public class queueController {
 
    @Resource
    private QueueService queueService;
 
    @PostMapping("/create")
    @Operation(summary = "创建排队")
    @PreAuthorize("@ss.hasPermission('ecg:queue:create')")
    public CommonResult<Integer> createqueue(@Valid @RequestBody QueueSaveReqVO createReqVO) {
        return success(queueService.createqueue(createReqVO));
    }
 
    @PutMapping("/update")
    @Operation(summary = "更新排队")
    @PreAuthorize("@ss.hasPermission('ecg:queue:update')")
    public CommonResult<Boolean> updatequeue(@Valid @RequestBody QueueSaveReqVO updateReqVO) {
        queueService.updatequeue(updateReqVO);
        return success(true);
    }
 
    @DeleteMapping("/delete")
    @Operation(summary = "删除排队")
    @Parameter(name = "id", description = "编号", required = true)
    @PreAuthorize("@ss.hasPermission('ecg:queue:delete')")
    public CommonResult<Boolean> deletequeue(@RequestParam("id") Integer id) {
        queueService.deletequeue(id);
        return success(true);
    }
 
    @GetMapping("/get")
    @Operation(summary = "获得排队")
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    @PreAuthorize("@ss.hasPermission('ecg:queue:query')")
    public CommonResult<QueueRespVO> getqueue(@RequestParam("id") Integer id) {
        QueueDO queue = queueService.getqueue(id);
        return success(BeanUtils.toBean(queue, QueueRespVO.class));
    }
 
    @GetMapping("/page")
    @Operation(summary = "获得排队分页")
    @PreAuthorize("@ss.hasPermission('ecg:queue:query')")
    public CommonResult<PageResult<QueueRespVO>> getqueuePage(@Valid QueuePageReqVO pageReqVO) {
        PageResult<QueueDO> pageResult = queueService.getqueuePage(pageReqVO);
        return success(BeanUtils.toBean(pageResult, QueueRespVO.class));
    }
 
    @GetMapping("/export-excel")
    @Operation(summary = "导出排队 Excel")
    @PreAuthorize("@ss.hasPermission('ecg:queue:export')")
    @ApiAccessLog(operateType = EXPORT)
    public void exportqueueExcel(@Valid QueuePageReqVO pageReqVO,
              HttpServletResponse response) throws IOException {
        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
        List<QueueDO> list = queueService.getqueuePage(pageReqVO).getList();
        // 导出 Excel
        ExcelUtils.write(response, "排队.xls", "数据", QueueRespVO.class,
                        BeanUtils.toBean(list, QueueRespVO.class));
    }
 
    @GetMapping("/opening-setting")
    @Operation(summary = "开诊设置")
    @PreAuthorize("@ss.hasPermission('ecg:queue:setting')")
    public CommonResult<Integer> openingSetting() {
        // 从DB同步工位的患者队列数据到 工位优先队列, 可能有新开工位
        queueService.initQueue();
        return success(0);
    }
 
    @GetMapping("/startbiz")
    @Operation(summary = "手动开诊")
    @PreAuthorize("@ss.hasPermission('ecg:queue:setting')")
    public CommonResult<Integer> startBiz() {
        queueService.startBiz();
        return success(0);
    }
 
    @GetMapping("/patient-jump")
    @Operation(summary = "插队")
    @Parameter(name = "patId", description = "患者编号", required = true, example = "B2")
    @PreAuthorize("@ss.hasPermission('ecg:queue:jump')")
    public CommonResult<String> queueJump(
            @RequestParam("patId") String patId,
            @RequestParam("jumpFlag") Byte jumpFlag)
    {
        Integer result = queueService.patientJump(patId, jumpFlag);
        if (null == result || 0 == result)
            return error( new ErrorCode(201, "找不到患者") );
 
        return success("success");
    }
 
}