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 wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjOrder::getHeshouStatus,1); wrapper.eq(TjOrder::getTjNumber,tjNum); List 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 wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjOrder::getHeshouStatus,1); wrapper.eq(TjOrder::getTjNumber,tjNum); List 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> 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> customer = tjCustomerMapper.getCusInfoListByCardAndName(card,name); return AjaxResult.success(customer); } public static void removeNullFields(JSONObject jsonObject) { ArrayList 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 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 objectMap = new HashMap<>(); LambdaQueryWrapper 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 maps = detailService.getShenGaoTiZhongList(one.getTjNumber()); log.info("ltkj {}的体检报告查询详情"+maps,tjNumber); return AjaxResult.success(maps); } }