赵文轩
2024-06-21 e52fbbc9361f4603057025e504a1c3591f1054eb
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
package com.ltkj.web.controller.system;
 
import java.util.Arrays;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.hosp.domain.TjOrderDetail;
import com.ltkj.hosp.service.ITjOrderDetailService;
import com.ltkj.hosp.service.ITjProjectService;
import com.ltkj.hosp.service.TjAsyncService;
import com.ltkj.system.domain.SysPost;
import com.ltkj.system.domain.SysUserPost;
import com.ltkj.system.service.ISysPostService;
import com.ltkj.system.service.ISysUserPostService;
import com.ltkj.system.service.ISysUserService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ltkj.common.annotation.Log;
import com.ltkj.common.core.controller.BaseController;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.enums.BusinessType;
import com.ltkj.hosp.domain.TjBigPositive;
import com.ltkj.hosp.service.ITjBigPositiveService;
import com.ltkj.common.utils.poi.ExcelUtil;
import com.ltkj.common.core.page.TableDataInfo;
 
/**
 * 重大阳性记录Controller
 *
 * @author ltkj_赵佳豪&李格
 * @date 2023-12-04
 */
@RestController
@RequestMapping("/hosp/bigPositive")
public class TjBigPositiveController extends BaseController {
    @Autowired
    private ITjBigPositiveService tjBigPositiveService;
 
    @Resource
    private ITjOrderDetailService detailService;
    @Resource
    private ISysUserService userService;
    @Resource
    private ITjProjectService projectService;
 
    @Resource
    private ISysUserPostService userPostService;
    @Resource
    private ISysPostService postService;
    @Resource
    private TjAsyncService asyncService;
    /**
     * 查询重大阳性记录列表
     */
    @GetMapping("/list")
    public TableDataInfo list(TjBigPositive tjBigPositive) {
        startPage();
        List<TjBigPositive> list = tjBigPositiveService.selectTjBigPositiveList(tjBigPositive);
        return getDataTable(list);
    }
 
    /**
     * 新增/移除 重大阳性记录  判断flag
     */
    @PostMapping
    public AjaxResult add(@RequestBody TjBigPositive tjBigPositive) {
        SysUser sysUser = SecurityUtils.getLoginUser().getUser();
        Integer ksId = null;
            if (null != sysUser) {
                ksId = Math.toIntExact(sysUser.getDeptId());
            }
 
        if (ksId == null) {
            return AjaxResult.error("请输入科室id");
        }
        //根据当前登陆的人的科室id,获取该科室下的所有项目
        List<Long> postIds = sysUser.getPostIds();
        List<Long> ksproList = null;
        if (postIds != null) {
            for (Long postId : postIds) {
                LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
                wq111.eq(SysUserPost::getPostId, postId);
                SysUserPost one = userPostService.getOne(wq111);
                if (one != null) {
                    SysPost byId = postService.getById(one.getPostId());
                    if (byId.getPostName().equals("录入员")) {
                        ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
                    }
                }
            }
        } else {
            ksproList = projectService.getKsTjProjectIdList();
        }
 
        if (ksproList == null || ksproList.size() == 0) {
            return AjaxResult.error("请完善科室项目信息");
        }
        if ("1".equals(tjBigPositive.getFlag())){
            LambdaQueryWrapper<TjBigPositive> wq=new LambdaQueryWrapper<>();
            wq.eq(TjBigPositive::getTjNumber,tjBigPositive.getTjNumber());
            wq.eq(TjBigPositive::getProParentId,tjBigPositive.getProParentId());
            wq.eq(TjBigPositive::getProId,tjBigPositive.getProId());
            final List<TjBigPositive> list = tjBigPositiveService.list(wq);
            LambdaQueryWrapper<TjOrderDetail> wqq=new LambdaQueryWrapper<>();
            wqq.eq(TjOrderDetail::getProId,tjBigPositive.getProId());
            wqq.eq(TjOrderDetail::getOrderId,tjBigPositive.getOrderId());
            wqq.last("limit 1");
            TjOrderDetail tjOrderDetails = detailService.getOne(wqq);
            if (list==null||list.size()==0){
                tjBigPositiveService.save(tjBigPositive);
                //更改detail表状态
                if (tjOrderDetails!=null){
                    tjOrderDetails.setIsPositive(1L);
                    detailService.updateById(tjOrderDetails);
                    //更新缓存
                    asyncService.updateOrdeltile2(tjOrderDetails, sysUser);
                    asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
                    return AjaxResult.success("添加成功");
                }
                return AjaxResult.error("出错了,请联系工作人员");
            }else {
                tjBigPositiveService.updateById(tjBigPositive);
                //更新缓存
//                asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
                if (tjOrderDetails!=null){
                    asyncService.updateOrdeltile2(tjOrderDetails, sysUser);
                    asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
                }
                return AjaxResult.success("添加成功");
            }
        }else if ("0".equals(tjBigPositive.getFlag())){
            LambdaQueryWrapper<TjBigPositive> wq11=new LambdaQueryWrapper<>();
            wq11.eq(TjBigPositive::getTjNumber,tjBigPositive.getTjNumber());
            wq11.eq(TjBigPositive::getProParentId,tjBigPositive.getProParentId());
            wq11.eq(TjBigPositive::getProId,tjBigPositive.getProId());
            tjBigPositiveService.remove(wq11);
            //更改detail表状态
            LambdaQueryWrapper<TjOrderDetail> wqq=new LambdaQueryWrapper<>();
            wqq.eq(TjOrderDetail::getProId,tjBigPositive.getProId());
            wqq.eq(TjOrderDetail::getOrderId,tjBigPositive.getOrderId());
            wqq.last("limit 1");
            TjOrderDetail tjOrderDetails = detailService.getOne(wqq);
            if (tjOrderDetails!=null){
                tjOrderDetails.setIsPositive(Long.valueOf(0));
                detailService.updateById(tjOrderDetails);
                //更新缓存
                asyncService.updateOrdeltile2(tjOrderDetails, sysUser);
                asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
                return AjaxResult.success("删除成功");
            }
            return AjaxResult.error("出错了,请联系工作人员");
 
        }
        return AjaxResult.error("出错了,请联系工作人员");
    }
 
 
}