From 2b1453e625b7f142956d487edcdca982b1cc753f Mon Sep 17 00:00:00 2001
From: 赵文轩 <1652863494@qq.com>
Date: 星期四, 31 十月 2024 10:06:33 +0800
Subject: [PATCH] 个人以及团体暂不写入采样管理 团体票自动合并并确认

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 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..77ca503 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.TjSamplingController;
 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 TjSamplingController samplingController;
 
 
     //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡
@@ -288,11 +295,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);
+//                }
             }
         }
 
@@ -571,6 +580,44 @@
 //        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("閲囨牱鏁版嵁 ->{}",list);
+            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() > 1){
+                    // 杩涜鍚堝苟
+                    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);
+                        }
+                    }
+                    String id = tjSamplingService.mergeCaiYangApi(stringList);
+                    ids.add(id);
+                }else {
+                    ids.add(samplings.get(0).getId());
+                }
+            }
+            Boolean confirmed = samplingController.confirmSamplingApi(ids, "Y", "Y");
+            if (!confirmed){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("澶勭悊澶辫触");
+            }
+        }
+
         //妫�楠岀敵璇�
 //        OutpintestapplyDto dto = new OutpintestapplyDto();
 //        dto.setHisRegistrationId(tjOrder.getCardId());

--
Gitblit v1.8.0