package com.ltkj.web.controller.api;
|
|
import cn.hutool.json.JSONArray;
|
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.hosp.domain.TjOrder;
|
import com.ltkj.hosp.mapper.TjCustomerMapper;
|
import com.ltkj.hosp.service.ITjOrderDetailService;
|
import com.ltkj.hosp.service.ITjOrderService;
|
import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
|
import com.ltkj.web.controller.system.TjCheckController;
|
import com.ltkj.web.controller.system.TjReportController;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log;
|
|
/**
|
* @Company: 西安路泰科技有限公司
|
* @Author: zhaowenxuan
|
* @Date: 2025/2/18 10:59
|
*/
|
@RequestMapping("/api")
|
@RestController
|
public class DefaultController {
|
|
@Autowired
|
private TjReportController tjReportController;
|
@Autowired
|
private TjCheckController tjCheckController;
|
@Autowired
|
private TjCustomerMapper tjCustomerMapper;
|
@Autowired
|
private ITjOrderService tjOrderService;
|
@Autowired
|
private ITjOrderDetailService detailService;
|
|
/**
|
* 提供给三方调用的报告查看接口
|
* @param response
|
* @param json
|
*/
|
@PostMapping("/viewReport")
|
public void viewReport(HttpServletResponse response, @RequestBody String json) throws IOException {
|
JSONObject entries = JSONUtil.parseObj(json);
|
String tjNum = entries.getStr("tjNum");
|
LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjOrder::getHeshouStatus,1);
|
wrapper.eq(TjOrder::getTjNumber,tjNum);
|
List<TjOrder> list = tjOrderService.list(wrapper);
|
if (list.isEmpty()){
|
return;
|
}
|
tjReportController.preview(response,true,tjNum);
|
}
|
|
/**
|
* 提供给三方调用的报告数据接口
|
* @param json
|
* @return
|
*/
|
@PostMapping("/reportData")
|
public AjaxResult reportData(@RequestBody String json){
|
String tjNum = JSONUtil.parseObj(json).getStr("tjNum");
|
LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjOrder::getHeshouStatus,1);
|
wrapper.eq(TjOrder::getTjNumber,tjNum);
|
List<TjOrder> list = tjOrderService.list(wrapper);
|
if (list.isEmpty()){
|
return AjaxResult.error("暂无数据!!");
|
}
|
JSONObject entries = JSONUtil.parseObj(tjCheckController.updateCheckType(tjNum));
|
removeNullFields(entries);
|
return JSONUtil.toBean(entries, AjaxResult.class);
|
}
|
|
/**
|
* 对于HIS提供
|
* 根据身份证号查询返回体检记录:包含姓名、身份证号、性别、出生日期、年龄、体检号、联系电话,体检日期,报告状态
|
* @param json
|
* @return
|
*/
|
@PostMapping("/getInfo")
|
public AjaxResult getInfo(@RequestBody String json){
|
JSONObject entries = JSONUtil.parseObj(json);
|
String card = entries.getStr("card");
|
// TjCustomer customer = tjCustomerMapper.getCusInfo(card);
|
List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoList(card);
|
return AjaxResult.success(customer);
|
}
|
|
/**
|
* 对于小程序提供
|
* 根据身份证号查询返回体检记录:包含姓名、身份证号、性别、出生日期、年龄、体检号、联系电话,体检日期,报告状态
|
* @param json
|
* @return
|
*/
|
@PostMapping("/getCusInfo")
|
public AjaxResult getInfoCus(@RequestBody String json){
|
JSONObject entries = JSONUtil.parseObj(json);
|
String card = entries.getStr("card");
|
String name = entries.getStr("name");
|
List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoListByCardAndName(card,name);
|
return AjaxResult.success(customer);
|
}
|
|
public static void removeNullFields(JSONObject jsonObject) {
|
ArrayList<String> strings = new ArrayList<>();
|
strings.add("orderId");
|
strings.add("updateTime");
|
strings.add("orderDetailId");
|
strings.add("flowingWaterId");
|
strings.add("createBy");
|
strings.add("deleted");
|
strings.add("createTime");
|
strings.add("updateBy");
|
strings.add("createId");
|
strings.add("prosId");
|
strings.add("params");
|
|
List<String> keysToRemove = new ArrayList<>();
|
jsonObject.forEach((key, value) -> {
|
if (strings.contains(key)) {
|
keysToRemove.add(key);
|
} else if (value == null) {
|
keysToRemove.add(key);
|
} else if (value instanceof JSONObject) {
|
removeNullFields((JSONObject) value);
|
} else if (value instanceof JSONArray) {
|
JSONArray jsonArray = (JSONArray) value;
|
for (Object arrayItem : jsonArray) {
|
if (arrayItem instanceof JSONObject) {
|
removeNullFields((JSONObject) arrayItem);
|
}
|
}
|
}
|
});
|
for (String key : keysToRemove) {
|
jsonObject.remove(key);
|
}
|
}
|
|
|
|
/**
|
* 小程序点击体检报告查询详情,显示身高体重体重指数收缩压舒张压
|
*/
|
@GetMapping("/getShenGaoTiZhong")
|
@ApiOperation(value = "小程序-体检报告查询详情")
|
public AjaxResult getShenGaoTiZhong(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
|
// Map<String, Object> objectMap = new HashMap<>();
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getTjNumber, tjNumber);
|
wq1.eq(TjOrder::getCheckStatus, 1);
|
TjOrder one = tjOrderService.getOne(wq1);
|
if (one == null) {
|
return AjaxResult.success("体检暂未完成!!");
|
}
|
|
List<ShenGaoTiZhongVo> maps = detailService.getShenGaoTiZhongList(one.getTjNumber());
|
|
log.info("ltkj {}的体检报告查询详情"+maps,tjNumber);
|
return AjaxResult.success(maps);
|
|
}
|
|
}
|