package com.ltkj.web.controller.his;
|
|
|
|
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.hosp.domain.TjCustomer;
|
import com.ltkj.hosp.domain.TjOrderDetail;
|
import com.ltkj.hosp.domain.TjProject;
|
import com.ltkj.hosp.hisDto.OutpinexamapplyDto;
|
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 org.springframework.transaction.annotation.Transactional;
|
|
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总接口
|
@Transactional
|
public void HisApiMethods(TjCustomer customer, Long orderId) {
|
HisApiGetMethodService hisApiGetMethodService=new HisApiGetMethodService();
|
|
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");
|
datas.put("cardId",cardId);
|
JSONObject object4 = JSONUtil.parseObj(datas);
|
hisApiGetMethodService.save(object4.toString(),"Outpintestapply");
|
//门诊检查申请
|
OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
|
outpinexamapplyDto.setHisRegistrationId(hisRegistrationId);
|
outpinexamapplyDto.setSfzh(customer.getCusIdcard());
|
outpinexamapplyDto.setSqysbm(SecurityUtils.getUsername());
|
outpinexamapplyDto.setMzksbm("");
|
outpinexamapplyDto.setCzybm(SecurityUtils.getUsername());
|
outpinexamapplyDto.setCzyksbm(SecurityUtils.getUsername());
|
List<TjOrderDetail> detailLists = detailService.getTjOrderDetailListByOrderId(orderId.toString());
|
List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
|
if (null != detailList && detailList.size() > 0) {
|
LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
|
wq.in(TjProject::getProId, detailLists.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);
|
detailsDtoss.add(detailsDto);
|
}
|
}
|
}
|
outpinexamapplyDto.setDetails(detailsDtoss);
|
AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto);
|
String result6 = getAjaxResult(ajaxResult2);
|
JSONObject object5 = getJSONObject(result6);
|
String code4 = object5.getStr("ResultCode");
|
if(code4.equals("0")){
|
Map<String, Object> map = (Map<String, Object>) object.get("ResultData");
|
datas.put("cardId",cardId);
|
JSONObject jsonObject = JSONUtil.parseObj(map);
|
hisApiGetMethodService.save(jsonObject.toString(),"Outpinexamapply");
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
|
}
|
}
|
|
}
|
}
|
|
}
|