zjh
2024-05-31 e6d0459bd4ac8bda4863d09d671cc6efc568701f
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
package com.ltkj.web.controller.his;
 
 
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.framework.config.SecurityConfig;
import com.ltkj.framework.config.UserHoder;
import com.ltkj.hosp.domain.TjCustomer;
import com.ltkj.hosp.domain.TjOrderDetail;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.hisDto.OutpinregapplyDto;
import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
import com.ltkj.hosp.hisDto.OutpintestapplyDto;
import com.ltkj.hosp.service.ITjCustomerService;
import com.ltkj.hosp.service.ITjOrderDetailService;
import com.ltkj.hosp.service.ITjOrderService;
import com.ltkj.hosp.service.ITjProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
/* @Authot:zjh
 * @Date:  2024-05-30
 * */
 
@Component
public class HisApiMethod {
    @Autowired
    private HisApiMethodService controller;
    @Resource
    private ITjOrderService orderService;
    @Autowired
    private ITjCustomerService customerService;
    @Resource
    private ITjOrderDetailService detailService;
    @Resource
    private ITjProjectService projectService;
 
    //将方法返回值解析成json格式
    public JSONObject getJSONObject(String builder) {
        return JSONUtil.parseObj(builder);
    }
 
    //获取方法返回值信息
    public String getAjaxResult(AjaxResult result) {
        return result.get("data").toString();
    }
 
    //对接his总接口
    public AjaxResult HisApiMethods(TjCustomer customer, Long orderId) {
 
        Date date = new Date();
        AjaxResult result = controller.Outpincreateapply(customer);
        String result1 = getAjaxResult(result);
        JSONObject object = getJSONObject(result1);
        String code = object.getStr("ResultCode");
        if (code.equals("0")) {
            Map<String, Object> resultData = (Map<String, Object>) object.get("ResultData");
            if (null != resultData && resultData.size() > 0) {
                String cardId = resultData.get("pationid").toString();
                if (null != cardId) {
                    customer.setCardId(cardId);
                    customerService.updateById(customer);
                    OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
                    outpinregapplyDto.setPationid(cardId);
                    outpinregapplyDto.setHisRegistrationId(cardId);
                    outpinregapplyDto.setSqysbm(SecurityUtils.getUsername());
                    outpinregapplyDto.setMzksbm("");
                    outpinregapplyDto.setCzybm(SecurityUtils.getUsername());
                    outpinregapplyDto.setSfjz("是");
                    outpinregapplyDto.setGhzlbm("");
                    outpinregapplyDto.setYwckbm("");
                    outpinregapplyDto.setSflstd("0");
                    outpinregapplyDto.setGhrq(date);
                    AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
                    String result2 = getAjaxResult(ajaxResult);
                    JSONObject object1 = getJSONObject(result2);
                    String code1 = object1.getStr("ResultCode");
                    if (code1.equals("0")) {
                        List<Map<String, Object>> resultDatas = (List<Map<String, Object>>) object.get("ResultData");
                        if (null != resultDatas && resultDatas.size() > 0) {
                            String hisRegistrationId = resultDatas.get(0).get("his_registration_id").toString();
                            if (null != hisRegistrationId) {
                                AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername());
                                String result4 = getAjaxResult(result3);
                                JSONObject object2 = getJSONObject(result4);
                                String code2 = object2.getStr("ResultCode");
                                if (code2.equals("0")) {
                                    Map<String, Object> data = (Map<String, Object>) object.get("ResultData");
                                    String toString = data.get("his_registration_id").toString();
                                    if (null != toString) {
                                        OutpintestapplyDto dto = new OutpintestapplyDto();
                                        dto.setHisRegistrationId(hisRegistrationId);
                                        dto.setSfjz(customer.getCusIdcard());
                                        dto.setSqysbm(SecurityUtils.getUsername());
                                        dto.setMzksbm("");
                                        dto.setSjrq(date);
                                        dto.setCzybm(SecurityUtils.getUsername());
                                        dto.setCzyksbm("");
                                        dto.setSfjz("1");
                                        List<TjOrderDetail> detailList = detailService.getTjOrderDetailListByOrderId(orderId.toString());
 
                                        List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
 
                                        if (null != detailList && detailList.size() > 0) {
                                            LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
                                            wq.in(TjProject::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
                                            List<TjProject> projects = projectService.list(wq);
                                            if (null != projects && projects.size() > 0) {
                                                for (TjProject project : projects) {
                                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
                                                    detailsDto.setSfzhfy("1");
                                                    detailsDto.setSl(1);
                                                    detailsDtos.add(detailsDto);
                                                }
                                            }
                                        }
                                        dto.setDetails(detailsDtos);
                                        AjaxResult ajaxResult1 = controller.Outpintestapply(dto);
                                        String result5 = getAjaxResult(ajaxResult1);
                                        JSONObject object3 = getJSONObject(result5);
                                        String code3 = object3.getStr("ResultCode");
                                        if (code3.equals("0")) {
                                            Map<String, Object> datas = (Map<String, Object>) object.get("ResultData");
                                            //检验申请号(ResultData 数据集)
                                            String jysqdh = data.get("jysqdh").toString();
                                            //费用合计
                                            String fyhj = data.get("fyhj").toString();
 
                                        }
                                    }
                                }
                            }
                        }
                    }
 
                }
            }
 
        }
        return AjaxResult.success();
    }
 
}