From b7adb9e5316030aabfb90a8ff1b43c848aa550ec Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期四, 05 六月 2025 12:37:45 +0800 Subject: [PATCH] 小程序查报告接口增加返回检查综述以及医师建议 --- ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 94 insertions(+), 4 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java index b6e6a79..76e70ae 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java @@ -5,14 +5,19 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.itextpdf.text.Element; +import com.itextpdf.text.Paragraph; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.hosp.domain.TjOrder; +import com.ltkj.hosp.domain.TjOrderYcxm; import com.ltkj.hosp.mapper.TjCustomerMapper; import com.ltkj.hosp.service.ITjOrderDetailService; import com.ltkj.hosp.service.ITjOrderService; +import com.ltkj.hosp.service.TjOrderYcxmService; import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo; import com.ltkj.system.service.ISysConfigService; +import com.ltkj.web.config.pdfutils.PdfUtils; import com.ltkj.web.controller.system.TjCheckController; import com.ltkj.web.controller.system.TjReportController; import io.swagger.annotations.ApiOperation; @@ -25,10 +30,8 @@ import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log; @@ -53,6 +56,8 @@ private ITjOrderDetailService detailService; @Autowired private ISysConfigService sysConfigService; + @Autowired + private TjOrderYcxmService tjOrderYcxmService; /** * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏌ョ湅鎺ュ彛 @@ -106,6 +111,30 @@ return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒"); } JSONObject entries = JSONUtil.parseObj(tjCheckController.updateCheckType(tjNum)); + + LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); + wq.eq(TjOrderYcxm::getTjh, tjNum); + List<TjOrderYcxm> ycxms = tjOrderYcxmService.list(wq); + Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream() + .collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); + JSONArray jczs = JSONUtil.createArray(); + JSONArray ysjy = JSONUtil.createArray(); + int xmXh = 1; + for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) { + List<TjOrderYcxm> details = entry.getValue(); + String xmmc = entry.getKey(); + details.sort(Comparator.comparing(TjOrderYcxm::getJcxm)); + + JSONObject jczObject = processDetails(details, xmmc, xmXh, true); + jczs.add(jczObject); + + JSONObject ysjyObject = processDetails(details, xmmc, xmXh, false); + ysjy.add(ysjyObject); + } + + entries.putOpt("jczs", jczs); + entries.putOpt("ysjy", ysjy); + removeNullFields(entries); return JSONUtil.toBean(entries, AjaxResult.class); } @@ -219,4 +248,65 @@ } + private JSONObject processDetails(List<TjOrderYcxm> details, String xmmc, int xmXh, boolean isJcz) { + JSONObject object = JSONUtil.createObj(); + boolean isXmWrite = false; + int index = 1; + for (TjOrderYcxm detail : details) { + if (!isXmWrite) { + object.putOpt("xh", xmXh++); + object.putOpt("xmmc", xmmc); + isXmWrite = true; + } + String result = detail.getJcjg(); + if (StrUtil.isNotBlank(result)) { + result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "") + .replaceAll("\n", "").trim(); + if (StrUtil.isNotBlank(result)) { + StringBuilder builder = new StringBuilder(); + builder.append(" (").append(index).append(")").append(detail.getJcxm()) + .append(": ").append(result).append("\n"); + index++; + result = builder.toString(); + } + } + + if (StrUtil.isNotBlank(result)) { + object.putOpt("result", result); + } else { + object.putOpt("result", isJcz ? result : "寤鸿瀹氭湡澶嶆煡"); + } + if (!isJcz) { + JSONArray contents = processJynr(detail.getJynr()); + object.putOpt("contents", contents); + } + } + return object; + } + + private JSONArray processJynr(String jynr) { + JSONArray contents = JSONUtil.createArray(); + List<Map<String, Object>> maps = JSONUtil.parseArray(jynr).stream() + .map(o -> { + JSONObject jsonObject = (JSONObject) o; + Map<String, Object> map = new HashMap<>(); + String bt = jsonObject.getStr("bt"); + String nr = jsonObject.getStr("nr"); + if (StrUtil.isNotBlank(bt) || StrUtil.isNotBlank(nr)) { + map.put("bt", bt); + map.put("nr", nr); + } + return map; + }) + .filter(map -> !map.isEmpty()) + .distinct() + .collect(Collectors.toList()); + + for (Map<String, Object> map : maps) { + String content = " " + map.get("bt") + map.get("nr"); + contents.add(StrUtil.isBlank(content) ? " " : content); + } + return contents; + } + } -- Gitblit v1.8.0