From 3af811456bf5045b79eaad7bb22b6b813c50d9d0 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 05 十一月 2024 08:40:49 +0800
Subject: [PATCH] zjh20241105

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java |  189 +++++++++++++++++++++++++++++++---------------
 1 files changed, 126 insertions(+), 63 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 5f69744..136cd37 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
@@ -18,6 +18,7 @@
 import com.ltkj.web.controller.lis.LisApiMethod;
 import com.ltkj.web.controller.pacs.PacsApiMethodService;
 import com.ltkj.web.controller.service.TjSysAsyncServiceImpl;
+import com.ltkj.web.controller.system.SamplingServiceApi;
 import jdk.nashorn.internal.runtime.logging.Logger;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -75,6 +76,12 @@
     private TjSysAsyncServiceImpl tjSysAsyncService;
     @Autowired
     private LisApiMethod lisApiMethod;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private ITjSamplingService tjSamplingService;
+    @Autowired
+    private SamplingServiceApi samplingService;
 
 
     //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡
@@ -269,6 +276,7 @@
                     String mxfyxmbm = detail.getMxfyxmbm();
                     tree.setHisXmdm(mxfyxmbm);
                     tree.setType("妫�楠�");
+                    tree.setService("his");
                     tree.setTjPrice(String.valueOf(detail.getProjg()));
                     LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                     if (detail.getSfzhfy().equals("1"))
@@ -288,11 +296,13 @@
                     tree.setCreateTime(DateUtil.date());
                     ltkjJianchajianyanTreeService.save(tree);
                 }
-                TjOrder tjOrder = orderService.getOrderByCardId(cardId);
-                if(null !=tjOrder){
-                    List<TjOrderDetail> dengJi = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
-                    tjSysAsyncService.addCaiYangDengJi(dengJi,!dengJi.isEmpty(),tjOrder, SecurityUtils.getLoginUser().getUser(), null);
-                }
+                // TODO 涓汉浠ュ強鍥綋 鏆備笉鍚戦噰鏍风鐞嗗啓鏁版嵁
+                // HIS鍙戦�佹棤娉曞悎骞舵搷浣� 鏃犳硶鑾峰彇LIS鐨勬楠屽簭鍙� 鏉$爜鏃犳硶鎵撳嵃
+//                TjOrder tjOrder = orderService.getOrderByCardId(cardId);
+//                if(null !=tjOrder){
+//                    List<TjOrderDetail> dengJi = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
+//                    tjSysAsyncService.addCaiYangDengJi(dengJi,!dengJi.isEmpty(),tjOrder, SecurityUtils.getLoginUser().getUser(), null);
+//                }
             }
         }
 
@@ -374,6 +384,7 @@
                     String mxfyxmbm = detail.getMxfyxmbm();
                     tree.setHisXmdm(mxfyxmbm);
                     tree.setType("妫�鏌�");
+                    tree.setService("his");
                     tree.setTjPrice(String.valueOf(detail.getProjg()));
                     LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                     if (detail.getSfzhfy().equals("1"))
@@ -571,6 +582,50 @@
 //        log.info("TjOrderDetail ->{}",JSONUtil.toJsonStr(detailList1));
         tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, sysUser,null);
 
+        String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request");
+        if (mergeRequest.equals("Y")){
+            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);
+                            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("澶勭悊澶辫触");
+                }
+            }
+        }
+
         //妫�楠岀敵璇�
 //        OutpintestapplyDto dto = new OutpintestapplyDto();
 //        dto.setHisRegistrationId(tjOrder.getCardId());
@@ -740,10 +795,6 @@
         Date dates = new Date();
         final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
 
-        List<String> jcsqdh = orderService.getHuoQuJcsqdh(order.getCardId());
-
-        List<String> jysqdh = orderService.getHuoQuJysqdh(order.getCardId());
-
 
         List<String> zlsqdh = orderService.getHuoQuZlsqdh(order.getCardId());
 
@@ -756,25 +807,28 @@
         JSONObject object1 = null;
         String code1 = null;
 
-        if (isUseLisAndPacsRegister){
+//        if (isUseLisAndPacsRegister){
             TjCustomer customer1 = customerService.getById(order.getUserId());
             // 浣滃簾妫�鏌ョ敵璇�
-            if (jcsqdh != null && !jcsqdh.isEmpty()){
-                for (String sqdh : jcsqdh) {
-                    AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
-                    String result = cancelPacsAjaxResult.get("data").toString();
-                    JSONObject object = JSONUtil.parseObj(result);
-                    String code = object.getStr("ResultCode");
-                    if(code.equals("1")){
-                        orderService.delHuoQuJcsqdh(order.getCardId());
-                    }
+        List<String> bljcsqdhByPacs = orderService.getBljcsqdhByPacs(order.getCardId());
+        if (bljcsqdhByPacs != null && !bljcsqdhByPacs.isEmpty()){
+            for (String sqdh : bljcsqdhByPacs) {
+                AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
+                String result = cancelPacsAjaxResult.get("data").toString();
+                JSONObject object = JSONUtil.parseObj(result);
+                String code = object.getStr("ResultCode");
+                if(code.equals("1")){
+                    orderService.delHuoQuJcsqdh(order.getCardId());
                 }
             }
+        }
             // 浣滃簾妫�楠岀敵璇�
-            if (jysqdh != null && !jysqdh.isEmpty()){
-                for (String sqdh : jysqdh) {
-                    AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
-                    log.info("lis璇锋眰杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
+        List<String> bljysqdhByLis = orderService.getBljysqdhByLis(order.getCardId());
+        if (bljysqdhByLis != null && !bljysqdhByLis.isEmpty()){
+            for (String sqdh : bljysqdhByLis) {
+                AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
+                log.info("lis璇锋眰杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
+                if (cancelLisAjaxResult.get("code").toString().equals("200")){
                     String result = cancelLisAjaxResult.get("data").toString();
                     JSONObject object = JSONUtil.parseObj(result);
                     String code= object.getStr("ResultCode");
@@ -783,8 +837,12 @@
                     }
                 }
             }
+        }
 
-        }else {
+//        }else {
+        List<String> jcsqdh = orderService.getHuoQuJcsqdh(order.getCardId());
+
+        List<String> jysqdh = orderService.getHuoQuJysqdh(order.getCardId());
             //2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
             if (null != jcsqdh && jcsqdh.size()>0) {
                 for (String s : jcsqdh) {
@@ -842,7 +900,7 @@
                     }
                 }
             }
-        }
+//        }
 
         //2.1.3 闂ㄨ瘖鍖荤敓鍙栨秷鎺ヨ瘖
         ajaxResult = controller.Outpinunconapply(order.getCardId(), date, "00029");
@@ -859,14 +917,11 @@
 
     //浣滃簾琛ュ綍椤圭洰
     public boolean ZfBlXm(List<String> bldhs, TjOrder order) {
-
+        log.info("bldhs ->{}",JSONUtil.toJsonStr(bldhs));
         if(null !=bldhs && bldhs.size()>0){
+            log.info("杩涘叆鍒ゆ柇");
             try {
                 for (String bldh : bldhs) {
-                    List<String> jcsqdh = orderService.getHuoQuBlJcsqdh(order.getCardId(),bldh);
-
-                    List<String> jysqdh = orderService.getHuoQuBlJysqdh(order.getCardId(),bldh);
-
 
                     List<String> zlsqdh = orderService.getHuoQuBlZlsqdh(order.getCardId(),bldh);
 
@@ -877,42 +932,50 @@
                     String result2 = null;
                     JSONObject object1 = null;
                     String code1 = null;
-
-                    if (lisApiMethod.isUseLisAndPacsRegister(order)) {
-                        TjCustomer customer1 = customerService.getById(order.getUserId());
-                        // 浣滃簾妫�鏌ョ敵璇�
-                        if (jcsqdh != null && !jcsqdh.isEmpty()){
-                            for (String sqdh : jcsqdh) {
-                                AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
-                                log.info("浣滃簾妫�鏌� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelPacsAjaxResult));
-                                String result = cancelPacsAjaxResult.get("data").toString();
-                                JSONObject object = JSONUtil.parseObj(result);
-                                String code = object.getStr("ResultCode");
-                                if(code.equals("1")){
-                                    orderService.delHuoQuBlJcsqdh(order.getCardId(),bldh);
-                                }else {
-                                    return false;
-                                }
+                    log.info("鏌ヨ鍓�");
+//                    if (lisApiMethod.isUseLisAndPacsRegister(order)) {
+                    TjCustomer customer1 = customerService.getById(order.getUserId());
+                    log.info("customer1 ->{}",customer1);
+                    List<String> bljcsqdhByPacs = orderService.getBljcsqdhByPacs(order.getCardId(), bldh);
+                    log.info("bljcsqdhByPacs ->{}",bljcsqdhByPacs);
+                    // 浣滃簾妫�鏌ョ敵璇�
+                    if (bljcsqdhByPacs != null && !bljcsqdhByPacs.isEmpty()){
+                        for (String sqdh : bljcsqdhByPacs) {
+                            AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
+                            log.info("浣滃簾妫�鏌� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelPacsAjaxResult));
+                            String result = cancelPacsAjaxResult.get("data").toString();
+                            JSONObject object = JSONUtil.parseObj(result);
+                            String code = object.getStr("ResultCode");
+                            if(code.equals("1")){
+                                orderService.delHuoQuBlJcsqdh(order.getCardId(),bldh);
+                            }else {
+                                return false;
                             }
                         }
-                        // 浣滃簾妫�楠岀敵璇�
-                        if (jysqdh != null && !jysqdh.isEmpty()){
-                            for (String sqdh : jysqdh) {
-                                AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
-                                log.info("浣滃簾妫�楠� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
-                                String result = cancelLisAjaxResult.get("data").toString();
-                                JSONObject object = JSONUtil.parseObj(result);
-                                String code= object.getStr("ResultCode");
-                                if(code.equals("1")){
-                                    orderService.delHuoQuBlJysqdh(order.getCardId(),bldh);
-                                }else {
-                                    return false;
-                                }
+                    }
+                    List<String> bljysqdhByLis = orderService.getBljysqdhByLis(order.getCardId(), bldh);
+                    log.info("bljysqdhByLis ->{}",bljysqdhByLis);
+                    // 浣滃簾妫�楠岀敵璇�
+                    if (bljysqdhByLis != null && !bljysqdhByLis.isEmpty()){
+                        for (String sqdh : bljysqdhByLis) {
+                            AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
+                            log.info("浣滃簾妫�楠� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
+                            String result = cancelLisAjaxResult.get("data").toString();
+                            JSONObject object = JSONUtil.parseObj(result);
+                            String code= object.getStr("ResultCode");
+                            if(code.equals("1")){
+                                orderService.delHuoQuBlJysqdh(order.getCardId(),bldh);
+                            }else {
+                                return false;
                             }
                         }
+                    }
 
-                    }else {
-                        //2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
+                    List<String> jcsqdh = orderService.getHuoQuBlJcsqdh(order.getCardId(),bldh);
+
+                    List<String> jysqdh = orderService.getHuoQuBlJysqdh(order.getCardId(),bldh);
+//                    }else {
+//                        2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
                         if (null != jcsqdh && jcsqdh.size()>0) {
                             for (String s : jcsqdh) {
                                 AjaxResult result = controller.Outpindelexamapply(order.getCardId(), "00029", s);
@@ -971,11 +1034,11 @@
                                 }
                             }
                         }
-                    }
+//                    }
                     return true;
                 }
             } catch (Exception e) {
-                e.printStackTrace();
+                log.error(e.getMessage());
                 return false;
             }
         }

--
Gitblit v1.8.0