From 7d702f59202496e28a80582b4aeeab2a9b9da76d Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期一, 14 十月 2024 15:05:16 +0800 Subject: [PATCH] 修改判断是否需要lis、pacs --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java | 301 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 215 insertions(+), 86 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java index 36cfa27..f518f73 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java @@ -8,16 +8,20 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.core.domain.AjaxResult; +import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.hisDto.*; import com.ltkj.hosp.service.*; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDeptService; +import com.ltkj.web.controller.pacs.PacsApiMethodService; +import com.ltkj.web.controller.service.TjSysAsyncServiceImpl; import jdk.nashorn.internal.runtime.logging.Logger; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.math.BigDecimal; @@ -61,6 +65,12 @@ private LtkjEjjfxmzdService ltkjEjjfxmzdService; @Autowired private TjCfService cfService; + @Autowired + private PacsApiMethodService pacsApiMethodService; + @Autowired + private ITjOrderDetailService tjOrderDetailService; + @Autowired + private TjSysAsyncServiceImpl tjSysAsyncService; //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡 public JSONObject getJSONObject(String builder) { @@ -168,6 +178,10 @@ //浣撴瀵筯is鐢宠鍗曡皟鐢ㄦ柟娉� public AjaxResult tijianshenqing(TjCustomer customer, String date,String cardId) { + + + List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); + //妫�楠岀敵璇� OutpintestapplyDto dto = new OutpintestapplyDto(); dto.setHisRegistrationId(cardId); @@ -178,7 +192,7 @@ dto.setCzybm("00029"); dto.setCzyksbm("0101"); dto.setSfjz("0"); - List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); + List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>(); List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>(); if (null != detailList && detailList.size() > 0) { @@ -188,7 +202,7 @@ // wq.in(TjProject::getDeptId, "241", "317"); wq.in(TjProject::getDeptId,deptService.getJyDeptIds()); List<TjProject> projects = projectService.list(wq); - if (null != projects && projects.size() > 0) { + if (null != projects && !projects.isEmpty()) { for (TjProject project : projects) { if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { if (null != project.getHisXmbm()) { @@ -250,23 +264,6 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("妫�楠�"); -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getHisXmbm, mxfyxmbm); -// List<TjProject> list = projectService.list(wrapper); -// String tj_price = ""; -// for (TjProject project : list) { -// tj_price += project.getProPrice() + "銆�"; -// } -// tree.setTjPrice(tj_price.substring(0, tj_price.length() - 1)); -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getHisXmbm, mxfyxmbm); -// wrapper.eq(TjProject::getSl,1); -// wrapper.groupBy(TjProject::getHisXmbm); -// TjProject project = projectService.getOne(wrapper); -// if(null !=project){ -// BigDecimal decimal = project.getProPrice().multiply(BigDecimal.valueOf(detail.getSl())); -// tree.setTjPrice(String.valueOf(decimal)); -// } tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -298,13 +295,11 @@ outpinexamapplyDto.setCzybm("00029"); outpinexamapplyDto.setCzyksbm("0101"); outpinexamapplyDto.setSfjz("0"); - List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); +// List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>(); - if (null != detailLists && detailLists.size() > 0) { + if (null != detailList && detailList.size() > 0) { LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); - wq.in(TjProject::getProId, detailLists.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); -// wq.groupBy(TjProject::getHisXmbm); -// wq.in(TjProject::getDeptId, "247", "248", "249", "250", "251", "252", "271", "273", "274", "275", "298"); + wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); wq.in(TjProject::getDeptId,deptService.getJcDeptIds()); List<TjProject> projects = projectService.list(wq); if (null != projects && projects.size() > 0) { @@ -369,23 +364,6 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("妫�鏌�"); -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getHisXmbm, mxfyxmbm); -// List<TjProject> list = projectService.list(wrapper); -// String tj_price = ""; -// for (TjProject project : list) { -// tj_price += project.getProPrice() + "銆�"; -// } -// tree.setTjPrice(tj_price.substring(0, tj_price.length() - 1)); -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getHisXmbm, mxfyxmbm); -// wrapper.eq(TjProject::getSl,1); -// wrapper.groupBy(TjProject::getHisXmbm); -// TjProject project = projectService.getOne(wrapper); -// if(null !=project){ -// BigDecimal decimal = project.getProPrice().multiply(BigDecimal.valueOf(detail.getSl())); -// tree.setTjPrice(String.valueOf(decimal)); -// } tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -405,18 +383,7 @@ tree.setCreateTime(DateUtil.date()); ltkjJianchajianyanTreeService.save(tree); } -// Map<String, Object> map = object5.getJSONObject("ResultData"); -// map.put("cardId", customer.getCardId()); -// JSONObject jsonObject = JSONUtil.parseObj(map); -// LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpinexamapply"); -// HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); -// hisApiGetMethodService.save(jsonObject, "Outpinexamapply", hisApiConfig,JSONUtil.toJsonStr(BeanUtil.beanToMap(outpinexamapplyDto))); - } -// else { -// return AjaxResult.error("妫�鏌ョ敵璇峰け璐�!"); -// } } @@ -430,15 +397,12 @@ dao.setCzybm("00029"); dao.setCzyksbm("0101"); dao.setSfjz("0"); - List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); +// List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId); List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>(); - if (null != details && details.size() > 0) { + if (null != detailList && detailList.size() > 0) { LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); - wq.in(TjProject::getProId, details.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); -// wq.groupBy(TjProject::getHisXmbm); -// wq.in(TjProject::getDeptId, "100", "240", "253", "254", "255", "257", "258", "259", "269", "270"); + wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); wq.in(TjProject::getDeptId,deptService.getCzDeptIds()); -// wq.isNull(TjProject::getDeptId); List<TjProject> projects = projectService.list(wq); if (null != projects && projects.size() > 0) { for (TjProject project : projects) { @@ -502,15 +466,6 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("澶勭疆"); -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getHisXmbm, mxfyxmbm); -// wrapper.eq(TjProject::getSl,1); -// wrapper.groupBy(TjProject::getHisXmbm); -// TjProject project = projectService.getOne(wrapper); -// if(null !=project){ -// BigDecimal decimal = project.getProPrice().multiply(BigDecimal.valueOf(detail.getSl())); -// tree.setTjPrice(String.valueOf(decimal)); -// } tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -530,17 +485,7 @@ tree.setCreateTime(DateUtil.date()); ltkjJianchajianyanTreeService.save(tree); } -// Map<String, Object> map = mzylyzsq3.getJSONObject("ResultData"); -// map.put("cardId", customer.getCardId()); -// JSONObject jsonObject = JSONUtil.parseObj(map); -// LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpintreatapply"); -// HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); -// hisApiGetMethodService.save(jsonObject, "Outpintreatapply", hisApiConfig,JSONUtil.toJsonStr(BeanUtil.beanToMap(dao))); } -// else { -// return AjaxResult.error("澶勭疆鐢宠澶辫触!"); -// } } //鑽搧鐢宠 @@ -562,11 +507,11 @@ String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); - if(null !=code && code.equals("200")){ - JSONArray resultData = object.getJSONArray("ResultData"); - Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0); - String cfh = resultDatasss.get("cfh").toString(); - + if(null !=code && code.equals("0")){ + JSONObject resultData = object.getJSONObject("ResultData"); +// Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0); + String cfh = resultData.getStr("cfh"); + log.info("鑽搧鐢宠鍚庣殑澶勬柟鍙锋槸: "+cfh+" outpinmedicapplyDetilsDtos 閲岄潰鐨勫�间负: "+outpinmedicapplyDetilsDtos.toString()); for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) { TjCf cf=new TjCf(); cf.setCardId(cardId); @@ -593,10 +538,190 @@ return AjaxResult.success(); } + public AjaxResult tijianshenqing(TjCustomer customer, String date, TjOrder tjOrder, SysUser sysUser, AjaxResult result) { + List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(), tjOrder.getCardId()); + if (!pacsApiMethodService.save(tjOrder, customer, detailList)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + Object jzh = result.get("jzh"); + if (null != jzh && null != jzh.toString()) { + ZfHisApiMethod(jzh.toString()); + } + log.error("pacs鐢宠澶辫触 璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId()); + return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString()); + } + LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>(); + wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId()); + wq2.isNotNull(TjOrderDetail::getFlowingWaterId); + wq2.eq(TjOrderDetail::getIsSampling, 0); + List<TjOrderDetail> detailList1 = tjOrderDetailService.list(wq2); + tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList.isEmpty(), tjOrder, sysUser); + + //妫�楠岀敵璇� + OutpintestapplyDto dto = new OutpintestapplyDto(); + dto.setHisRegistrationId(tjOrder.getCardId()); + dto.setSfzh(customer.getCusIdcard()); + dto.setSqysbm("00029"); + dto.setMzksbm("0101"); + dto.setSjrq(date); + dto.setCzybm("00029"); + dto.setCzyksbm("0101"); + dto.setSfjz("0"); + + List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>(); + + //闂ㄨ瘖娌荤枟澶勭疆鐢宠 + OutpintreatapplyDto dao = new OutpintreatapplyDto(); + dao.setHisRegistrationId(tjOrder.getCardId()); + dao.setSfzh(customer.getCusIdcard()); + dao.setSqysbm("00029"); + dao.setMzksbm("0101"); + dao.setSjrq(date); + dao.setCzybm("00029"); + dao.setCzyksbm("0101"); + dao.setSfjz("0"); + List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>(); + if (!detailList.isEmpty()) { + LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); + wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); + wq.in(TjProject::getDeptId,deptService.getCzDeptIds()); + List<TjProject> projects = projectService.list(wq); + if (null != projects && !projects.isEmpty()) { + for (TjProject project : projects) { + if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { + if (null != project.getHisXmbm()) { + OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); + detailsDto.setMxfyxmbm(project.getHisXmbm()); + if (project.getSfzhfy().equals("Y")) { + detailsDto.setSfzhfy("1"); + } else { + detailsDto.setSfzhfy("0"); + } + detailsDto.setSl(project.getSl()); + detailsDto.setProjg(project.getProPrice()); + detailDtos.add(detailsDto); + } + if(project.getProId()==1740177341251154377L){ + OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto(); + detilsDto.setYpbm("00006670"); + detilsDto.setPcbm("06"); + detilsDto.setSl("1"); + detilsDto.setDj("60"); + detilsDto.setDcjl("1"); + detilsDto.setPj("60"); + detilsDto.setJj("60"); + detilsDto.setJldw(""); + detilsDto.setTjbm(""); + detilsDto.setPs(""); + detilsDto.setPsbm(""); + detilsDto.setYyts(""); + detilsDto.setXtph(""); + detilsDto.setScph(""); + detilsDto.setYpxq(""); + detilsDto.setCdbm(""); + detilsDto.setKfdw(""); + detilsDto.setYfdw(""); + detilsDto.setYysm(""); + detilsDto.setFzbl("1"); + detilsDto.setZh("0"); + outpinmedicapplyDetilsDtos.add(detilsDto); + } + } + } + } + } + if (!detailDtos.isEmpty()) { + dao.setDetails(detailDtos); + AjaxResult mzylyzsq1 = controller.Outpintreatapply(dao); + String mzylyzsq2 = getAjaxResult(mzylyzsq1); + JSONObject mzylyzsq3 = getJSONObject(mzylyzsq2); + String code5 = mzylyzsq3.getStr("ResultCode"); + if (code5.equals("0")) { + List<OutpintestapplyDetailsDto> details1 = dao.getDetails(); + for (OutpintestapplyDetailsDto detail : details1) { + LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree(); + tree.setCardId(dao.getHisRegistrationId()); + tree.setPationid(customer.getPationId()); + JSONObject resultData = mzylyzsq3.getJSONObject("ResultData"); + tree.setSqdh(resultData.getStr("zlczh")); + tree.setFyhj(resultData.getStr("fyhj")); + String mxfyxmbm = detail.getMxfyxmbm(); + tree.setHisXmdm(mxfyxmbm); + tree.setType("澶勭疆"); + tree.setTjPrice(String.valueOf(detail.getProjg())); + LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); + if (detail.getSfzhfy().equals("1")) + wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm); + else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm); + List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1); + if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) { + String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm(); + LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm); + LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2); + LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>(); + wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm()); + LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3); + tree.setXmfl(ejjfxmzd.getYjkmdm()); + } + tree.setCreateTime(DateUtil.date()); + ltkjJianchajianyanTreeService.save(tree); + } + } + } + + //鑽搧鐢宠 + if(!outpinmedicapplyDetilsDtos.isEmpty()){ + OutpinmedicapplyDto dto1=new OutpinmedicapplyDto(); + dto1.setHisRegistrationId(tjOrder.getCardId()); + dto1.setSfzh(customer.getCusIdcard()); + dto1.setSqysbm("00029"); + dto1.setMzksbm("0101"); + dto1.setSjrq(date); + dto1.setCzybm("00029"); + dto1.setCzyksbm("0101"); + dto1.setCflxbm("A"); + dto1.setYfbm("1"); + dto1.setFyts("1"); + dto1.setMzzd(""); + dto1.setDetails(outpinmedicapplyDetilsDtos); + AjaxResult resultt = controller.Outpinmedicapply(dto1); + String result1 = getAjaxResult(resultt); + JSONObject object = getJSONObject(result1); + String code = object.getStr("ResultCode"); + if(null !=code && code.equals("0")){ + JSONObject resultData = object.getJSONObject("ResultData"); +// Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0); + String cfh = resultData.getStr("cfh"); + log.info("鑽搧鐢宠鍚庣殑澶勬柟鍙锋槸: "+cfh+" outpinmedicapplyDetilsDtos 閲岄潰鐨勫�间负: "+outpinmedicapplyDetilsDtos.toString()); + for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) { + TjCf cf=new TjCf(); + cf.setCardId(tjOrder.getCardId()); + cf.setSfzh(customer.getCusIdcard()); + cf.setCfh(cfh); + cf.setSqysbm("00029"); + cf.setSqysxm("鐜嬪仴钀�"); + cf.setMzksbn("0101"); + cf.setSqrq(date); + cf.setCzybm("00029"); + cf.setYpbm(detilsDto.getYpbm()); + cf.setYpmc("灏跨礌[14C]鍛兼皵璇曢獙鑽洅"); + cf.setSl(String.valueOf(detilsDto.getSl())); + cf.setDj(String.valueOf(detilsDto.getDj())); + cf.setDcjl(String.valueOf(detilsDto.getDcjl())); + cf.setPj(String.valueOf(detilsDto.getPj())); + cf.setJj(String.valueOf(detilsDto.getJj())); + cf.setCreateTime(new Date()); + cfService.save(cf); + } + } + } + + return AjaxResult.success(); + } //閫�璐瑰悗鍙栨秷鎺ヨ瘖浣滃簾鐢宠鍗曠瓑鎿嶄綔 @Transactional - public boolean ZfHisApiMethods(TjCustomer customer, TjOrder order) { + public boolean ZfHisApiMethods(TjCustomer customer, TjOrder order,Boolean isUseLisAndPacsRegister) { Date dates = new Date(); final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); @@ -609,6 +734,10 @@ List<String> cfhs = cfService.getCfhs(order.getCardId()); + + if (isUseLisAndPacsRegister){ + + } //2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇� if (null != jcsqdh && jcsqdh.size()>0) { @@ -670,7 +799,7 @@ String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); - if(null !=code && code.equals("200")){ + if(null !=code && code.equals("0")){ cfService.delCfByCardId(cfh); } } @@ -760,7 +889,7 @@ String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); - if(null !=code && code.equals("200")){ + if(null !=code && code.equals("0")){ cfService.delCfByCardId(cfh); } } @@ -845,7 +974,7 @@ String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); - if(null !=code && code.equals("200")){ + if(null !=code && code.equals("0")){ cfService.delCfByCardId(cfh); } } -- Gitblit v1.8.0