From 15dc099b8335a87d2c4d1046f199fb28f4b6338f Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 11 四月 2025 18:03:31 +0800 Subject: [PATCH] zjh20250411 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java | 363 ++++++++++++++++++++++++++------------------------- 1 files changed, 185 insertions(+), 178 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java index fefb840..6c641c2 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java @@ -25,6 +25,7 @@ import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.NoTransactionException; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; @@ -212,7 +213,8 @@ @Transactional @PostMapping("/asyncPacs") public AjaxResult asyncPacs(@RequestBody String json) { - log.info("鍚堝苟妫�娴嬪悓姝ュ弬鏁� ->{}",json); + try { + log.info("鍚堝苟妫�娴嬪悓姝ュ弬鏁� ->{}",json); // try { // Thread.sleep(2000); // } catch (InterruptedException ignored) { @@ -220,196 +222,201 @@ // } // if (true) // return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj( json); - cn.hutool.json.JSONObject pacs = parseObj.getJSONObject("pacs"); - cn.hutool.json.JSONArray lis = parseObj.getJSONArray("lis"); - cn.hutool.json.JSONObject tj = parseObj.getJSONObject("tj"); - if (pacs != null && !pacs.isEmpty()){ - String tjNum = pacs.getStr("tjnum"); - LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>(); - wrapper1.eq(TjOrder::getTjNumber,tjNum); - TjOrder order = tjOrderService.getOne(wrapper1); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj( json); + cn.hutool.json.JSONObject pacs = parseObj.getJSONObject("pacs"); + cn.hutool.json.JSONArray lis = parseObj.getJSONArray("lis"); + cn.hutool.json.JSONObject tj = parseObj.getJSONObject("tj"); + if (pacs != null && !pacs.isEmpty()){ + String tjNum = pacs.getStr("tjnum"); + LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(TjOrder::getTjNumber,tjNum); + TjOrder order = tjOrderService.getOne(wrapper1); - LtkjExamJcsqd ltkjExamJcsqd = new LtkjExamJcsqd(); - ltkjExamJcsqd.setTjh(order.getCardId()); + LtkjExamJcsqd ltkjExamJcsqd = new LtkjExamJcsqd(); + ltkjExamJcsqd.setTjh(order.getCardId()); - LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LtkjJianchajianyanTree::getCardId, order.getCardId()); - TjProject project = projectService.getById(tj.getStr("proId")); - String xmdm = project.getHisXmbm(); - if (project.getSfzhfy().equals("N")){ - LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(TjProject::getProParentId,project.getProId()); - List<TjProject> list = projectService.list(wrapper); - for (TjProject tjProject : list) { - if (StrUtil.isNotBlank(tjProject.getHisXmbm())){ - xmdm = tjProject.getHisXmbm(); - break; + LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LtkjJianchajianyanTree::getCardId, order.getCardId()); + TjProject project = projectService.getById(tj.getStr("proId")); + String xmdm = project.getHisXmbm(); + if (project.getSfzhfy().equals("N")){ + LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TjProject::getProParentId,project.getProId()); + List<TjProject> list = projectService.list(wrapper); + for (TjProject tjProject : list) { + if (StrUtil.isNotBlank(tjProject.getHisXmbm())){ + xmdm = tjProject.getHisXmbm(); + break; + } } } - } - queryWrapper.eq(LtkjJianchajianyanTree::getType,"妫�鏌�"); - queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm); + queryWrapper.eq(LtkjJianchajianyanTree::getType,"妫�鏌�"); + queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm); - LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper); - ltkjExamJcsqd.setTmh("M_"+tree.getSqdh()+"_"+tree.getHisXmdm()); - ltkjExamJcsqd.setBgys(pacs.getStr("checkDoctorName")); - ltkjExamJcsqd.setBgysid(pacs.getStr("checkDoctorCode")); - ltkjExamJcsqd.setSqsj(format.format(tree.getCreateTime())); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); - Date reportDate = null; - try { - reportDate = dateFormat.parse(pacs.getStr("reportDate")); - ltkjExamJcsqd.setJgsj(format.format(reportDate)); - } catch (ParseException ignored) { - ltkjExamJcsqd.setJgsj(format.format(new Date())); - } - String checkParts = pacs.getStr("checkParts"); -// ltkjExamJcsqd.setJcxmmc(checkParts); -// ltkjExamJcsqd.setJcxmid(xmdm); - - ltkjExamJcsqd.setJcxmmc(project.getProName()); - ltkjExamJcsqd.setJcxmid(project.getProId().toString()); - - ltkjExamJcsqd.setBw(checkParts); - ltkjExamJcsqd.setJgzt(pacs.getStr("diagnosis")); - ltkjExamJcsqd.setJgbx(pacs.getStr("examination")); - boolean save1 = ltkjExamJcsqdService.save(ltkjExamJcsqd); - - LtkjExamJcbgd ltkjExamJcbgd = new LtkjExamJcbgd(); - ltkjExamJcbgd.setTjh(ltkjExamJcsqd.getTjh()); - ltkjExamJcbgd.setTmh(ltkjExamJcsqd.getTmh()); -// ltkjExamJcbgd.setXmdm(ltkjExamJcsqd.getJcxmid()); -// ltkjExamJcbgd.setXmmc(ltkjExamJcsqd.getJcxmmc()); - - ltkjExamJcbgd.setXmdm(project.getProId().toString()); - ltkjExamJcbgd.setXmmc(project.getProName()); - - ltkjExamJcbgd.setBgUrl(""); - ltkjExamJcbgd.setShysxm(pacs.getStr("reportDoctorName")); - ltkjExamJcbgd.setShysdm(pacs.getStr("reportDoctorCode")); -// ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt()); -// ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgbx()); - ltkjExamJcbgd.setZdsj(ltkjExamJcsqd.getJgsj()); - ltkjExamJcbgd.setSqsj(ltkjExamJcsqd.getSqsj()); - ltkjExamJcbgd.setJcbw(ltkjExamJcsqd.getJcxmmc()); - ltkjExamJcbgd.setBgNr(ltkjExamJcsqd.getJgbx()); - ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgzt()); - ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt()); - boolean save2 = ltkjExamJcbgdService.save(ltkjExamJcbgd); - if (save1 && save2) { + LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper); + ltkjExamJcsqd.setTmh("M_"+tree.getSqdh()+"_"+tree.getHisXmdm()); + ltkjExamJcsqd.setBgys(pacs.getStr("checkDoctorName")); + ltkjExamJcsqd.setBgysid(pacs.getStr("checkDoctorCode")); + ltkjExamJcsqd.setSqsj(format.format(tree.getCreateTime())); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); + Date reportDate = null; try { - testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + reportDate = dateFormat.parse(pacs.getStr("reportDate")); + ltkjExamJcsqd.setJgsj(format.format(reportDate)); + } catch (ParseException ignored) { + ltkjExamJcsqd.setJgsj(format.format(new Date())); + } + String checkParts = pacs.getStr("checkParts"); + // ltkjExamJcsqd.setJcxmmc(checkParts); + // ltkjExamJcsqd.setJcxmid(xmdm); + + ltkjExamJcsqd.setJcxmmc(project.getProName()); + ltkjExamJcsqd.setJcxmid(project.getProId().toString()); + + ltkjExamJcsqd.setBw(checkParts); + ltkjExamJcsqd.setJgzt(pacs.getStr("diagnosis")); + ltkjExamJcsqd.setJgbx(pacs.getStr("examination")); + boolean save1 = ltkjExamJcsqdService.save(ltkjExamJcsqd); + + LtkjExamJcbgd ltkjExamJcbgd = new LtkjExamJcbgd(); + ltkjExamJcbgd.setTjh(ltkjExamJcsqd.getTjh()); + ltkjExamJcbgd.setTmh(ltkjExamJcsqd.getTmh()); + // ltkjExamJcbgd.setXmdm(ltkjExamJcsqd.getJcxmid()); + // ltkjExamJcbgd.setXmmc(ltkjExamJcsqd.getJcxmmc()); + + ltkjExamJcbgd.setXmdm(project.getProId().toString()); + ltkjExamJcbgd.setXmmc(project.getProName()); + + ltkjExamJcbgd.setBgUrl(""); + ltkjExamJcbgd.setShysxm(pacs.getStr("reportDoctorName")); + ltkjExamJcbgd.setShysdm(pacs.getStr("reportDoctorCode")); + // ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt()); + // ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgbx()); + ltkjExamJcbgd.setZdsj(ltkjExamJcsqd.getJgsj()); + ltkjExamJcbgd.setSqsj(ltkjExamJcsqd.getSqsj()); + ltkjExamJcbgd.setJcbw(ltkjExamJcsqd.getJcxmmc()); + ltkjExamJcbgd.setBgNr(ltkjExamJcsqd.getJgbx()); + ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgzt()); + ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt()); + boolean save2 = ltkjExamJcbgdService.save(ltkjExamJcbgd); + if (save1 && save2) { + try { + testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + }catch (Exception e){ + log.error(String.valueOf(e)); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); + } + } else { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); + } + return AjaxResult.success(); + }else { + cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) lis.get(0); + String tjNum = entries.getStr("tjNum"); + LtkjHysqd hysqd = new LtkjHysqd(); + TjOrder order = tjOrderService.getOrderByTjNum(tjNum); + hysqd.setTjh(order.getCardId()); + String mzh = order.getCardId(); + + LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LtkjJianchajianyanTree::getCardId, mzh); + TjProject project = projectService.getById(tj.getStr("proId")); + String xmdm = project.getHisXmbm(); + queryWrapper.eq(LtkjJianchajianyanTree::getType,"妫�楠�"); + queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm); + LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper); + if (tree == null) { + tree = new LtkjJianchajianyanTree(); + tree.setHisXmdm(xmdm); + tree.setCreateTime(new Date()); + String sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999)); + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh); + if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) { + tree.setSqdh(sqdh); + }else { + while (true){ + sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999)); + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh); + if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) { + tree.setSqdh(sqdh); + break; + } + } + } + } + String tmh = tree.getSqdh()+"_"+tree.getHisXmdm(); + String shys = ""; + for (Object o : lis) { + cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) o; + if (StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) tmh = jsonObject.getStr("jyxh"); + if (StrUtil.isNotBlank(jsonObject.getStr("shys"))) shys = jsonObject.getStr("shys"); + if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) break; + } + hysqd.setTmh(tmh); + + // if (StrUtil.isNotBlank(xmdm)) { + // hysqd.setXmid(xmdm); + // hysqd.setXmmc(project.getHisXmmc()); + // }else { + // hysqd.setXmid(String.valueOf(project.getProId())); + // hysqd.setXmmc(project.getProName()); + // } + + hysqd.setXmid(project.getProId().toString()); + hysqd.setXmmc(project.getProName()); + + hysqd.setSqsj(format.format(tree.getCreateTime())); + hysqd.setJgsj(format.format(new Date())); + hysqd.setShrxm(shys); + // hysqd.setBbmc(); + hysqdService.deletedByTjhAndXmId(hysqd.getTjh(),hysqd.getXmid()); + hybgdService.deletedLtkjHybgdByTjhAndTmh(tree.getSqdh()+"_"+tree.getHisXmdm()); + hysqdService.save(hysqd); + for (Object object : lis) { + cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) object; + LtkjHybgd hybgd = new LtkjHybgd(); + hybgd.setTmh(tree.getSqdh()+"_"+tree.getHisXmdm()); + hybgd.setJcxmid(jsonObject.getStr("jcxmid")); + hybgd.setJcxm(jsonObject.getStr("proName")); + hybgd.setJyjg(jsonObject.getStr("proResult")); + hybgd.setJgdw(jsonObject.getStr("company")); + String tjStandardGtValue = jsonObject.getStr("tjStandardGtValue"); + String zdz = ""; + String zxz = ""; + if (tjStandardGtValue.contains("-")){ + String[] split = tjStandardGtValue.split("-"); + zxz = split[0].trim(); + zdz = split[1].trim(); + } + hybgd.setFwzdz(zdz); + hybgd.setFwzgz(zxz); + hybgd.setFwz(tjStandardGtValue); + hybgd.setJysj(jsonObject.getStr("examinationDate")); + hybgd.setShsj(jsonObject.getStr("examinationDate")); + hybgd.setJyys(jsonObject.getStr("checkDoctorName")); + hybgd.setShysmc(shys); + hybgd.setYcbz(jsonObject.getStr("ycbz")); + hybgdService.save(hybgd); + } + try { + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); }catch (Exception e){ log.error(String.valueOf(e)); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); } - } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); + return AjaxResult.success(); } - return AjaxResult.success(); - }else { - cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) lis.get(0); - String tjNum = entries.getStr("tjNum"); - LtkjHysqd hysqd = new LtkjHysqd(); - TjOrder order = tjOrderService.getOrderByTjNum(tjNum); - hysqd.setTjh(order.getCardId()); - String mzh = order.getCardId(); - - LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LtkjJianchajianyanTree::getCardId, mzh); - TjProject project = projectService.getById(tj.getStr("proId")); - String xmdm = project.getHisXmbm(); - queryWrapper.eq(LtkjJianchajianyanTree::getType,"妫�楠�"); - queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm); - LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper); - if (tree == null) { - tree = new LtkjJianchajianyanTree(); - tree.setHisXmdm(xmdm); - tree.setCreateTime(new Date()); - String sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999)); - queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh); - if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) { - tree.setSqdh(sqdh); - }else { - while (true){ - sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999)); - queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh); - if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) { - tree.setSqdh(sqdh); - break; - } - } - } - } - String tmh = tree.getSqdh()+"_"+tree.getHisXmdm(); - String shys = ""; - for (Object o : lis) { - cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) o; - if (StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) tmh = jsonObject.getStr("jyxh"); - if (StrUtil.isNotBlank(jsonObject.getStr("shys"))) shys = jsonObject.getStr("shys"); - if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) break; - } - hysqd.setTmh(tmh); - -// if (StrUtil.isNotBlank(xmdm)) { -// hysqd.setXmid(xmdm); -// hysqd.setXmmc(project.getHisXmmc()); -// }else { -// hysqd.setXmid(String.valueOf(project.getProId())); -// hysqd.setXmmc(project.getProName()); -// } - - hysqd.setXmid(project.getProId().toString()); - hysqd.setXmmc(project.getProName()); - - hysqd.setSqsj(format.format(tree.getCreateTime())); - hysqd.setJgsj(format.format(new Date())); - hysqd.setShrxm(shys); -// hysqd.setBbmc(); - hysqdService.deletedByTjhAndXmId(hysqd.getTjh(),hysqd.getXmid()); - hybgdService.deletedLtkjHybgdByTjhAndTmh(tree.getSqdh()+"_"+tree.getHisXmdm()); - hysqdService.save(hysqd); - for (Object object : lis) { - cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) object; - LtkjHybgd hybgd = new LtkjHybgd(); - hybgd.setTmh(tree.getSqdh()+"_"+tree.getHisXmdm()); - hybgd.setJcxmid(jsonObject.getStr("jcxmid")); - hybgd.setJcxm(jsonObject.getStr("proName")); - hybgd.setJyjg(jsonObject.getStr("proResult")); - hybgd.setJgdw(jsonObject.getStr("company")); - String tjStandardGtValue = jsonObject.getStr("tjStandardGtValue"); - String zdz = ""; - String zxz = ""; - if (tjStandardGtValue.contains("-")){ - String[] split = tjStandardGtValue.split("-"); - zxz = split[0].trim(); - zdz = split[1].trim(); - } - hybgd.setFwzdz(zdz); - hybgd.setFwzgz(zxz); - hybgd.setFwz(tjStandardGtValue); - hybgd.setJysj(jsonObject.getStr("examinationDate")); - hybgd.setShsj(jsonObject.getStr("examinationDate")); - hybgd.setJyys(jsonObject.getStr("checkDoctorName")); - hybgd.setShysmc(shys); - hybgd.setYcbz(jsonObject.getStr("ycbz")); - hybgdService.save(hybgd); - } - try { - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - }catch (Exception e){ - log.error(String.valueOf(e)); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); - } - return AjaxResult.success(); + } catch (NoTransactionException e) { + log.error(String.valueOf(e)); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("鍚屾澶辫触璇烽噸璇�"); } } -- Gitblit v1.8.0