From 20fd61260b51260b99fe485bb718e136f6742976 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期二, 27 五月 2025 09:07:47 +0800 Subject: [PATCH] 修改团体lis --- ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java | 12 ++++ ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 2 ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java | 62 ++++++++++++++++++++ ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java | 97 ++++++++++++++++++++----------- 4 files changed, 137 insertions(+), 36 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 03f4fe7..1790030 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 @@ -2007,52 +2007,79 @@ String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request"); String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix"); + String isRequestLisAllzx = configService.selectConfigByKey("jcx_is_requestLisAllzx"); if (mergeRequest.equals("Y")){ - try { + if (isRequestLisAllzx != null && isRequestLisAllzx.equals("Y")){ + log.info("杩涘叆鍥綋鏍规嵁灏忛」鏍囨湰鍚堝苟鍙戦�佹柟娉�"); LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber()); List<TjSampling> list = tjSamplingService.list(wrapper); - log.info("閲囨牱鏁版嵁 ->{}",JSONUtil.toJsonStr(list)); - if (!list.isEmpty()) { - Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode)); + List<String> strings = list.stream().map(TjSampling::getProId).collect(Collectors.toList()); + LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.in(TjProject::getProParentId,strings); + wrapper1.eq(TjProject::getProStatus,0); + wrapper1.eq(TjProject::getDeleted,0); + wrapper1.groupBy(TjProject::getProId); + List<TjProject> tjProjectList = projectService.list(wrapper1); + Map<String, List<TjProject>> listMap = tjProjectList.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType)); log.info("鍒嗙粍鍚� ->{}",JSONUtil.toJsonStr(listMap)); - ArrayList<String> ids = new ArrayList<>(); - for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) { - log.info("key ->{},val ->{}",entry.getKey(),entry.getValue()); - // Lis鏍囨湰浠g爜 - String specimenTypeCode = entry.getKey(); - List<TjSampling> samplings = entry.getValue(); - if (samplings.size() >= 2) { - // 杩涜鍚堝苟 - List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList()); - // log.info("鎻愬彇id ->{}",stringList); - for (int i = 0; i < stringList.size(); i++) { - String s = stringList.get(i); - if (tjSamplingService.isMergeItem(s) != 0) { - stringList.remove(s); - ids.add(s); + boolean save = lisApiMethod.save(listMap, tjOrder, customer); + if (!save) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("澶勭悊澶辫触"); + } + for (TjSampling tjSampling : list) { + tjSampling.setIsSignFor("0"); + } + tjSamplingService.updateBatchById(list); + }else{ + try { + LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber()); + List<TjSampling> list = tjSamplingService.list(wrapper); + log.info("閲囨牱鏁版嵁 ->{}",JSONUtil.toJsonStr(list)); + if (!list.isEmpty()) { + Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode)); + log.info("鍒嗙粍鍚� ->{}",JSONUtil.toJsonStr(listMap)); + ArrayList<String> ids = new ArrayList<>(); + for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) { + log.info("key ->{},val ->{}",entry.getKey(),entry.getValue()); + // Lis鏍囨湰浠g爜 + String specimenTypeCode = entry.getKey(); + List<TjSampling> samplings = entry.getValue(); + if (samplings.size() >= 2) { + // 杩涜鍚堝苟 + List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList()); + // log.info("鎻愬彇id ->{}",stringList); + for (int i = 0; i < stringList.size(); i++) { + String s = stringList.get(i); + if (tjSamplingService.isMergeItem(s) != 0) { + stringList.remove(s); + ids.add(s); + } } + if (stringList.size() > 1) { + String id = tjSamplingService.mergeCaiYangApi(stringList,lis_tmh_prefix); + ids.add(id); + }else { + ids.add(stringList.get(0)); + } + } else { + ids.add(samplings.get(0).getId()); } - if (stringList.size() > 1) { - String id = tjSamplingService.mergeCaiYangApi(stringList,lis_tmh_prefix); - ids.add(id); - }else { - ids.add(stringList.get(0)); - } - } else { - ids.add(samplings.get(0).getId()); + } + Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N"); + if (!confirmed) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("澶勭悊澶辫触"); } } - Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N"); - if (!confirmed) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error("澶勭悊澶辫触"); - } - } - } catch (NoTransactionException e) { + } catch (NoTransactionException e) { // throw new RuntimeException(e); - log.error(e.getMessage().toString()); + log.error(String.valueOf(e),e.getMessage()); + } } + } //妫�楠岀敵璇� diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java index dea35f8..3b17d27 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java @@ -223,6 +223,68 @@ } } + public Boolean save(Map<String, List<TjProject>> listMap,TjOrder tjOrder,TjCustomer tjCustomer){ + boolean flag = true; + for (Map.Entry<String, List<TjProject>> entry : listMap.entrySet()) { + String jyxh = idUtils.generateLisID(configService.selectConfigByKey("make_lis_tmh_prefix")); + String dept = configService.selectConfigByKey("request_default_dept"); + String ysbm = configService.selectConfigByKey("request_default_ysbm"); + AtomicInteger xh = new AtomicInteger(); + LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto(); + lisSaveSqdxxDto.setJyxh(jyxh); + lisSaveSqdxxDto.setBah(tjOrder.getCardId()); + lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName()); + lisSaveSqdxxDto.setBrdm(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), "")); + lisSaveSqdxxDto.setXb(tjCustomer.getCusSex() == 1 ? "2" : "1"); + lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd")); + AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday()); + lisSaveSqdxxDto.setNl(String.valueOf(ageResult.getAge())); + lisSaveSqdxxDto.setNldw(String.valueOf(ageResult.getUnit())); + lisSaveSqdxxDto.setSfzh(tjCustomer.getCusIdcard()); + lisSaveSqdxxDto.setLxdh(tjCustomer.getCusPhone()); + lisSaveSqdxxDto.setJtzz(""); + Date date = new Date(); + lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss")); + lisSaveSqdxxDto.setCyrq(""); + lisSaveSqdxxDto.setLczd(""); + lisSaveSqdxxDto.setBz(""); + lisSaveSqdxxDto.setKsbm(dept); + lisSaveSqdxxDto.setSqys(ysbm); + lisSaveSqdxxDto.setKfbz("1"); + List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>(); + ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>(); + + BigDecimal allPrice = tbTransitionMapper.getLisPriceByTjNumAndInProId(tjOrder.getTjNumber(), entry.getValue().stream().map(TjProject::getProId).collect(Collectors.toList())); + + lisSaveSqdxxDto.setFyje(allPrice.toString()); + lisSaveSqdxxDto.setYbbm(entry.getKey()); + + + for (TjProject tjProject : entry.getValue()) { + LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto(); + dto.setXh(String.valueOf(xh.getAndIncrement() + 1)); + dto.setJyxm(tjProject.getLisXmbm()); + dto.setXmmc(tjProject.getProName()); + dtos.add(dto); + } + + + lisSaveSqdxxDto.setJyxmlist(dtos); + log.info("妫�楠岀敵璇峰弬鏁� ->{}", JSONUtil.toJsonStr(lisSaveSqdxxDto)); + AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto); + log.info("Lis璇锋眰杩斿洖 ->{}", JSONUtil.toJsonStr(ajaxResult)); + String result = ajaxResult.get("data").toString(); + JSONObject object = JSONUtil.parseObj(result); + String code = object.getStr("ResultCode"); + if (!code.equals("1")) { + log.error("璇锋眰澶辫触 ->{}", lisSaveSqdxxDto); + flag = false; + break; + } + } + return flag; + } + /** * 鑾峰彇妫�楠岀粨鏋� * @param cardId diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java index da6386f..6cf1d4b 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java @@ -1430,7 +1430,7 @@ else hisApiMethod.tijianshenqingJinchuanNew(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); } } catch (Exception e) { - log.error(e.getMessage()); + log.error(String.valueOf(e),e.getMessage()); throw new IllegalStateException(); } return AjaxResult.success(tjNumber); diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java index 0b7809a..7eff9b1 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java @@ -333,6 +333,18 @@ }) BigDecimal getLisPriceByTjNumAndInParentProId(@Param("tjNum") String tjNum, @Param("parentProId") List<String> parentProId); + @Select({ + "<script>", + "SELECT SUM(now_price) FROM `tb_transition`", + "WHERE `tj_num` = #{tjNum}", + "AND `pro_id` IN", + "<foreach item='item' index='index' collection='proId' open='(' separator=',' close=')'>", + "#{item}", + "</foreach>", + "</script>" + }) + BigDecimal getLisPriceByTjNumAndInProId(@Param("tjNum") String tjNum, @Param("proId") List<Long> parentProId); + @Select("SELECT GROUP_CONCAT(c.pro_name SEPARATOR ' ; ' ) FROM tj_package_project b JOIN tj_project c ON c.pro_id=b.pro_id\n" + -- Gitblit v1.8.0