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