From e9191e6d4485d94c75f76762b4926439503c20c6 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 14 九月 2023 14:29:10 +0800
Subject: [PATCH] zjh 2023/09/14---1

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAsyncServiceImpl.java |  295 ++++++++++++++--------------------------------------------
 1 files changed, 73 insertions(+), 222 deletions(-)

diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAsyncServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAsyncServiceImpl.java
index 71727b9..d1e678d 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAsyncServiceImpl.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAsyncServiceImpl.java
@@ -76,123 +76,6 @@
     private ITjGroupingProService groupingProService;
 
     @Override
-    @Async("async")
-    public void extracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
-
-        long l = System.currentTimeMillis();
-
-        LambdaQueryWrapper<TjAskMedicalHistory> wq=new LambdaQueryWrapper<>();
-        wq.eq(TjAskMedicalHistory::getCusId,tjCustomer.getCusId());
-        wq.isNull(TjAskMedicalHistory::getTjNum);
-        TjAskMedicalHistory history = tjAskMedicalHistoryService.getOne(wq);
-        if(null !=history){
-            history.setTjNum(tjOrder.getTjNumber());
-            tjAskMedicalHistoryService.updateById(history);
-        }
-
-        List<TbTransition> tbTransitionList =null;
-        if (redisCache.hasKey(tjCustomer.getCusIdcard())) {
-            tbTransitionList = redisCache.getCacheList(tjCustomer.getCusIdcard());
-            redisCache.deleteObject(tjCustomer.getCusIdcard());
-        }else {
-            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
-            wqq.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
-            tbTransitionList = transitionService.list(wqq);
-        }
-        if (redisCache.hasKey(tjCustomer.getCusIdcard() + "cusId"))
-            redisCache.deleteObject(tjCustomer.getCusIdcard() + "cusId");
-        if (null != tbTransitionList && tbTransitionList.size() > 0) {
-            //鎵�鏈夊瓙椤�
-            for (TbTransition transition : tbTransitionList) {
-                TjOrderDetail detail = new TjOrderDetail();
-                detail.setOrderId(tjOrder.getOrderId());
-                detail.setProId(transition.getProId());
-                detail.setTjStatus(0L);
-                detail.setCreateBy(sysUser.getNickName());
-                detail.setCreateTime(new Date());
-                detail.setUpdateBy(sysUser.getNickName());
-                detail.setUpdateTime(new Date());
-                detail.setCreateId(String.valueOf(sysUser.getUserId()));
-                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-                //鑾峰彇璇ラ」鐩殑榛樿鍊艰祴鍊肩粰缁撴灉
-                TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
-                if(null !=tjProject){
-                    if(null !=tjProject.getProDefault()){
-                        detail.setProResult(tjProject.getProDefault());
-                    }else {
-                        detail.setProResult(null);
-                    }
-                    detail.setIsSampling(String.valueOf(tjProject.getIsSampling()));
-                }
-                if (null != transition.getPacId()) {
-                    detail.setProType(String.valueOf(transition.getPacId()));
-                }
-                tjOrderDetailService.save(detail);
-                transition.setOrdPrice(transition.getNowPrice());
-                transition.setNowPrice(transition.getNowPrice().multiply(discount));
-                transitionService.updateById(transition);
-
-            }
-            //鐖堕」
-            ArrayList<TbTransition> collect = tbTransitionList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TbTransition::getParentProId))), ArrayList::new));
-            for (TbTransition transition : collect) {
-                TjOrderDetail detail = new TjOrderDetail();
-                if (null != transition.getPacId()) {
-                    detail.setProType(String.valueOf(transition.getPacId()));
-                }
-                TjProject tjProject = projectService.selectTjProjectByProId(transition.getParentProId());
-                detail.setIsSampling(String.valueOf(tjProject.getIsSampling()));
-                detail.setOrderId(tjOrder.getOrderId());
-                detail.setProId(transition.getParentProId());
-                detail.setTjStatus(0L);
-                detail.setCreateBy(sysUser.getNickName());
-                detail.setCreateTime(new Date());
-                detail.setUpdateBy(sysUser.getNickName());
-                detail.setUpdateTime(new Date());
-                detail.setCreateId(String.valueOf(sysUser.getUserId()));
-                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-                tjOrderDetailService.save(detail);
-            }
-        }
-        LambdaQueryWrapper<TjOrderDetail> wrapper1 = new LambdaQueryWrapper<>();
-        wrapper1.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
-        List<TjOrderDetail> list = tjOrderDetailService.list(wrapper1);
-        if (list != null && list.size()>0) {
-            for (TjOrderDetail tjOrderDetail : list) {
-                TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
-                if(tjProject==null){
-                   continue;
-                }
-                tjOrderDetail.setProject(tjProject);
-                if (tjProject.getProParentId() == 0) {
-                    TjOrderRemark tjOrderRemark = new TjOrderRemark();
-                    tjOrderRemark.setProId(tjProject.getProId());
-                    tjOrderRemark.setProName(tjProject.getProName());
-                    tjOrderRemark.setDeptId(tjProject.getDeptId());
-                    tjOrderRemark.setTjNumber(tjOrder.getTjNumber());
-                    tjOrderRemark.setCreateBy(sysUser.getNickName());
-                    tjOrderRemark.setCreateTime(new Date());
-                    tjOrderRemark.setUpdateBy(sysUser.getNickName());
-                    tjOrderRemark.setUpdateTime(new Date());
-                    tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
-                    tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
-                    orderRemarkService.save(tjOrderRemark);
-                }
-                if ("1".equals(tjOrder.getTjType())) {
-                    if (null != tjReservation && tjReservation.getPayType() == 1) {
-                        tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                    }
-                }
-                if(tjFlowingWater.getPayStasus()==1){
-                    tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                }
-                tjOrderDetailService.updateById(tjOrderDetail);
-            }
-        }
-        System.out.println("杩欐浠g爜鏃堕棿"+(l-System.currentTimeMillis()));
-    }
-
-    @Override
     public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
         long l = System.currentTimeMillis();
 
@@ -268,76 +151,11 @@
     @Override
     @Async("async")
     public void ttextracted(TjOrder tjOrder, TjCustomer tjCustomer,SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
-        LambdaQueryWrapper<TjAskMedicalHistory> wq=new LambdaQueryWrapper<>();
-        wq.eq(TjAskMedicalHistory::getCusId,tjCustomer.getCusId());
-        wq.isNull(TjAskMedicalHistory::getTjNum);
-        TjAskMedicalHistory history = tjAskMedicalHistoryService.getOne(wq);
-        if(null !=history){
-            history.setTjNum(tjOrder.getTjNumber());
-            tjAskMedicalHistoryService.updateById(history);
-        }
 
-        List<TbTransition> tbTransitionList =null;
-        if (redisCache.hasKey(tjCustomer.getCusIdcard())) {
-            tbTransitionList = redisCache.getCacheList(tjCustomer.getCusIdcard());
-            redisCache.deleteObject(tjCustomer.getCusIdcard());
-        }else {
-            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
-            wqq.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
-            tbTransitionList = transitionService.list(wqq);
-        }
-        if (redisCache.hasKey(tjCustomer.getCusIdcard() + "cusId"))
-            redisCache.deleteObject(tjCustomer.getCusIdcard() + "cusId");
-        if (null != tbTransitionList && tbTransitionList.size() > 0) {
-            //鎵�鏈夊瓙椤�
-            for (TbTransition transition : tbTransitionList) {
-                TjOrderDetail detail = new TjOrderDetail();
-                detail.setOrderId(tjOrder.getOrderId());
-                detail.setProId(transition.getProId());
-                detail.setTjStatus(0L);
-                detail.setCreateBy(sysUser.getNickName());
-                detail.setCreateTime(new Date());
-                detail.setUpdateBy(sysUser.getNickName());
-                detail.setUpdateTime(new Date());
-                detail.setCreateId(String.valueOf(sysUser.getUserId()));
-                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-                //鑾峰彇璇ラ」鐩殑榛樿鍊艰祴鍊肩粰缁撴灉
-                TjProject tjProject = projectService.getById(transition.getProId());
-                if(null !=tjProject){
-                    if(null !=tjProject.getProDefault()){
-                        detail.setProResult(tjProject.getProDefault());
-                    }else {
-                        detail.setProResult(null);
-                    }
-                    detail.setIsSampling(String.valueOf(tjProject.getIsSampling()));
-                }
-                if (null != transition.getPacId()) {
-                    detail.setProType(String.valueOf(transition.getPacId()));
-                }
-                tjOrderDetailService.save(detail);
-            }
-            //鐖堕」
-            ArrayList<TbTransition> collect = tbTransitionList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
-                    new TreeSet<>(Comparator.comparing(TbTransition::getParentProId))), ArrayList::new));
-            for (TbTransition transition : collect) {
-                TjOrderDetail detail = new TjOrderDetail();
-                if (null != transition.getPacId()) {
-                    detail.setProType(String.valueOf(transition.getPacId()));
-                }
-                TjProject tjProject = projectService.selectTjProjectByProId(transition.getParentProId());
-                detail.setIsSampling(String.valueOf(tjProject.getIsSampling()));
-                detail.setOrderId(tjOrder.getOrderId());
-                detail.setProId(transition.getParentProId());
-                detail.setTjStatus(0L);
-                detail.setCreateBy(sysUser.getNickName());
-                detail.setCreateTime(new Date());
-                detail.setUpdateBy(sysUser.getNickName());
-                detail.setUpdateTime(new Date());
-                detail.setCreateId(String.valueOf(sysUser.getUserId()));
-                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-                tjOrderDetailService.save(detail);
-            }
-        }else {
+        tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(),sysUser.getNickName(),String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
+
+        boolean b = tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
+        if (!b){
             List<TjGroupingPro> proList = groupingProService.list(new LambdaQueryWrapper<TjGroupingPro>().eq(TjGroupingPro::getGroupingId,tjOrder.getGroupId()));
             if(null !=proList && proList.size()>0){
                 for (TjGroupingPro groupingPro : proList) {
@@ -384,39 +202,54 @@
             }
         }
 
-        List<TjOrderDetail> list = tjOrderDetailService.getTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()));
-        if (list != null) {
-            for (TjOrderDetail tjOrderDetail : list) {
-                TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
-                if(tjProject==null){
-                    continue;
-                }
-                tjOrderDetail.setProject(tjProject);
-                if (tjProject.getProParentId() == 0) {
-                    TjOrderRemark tjOrderRemark = new TjOrderRemark();
-                    tjOrderRemark.setProId(tjProject.getProId());
-                    tjOrderRemark.setProName(tjProject.getProName());
-                    tjOrderRemark.setDeptId(tjProject.getDeptId());
-                    tjOrderRemark.setTjNumber(tjOrder.getTjNumber());
-                    tjOrderRemark.setCreateBy(sysUser.getNickName());
-                    tjOrderRemark.setCreateTime(new Date());
-                    tjOrderRemark.setUpdateBy(sysUser.getNickName());
-                    tjOrderRemark.setUpdateTime(new Date());
-                    tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
-                    tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
-                    orderRemarkService.save(tjOrderRemark);
-                }
-                if ("1".equals(tjOrder.getTjType())) {
-                    if (null != tjReservation && tjReservation.getPayType() == 1) {
-                        tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                    }
-                }
-                if(tjFlowingWater.getPayStasus()==1){
-                    tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                }
-                tjOrderDetailService.updateById(tjOrderDetail);
+        //娣诲姞remark琛ㄦ暟鎹�
+        orderRemarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(),sysUser.getNickName(),String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
+
+        //鍒ゆ柇鏄惁浜ら挶
+        if ("1".equals(tjOrder.getTjType())) {
+            if (null != tjReservation && tjReservation.getPayType() == 1) {
+                tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
+                        sysUser.getNickName(), String.valueOf(sysUser.getUserId()),String.valueOf(tjFlowingWater.getTjSerialNumber()));
             }
         }
+        if (tjFlowingWater.getPayStasus() == 1) {
+            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
+                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()),String.valueOf(tjFlowingWater.getTjSerialNumber()));
+        }
+
+//        List<TjOrderDetail> list = tjOrderDetailService.getTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()));
+//        if (list != null) {
+//            for (TjOrderDetail tjOrderDetail : list) {
+//                TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
+//                if(tjProject==null){
+//                    continue;
+//                }
+//                tjOrderDetail.setProject(tjProject);
+//                if (tjProject.getProParentId() == 0) {
+//                    TjOrderRemark tjOrderRemark = new TjOrderRemark();
+//                    tjOrderRemark.setProId(tjProject.getProId());
+//                    tjOrderRemark.setProName(tjProject.getProName());
+//                    tjOrderRemark.setDeptId(tjProject.getDeptId());
+//                    tjOrderRemark.setTjNumber(tjOrder.getTjNumber());
+//                    tjOrderRemark.setCreateBy(sysUser.getNickName());
+//                    tjOrderRemark.setCreateTime(new Date());
+//                    tjOrderRemark.setUpdateBy(sysUser.getNickName());
+//                    tjOrderRemark.setUpdateTime(new Date());
+//                    tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
+//                    tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
+//                    orderRemarkService.save(tjOrderRemark);
+//                }
+//                if ("1".equals(tjOrder.getTjType())) {
+//                    if (null != tjReservation && tjReservation.getPayType() == 1) {
+//                        tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+//                    }
+//                }
+//                if(tjFlowingWater.getPayStasus()==1){
+//                    tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+//                }
+//                tjOrderDetailService.updateById(tjOrderDetail);
+//            }
+//        }
     }
 
     @Override
@@ -898,11 +731,7 @@
                         TbTransition tbTransition = new TbTransition();
                         tbTransition.setCusId(cusId);
                         tbTransition.setPacId(pacId);
-//                        if (null != tjProject.getProPrice()) {
-//                            tbTransition.setOrdPrice(tjProject.getProPrice());
-//                        } else {
-//                            tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
-//                        }
+
                         if (null != tjPackageProject.getPriceNow() && divide.compareTo(BigDecimal.valueOf(0)) > 0) {
                             tbTransition.setNowPrice(tjProject.getProPrice().multiply(divide).setScale(2,RoundingMode.HALF_DOWN));
                             tbTransition.setOrdPrice(tjProject.getProPrice().multiply(divide).setScale(2,RoundingMode.HALF_DOWN));
@@ -923,6 +752,17 @@
 
                 }
             }
+        }
+    }
+
+    @Override
+    @Async("async")
+    public void saveRedisTransitionByPacId(String cusId, Long pacId,List<Long> proIds) {
+        if(null != pacId){
+            transitionService.saveRedisTransitionByPacId(cusId,pacId);
+        }
+        if(null != proIds && proIds.size() > 0){
+            saveRedisTransitionByProId(cusId,proIds);
         }
     }
 
@@ -1454,4 +1294,15 @@
         }
         return cusName;
     }
+
+
+    //涓存椂琛ㄦ坊鍔犲崟椤�
+    public void saveRedisTransitionByProId(String cusId, List<Long> proIds) {
+        for (Long proId : proIds) {
+            if (null != transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId)) && transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId)).size() > 0) {
+                continue;
+            }
+            transitionService.saveRedisTransitionByProId(cusId,proId);
+        }
+    }
 }

--
Gitblit v1.8.0