From 53d149f491dba554ee035599059a1bf65ea92df2 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期三, 12 二月 2025 17:36:13 +0800
Subject: [PATCH] 增加手动同步lis接口

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java | 2866 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 2,550 insertions(+), 316 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
index f3b467c..c489848 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -1,19 +1,42 @@
 package com.ltkj.web.controller.service;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysUser;
 import com.ltkj.common.core.redis.RedisCache;
+import com.ltkj.common.utils.IdUtils;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.hisDto.*;
+import com.ltkj.hosp.mapper.TjSamplingMapper;
+import com.ltkj.hosp.pacsDto.SavePacsApply;
 import com.ltkj.hosp.service.*;
 import com.ltkj.hosp.vodomain.AddNewReservationConfirm;
+import com.ltkj.hosp.vodomain.LineChartsVo;
+import com.ltkj.hosp.vodomain.PieChartVo;
 import com.ltkj.hosp.vodomain.QjDomainVo;
 import com.ltkj.mall.mallOrderUtils.TjConstants;
+import com.ltkj.system.service.ISysConfigService;
+import com.ltkj.system.service.ISysDeptService;
+import com.ltkj.system.service.ISysDictDataService;
 import com.ltkj.system.service.ISysUserService;
+import com.ltkj.web.controller.his.HisApiGetMethodService;
+import com.ltkj.web.controller.his.HisApiMethodService;
+import com.ltkj.web.controller.lis.LisApiMethod;
+import com.ltkj.web.controller.pacs.PacsApiMethodService;
+import com.ltkj.web.controller.system.SamplingServiceApi;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -25,6 +48,7 @@
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -35,9 +59,10 @@
  * @Date: 2023/9/15 15:57
  */
 
+@Slf4j
 @Service
 @Transactional
-public class TjSysAsyncServiceImpl  implements TjAsyncService {
+public class TjSysAsyncServiceImpl implements TjAsyncService {
     @Resource
     private ITjProjectService projectService;
     @Resource
@@ -90,26 +115,83 @@
     private ITjPrintOrderService printOrderService;
     @Resource
     private IDictSfxmService dictSfxmService;
+    @Autowired
+    private ITjRulesService tjRulesService;
+    @Autowired
+    private HisApiMethodService controller;
+    @Autowired
+    private HisApiConfigService hisApiConfigService;
+    @Autowired
+    private HisApiGetMethodService hisApiGetMethodService;
+    @Resource
+    private ISysConfigService configService;
+    @Autowired
+    private LtkjJfzhglmxjfxmzdService ltkjJfzhglmxjfxmzdService;
+    @Autowired
+    private LtkjMxjfxmzdService ltkjMxjfxmzdService;
+    @Autowired
+    private LtkjEjjfxmzdService ltkjEjjfxmzdService;
+    @Autowired
+    private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
+    @Autowired
+    private TjProBlService blService;
+    @Resource
+    private ITjFlowingWaterService tjFlowingWaterService;
+    @Resource
+    private ISysDeptService deptService;
+    @Autowired
+    private TjCfService cfService;
+    @Resource
+    private LtkjHysqdService hysqdService;
+    @Autowired
+    private PacsApiMethodService pacsApiMethodService;
+    @Autowired
+    private LisApiMethod lisApiMethod;
+    @Autowired
+    private IdUtils idUtils;
+    @Autowired
+    private LtkjJybbzdService jybbzdService;
+    @Autowired
+    private LisJyflhbService lisJyflhbService;
+    @Autowired
+    private SamplingServiceApi samplingServiceApi;
+    @Autowired
+    private ISysDictDataService sysDictDataService;
+    @Autowired
+    private TjSamplingMapper tjSamplingMapper;
+    @Autowired
+    private ISysConfigService sysConfigService;
+    @Resource
+    private ITjXdPictureService xdPictureService;
+    @Autowired
+    private TjOutpinmedicXmService tjOutpinmedicXmService;
+    @Autowired
+    private TjOrderYcxmService ycxmService;
+    @Autowired
+    private ITjRulesService rulesService;
+    @Autowired
+    private ITjProAdvicerulesService tjProAdvicerulesService;
+
 
 
     @Override
     public void newSaveextracted(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());
+        LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
+        wq.eq(TjAskMedicalHistory::getCusId, tjCustomer.getCusId());
         wq.isNull(TjAskMedicalHistory::getTjNum);
         TjAskMedicalHistory history = tjAskMedicalHistoryService.getOne(wq);
-        if(null !=history){
+        if (null != history) {
             history.setTjNum(tjOrder.getTjNumber());
             tjAskMedicalHistoryService.updateById(history);
         }
 
-        List<TbTransition> tbTransitionList =null;
+        List<TbTransition> tbTransitionList = null;
         if (redisCache.hasKey(tjCustomer.getCusIdcard())) {
             tbTransitionList = redisCache.getCacheList(tjCustomer.getCusIdcard());
             redisCache.deleteObject(tjCustomer.getCusIdcard());
-        }else {
+        } else {
             LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
             wqq.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
             tbTransitionList = transitionService.list(wqq);
@@ -118,7 +200,7 @@
             redisCache.deleteObject(tjCustomer.getCusIdcard() + "cusId");
         if (null != tbTransitionList && tbTransitionList.size() > 0) {
 
-            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),String.valueOf(tjOrder.getOrderId()),sysUser.getNickName(),String.valueOf(sysUser.getUserId()));
+            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()),tjOrder.getCardId());
 
             //淇敼姣忛」鐨勫師浠风幇浠�
             for (TbTransition transition : tbTransitionList) {
@@ -130,10 +212,10 @@
         LambdaQueryWrapper<TjOrderDetail> wrapper1 = new LambdaQueryWrapper<>();
         wrapper1.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
         List<TjOrderDetail> list = tjOrderDetailService.list(wrapper1);
-        if (list != null && list.size()>0) {
+        if (list != null && list.size() > 0) {
             for (TjOrderDetail tjOrderDetail : list) {
                 TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
-                if(tjProject==null){
+                if (tjProject == null) {
                     continue;
                 }
                 tjOrderDetail.setProject(tjProject);
@@ -156,25 +238,25 @@
                         tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                     }
                 }
-                if(tjFlowingWater.getPayStasus()==1){
+                if (tjFlowingWater.getPayStasus() == 1) {
                     tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                 }
                 tjOrderDetailService.updateById(tjOrderDetail);
             }
         }
-        System.out.println("杩欐浠g爜鏃堕棿"+(l-System.currentTimeMillis()));
+        System.out.println("杩欐浠g爜鏃堕棿" + (l - System.currentTimeMillis()));
     }
 
     @Override
     @Async("async")
-    public void ttextracted(TjOrder tjOrder, TjCustomer tjCustomer,SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
+    public void ttextracted(TjOrder tjOrder, TjCustomer tjCustomer, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
 
-        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){
+        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()),tjOrder.getCardId());
+        if (!b) {
+            List<TjGroupingPro> proList = groupingProService.list(new LambdaQueryWrapper<TjGroupingPro>().eq(TjGroupingPro::getGroupingId, tjOrder.getGroupId()));
+            if (null != proList && !proList.isEmpty()) {
                 for (TjGroupingPro groupingPro : proList) {
                     TjOrderDetail detail = new TjOrderDetail();
 //                if (null != transition.getPacId()) {
@@ -207,9 +289,9 @@
                     detail.setCreateId(String.valueOf(sysUser.getUserId()));
                     detail.setUpdateId(String.valueOf(sysUser.getUserId()));
                     //鑾峰彇璇ラ」鐩殑榛樿鍊艰祴鍊肩粰缁撴灉
-                    if(null !=project.getProDefault()){
+                    if (null != project.getProDefault()) {
                         detail.setProResult(project.getProDefault());
-                    }else {
+                    } else {
                         detail.setProResult(null);
                     }
                     detail.setIsSampling(String.valueOf(project.getIsSampling()));
@@ -220,20 +302,28 @@
         }
 
         //娣诲姞remark琛ㄦ暟鎹�
-        orderRemarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(),sysUser.getNickName(),String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
+        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()));
+                        sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                orderRemarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(),tjFlowingWater.getTjSerialNumber().toString());
             }
         }
         if (tjFlowingWater.getPayStasus() == 1) {
             tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
-                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()),String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+            orderRemarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(),tjFlowingWater.getTjSerialNumber().toString());
+        }
+        if (tjFlowingWater.getDiscount() == null) {
+            transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), new BigDecimal(10), tjOrder.getTjNumber());
+        } else {
+            transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), BigDecimal.valueOf(Long.parseLong(tjFlowingWater.getDiscount())), tjOrder.getTjNumber());
         }
 
+        tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()),tjOrder.getCardId());
 //        List<TjOrderDetail> list = tjOrderDetailService.getTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()));
 //        if (list != null) {
 //            for (TjOrderDetail tjOrderDetail : list) {
@@ -272,10 +362,11 @@
     @Override
     @Async("async")
     public void collectFees(TjOrder order, List<TjConsumables> list2, List<TbTransition> tbTransitionList, SysUser sysUser, String discount) {
-        orderRemarkService.deletedOrderRemarkByTjNum(order.getTjNumber());
+//        orderRemarkService.deletedOrderRemarkByTjNum(order.getTjNumber());
+//        redisCache.deleteObject("getOrderDetailByProParentId" + order.getTjNumber());
         for (TbTransition transition : tbTransitionList) {
-            transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(discount)).divide(BigDecimal.valueOf(10))));
-            transitionService.updateById(transition);
+//            transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(discount)).divide(BigDecimal.valueOf(10))));
+//            transitionService.updateById(transition);
             TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
             //瀛愰」
             if (null != tjProject) {
@@ -297,31 +388,33 @@
         //鐖堕」
         ArrayList<TbTransition> collect1 = tbTransitionList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TbTransition::getParentProId))), ArrayList::new));
         List<Long> parentProIds = collect1.stream().map(TbTransition::getParentProId).collect(Collectors.toList());
-        if (parentProIds.size() > 0) {
+        if (!parentProIds.isEmpty()) {
             for (Long parentProId : parentProIds) {
                 TjProject parentProject = projectService.selectTjProjectByProId(parentProId);
                 if (null != parentProject) {
                     LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
                     wqqq.eq(TjProConsumables::getProId, parentProject.getProId());
                     List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
-                    if (null != proConsumables && proConsumables.size() > 0) {
+                    if (null != proConsumables && !proConsumables.isEmpty()) {
                         for (TjProConsumables tjProConsumables : proConsumables) {
                             TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
                             list2.add(tjConsumables);
                         }
                     }
-                    TjOrderRemark tjOrderRemark=new TjOrderRemark();
-                    tjOrderRemark.setProId(parentProId);
-                    tjOrderRemark.setProName(parentProject.getProName());
-                    tjOrderRemark.setDeptId(parentProject.getDeptId());
-                    tjOrderRemark.setTjNumber(order.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);
+//                    TjOrderRemark tjOrderRemark = new TjOrderRemark();
+//                    tjOrderRemark.setProId(parentProId);
+//                    tjOrderRemark.setProName(parentProject.getProName());
+//                    tjOrderRemark.setDeptId(parentProject.getDeptId());
+//                    tjOrderRemark.setTjNumber(order.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);
+//                    Map<String, Object> map = getOrderDetailByProParentId(String.valueOf(parentProId), order.getTjNumber());
+//                    redisCache.setCacheMapValue("getOrderDetailByProParentId" + order.getTjNumber(), String.valueOf(parentProId), map);
                 }
             }
         }
@@ -344,26 +437,61 @@
             chargingStandardService.save(tjChargingStandard);
         }
 
-        LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjOrderDetail::getOrderId,order.getOrderId());
-        wq.isNotNull(TjOrderDetail::getFlowingWaterId);
-        wq.eq(TjOrderDetail::getIsSampling,0);
-        List<TjOrderDetail> detailList = tjOrderDetailService.list(wq);
-        if(null !=detailList && detailList.size()>0){
+        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(order.getOrderId());
+        addCaiYangDengJi(detailList, !detailList.isEmpty(), order, sysUser,null);
+        List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(order.getTjNumber());
+        xdPictureService.saveBatch(xdPictureList);
+    }
+
+    public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser,String jxbz) {
+        String lis_tmh_prefix = sysConfigService.selectConfigByKey("make_lis_tmh_prefix");
+        String config = configService.selectConfigByKey("sfkqdyhis");
+        Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+        if (null != detailList && detailList1) {
             String format = DateUtil.format(new Date(), "yyMMddHHmmssSSS");
             for (TjOrderDetail detail : detailList) {
-                TjSampling sampling=new TjSampling();
-                if(null==projectService.getById(detail.getProId())) continue;
-                Long proParentId = projectService.getById(detail.getProId()).getProParentId();
-                if(null !=proParentId && proParentId ==0){
-                    sampling.setSpecimenType(projectService.getById(detail.getProId()).getSpecimenType());
-                }else {
-                    sampling.setSpecimenType(projectService.getById(projectService.getById(detail.getProId()).getProParentId()).getSpecimenType());
+                TjSampling sampling = new TjSampling();
+                if (null == projectService.getById(detail.getProId())) continue;
+                TjProject project = projectService.getById(detail.getProId());
+                Long proParentId = project.getProParentId();
+                String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
+                if (null != proParentId && proParentId == 0) {
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+//                    LtkjJyxmzd jyxmzd = lisApiMethod.getJyxmzd(project);
+//                    if (jyxmzd != null) {
+                    if (config.equals("Y") && lisAndPacsRegister)
+                        sampling.setJyxmdm(project.getLisXmbm());
+                    else sampling.setJyxmdm(String.valueOf(project.getProId()));
+                    sampling.setSpecimenTypeCode(project.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+//                        LambdaQueryWrapper<LtkjJybbzd> wrapper = new LambdaQueryWrapper<>();
+//                        wrapper.eq(LtkjJybbzd::getJybbdm,jyxmzd.getJybbdm());
+//                        LtkjJybbzd jybbzd = jybbzdService.getOne(wrapper);
+//                        sampling.setSpecimenType(jybbzd.getJybbmc());
+//                        sampling.setJyxmdm(jyxmzd.getJyxmdm());
+//                    }
+                } else {
+                    TjProject project1 = projectService.getById(proParentId);
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+                    sampling.setSpecimenTypeCode(project1.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+                    if (config.equals("Y") && lisAndPacsRegister)
+                        sampling.setJyxmdm(project1.getLisXmbm());
+                    else sampling.setJyxmdm(String.valueOf(project1.getProId()));
+//                    LtkjJyxmzd jyxmzd = lisApiMethod.getJyxmzd(project1);
+//                    if (jyxmzd != null) {
+//                        sampling.setSpecimenTypeCode(jyxmzd.getJybbdm());
+//                        LambdaQueryWrapper<LtkjJybbzd> wrapper = new LambdaQueryWrapper<>();
+//                        wrapper.eq(LtkjJybbzd::getJybbdm,jyxmzd.getJybbdm());
+//                        LtkjJybbzd jybbzd = jybbzdService.getOne(wrapper);
+//                        sampling.setSpecimenType(jybbzd.getJybbmc());
+//                        sampling.setJyxmdm(jyxmzd.getJyxmdm());
+//                    }
                 }
                 sampling.setSamplingNumber(format);
                 sampling.setTjNum(order.getTjNumber());
                 sampling.setCusId(String.valueOf(order.getUserId()));
-                if (tjCustomerService.getById(String.valueOf(order.getUserId()))!=null) {
+                if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
                     sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
                 }
                 sampling.setApplicationTime(new Date());
@@ -376,29 +504,66 @@
                 sampling.setUpdateTime(new Date());
                 sampling.setCreateId(String.valueOf(sysUser.getUserId()));
                 sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
+                sampling.setJxbz(jxbz);
                 samplingService.save(sampling);
             }
+        }
+        if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))){
+            AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
+            if (ajaxResult.get("code").toString().equals("200")){
+                String str = ajaxResult.get("data").toString();
+                str = str.replace("=", ":");
+                JSONArray array = JSONUtil.parseArray(str);
+                for (Object o : array) {
+                    JSONObject object = (JSONObject) o;
+                    LisJyflhb lisJyflhb = new LisJyflhb();
+                    lisJyflhb.setHbhxm(object.getStr("hbhxm"));
+                    lisJyflhb.setFlmc(object.getStr("flmc"));
+                    lisJyflhb.setMc(object.getStr("mc"));
+                    lisJyflhb.setFlbm(object.getStr("flbm"));
+                    LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(LisJyflhb::getFlbm,lisJyflhb.getFlbm());
+                    LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
+                    if (jyflhb == null) {
+                        lisJyflhb.setId(IdUtil.getSnowflake().nextId());
+                        lisJyflhbService.save(lisJyflhb);
+                    }else {
+                        lisJyflhb.setId(jyflhb.getId());
+                        lisJyflhbService.updateById(lisJyflhb);
+                    }
+                }
+            }
+
+        }
+        if (StrUtil.isNotBlank(jxbz)){
+            tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId()),jxbz);
+        }else {
+            tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
         }
     }
 
     @Override
     @Async("async")
-    public void abandonCheck(String tjNumber, TjOrder tjOrder, List<TjOrderDetail> list,  SysUser sysUser) {
+    public void abandonCheck(String tjNumber, TjOrder tjOrder, List<TjOrderDetail> list, SysUser sysUser) {
         for (TjOrderDetail tjOrderDetail : list) {
             LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
             wq1.eq(TjProject::getProId, tjOrderDetail.getProId());
             TjProject one = projectService.getOne(wq1);
             if (one != null) {
-                if (one.getProParentId() != 0) {
-                    tjOrderDetail.setTjStatus(2L);
-                    tjOrderDetail.setProResult("寮冩");
-                    tjOrderDetail.setUpdateTime(new DateTime());
-                    tjOrderDetailService.updateById(tjOrderDetail);
-                } else {
-                    tjOrderDetail.setTjStatus(1L);
-                    tjOrderDetail.setUpdateTime(new DateTime());
-                    tjOrderDetailService.updateById(tjOrderDetail);
-                }
+//                if (one.getProParentId() != 0) {
+                tjOrderDetail.setTjStatus(2L);
+                tjOrderDetail.setProResult("寮冩");
+                tjOrderDetail.setUpdateTime(new DateTime());
+                tjOrderDetailService.updateById(tjOrderDetail);
+//                } else {
+//                    tjOrderDetail.setTjStatus(1L);
+//                    tjOrderDetail.setUpdateTime(new DateTime());
+//                    tjOrderDetailService.updateById(tjOrderDetail);
+//                }
+//               LambdaQueryWrapper<TjOrderRemark> wq=new LambdaQueryWrapper<>();
+//               wq.eq(TjOrderRemark::getTjNumber,tjNumber);
+//               wq.eq(TjOrderRemark::getProId,tjOrderDetail.getProId());
+                orderRemarkService.updateTjOrderRemark(tjNumber, String.valueOf(tjOrderDetail.getProId()));
                 //缁欏純妫�琛ㄦ坊鍔犺褰�
                 TjDiscardInspection td = new TjDiscardInspection();
                 td.setProId(String.valueOf(one.getProId()));
@@ -420,134 +585,1697 @@
 
     @Override
     @Async("async")
-    public void updateOrdeltile(List<TjOrderDetail> tjOrderDetailList, SysUser sysUser, TjOrder order) {
-        for (TjOrderDetail detail : tjOrderDetailList) {
-            detail.setTjStatus(1L);
-            LambdaQueryWrapper<TjStandard> wq0 = new LambdaQueryWrapper<>();
-            wq0.eq(TjStandard::getProId, detail.getProId());
-            detail.setUpdateBy(sysUser.getNickName());
-            detail.setUpdateTime(new Date());
-            detail.setCreateId(String.valueOf(sysUser.getUserId()));
-            detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-            tjOrderDetailService.updateById(detail);
-        }
-    }
+    public void updateOrdeltile(List<TjOrderDetail> tjOrderDetailList, SysUser sysUser, TjOrder order,TjOrderRemark orderRemark) {
+        String deptname="";
+        TjProject tjProject = projectService.getById(orderRemark.getProId());
+        if(null !=tjProject){
+            SysDept dept = deptService.getById(tjProject.getDeptId());
+            if(dept.getParentId()!=100L){
+                deptname= deptService.getprentks(dept.getParentId().toString());
+            }else {
+                deptname=dept.getDeptName();
+            }
 
-    @Override
-    @Async("async")
-    public void iundividualCharges(TjFlowingWater tjFlowingWater, TjOrder order, TjCustomer customer,  SysUser sysUser) {
-        List<TjConsumables> list2 = new ArrayList<>();
-        String[] tjProIds = tjFlowingWater.getTjProIds();
-        for (String tjProId : tjProIds) {
-            TjProject project = projectService.selectTjProjectByProId(Long.valueOf(tjProId));
-            TjOrderRemark tjOrderRemark=new TjOrderRemark();
-            tjOrderRemark.setProId(Long.valueOf(tjProId));
-            tjOrderRemark.setProName(project.getProName());
-            tjOrderRemark.setDeptId(project.getDeptId());
-            tjOrderRemark.setTjNumber(order.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);
-            List<Long> proIds = projectService.getTjProjectListBySoneId(tjProId).stream().map(TjProject::getProId).collect(Collectors.toList());
-            TjOrderDetail detail = new TjOrderDetail();
-            detail.setTjStatus(0L);
-            detail.setOrderId(tjFlowingWater.getOrderId());
-            detail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-            detail.setProId(Long.valueOf(tjProId));
-            detail.setIsAddition("Y");
-            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);
-            for (Long proId : proIds) {
-                TjOrderDetail detail1 = new TjOrderDetail();
-                detail1.setTjStatus(0L);
-                detail1.setOrderId(tjFlowingWater.getOrderId());
-                detail1.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                detail1.setProId(proId);
-                detail1.setIsAddition("Y");
-                detail.setCreateBy(sysUser.getNickName());
-                detail.setCreateTime(new Date());
+
+            for (TjOrderDetail detail : tjOrderDetailList) {
+                detail.setTjStatus(1L);
+                LambdaQueryWrapper<TjStandard> wq0 = new LambdaQueryWrapper<>();
+                wq0.eq(TjStandard::getProId, detail.getProId());
                 detail.setUpdateBy(sysUser.getNickName());
                 detail.setUpdateTime(new Date());
                 detail.setCreateId(String.valueOf(sysUser.getUserId()));
                 detail.setUpdateId(String.valueOf(sysUser.getUserId()));
-                tjOrderDetailService.save(detail1);
+                tjOrderDetailService.updateById(detail);
+                try {
+                    LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>();
+                    wq.eq(TjOrderYcxm::getTjh,order.getTjNumber());
+                    wq.eq(TjOrderYcxm::getJcxm,detail.getProName());
+                    TjOrderYcxm ycxm = ycxmService.getOne(wq);
+                    if(null !=ycxm){
+                        ycxm.setJcjg(detail.getProResult());
+                        List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(detail.getProId().toString()
+                                ,"","",order.getTjNumber()
+                                ,detail.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "")
+                                        .replaceAll("[ 娴嬪畾妫�娴媇","")
+                                ,detail.getProResult());
+
+                        String[] split = detail.getProResult().split("銆倈,|锛�");
+                        List<Map<String,Object>> mapList=new ArrayList<>();
+                        for (String s : split) {
+                            s = s.replaceAll("\n", "");
+//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
+                            Map<String,Object> mapss= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(deptname,s,"0");
+                            if(null !=mapss && !mapss.isEmpty()){
+                                Object bt = mapss.get("bt");
+                                Object nr = mapss.get("nr");
+                                if(null !=bt || null !=nr){
+
+                                } mapList.add(mapss);
+                            }
+                        }
+
+                        if(null != maps && !maps.isEmpty()){
+                            ycxm.setJynr(JSONUtil.toJsonStr(maps));
+                        }
+                        if( !mapList.isEmpty()){
+                            ycxm.setJynr(JSONUtil.toJsonStr(mapList));
+                        }
+                        ycxmService.updateById(ycxm);
+                        if(detail.getExceptionDesc()==0)ycxmService.remove(wq);
+                    }
+                } catch (Exception e) {
+                }
             }
-            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
-            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
-            wqq.in(TbTransition::getProId, proIds);
-            List<TbTransition> tbTransitionList = transitionService.list(wqq);
-            if (null != tbTransitionList && tbTransitionList.size() > 0) {
-                for (TbTransition transition : tbTransitionList) {
-                    transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(tjFlowingWater.getDiscount())).divide(BigDecimal.valueOf(10))));
-                    transitionService.updateById(transition);
-                    TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
-                    //瀛愰」
-                    if (null != tjProject) {
-                        TjChargingStandard tjChargingStandard = new TjChargingStandard();
-                        tjChargingStandard.setTjNum(order.getTjNumber());
-                        tjChargingStandard.setProId(transition.getProId());
-                        tjChargingStandard.setPrice(transition.getNowPrice());
-                        tjChargingStandard.setProName(tjProject.getProName());
-                        tjChargingStandard.setCreateBy(sysUser.getNickName());
-                        tjChargingStandard.setCreateTime(new Date());
-                        tjChargingStandard.setUpdateBy(sysUser.getNickName());
-                        tjChargingStandard.setUpdateTime(new Date());
-                        tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
-                        tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
-                        chargingStandardService.save(tjChargingStandard);
+        }
+
+    }
+
+    @Override
+    @Async("async")
+    public void updateOrdeltile2(TjOrderDetail detail, SysUser sysUser) {
+//        for (TjOrderDetail detail : tjOrderDetailList) {
+        detail.setTjStatus(1L);
+        LambdaQueryWrapper<TjStandard> wq0 = new LambdaQueryWrapper<>();
+        wq0.eq(TjStandard::getProId, detail.getProId());
+        detail.setUpdateBy(sysUser.getNickName());
+        detail.setUpdateTime(new Date());
+        detail.setCreateId(String.valueOf(sysUser.getUserId()));
+        detail.setUpdateId(String.valueOf(sysUser.getUserId()));
+        tjOrderDetailService.updateById(detail);
+//        }
+    }
+
+    @Override
+//    @Async("async")
+//    @Transactional
+    public Boolean iundividualCharges(TjFlowingWater tjFlowingWater, TjOrder order, TjCustomer customer, SysUser sysUser,String jxbz) {
+        Date dates = new Date();
+        final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
+
+        tjFlowingWater.setJxbz(jxbz);
+        tjFlowingWaterService.updateById(tjFlowingWater);
+
+        TjProBl proBl=new TjProBl();
+        proBl.setTjh(order.getTjNumber());
+        proBl.setBldh(jxbz);
+        proBl.setBlsj(date);
+        proBl.setBlrdm(sysUser.getUserName());
+        proBl.setBlrmc(sysUser.getNickName());
+        proBl.setBlje(String.valueOf(tjFlowingWater.getPaidIn()));
+        blService.save(proBl);
+
+        String[] tjProIds = tjFlowingWater.getTjProIds();
+
+        String config = configService.selectConfigByKey("sfkqdyhis");
+
+        List<TjProject>  projectList=new ArrayList<>();
+
+//        ArrayList<TjOrderDetail> tjOrderDetails = new ArrayList<>();
+        for (String tjProId : tjProIds) {
+            TjProject project = projectService.getById(Long.valueOf(tjProId));
+            if (null != project && project.getProParentId() == 0) {
+                TjOrderRemark tjOrderRemark = new TjOrderRemark();
+                tjOrderRemark.setProId(Long.valueOf(tjProId));
+                tjOrderRemark.setProName(project.getProName());
+                tjOrderRemark.setDeptId(project.getDeptId());
+                tjOrderRemark.setTjNumber(order.getTjNumber());
+                tjOrderRemark.setCreateBy(sysUser.getNickName());
+                tjOrderRemark.setCreateTime(dates);
+                tjOrderRemark.setUpdateBy(sysUser.getNickName());
+                tjOrderRemark.setUpdateTime(dates);
+                tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
+                tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
+                tjOrderRemark.setJxbz(jxbz);
+                orderRemarkService.save(tjOrderRemark);
+
+                List<Long> proIds = projectService.getTjProjectListBySoneId(tjProId).stream().map(TjProject::getProId).collect(Collectors.toList());
+                TjOrderDetail detail = new TjOrderDetail();
+                detail.setTjStatus(0L);
+                detail.setOrderId(tjFlowingWater.getOrderId());
+//                detail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                detail.setProId(Long.valueOf(tjProId));
+                detail.setIsAddition("Y");
+                detail.setCreateBy(sysUser.getNickName());
+                detail.setCreateTime(dates);
+                detail.setUpdateBy(sysUser.getNickName());
+                detail.setUpdateTime(dates);
+                detail.setCreateId(String.valueOf(sysUser.getUserId()));
+                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
+                detail.setJxbz(jxbz);
+                tjOrderDetailService.save(detail);
+                for (Long proId : proIds) {
+                    TjOrderDetail detail1 = new TjOrderDetail();
+                    detail1.setTjStatus(0L);
+                    detail1.setOrderId(tjFlowingWater.getOrderId());
+//                    detail1.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                    detail1.setProId(proId);
+                    detail1.setIsAddition("Y");
+                    detail1.setCreateBy(sysUser.getNickName());
+                    detail1.setCreateTime(dates);
+                    detail1.setUpdateBy(sysUser.getNickName());
+                    detail1.setUpdateTime(dates);
+                    detail1.setCreateId(String.valueOf(sysUser.getUserId()));
+                    detail1.setUpdateId(String.valueOf(sysUser.getUserId()));
+                    detail1.setJxbz(jxbz);
+                    tjOrderDetailService.save(detail1);
+                }
+
+            } else {
+
+                //濡傛灉璇ラ」鐩瓨鍦� 鍒� 涓嶄繚瀛�
+
+                TjOrderDetail orderDetail = tjOrderDetailService.getTjOrderDetailByOrderId(String.valueOf(tjFlowingWater.getOrderId()), tjProId);
+                if(null !=orderDetail) continue;
+
+                TjProject projects = projectService.selectTjProjectByProId(Long.valueOf(tjProId));
+                if (null != projects) {
+                    TjProject projectss = projectService.getById(projects.getProParentId());
+                    if (null != projectss && projectss.getProParentId()==0L) {
+                        projectList.add(projectss);
                     }
                 }
-                //鐖堕」
-                TjProject parentProject = projectService.getById(tjProId);
-                if (null != parentProject) {
-                    LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
-                    wqqq.eq(TjProConsumables::getProId, parentProject.getProId());
-                    List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
-                    if (null != proConsumables && proConsumables.size() > 0) {
-                        for (TjProConsumables tjProConsumables : proConsumables) {
-                            TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
-                            list2.add(tjConsumables);
+                TjOrderDetail detail = new TjOrderDetail();
+                detail.setTjStatus(0L);
+                detail.setOrderId(tjFlowingWater.getOrderId());
+                detail.setProId(Long.valueOf(tjProId));
+                detail.setIsAddition("Y");
+                detail.setCreateBy(sysUser.getNickName());
+                detail.setCreateTime(dates);
+                detail.setUpdateBy(sysUser.getNickName());
+                detail.setUpdateTime(dates);
+                detail.setCreateId(String.valueOf(sysUser.getUserId()));
+                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
+                detail.setJxbz(jxbz);
+                tjOrderDetailService.save(detail);
+//                tjOrderDetails.add(detail);
+
+            }
+
+            List<TbTransition> tbTransitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(customer.getCusIdcard(),tjProId);
+            if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
+                for (TbTransition transition : tbTransitionList) {
+                    transitionService.updateTbTransitionById(transition.getId().toString(),jxbz,order.getTjNumber(),order.getCardId(),
+                            transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(tjFlowingWater.getDiscount())).divide(BigDecimal.valueOf(10))));
+                }
+            }
+
+        }
+        // TODO 鍜岀鍒扮櫥璁颁竴鏍� 鍙湁閰嶇疆涓殑浠ュ強鏀惰垂绫诲瀷涓轰綋妫�绁ㄦ椂鎵嶅鍔犲埌閲囨牱绠$悊琛�
+//        tjOrderDetails = new ArrayList<>();
+
+        ArrayList<TjProject> jianChaProjects = new ArrayList<>();
+
+        if(!projectList.isEmpty()){
+            List<TjProject> list = projectList.stream().distinct().collect(Collectors.toList());
+            for (TjProject project : list) {
+                TjOrderRemark tjOrderRemark = new TjOrderRemark();
+                tjOrderRemark.setProId(project.getProId());
+                tjOrderRemark.setProName(project.getProName());
+                tjOrderRemark.setDeptId(project.getDeptId());
+                tjOrderRemark.setTjNumber(order.getTjNumber());
+                tjOrderRemark.setCreateBy(sysUser.getNickName());
+                tjOrderRemark.setCreateTime(dates);
+                tjOrderRemark.setUpdateBy(sysUser.getNickName());
+                tjOrderRemark.setUpdateTime(dates);
+                tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
+                tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
+                tjOrderRemark.setJxbz(jxbz);
+                orderRemarkService.save(tjOrderRemark);
+
+                TjOrderDetail detail1 = new TjOrderDetail();
+                detail1.setTjStatus(0L);
+                detail1.setOrderId(tjFlowingWater.getOrderId());
+                detail1.setProId(project.getProId());
+                detail1.setIsAddition("Y");
+                detail1.setCreateBy(sysUser.getNickName());
+                detail1.setCreateTime(dates);
+                detail1.setUpdateBy(sysUser.getNickName());
+                detail1.setUpdateTime(dates);
+                detail1.setCreateId(String.valueOf(sysUser.getUserId()));
+                detail1.setUpdateId(String.valueOf(sysUser.getUserId()));
+                detail1.setJxbz(jxbz);
+                tjOrderDetailService.save(detail1);
+//                tjOrderDetails.add(detail1);
+                        if (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getJcDeptIds().contains(project.getDeptId().toString())) {
+                        if (null != project.getHisXmbm()) {
+                            jianChaProjects.add(project);
+                        }
+                    }
+            }
+
+            // TODO 鍜岀鍒扮櫥璁颁竴鏍� 鍙湁閰嶇疆涓殑浠ュ強鏀惰垂绫诲瀷涓轰綋妫�绁ㄦ椂鎵嶅鍔犲埌閲囨牱绠$悊琛�
+            if(config.equalsIgnoreCase("Y")){
+//                if (lisApiMethod.isUseLisAndPacsRegister(order) && tjFlowingWater.getPayType() == 6L) {
+                    List<TjOrderDetail> detailLists = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(), jxbz);
+                    addCaiYangDengJi(detailLists, !detailLists.isEmpty(), order, sysUser, jxbz);
+//                }
+                 AjaxResult result = tijianbulushenqing(customer, date, order.getCardId(), jxbz, jianChaProjects, tjFlowingWater.getPayType() == 6L);
+                 if (!result.get("code").toString().equals("200"))
+                     return false;
+            }else {
+                List<TjOrderDetail> detailLists = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(), jxbz);
+                addCaiYangDengJiByDiaoYongShiTu(detailLists, !detailLists.isEmpty(), order, sysUser, jxbz);
+            }
+        }
+
+        return true;
+    }
+
+    public void addCaiYangDengJiByDiaoYongShiTu(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser,String jxbz) {
+        String lis_tmh_prefix = sysConfigService.selectConfigByKey("make_lis_tmh_prefix");
+        if (null != detailList && detailList1) {
+            Date date = new Date();
+            String format = DateUtil.format(date, "yyMMddHHmmssSSS");
+            for (TjOrderDetail detail : detailList) {
+                TjSampling sampling = new TjSampling();
+                if (null == projectService.getById(detail.getProId())) continue;
+                TjProject project = projectService.getById(detail.getProId());
+                Long proParentId = project.getProParentId();
+                String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
+                if (null != proParentId && proParentId == 0) {
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+                    sampling.setSpecimenTypeCode(project.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+                    sampling.setJyxmdm(project.getProId().toString());
+                } else {
+                    TjProject project1 = projectService.getById(proParentId);
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+
+                    sampling.setSpecimenTypeCode(project1.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+                    sampling.setJyxmdm(project.getProId().toString());
+
+                }
+                sampling.setSamplingNumber(format);
+                sampling.setTjNum(order.getTjNumber());
+                sampling.setCusId(String.valueOf(order.getUserId()));
+                if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
+                    sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
+                }
+                sampling.setApplicationTime(date);
+                sampling.setTjTime(order.getCreateTime());
+                sampling.setProId(String.valueOf(detail.getProId()));
+                sampling.setProName(projectService.getById(detail.getProId()).getProName());
+                sampling.setCreateBy(sysUser.getNickName());
+                sampling.setCreateTime(date);
+                sampling.setUpdateBy(sysUser.getNickName());
+                sampling.setUpdateTime(date);
+                sampling.setCreateId(String.valueOf(sysUser.getUserId()));
+                sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
+                sampling.setJxbz(jxbz);
+                samplingService.save(sampling);
+            }
+        }
+        String config = configService.selectConfigByKey("sfkqdyhis");
+        if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))){
+            AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
+            if (ajaxResult.get("code").toString().equals("200")){
+                String str = ajaxResult.get("data").toString();
+                str = str.replace("=", ":");
+                JSONArray array = JSONUtil.parseArray(str);
+                for (Object o : array) {
+                    JSONObject object = (JSONObject) o;
+                    LisJyflhb lisJyflhb = new LisJyflhb();
+                    lisJyflhb.setHbhxm(object.getStr("hbhxm"));
+                    lisJyflhb.setFlmc(object.getStr("flmc"));
+                    lisJyflhb.setMc(object.getStr("mc"));
+                    lisJyflhb.setFlbm(object.getStr("flbm"));
+                    LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(LisJyflhb::getFlbm,lisJyflhb.getFlbm());
+                    LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
+                    if (jyflhb == null) {
+                        lisJyflhb.setId(IdUtil.getSnowflake().nextId());
+                        lisJyflhbService.save(lisJyflhb);
+                    }else {
+                        lisJyflhb.setId(jyflhb.getId());
+                        lisJyflhbService.updateById(lisJyflhb);
+                    }
+                }
+            }
+
+        }
+        if (StrUtil.isNotBlank(jxbz)){
+            tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId()),jxbz);
+        }else {
+            tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
+        }
+    }
+
+
+
+    //浣撴瀵筯is鐢宠鍗曡皟鐢ㄦ柟娉�
+//    public AjaxResult tijianbulushenqing(TjCustomer customer, String date,String cardId,String jxbz,ArrayList<TjProject> jianChaProjects,Boolean isTuanTiPiao) {
+//        TjOrder order = orderService.getOrderByCardId(cardId);
+//        if(null !=order){
+//            String dept = configService.selectConfigByKey("request_default_dept");
+//            String ysbm = configService.selectConfigByKey("request_default_ysbm");
+//            String ysmc = configService.selectConfigByKey("request_default_ysmc");
+//            String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
+//            List<TbTransition> detailList = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(),cardId,jxbz);
+//            Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+//            List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>();
+//            if (useLisAndPacsRegister && isTuanTiPiao) {
+//                // 妫�鏌ョ敵璇�
+//                pacsReg(order, customer, jianChaProjects);
+//                LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
+//                wrapper.eq(TjSampling::getTjNum,order.getTjNumber());
+//                wrapper.eq(TjSampling::getJxbz,jxbz);
+//                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());
+//                        }
+//                    }
+//                    Boolean confirmed = samplingServiceApi.confirmSamplingApi(ids, "Y", "N");
+//                    if (!confirmed)
+//                        return AjaxResult.error("澶勭悊澶辫触");
+//                }
+//            }else {
+//                //妫�楠岀敵璇�
+//                OutpintestapplyDto dto = new OutpintestapplyDto();
+//                dto.setHisRegistrationId(cardId);
+//                dto.setSfzh(customer.getCusIdcard());
+//                dto.setSqysbm(ysbm);
+//                dto.setMzksbm(dept);
+//                dto.setSjrq(date);
+//                dto.setCzybm(ysbm);
+//                dto.setCzyksbm(dept);
+//                dto.setSfjz("0");
+//
+//                List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+////            wq.groupBy(TjProject::getHisXmbm);
+////            wq.in(TjProject::getDeptId, "241", "317");
+//                    wq.in(TjProject::getDeptId,deptService.getJyDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        for (TjProject project : projects) {
+//                            if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                if (null != project.getHisXmbm()) {
+//                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
+//                                    if (project.getSfzhfy().equals("Y")) {
+//                                        detailsDto.setSfzhfy("1");
+//                                    } else {
+//                                        detailsDto.setSfzhfy("0");
+//                                    }
+//                                    detailsDto.setSl(project.getSl());
+//                                    detailsDto.setProjg(project.getProPrice());
+//                                    detailsDtos.add(detailsDto);
+//                                }
+//                                if(project.getProId()==1740177341251154377L){
+//                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                    detilsDto.setYpbm("00006670");
+//                                    detilsDto.setPcbm("06");
+//                                    detilsDto.setSl("1");
+//                                    detilsDto.setDj("60");
+//                                    detilsDto.setDcjl("1");
+//                                    detilsDto.setPj("60");
+//                                    detilsDto.setJj("60");
+//                                    detilsDto.setJldw("");
+//                                    detilsDto.setTjbm("");
+//                                    detilsDto.setPs("");
+//                                    detilsDto.setPsbm("");
+//                                    detilsDto.setYyts("");
+//                                    detilsDto.setXtph("");
+//                                    detilsDto.setScph("");
+//                                    detilsDto.setYpxq("");
+//                                    detilsDto.setCdbm("");
+//                                    detilsDto.setKfdw("");
+//                                    detilsDto.setYfdw("");
+//                                    detilsDto.setYysm("");
+//                                    detilsDto.setFzbl("1");
+//                                    detilsDto.setZh("0");
+//                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//                if (!detailsDtos.isEmpty()) {
+//                    dto.setDetails(detailsDtos);
+//                    AjaxResult ajaxResult1 = controller.Outpintestapply(dto);
+//                    String result5 = getAjaxResult(ajaxResult1);
+//                    JSONObject object3 = getJSONObject(result5);
+//                    String code3 = object3.getStr("ResultCode");
+//                    if (code3.equals("0")) {
+//                        List<OutpintestapplyDetailsDto> details = dto.getDetails();
+//                        for (OutpintestapplyDetailsDto detail : details) {
+//                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                            tree.setJxbz(jxbz);
+//                            tree.setCardId(dto.getHisRegistrationId());
+//                            tree.setPationid(customer.getPationId());
+//                            JSONObject resultData = object3.getJSONObject("ResultData");
+//                            tree.setSqdh(resultData.getStr("jysqdh"));
+//                            tree.setFyhj(resultData.getStr("fyhj"));
+//                            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"))
+//                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                            }
+//                            tree.setCreateTime(DateUtil.date());
+//                            ltkjJianchajianyanTreeService.save(tree);
+//                        }
+//                    }
+//                }
+//
+//                //闂ㄨ瘖妫�鏌ョ敵璇�
+//                OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
+//                outpinexamapplyDto.setHisRegistrationId(cardId);
+//                outpinexamapplyDto.setSfzh(customer.getCusIdcard());
+//                outpinexamapplyDto.setSqysbm(ysbm);
+//                outpinexamapplyDto.setMzksbm(dept);
+//                outpinexamapplyDto.setCzybm(ysbm);
+//                outpinexamapplyDto.setCzyksbm(dept);
+//                outpinexamapplyDto.setSfjz("0");
+////        List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+//                List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+//                    wq.in(TjProject::getDeptId,deptService.getJcDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        for (TjProject project : projects) {
+//                            if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                if (null != project.getHisXmbm()) {
+//                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
+//                                    if (project.getSfzhfy().equals("Y")) {
+//                                        detailsDto.setSfzhfy("1");
+//                                    } else {
+//                                        detailsDto.setSfzhfy("0");
+//                                    }
+//                                    detailsDto.setSl(project.getSl());
+//                                    detailsDto.setProjg(project.getProPrice());
+//                                    detailsDtoss.add(detailsDto);
+//                                }
+//                                if(project.getProId()==1740177341251154377L){
+//                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                    detilsDto.setYpbm("00006670");
+//                                    detilsDto.setPcbm("06");
+//                                    detilsDto.setSl("1");
+//                                    detilsDto.setDj("60");
+//                                    detilsDto.setDcjl("1");
+//                                    detilsDto.setPj("60");
+//                                    detilsDto.setJj("60");
+//                                    detilsDto.setJldw("");
+//                                    detilsDto.setTjbm("");
+//                                    detilsDto.setPs("");
+//                                    detilsDto.setPsbm("");
+//                                    detilsDto.setYyts("");
+//                                    detilsDto.setXtph("");
+//                                    detilsDto.setScph("");
+//                                    detilsDto.setYpxq("");
+//                                    detilsDto.setCdbm("");
+//                                    detilsDto.setKfdw("");
+//                                    detilsDto.setYfdw("");
+//                                    detilsDto.setYysm("");
+//                                    detilsDto.setFzbl("1");
+//                                    detilsDto.setZh("0");
+//                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//                if (!detailsDtoss.isEmpty()) {
+//                    outpinexamapplyDto.setDetails(detailsDtoss);
+//                    AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto);
+//                    String result6 = getAjaxResult(ajaxResult2);
+//                    JSONObject object5 = getJSONObject(result6);
+//                    String code4 = object5.getStr("ResultCode");
+//                    if (code4.equals("0")) {
+//                        List<OutpintestapplyDetailsDto> details = outpinexamapplyDto.getDetails();
+//                        for (OutpintestapplyDetailsDto detail : details) {
+//                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                            tree.setJxbz(jxbz);
+//                            tree.setCardId(outpinexamapplyDto.getHisRegistrationId());
+//                            tree.setPationid(customer.getPationId());
+//                            JSONObject resultData = object5.getJSONObject("ResultData");
+//                            tree.setSqdh(resultData.getStr("jcsqdh"));
+//                            tree.setFyhj(resultData.getStr("fyhj"));
+//                            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"))
+//                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                            }
+//                            tree.setCreateTime(DateUtil.date());
+//                            ltkjJianchajianyanTreeService.save(tree);
+//                        }
+//                    }
+//                }
+//
+//                //闂ㄨ瘖娌荤枟澶勭疆鐢宠
+//                OutpintreatapplyDto dao = new OutpintreatapplyDto();
+//                dao.setHisRegistrationId(cardId);
+//                dao.setSfzh(customer.getCusIdcard());
+//                dao.setSqysbm(ysbm);
+//                dao.setMzksbm(dept);
+//                dao.setSjrq(date);
+//                dao.setCzybm(ysbm);
+//                dao.setCzyksbm(dept);
+//                dao.setSfjz("0");
+////        List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+//                List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>();
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+//                    wq.in(TjProject::getDeptId,deptService.getCzDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        for (TjProject project : projects) {
+//                            if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                if (null != project.getHisXmbm()) {
+//                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
+//                                    if (project.getSfzhfy().equals("Y")) {
+//                                        detailsDto.setSfzhfy("1");
+//                                    } else {
+//                                        detailsDto.setSfzhfy("0");
+//                                    }
+//                                    detailsDto.setSl(project.getSl());
+//                                    detailsDto.setProjg(project.getProPrice());
+//                                    detailDtos.add(detailsDto);
+//                                }
+//                                if(project.getProId()==1740177341251154377L){
+//                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                    detilsDto.setYpbm("00006670");
+//                                    detilsDto.setPcbm("06");
+//                                    detilsDto.setSl("1");
+//                                    detilsDto.setDj("60");
+//                                    detilsDto.setDcjl("1");
+//                                    detilsDto.setPj("60");
+//                                    detilsDto.setJj("60");
+//                                    detilsDto.setJldw("");
+//                                    detilsDto.setTjbm("");
+//                                    detilsDto.setPs("");
+//                                    detilsDto.setPsbm("");
+//                                    detilsDto.setYyts("");
+//                                    detilsDto.setXtph("");
+//                                    detilsDto.setScph("");
+//                                    detilsDto.setYpxq("");
+//                                    detilsDto.setCdbm("");
+//                                    detilsDto.setKfdw("");
+//                                    detilsDto.setYfdw("");
+//                                    detilsDto.setYysm("");
+//                                    detilsDto.setFzbl("1");
+//                                    detilsDto.setZh("0");
+//                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//                if (!detailDtos.isEmpty()) {
+//                    dao.setDetails(detailDtos);
+//                    AjaxResult mzylyzsq1 = controller.Outpintreatapply(dao);
+//                    String mzylyzsq2 = getAjaxResult(mzylyzsq1);
+//                    JSONObject mzylyzsq3 = getJSONObject(mzylyzsq2);
+//                    String code5 = mzylyzsq3.getStr("ResultCode");
+//                    if (code5.equals("0")) {
+//                        List<OutpintestapplyDetailsDto> details1 = dao.getDetails();
+//                        for (OutpintestapplyDetailsDto detail : details1) {
+//                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                            tree.setJxbz(jxbz);
+//                            tree.setCardId(dao.getHisRegistrationId());
+//                            tree.setPationid(customer.getPationId());
+//                            JSONObject resultData = mzylyzsq3.getJSONObject("ResultData");
+//                            tree.setSqdh(resultData.getStr("zlczh"));
+//                            tree.setFyhj(resultData.getStr("fyhj"));
+//                            String mxfyxmbm = detail.getMxfyxmbm();
+//                            tree.setHisXmdm(mxfyxmbm);
+//                            tree.setType("澶勭疆");
+//                            tree.setTjPrice(String.valueOf(detail.getProjg()));
+//                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+//                            if (detail.getSfzhfy().equals("1"))
+//                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                            }
+//                            tree.setCreateTime(DateUtil.date());
+//                            ltkjJianchajianyanTreeService.save(tree);
+//                        }
+//                    }
+//                }
+//
+//                //鑽搧鐢宠
+//                if(!outpinmedicapplyDetilsDtos.isEmpty()){
+//                    OutpinmedicapplyDto dto1=new OutpinmedicapplyDto();
+//                    dto1.setHisRegistrationId(cardId);
+//                    dto1.setSfzh(customer.getCusIdcard());
+//                    dto1.setSqysbm(ysbm);
+//                    dto1.setMzksbm(dept);
+//                    dto1.setSjrq(date);
+//                    dto1.setCzybm(ysbm);
+//                    dto1.setCzyksbm(dept);
+//                    dto1.setCflxbm("A");
+//                    dto1.setYfbm("1");
+//                    dto1.setFyts("1");
+//                    dto1.setMzzd("");
+//                    dto1.setDetails(outpinmedicapplyDetilsDtos);
+//                    AjaxResult result = controller.Outpinmedicapply(dto1);
+//                    String result1 = getAjaxResult(result);
+//                    JSONObject object = getJSONObject(result1);
+//                    String code = object.getStr("ResultCode");
+//                    if(null !=code && code.equals("0")){
+//                        JSONObject resultData = object.getJSONObject("ResultData");
+////                Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0);
+//                        String cfh = resultData.getStr("cfh");
+//                        log.info("鑽搧鐢宠鍚庣殑澶勬柟鍙锋槸: "+cfh+"  outpinmedicapplyDetilsDtos 閲岄潰鐨勫�间负: "+outpinmedicapplyDetilsDtos.toString());
+//                        for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) {
+//                            TjCf cf=new TjCf();
+//                            cf.setJxbz(jxbz);
+//                            cf.setCardId(cardId);
+//                            cf.setSfzh(customer.getCusIdcard());
+//                            cf.setCfh(cfh);
+//                            cf.setSqysbm(ysbm);
+//                            cf.setSqysxm(ysmc);
+//                            cf.setMzksbn(dept);
+//                            cf.setSqrq(date);
+//                            cf.setCzybm(ysbm);
+//                            cf.setYpbm(detilsDto.getYpbm());
+//                            cf.setYpmc("灏跨礌[14C]鍛兼皵璇曢獙鑽洅");
+//                            cf.setSl(String.valueOf(detilsDto.getSl()));
+//                            cf.setDj(String.valueOf(detilsDto.getDj()));
+//                            cf.setDcjl(String.valueOf(detilsDto.getDcjl()));
+//                            cf.setPj(String.valueOf(detilsDto.getPj()));
+//                            cf.setJj(String.valueOf(detilsDto.getJj()));
+//                            cf.setCreateTime(new Date());
+//                            cfService.save(cf);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        return AjaxResult.success();
+//    }
+
+    /**/
+//    public AjaxResult tijianbulushenqing(TjCustomer customer, String date,String cardId,String jxbz,ArrayList<TjProject> jianChaProjects,Boolean isTuanTiPiao) {
+//        TjOrder order = orderService.getOrderByCardId(cardId);
+//        if(null !=order){
+//            String dept = configService.selectConfigByKey("request_default_dept");
+//            String ysbm = configService.selectConfigByKey("request_default_ysbm");
+//            String ysmc = configService.selectConfigByKey("request_default_ysmc");
+//            String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
+//            List<TbTransition> detailList = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(),cardId,jxbz);
+//            Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+//            List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>();
+//            if (useLisAndPacsRegister && isTuanTiPiao) {
+//                // 妫�鏌ョ敵璇�
+//                pacsReg(order, customer, jianChaProjects);
+//                LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
+//                wrapper.eq(TjSampling::getTjNum,order.getTjNumber());
+//                wrapper.eq(TjSampling::getJxbz,jxbz);
+//                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());
+//                        }
+//                    }
+//                    Boolean confirmed = samplingServiceApi.confirmSamplingApi(ids, "Y", "N");
+//                    if (!confirmed)
+//                        return AjaxResult.error("澶勭悊澶辫触");
+//                }
+//            }else {
+//                //妫�楠岀敵璇�
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+////            wq.groupBy(TjProject::getHisXmbm);
+////            wq.in(TjProject::getDeptId, "241", "317");
+//                    wq.in(TjProject::getDeptId,deptService.getJyDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        List<TjProject> notNull = projects.stream().filter(i -> i.getSpecimenType() != null).collect(Collectors.toList());
+//                        List<TjProject> isNull = projects.stream().filter(i -> i.getSpecimenType() == null).collect(Collectors.toList());
+//                        Map<String, List<TjProject>> listMap = notNull.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType));
+//                        if (!isNull.isEmpty())
+//                            listMap.put("",isNull);
+//                        for (Map.Entry<String, List<TjProject>> entry : listMap.entrySet()) {
+//                            OutpintestapplyDto dto = new OutpintestapplyDto();
+//                            dto.setHisRegistrationId(cardId);
+//                            dto.setSfzh(customer.getCusIdcard());
+//                            dto.setSqysbm(ysbm);
+//                            dto.setMzksbm(dept);
+//                            dto.setSjrq(date);
+//                            dto.setCzybm(ysbm);
+//                            dto.setCzyksbm(dept);
+//                            dto.setSfjz("0");
+//                            List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
+//                            List<TjProject> value = entry.getValue();
+//                            for (TjProject project : value) {
+//                                LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
+//                                wrapper.eq(TjProject::getProParentId,project.getProId());
+//                                List<TjProject> list = projectService.list(wrapper);
+//                                for (TjProject tjProject : list) {
+//                                    if (StrUtil.isNotBlank(tjProject.getHisXmbm()) && tjProject.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                        detailsDto.setMxfyxmbm(tjProject.getHisXmbm());
+//                                        if (tjProject.getSfzhfy().equals("Y")) {
+//                                            detailsDto.setSfzhfy("1");
+//                                        } else {
+//                                            detailsDto.setSfzhfy("0");
+//                                        }
+//                                        detailsDto.setSl(tjProject.getSl());
+//                                        detailsDto.setProjg(tjProject.getProPrice());
+//                                        detailsDtos.add(detailsDto);
+//                                    }
+//                                    if(project.getProId()==1740177341251154377L){
+//                                        OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                        detilsDto.setYpbm("00006670");
+//                                        detilsDto.setPcbm("06");
+//                                        detilsDto.setSl("1");
+//                                        detilsDto.setDj("60");
+//                                        detilsDto.setDcjl("1");
+//                                        detilsDto.setPj("60");
+//                                        detilsDto.setJj("60");
+//                                        detilsDto.setJldw("");
+//                                        detilsDto.setTjbm("");
+//                                        detilsDto.setPs("");
+//                                        detilsDto.setPsbm("");
+//                                        detilsDto.setYyts("");
+//                                        detilsDto.setXtph("");
+//                                        detilsDto.setScph("");
+//                                        detilsDto.setYpxq("");
+//                                        detilsDto.setCdbm("");
+//                                        detilsDto.setKfdw("");
+//                                        detilsDto.setYfdw("");
+//                                        detilsDto.setYysm("");
+//                                        detilsDto.setFzbl("1");
+//                                        detilsDto.setZh("0");
+//                                        outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                    }
+//                                }
+//                            }
+//                            if (!detailsDtos.isEmpty()) {
+//                                dto.setDetails(detailsDtos);
+//                                AjaxResult ajaxResult1 = controller.Outpintestapply(dto);
+//                                String result5 = getAjaxResult(ajaxResult1);
+//                                JSONObject object3 = getJSONObject(result5);
+//                                String code3 = object3.getStr("ResultCode");
+//                                if (code3.equals("0")) {
+//                                    List<OutpintestapplyDetailsDto> details = dto.getDetails();
+//                                    for (OutpintestapplyDetailsDto detail : details) {
+//                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                                        tree.setCardId(dto.getHisRegistrationId());
+//                                        tree.setPationid(customer.getPationId());
+//                                        JSONObject resultData = object3.getJSONObject("ResultData");
+//                                        tree.setSqdh(resultData.getStr("jysqdh"));
+//                                        tree.setFyhj(resultData.getStr("fyhj"));
+//                                        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"))
+//                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                                        }
+//                                        tree.setCreateTime(DateUtil.date());
+//                                        ltkjJianchajianyanTreeService.save(tree);
+//                                    }
+//                                    // 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);
+////                }
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//
+//                //闂ㄨ瘖妫�鏌ョ敵璇�
+////        List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+//                    wq.in(TjProject::getDeptId,deptService.getJcDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        for (TjProject project : projects) {
+//                            OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
+//                            outpinexamapplyDto.setHisRegistrationId(cardId);
+//                            outpinexamapplyDto.setSfzh(customer.getCusIdcard());
+//                            outpinexamapplyDto.setSqysbm(ysbm);
+//                            outpinexamapplyDto.setMzksbm(dept);
+//                            outpinexamapplyDto.setCzybm(ysbm);
+//                            outpinexamapplyDto.setCzyksbm(dept);
+//                            outpinexamapplyDto.setSfjz("0");
+//                            List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
+//                            if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
+//                                wrapper.eq(TjProject::getProParentId,project.getProId());
+//                                List<TjProject> list = projectService.list(wrapper);
+//                                for (TjProject tjProject : list) {
+//                                    if (StrUtil.isNotBlank(tjProject.getHisXmbm()) && tjProject.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                        detailsDto.setMxfyxmbm(tjProject.getHisXmbm());
+//                                        if (tjProject.getSfzhfy().equals("Y")) {
+//                                            detailsDto.setSfzhfy("1");
+//                                        } else {
+//                                            detailsDto.setSfzhfy("0");
+//                                        }
+//                                        detailsDto.setSl(tjProject.getSl());
+//                                        detailsDto.setProjg(tjProject.getProPrice());
+//                                        detailsDtoss.add(detailsDto);
+//                                    }
+//                                }
+//                                if(project.getProId()==1740177341251154377L){
+//                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                    detilsDto.setYpbm("00006670");
+//                                    detilsDto.setPcbm("06");
+//                                    detilsDto.setSl("1");
+//                                    detilsDto.setDj("60");
+//                                    detilsDto.setDcjl("1");
+//                                    detilsDto.setPj("60");
+//                                    detilsDto.setJj("60");
+//                                    detilsDto.setJldw("");
+//                                    detilsDto.setTjbm("");
+//                                    detilsDto.setPs("");
+//                                    detilsDto.setPsbm("");
+//                                    detilsDto.setYyts("");
+//                                    detilsDto.setXtph("");
+//                                    detilsDto.setScph("");
+//                                    detilsDto.setYpxq("");
+//                                    detilsDto.setCdbm("");
+//                                    detilsDto.setKfdw("");
+//                                    detilsDto.setYfdw("");
+//                                    detilsDto.setYysm("");
+//                                    detilsDto.setFzbl("1");
+//                                    detilsDto.setZh("0");
+//                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                }
+//                            }
+//                            if (!detailsDtoss.isEmpty()) {
+//                                outpinexamapplyDto.setDetails(detailsDtoss);
+//                                AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto);
+//                                String result6 = getAjaxResult(ajaxResult2);
+//                                JSONObject object5 = getJSONObject(result6);
+//                                String code4 = object5.getStr("ResultCode");
+//                                if (code4.equals("0")) {
+//                                    List<OutpintestapplyDetailsDto> details = outpinexamapplyDto.getDetails();
+//                                    for (OutpintestapplyDetailsDto detail : details) {
+//                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                                        tree.setJxbz(jxbz);
+//                                        tree.setCardId(outpinexamapplyDto.getHisRegistrationId());
+//                                        tree.setPationid(customer.getPationId());
+//                                        JSONObject resultData = object5.getJSONObject("ResultData");
+//                                        tree.setSqdh(resultData.getStr("jcsqdh"));
+//                                        tree.setFyhj(resultData.getStr("fyhj"));
+//                                        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"))
+//                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                                        }
+//                                        tree.setCreateTime(DateUtil.date());
+//                                        ltkjJianchajianyanTreeService.save(tree);
+//                                    }
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//
+//                //闂ㄨ瘖娌荤枟澶勭疆鐢宠
+//                OutpintreatapplyDto dao = new OutpintreatapplyDto();
+//                dao.setHisRegistrationId(cardId);
+//                dao.setSfzh(customer.getCusIdcard());
+//                dao.setSqysbm(ysbm);
+//                dao.setMzksbm(dept);
+//                dao.setSjrq(date);
+//                dao.setCzybm(ysbm);
+//                dao.setCzyksbm(dept);
+//                dao.setSfjz("0");
+////        List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+//                if (null != detailList && !detailList.isEmpty()) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+//                    wq.in(TjProject::getDeptId,deptService.getCzDeptIds());
+//                    List<TjProject> projects = projectService.list(wq);
+//                    if (null != projects && !projects.isEmpty()) {
+//                        for (TjProject project : projects) {
+//                            List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>();
+//                            if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
+//                                wrapper.eq(TjProject::getProParentId,project.getProId());
+//                                List<TjProject> list = projectService.list(wrapper);
+//                                for (TjProject tjProject : list) {
+//                                    if (StrUtil.isNotBlank(tjProject.getHisXmbm()) && tjProject.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+//                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+//                                        detailsDto.setMxfyxmbm(tjProject.getHisXmbm());
+//                                        if (tjProject.getSfzhfy().equals("Y")) {
+//                                            detailsDto.setSfzhfy("1");
+//                                        } else {
+//                                            detailsDto.setSfzhfy("0");
+//                                        }
+//                                        detailsDto.setSl(tjProject.getSl());
+//                                        detailsDto.setProjg(tjProject.getProPrice());
+//                                        detailDtos.add(detailsDto);
+//                                    }
+//                                }
+//                                if(project.getProId()==1740177341251154377L){
+//                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+//                                    detilsDto.setYpbm("00006670");
+//                                    detilsDto.setPcbm("06");
+//                                    detilsDto.setSl("1");
+//                                    detilsDto.setDj("60");
+//                                    detilsDto.setDcjl("1");
+//                                    detilsDto.setPj("60");
+//                                    detilsDto.setJj("60");
+//                                    detilsDto.setJldw("");
+//                                    detilsDto.setTjbm("");
+//                                    detilsDto.setPs("");
+//                                    detilsDto.setPsbm("");
+//                                    detilsDto.setYyts("");
+//                                    detilsDto.setXtph("");
+//                                    detilsDto.setScph("");
+//                                    detilsDto.setYpxq("");
+//                                    detilsDto.setCdbm("");
+//                                    detilsDto.setKfdw("");
+//                                    detilsDto.setYfdw("");
+//                                    detilsDto.setYysm("");
+//                                    detilsDto.setFzbl("1");
+//                                    detilsDto.setZh("0");
+//                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+//                                }
+//                            }
+//                            if (!detailDtos.isEmpty()) {
+//                                dao.setDetails(detailDtos);
+//                                AjaxResult mzylyzsq1 = controller.Outpintreatapply(dao);
+//                                String mzylyzsq2 = getAjaxResult(mzylyzsq1);
+//                                JSONObject mzylyzsq3 = getJSONObject(mzylyzsq2);
+//                                String code5 = mzylyzsq3.getStr("ResultCode");
+//                                if (code5.equals("0")) {
+//                                    List<OutpintestapplyDetailsDto> details1 = dao.getDetails();
+//                                    for (OutpintestapplyDetailsDto detail : details1) {
+//                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+//                                        tree.setJxbz(jxbz);
+//                                        tree.setCardId(dao.getHisRegistrationId());
+//                                        tree.setPationid(customer.getPationId());
+//                                        JSONObject resultData = mzylyzsq3.getJSONObject("ResultData");
+//                                        tree.setSqdh(resultData.getStr("zlczh"));
+//                                        tree.setFyhj(resultData.getStr("fyhj"));
+//                                        String mxfyxmbm = detail.getMxfyxmbm();
+//                                        tree.setHisXmdm(mxfyxmbm);
+//                                        tree.setType("澶勭疆");
+//                                        tree.setTjPrice(String.valueOf(detail.getProjg()));
+//                                        LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+//                                        if (detail.getSfzhfy().equals("1"))
+//                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+//                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+//                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+//                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+//                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+//                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+//                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+//                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+//                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+//                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+//                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+//                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+//                                        }
+//                                        tree.setCreateTime(DateUtil.date());
+//                                        ltkjJianchajianyanTreeService.save(tree);
+//                                    }
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//
+//                //鑽搧鐢宠
+//                if(!outpinmedicapplyDetilsDtos.isEmpty()){
+//                    OutpinmedicapplyDto dto1=new OutpinmedicapplyDto();
+//                    dto1.setHisRegistrationId(cardId);
+//                    dto1.setSfzh(customer.getCusIdcard());
+//                    dto1.setSqysbm(ysbm);
+//                    dto1.setMzksbm(dept);
+//                    dto1.setSjrq(date);
+//                    dto1.setCzybm(ysbm);
+//                    dto1.setCzyksbm(dept);
+//                    dto1.setCflxbm("A");
+//                    dto1.setYfbm("1");
+//                    dto1.setFyts("1");
+//                    dto1.setMzzd("");
+//                    dto1.setDetails(outpinmedicapplyDetilsDtos);
+//                    AjaxResult result = controller.Outpinmedicapply(dto1);
+//                    String result1 = getAjaxResult(result);
+//                    JSONObject object = getJSONObject(result1);
+//                    String code = object.getStr("ResultCode");
+//                    if(null !=code && code.equals("0")){
+//                        JSONObject resultData = object.getJSONObject("ResultData");
+////                Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0);
+//                        String cfh = resultData.getStr("cfh");
+//                        log.info("鑽搧鐢宠鍚庣殑澶勬柟鍙锋槸: "+cfh+"  outpinmedicapplyDetilsDtos 閲岄潰鐨勫�间负: "+outpinmedicapplyDetilsDtos.toString());
+//                        for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) {
+//                            TjCf cf=new TjCf();
+//                            cf.setJxbz(jxbz);
+//                            cf.setCardId(cardId);
+//                            cf.setSfzh(customer.getCusIdcard());
+//                            cf.setCfh(cfh);
+//                            cf.setSqysbm(ysbm);
+//                            cf.setSqysxm(ysmc);
+//                            cf.setMzksbn(dept);
+//                            cf.setSqrq(date);
+//                            cf.setCzybm(ysbm);
+//                            cf.setYpbm(detilsDto.getYpbm());
+//                            cf.setYpmc("灏跨礌[14C]鍛兼皵璇曢獙鑽洅");
+//                            cf.setSl(String.valueOf(detilsDto.getSl()));
+//                            cf.setDj(String.valueOf(detilsDto.getDj()));
+//                            cf.setDcjl(String.valueOf(detilsDto.getDcjl()));
+//                            cf.setPj(String.valueOf(detilsDto.getPj()));
+//                            cf.setJj(String.valueOf(detilsDto.getJj()));
+//                            cf.setCreateTime(new Date());
+//                            cfService.save(cf);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        return AjaxResult.success();
+//    }
+
+    public AjaxResult tijianbulushenqing(TjCustomer customer, String date,String cardId,String jxbz,ArrayList<TjProject> jianChaProjects,Boolean isTuanTiPiao) {
+        TjOrder order = orderService.getOrderByCardId(cardId);
+        if(null !=order){
+            String dept = configService.selectConfigByKey("request_default_dept");
+            String ysbm = configService.selectConfigByKey("request_default_ysbm");
+            String ysmc = configService.selectConfigByKey("request_default_ysmc");
+            String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
+            List<TbTransition> detailList = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(),cardId,jxbz);
+            Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+            List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>();
+            if (useLisAndPacsRegister && isTuanTiPiao) {
+                // 妫�鏌ョ敵璇�
+                pacsReg(order, customer, jianChaProjects);
+                LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(TjSampling::getTjNum,order.getTjNumber());
+                wrapper.eq(TjSampling::getJxbz,jxbz);
+                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());
+                        }
+                    }
+                    Boolean confirmed = samplingServiceApi.confirmSamplingApi(ids, "Y", "N");
+                    if (!confirmed)
+                        return AjaxResult.error("澶勭悊澶辫触");
+                }
+            }else {
+                List<TjOutpinmedicXm> outpinmedicXms = tjOutpinmedicXmService.list();
+                //妫�楠岀敵璇�
+                if (null != detailList && !detailList.isEmpty()) {
+                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+//            wq.groupBy(TjProject::getHisXmbm);
+//            wq.in(TjProject::getDeptId, "241", "317");
+                    wq.in(TjProject::getDeptId,deptService.getJyDeptIds());
+                    List<TjProject> projects = projectService.list(wq);
+                    if (null != projects && !projects.isEmpty()) {
+                        List<TjProject> notNull = projects.stream().filter(i -> i.getSpecimenType() != null).collect(Collectors.toList());
+                        List<TjProject> isNull = projects.stream().filter(i -> i.getSpecimenType() == null).collect(Collectors.toList());
+                        Map<String, List<TjProject>> listMap = notNull.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType));
+                        if (!isNull.isEmpty())
+                            listMap.put("",isNull);
+                        for (Map.Entry<String, List<TjProject>> entry : listMap.entrySet()) {
+                            OutpintestapplyDto dto = new OutpintestapplyDto();
+                            dto.setHisRegistrationId(cardId);
+                            dto.setSfzh(customer.getCusIdcard());
+                            dto.setSqysbm(ysbm);
+                            dto.setMzksbm(dept);
+                            dto.setSjrq(date);
+                            dto.setCzybm(ysbm);
+                            dto.setCzyksbm(dept);
+                            dto.setSfjz("0");
+                            List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
+                            List<TjProject> value = entry.getValue();
+                            for (TjProject project : value) {
+                                LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
+                                wrapper.eq(TjProject::getProParentId,project.getProId());
+                                List<TjProject> list = projectService.list(wrapper);
+                                for (TjProject tjProject : list) {
+                                    if (StrUtil.isNotBlank(tjProject.getHisXmbm()) && tjProject.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+                                        detailsDto.setMxfyxmbm(tjProject.getHisXmbm());
+                                        if (tjProject.getSfzhfy().equals("Y")) {
+                                            detailsDto.setSfzhfy("1");
+                                        } else {
+                                            detailsDto.setSfzhfy("0");
+                                        }
+                                        detailsDto.setSl(tjProject.getSl());
+                                        detailsDto.setProjg(tjProject.getProPrice());
+                                        detailsDtos.add(detailsDto);
+                                    }
+                                }
+                                if (!outpinmedicXms.isEmpty()) {
+                                    outpinmedicXms.stream().filter(i -> i.getProId().equals(project.getProId())).forEach(i -> {
+                                        OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+                                        detilsDto.setYpbm(i.getYpbm());
+                                        detilsDto.setPcbm(i.getPcbm());
+                                        detilsDto.setSl(i.getSl());
+                                        detilsDto.setDj(i.getDj());
+                                        detilsDto.setDcjl(i.getDcjl());
+                                        detilsDto.setPj(i.getPj());
+                                        detilsDto.setJj(i.getJj());
+                                        detilsDto.setJldw("");
+                                        detilsDto.setTjbm("");
+                                        detilsDto.setPs("");
+                                        detilsDto.setPsbm("");
+                                        detilsDto.setYyts("");
+                                        detilsDto.setXtph("");
+                                        detilsDto.setScph("");
+                                        detilsDto.setYpxq("");
+                                        detilsDto.setCdbm("");
+                                        detilsDto.setKfdw("");
+                                        detilsDto.setYfdw("");
+                                        detilsDto.setYysm("");
+                                        detilsDto.setYpmc(i.getYpmc());
+                                        detilsDto.setFzbl(i.getFzbl());
+                                        detilsDto.setZh(i.getZh());
+                                        outpinmedicapplyDetilsDtos.add(detilsDto);
+                                    });
+                                }
+                            }
+                            if (!detailsDtos.isEmpty()) {
+                                dto.setDetails(detailsDtos);
+                                AjaxResult ajaxResult1 = controller.Outpintestapply(dto);
+                                String result5 = getAjaxResult(ajaxResult1);
+                                JSONObject object3 = getJSONObject(result5);
+                                String code3 = object3.getStr("ResultCode");
+                                if (code3.equals("0")) {
+                                    List<OutpintestapplyDetailsDto> details = dto.getDetails();
+                                    for (OutpintestapplyDetailsDto detail : details) {
+                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                                        tree.setCardId(dto.getHisRegistrationId());
+                                        tree.setPationid(customer.getPationId());
+                                        JSONObject resultData = object3.getJSONObject("ResultData");
+                                        tree.setSqdh(resultData.getStr("jysqdh"));
+                                        tree.setFyhj(resultData.getStr("fyhj"));
+                                        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"))
+                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+                                        }
+                                        tree.setCreateTime(DateUtil.date());
+                                        ltkjJianchajianyanTreeService.save(tree);
+                                    }
+                                    // 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);
+//                }
+                                }
+                            }
+                        }
+                    }
+                }
+
+                //闂ㄨ瘖妫�鏌ョ敵璇�
+//        List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+                if (null != detailList && !detailList.isEmpty()) {
+                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+                    wq.in(TjProject::getDeptId,deptService.getJcDeptIds());
+                    List<TjProject> projects = projectService.list(wq);
+                    List<Long> proIds = projects.stream().map(TjProject::getProId).collect(Collectors.toList());
+                    if (!proIds.isEmpty()){
+                        QueryWrapper<TjProject> wrapper4 = new QueryWrapper<>();
+                        wrapper4.select("sum(sl) as sl","pro_id"
+                                ,"pro_parent_id","pro_name","his_xmbm","his_xmmc"
+                                ,"pro_price");
+                        wrapper4.in("pro_parent_id",proIds);
+                        wrapper4.groupBy("his_xmbm");
+                        projects = projectService.list(wrapper4);
+                        if (null != projects && !projects.isEmpty()) {
+                            List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
+                            for (TjProject project : projects) {
+                                if (project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+                                    if (StrUtil.isNotBlank(project.getHisXmbm()) && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+                                        detailsDto.setMxfyxmbm(project.getHisXmbm());
+                                        detailsDto.setSfzhfy("0");
+                                        detailsDto.setSl(project.getSl());
+                                        detailsDto.setProjg(project.getProPrice());
+                                        detailsDtoss.add(detailsDto);
+                                    }
+                                }
+                            }
+                            List<Long> proParentIds = projects.stream().map(TjProject::getProParentId).distinct().collect(Collectors.toList());
+                            if (!outpinmedicXms.isEmpty()) {
+                                outpinmedicXms.stream().filter(i -> proParentIds.contains(i.getProId())).forEach(i -> {
+                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+                                    detilsDto.setYpbm(i.getYpbm());
+                                    detilsDto.setPcbm(i.getPcbm());
+                                    detilsDto.setSl(i.getSl());
+                                    detilsDto.setDj(i.getDj());
+                                    detilsDto.setDcjl(i.getDcjl());
+                                    detilsDto.setPj(i.getPj());
+                                    detilsDto.setJj(i.getJj());
+                                    detilsDto.setJldw("");
+                                    detilsDto.setTjbm("");
+                                    detilsDto.setPs("");
+                                    detilsDto.setPsbm("");
+                                    detilsDto.setYyts("");
+                                    detilsDto.setXtph("");
+                                    detilsDto.setScph("");
+                                    detilsDto.setYpxq("");
+                                    detilsDto.setCdbm("");
+                                    detilsDto.setKfdw("");
+                                    detilsDto.setYfdw("");
+                                    detilsDto.setYysm("");
+                                    detilsDto.setYpmc(i.getYpmc());
+                                    detilsDto.setFzbl(i.getFzbl());
+                                    detilsDto.setZh(i.getZh());
+                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+                                });
+                            }
+                            if (!detailsDtoss.isEmpty()) {
+                                OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
+                                outpinexamapplyDto.setHisRegistrationId(cardId);
+                                outpinexamapplyDto.setSfzh(customer.getCusIdcard());
+                                outpinexamapplyDto.setSqysbm(ysbm);
+                                outpinexamapplyDto.setMzksbm(dept);
+                                outpinexamapplyDto.setCzybm(ysbm);
+                                outpinexamapplyDto.setCzyksbm(dept);
+                                outpinexamapplyDto.setSfjz("0");
+                                outpinexamapplyDto.setDetails(detailsDtoss);
+                                AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto);
+                                String result6 = getAjaxResult(ajaxResult2);
+                                JSONObject object5 = getJSONObject(result6);
+                                String code4 = object5.getStr("ResultCode");
+                                if (code4.equals("0")) {
+                                    List<OutpintestapplyDetailsDto> details = outpinexamapplyDto.getDetails();
+                                    for (OutpintestapplyDetailsDto detail : details) {
+                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                                        tree.setJxbz(jxbz);
+                                        tree.setCardId(outpinexamapplyDto.getHisRegistrationId());
+                                        tree.setPationid(customer.getPationId());
+                                        JSONObject resultData = object5.getJSONObject("ResultData");
+                                        tree.setSqdh(resultData.getStr("jcsqdh"));
+                                        tree.setFyhj(resultData.getStr("fyhj"));
+                                        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"))
+                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+                                        }
+                                        tree.setCreateTime(DateUtil.date());
+                                        ltkjJianchajianyanTreeService.save(tree);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+
+                //闂ㄨ瘖娌荤枟澶勭疆鐢宠
+                OutpintreatapplyDto dao = new OutpintreatapplyDto();
+                dao.setHisRegistrationId(cardId);
+                dao.setSfzh(customer.getCusIdcard());
+                dao.setSqysbm(ysbm);
+                dao.setMzksbm(dept);
+                dao.setSjrq(date);
+                dao.setCzybm(ysbm);
+                dao.setCzyksbm(dept);
+                dao.setSfjz("0");
+//        List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+                if (null != detailList && !detailList.isEmpty()) {
+                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+                    wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+                    wq.in(TjProject::getDeptId,deptService.getCzDeptIds());
+                    List<TjProject> projects = projectService.list(wq);
+                    List<Long> proIds = projects.stream().map(TjProject::getProId).collect(Collectors.toList());
+                    if (!proIds.isEmpty()){
+                        QueryWrapper<TjProject> wrapper4 = new QueryWrapper<>();
+                        wrapper4.select("sum(sl) as sl","pro_id"
+                                ,"pro_parent_id","pro_name","his_xmbm","his_xmmc"
+                                ,"pro_price");
+                        wrapper4.in("pro_parent_id",proIds);
+                        wrapper4.groupBy("his_xmbm");
+                        projects = projectService.list(wrapper4);
+                        if (null != projects && !projects.isEmpty()) {
+                            List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>();
+                            for (TjProject project : projects) {
+                                if (StrUtil.isNotBlank(project.getHisXmbm()) && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
+                                    detailsDto.setSfzhfy("0");
+                                    detailsDto.setSl(project.getSl());
+                                    detailsDto.setProjg(project.getProPrice());
+                                    detailDtos.add(detailsDto);
+                                }
+                            }
+                            List<Long> proParentIds = projects.stream().map(TjProject::getProParentId).distinct().collect(Collectors.toList());
+                            if (!outpinmedicXms.isEmpty()) {
+                                outpinmedicXms.stream().filter(i -> proParentIds.contains(i.getProId())).forEach(i -> {
+                                    OutpinmedicapplyDetilsDto detilsDto=new OutpinmedicapplyDetilsDto();
+                                    detilsDto.setYpbm(i.getYpbm());
+                                    detilsDto.setPcbm(i.getPcbm());
+                                    detilsDto.setSl(i.getSl());
+                                    detilsDto.setDj(i.getDj());
+                                    detilsDto.setDcjl(i.getDcjl());
+                                    detilsDto.setPj(i.getPj());
+                                    detilsDto.setJj(i.getJj());
+                                    detilsDto.setJldw("");
+                                    detilsDto.setTjbm("");
+                                    detilsDto.setPs("");
+                                    detilsDto.setPsbm("");
+                                    detilsDto.setYyts("");
+                                    detilsDto.setXtph("");
+                                    detilsDto.setScph("");
+                                    detilsDto.setYpxq("");
+                                    detilsDto.setCdbm("");
+                                    detilsDto.setKfdw("");
+                                    detilsDto.setYfdw("");
+                                    detilsDto.setYysm("");
+                                    detilsDto.setYpmc(i.getYpmc());
+                                    detilsDto.setFzbl(i.getFzbl());
+                                    detilsDto.setZh(i.getZh());
+                                    outpinmedicapplyDetilsDtos.add(detilsDto);
+                                });
+                            }
+                            if (!detailDtos.isEmpty()) {
+                                dao.setDetails(detailDtos);
+                                AjaxResult mzylyzsq1 = controller.Outpintreatapply(dao);
+                                String mzylyzsq2 = getAjaxResult(mzylyzsq1);
+                                JSONObject mzylyzsq3 = getJSONObject(mzylyzsq2);
+                                String code5 = mzylyzsq3.getStr("ResultCode");
+                                if (code5.equals("0")) {
+                                    List<OutpintestapplyDetailsDto> details1 = dao.getDetails();
+                                    for (OutpintestapplyDetailsDto detail : details1) {
+                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                                        tree.setJxbz(jxbz);
+                                        tree.setCardId(dao.getHisRegistrationId());
+                                        tree.setPationid(customer.getPationId());
+                                        JSONObject resultData = mzylyzsq3.getJSONObject("ResultData");
+                                        tree.setSqdh(resultData.getStr("zlczh"));
+                                        tree.setFyhj(resultData.getStr("fyhj"));
+                                        String mxfyxmbm = detail.getMxfyxmbm();
+                                        tree.setHisXmdm(mxfyxmbm);
+                                        tree.setType("澶勭疆");
+                                        tree.setTjPrice(String.valueOf(detail.getProjg()));
+                                        LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                                        if (detail.getSfzhfy().equals("1"))
+                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+                                            wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                                            wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
+                                        }
+                                        tree.setCreateTime(DateUtil.date());
+                                        ltkjJianchajianyanTreeService.save(tree);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+
+                //鑽搧鐢宠
+                if(!outpinmedicapplyDetilsDtos.isEmpty()){
+                    OutpinmedicapplyDto dto1=new OutpinmedicapplyDto();
+                    dto1.setHisRegistrationId(cardId);
+                    dto1.setSfzh(customer.getCusIdcard());
+                    dto1.setSqysbm(ysbm);
+                    dto1.setMzksbm(dept);
+                    dto1.setSjrq(date);
+                    dto1.setCzybm(ysbm);
+                    dto1.setCzyksbm(dept);
+                    dto1.setCflxbm("A");
+                    dto1.setYfbm("1");
+                    dto1.setFyts("1");
+                    dto1.setMzzd("");
+                    dto1.setDetails(outpinmedicapplyDetilsDtos);
+                    AjaxResult result = controller.Outpinmedicapply(dto1);
+                    String result1 = getAjaxResult(result);
+                    JSONObject object = getJSONObject(result1);
+                    String code = object.getStr("ResultCode");
+                    if(null !=code && code.equals("0")){
+                        JSONObject resultData = object.getJSONObject("ResultData");
+//                Map<String, Object> resultDatasss = (Map<String, Object>) resultData.get(0);
+                        String cfh = resultData.getStr("cfh");
+                        log.info("鑽搧鐢宠鍚庣殑澶勬柟鍙锋槸: "+cfh+"  outpinmedicapplyDetilsDtos 閲岄潰鐨勫�间负: "+outpinmedicapplyDetilsDtos.toString());
+                        for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) {
+                            TjCf cf=new TjCf();
+                            cf.setJxbz(jxbz);
+                            cf.setCardId(cardId);
+                            cf.setSfzh(customer.getCusIdcard());
+                            cf.setCfh(cfh);
+                            cf.setSqysbm(ysbm);
+                            cf.setSqysxm(ysmc);
+                            cf.setMzksbn(dept);
+                            cf.setSqrq(date);
+                            cf.setCzybm(ysbm);
+                            cf.setYpbm(detilsDto.getYpbm());
+                            cf.setYpmc(detilsDto.getYpmc());
+                            cf.setSl(String.valueOf(detilsDto.getSl()));
+                            cf.setDj(String.valueOf(detilsDto.getDj()));
+                            cf.setDcjl(String.valueOf(detilsDto.getDcjl()));
+                            cf.setPj(String.valueOf(detilsDto.getPj()));
+                            cf.setJj(String.valueOf(detilsDto.getJj()));
+                            cf.setCreateTime(new Date());
+                            cfService.save(cf);
                         }
                     }
                 }
             }
         }
-        //鐖堕」鑰楁潗
-        ArrayList<TjConsumables> collect = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
-        for (TjConsumables tjConsumables : collect) {
-            TjChargingStandard tjChargingStandard = new TjChargingStandard();
-            tjChargingStandard.setTjNum(order.getTjNumber());
-            tjChargingStandard.setConsumablesId(tjConsumables.getId());
-            tjChargingStandard.setPrice(tjConsumables.getPrice());
-            tjChargingStandard.setProName(tjConsumables.getMakings());
-            tjChargingStandard.setConsumablesName(tjConsumables.getMakings());
-            tjChargingStandard.setCompany(tjConsumables.getSpecifications());
-            tjChargingStandard.setCreateBy(sysUser.getNickName());
-            tjChargingStandard.setCreateTime(new Date());
-            tjChargingStandard.setUpdateBy(sysUser.getNickName());
-            tjChargingStandard.setUpdateTime(new Date());
-            tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
-            tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
-            chargingStandardService.save(tjChargingStandard);
+        return AjaxResult.success();
+    }
+
+    public void pacsReg(TjOrder order, TjCustomer customer, ArrayList<TjProject> jianChaProjects) {
+        List<TjProject> projectList1 = jianChaProjects.stream().distinct().collect(Collectors.toList());
+        JSONArray array = JSONUtil.createArray();
+        ArrayList<SavePacsApply> successPacsList = new ArrayList<>();
+        ArrayList<SavePacsApply> errorPacsList = new ArrayList<>();
+        int allTotal = 0;
+        try {
+            allTotal = pacsApiMethodService.saveProjects(order, customer, projectList1, array, successPacsList, errorPacsList);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            for (Object object : array) {
+                JSONObject jsonObject = (JSONObject) object;
+                pacsApiMethodService.updatePacsApply(jsonObject.getStr("regNo"), jsonObject.getStr("cardId"), jsonObject.getStr("name"));
+            }
+        }
+        log.info("妫�鏌ユ�昏 ->{}涓�", allTotal);
+        if (!errorPacsList.isEmpty()) {
+            log.info("鎴愬姛 ->{}", successPacsList);
+            log.error("澶辫触 ->{}", errorPacsList);
         }
     }
 
     @Override
     @Async("async")
     public void dockerSetCustomerLisByRedis(List<Long> ksproList, String ksId) {
+
         List<TjCustomer> yjAjaxResult = getYjAjaxResult(ksproList);
         List<TjCustomer> wjAjaxResult = getWjAjaxResult(ksproList);
-        redisCache.setCacheMapValue(ksId + "ks", "wj",wjAjaxResult);
-        redisCache.setCacheMapValue(ksId + "ks", "yj",yjAjaxResult);
+        redisCache.setCacheMapValue(ksId + "ks", "wj", wjAjaxResult);
+        redisCache.setCacheMapValue(ksId + "ks", "yj", yjAjaxResult);
+    }
+
+    @Override
+    @Async("async")
+    public void dockerSetYjCustomerByRedis(Long orderId, Long ksId) {
+        //宸叉(鍗曚釜瀛樺叆)0鏈,1宸叉
+        getDgYjAjaxResult(orderId, ksId);
+    }
+
+    @Override
+    @Async("async")
+    public void dockerSetWjCustomerByRedis(Long orderId, Long ksId) {
+
+        //鏈(鍗曚釜瀛樺叆)0鏈,1宸叉
+        getDgWjAjaxResult(orderId, ksId);
     }
 
     @Override
@@ -555,16 +2283,16 @@
     public void checkSetCustomerLisByRedis(String config) {
         List<TjCustomer> wsResult = getWsResult(config);
         List<TjCustomer> ysResult = getYsResult(config);
-        redisCache.setCacheMapValue("check", "ws",wsResult);
-        redisCache.setCacheMapValue("check", "ys",ysResult);
+        redisCache.setCacheMapValue("check", "ws", wsResult);
+        redisCache.setCacheMapValue("check", "ys", ysResult);
         //鏌ヨ
     }
 
     @Override
     @Async("async")
-    public void wCScheckSetCustomerLisByRedis( List<TjOrder> orderList) {
+    public void wCScheckSetCustomerLisByRedis(List<TjOrder> orderList) {
         List<TjCustomer> customerList = new ArrayList<>();
-        if(null !=orderList && orderList.size()>0){
+        if (null != orderList && orderList.size() > 0) {
             for (TjOrder tjOrder : orderList) {
                 if (null != tjOrder) {
                     TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
@@ -592,14 +2320,14 @@
                 }
             }
         }
-        redisCache.setCacheMapValue("cScheck", "ws",customerList);
+        redisCache.setCacheMapValue("cScheck", "ws", customerList);
     }
 
     @Override
     @Async("async")
-    public void yCScheckSetCustomerLisByRedis( List<TjOrder> orderList) {
+    public void yCScheckSetCustomerLisByRedis(List<TjOrder> orderList) {
         List<TjCustomer> customerList = new ArrayList<>();
-        if(null !=orderList && orderList.size()>0){
+        if (null != orderList && orderList.size() > 0) {
             for (TjOrder tjOrder : orderList) {
                 if (null != tjOrder) {
                     TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
@@ -627,7 +2355,7 @@
                 }
             }
         }
-        redisCache.setCacheMapValue("cScheck", "ys",customerList);
+        redisCache.setCacheMapValue("cScheck", "ys", customerList);
     }
 
 
@@ -638,33 +2366,37 @@
             LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
             wq0.eq(TjProject::getProParentId, refundPro.getProId());
             List<Long> collect = projectService.list(wq0).stream().map(TjProject::getProId).collect(Collectors.toList());
-            LambdaQueryWrapper<TjSampling>wq1=new LambdaQueryWrapper<>();
-            wq1.eq(TjSampling::getTjNum,tjNum);
-            wq1.in(TjSampling::getProId,collect);
+            LambdaQueryWrapper<TjSampling> wq1 = new LambdaQueryWrapper<>();
+            wq1.eq(TjSampling::getTjNum, tjNum);
+            wq1.in(TjSampling::getProId, collect);
             List<TjSampling> list = samplingService.list(wq1);
-            if(null !=list && list.size()>0) samplingService.removeByIds(list.stream().map(TjSampling::getId).collect(Collectors.toList()));
-            LambdaQueryWrapper<TjSampling>wq2=new LambdaQueryWrapper<>();
-            wq2.eq(TjSampling::getTjNum,tjNum);
-            wq2.eq(TjSampling::getProId,refundPro.getProId());
+            if (null != list && list.size() > 0)
+                samplingService.removeByIds(list.stream().map(TjSampling::getId).collect(Collectors.toList()));
+            LambdaQueryWrapper<TjSampling> wq2 = new LambdaQueryWrapper<>();
+            wq2.eq(TjSampling::getTjNum, tjNum);
+            wq2.eq(TjSampling::getProId, refundPro.getProId());
             samplingService.remove(wq2);
+            redisCache.deleteCacheMapValue("getOrderDetailByProParentId" + tjNum, String.valueOf(refundPro.getProId()));
         }
     }
 
     @Override
     @Async("async")
     public void saveSampling() {
-        redisCache.setCacheMapValue("sampling", "yqs",getYWqsResult(0));
-        redisCache.setCacheMapValue("sampling", "wqs",getYWqsResult(1));
+        redisCache.setCacheMapValue("sampling", "yqs", getYWqsResult(0));
+        redisCache.setCacheMapValue("sampling", "wqs", getYWqsResult(1));
     }
 
     @Override
     @Async("async")
     public void tjGoutAsync(List<QjDomainVo> domainVos, SysUser sysUser, Set<String> list) {
+        Integer day = 0;
         for (QjDomainVo domainVo : domainVos) {
+            day = domainVo.getDay();
             TjOrderRemark remark = orderRemarkService.getById(domainVo.getRemarkId());
             TjOrder order = orderService.getOrderByTjNum(domainVo.getTjNumber());
             //缁欏純妫�琛ㄦ坊鍔犺褰�
-            if(domainVo.getType().equals(2)){
+            if (domainVo.getType().equals(2)) {
                 TjDiscardInspection td = new TjDiscardInspection();
                 td.setProId(String.valueOf(remark.getProId()));
                 td.setProName(projectService.selectTjProjectByProId(remark.getProId()).getProName());
@@ -679,53 +2411,56 @@
                 td.setCreateId(String.valueOf(sysUser.getUserId()));
                 td.setUpdateId(String.valueOf(sysUser.getUserId()));
                 discardInspectionService.save(td);
+                redisCache.deleteCacheMapValue("getOrderDetailByProParentId" + domainVo.getTjNumber(), String.valueOf(remark.getProId()));
             }
 
-            LambdaQueryWrapper<TjProject>wq1=new LambdaQueryWrapper<>();
-            wq1.eq(TjProject::getProParentId,remark.getProId());
+            LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
+            wq1.eq(TjProject::getProParentId, remark.getProId());
+            wq1.eq(TjProject::getNeedReport, "Y");
             List<TjProject> projectList = projectService.list(wq1);
-            if(null !=projectList && projectList.size()>0){
+            if (null != projectList && projectList.size() > 0) {
                 List<Long> collect = projectList.stream().map(TjProject::getProId).collect(Collectors.toList());
-                LambdaQueryWrapper<TjOrderDetail>wq2=new LambdaQueryWrapper<>();
-                wq2.eq(TjOrderDetail::getOrderId,order.getOrderId());
-                wq2.in(TjOrderDetail::getProId,collect);
+                LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
+                wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
+                wq2.in(TjOrderDetail::getProId, collect);
                 List<TjOrderDetail> detailList = tjOrderDetailService.list(wq2);
-                if(null !=detailList && detailList.size()>0){
+                if (null != detailList && detailList.size() > 0) {
                     for (TjOrderDetail detail : detailList) {
                         detail.setTjStatus(Long.valueOf(remark.getType()));
-                        if(null !=remark.getRemark()) detail.setRemark(domainVo.getRemark());
-                        if(null !=remark.getYqDeadline()) detail.setYqDeadline(remark.getYqDeadline());
+                        if (null != remark.getRemark()) detail.setRemark(domainVo.getRemark());
+                        if (null != remark.getYqDeadline()) detail.setYqDeadline(remark.getYqDeadline());
                         tjOrderDetailService.updateById(detail);
                     }
                 }
             }
         }
         if (list.size() > 0) {
+            Date date = new Date();
             for (String s : list) {
                 TjOrder tjOrder = orderService.getOrderByTjNum(s);
                 if (null != tjOrder) {
                     tjOrder.setStatus(TjConstants.TJ_DELAY);
                     tjOrder.setFinishTime(null);
                     tjOrder.setUpdateBy(sysUser.getNickName());
-                    tjOrder.setUpdateTime(new DateTime());
+                    tjOrder.setUpdateTime(date);
                     tjOrder.setUpdateId(String.valueOf(sysUser.getUserId()));
                     orderService.updateById(tjOrder);
                     TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
-                    TjYqOrder yqOrder=new TjYqOrder();
+                    TjYqOrder yqOrder = new TjYqOrder();
                     yqOrder.setTjNum(s);
                     yqOrder.setCusName(customer.getCusName());
                     yqOrder.setSex(String.valueOf(customer.getCusSex()));
                     yqOrder.setAge(customer.getAge());
                     yqOrder.setPhone(customer.getCusPhone());
-                    yqOrder.setYqTime(new Date());
+                    yqOrder.setYqTime(DateUtil.offsetDay(date, day));
                     yqOrder.setOrderTime(tjOrder.getCreateTime());
                     yqOrder.setProIds(orderRemarkService.getTjOrderRemarkProIdList(s));
                     yqOrder.setEmilSend("0");
                     yqOrder.setMsgSend("0");
                     yqOrder.setCreateBy(sysUser.getNickName());
-                    yqOrder.setCreateTime(new DateTime());
+                    yqOrder.setCreateTime(date);
                     yqOrder.setUpdateBy(sysUser.getNickName());
-                    yqOrder.setUpdateTime(new DateTime());
+                    yqOrder.setUpdateTime(date);
                     yqOrder.setCreateId(String.valueOf(sysUser.getUserId()));
                     yqOrder.setUpdateId(String.valueOf(sysUser.getUserId()));
                     yqOrderService.save(yqOrder);
@@ -740,7 +2475,7 @@
         for (TjPackageProject tjPackageProject : ppList) {
             TjProject project = projectService.getById(tjPackageProject.getProId());
             if (null != project) {
-                BigDecimal divide = tjPackageProject.getPriceNow().divide(project.getProPrice(),5, RoundingMode.DOWN);
+                BigDecimal divide = tjPackageProject.getPriceNow().divide(project.getProPrice(), 5, RoundingMode.DOWN);
                 LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
                 wq2.eq(TjProject::getProParentId, project.getProId());
                 List<TjProject> tjProSonList = projectService.list(wq2);
@@ -751,8 +2486,8 @@
                         tbTransition.setPacId(pacId);
 
                         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));
+                            tbTransition.setNowPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
+                            tbTransition.setOrdPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
                         } else {
                             tbTransition.setNowPrice(BigDecimal.valueOf(0.00));
                             tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
@@ -775,12 +2510,12 @@
 
     @Override
     @Async("async")
-    public void saveRedisTransitionByPacId(String cusId, Long pacId,List<Long> proIds) {
-        if(null != pacId){
-            transitionService.saveRedisTransitionByPacId(cusId,pacId);
+    public void saveRedisTransitionByPacId(String cusId,String cardId, Long pacId, List<Long> proIds) {
+        if (null != pacId) {
+            transitionService.saveRedisTransitionByPacId(cusId,cardId ,pacId);
         }
-        if(null != proIds && proIds.size() > 0){
-            saveRedisTransitionByProId(cusId,proIds);
+        if (null != proIds && proIds.size() > 0) {
+            saveRedisTransitionByProId(cusId,cardId, proIds);
         }
     }
 
@@ -837,19 +2572,19 @@
         getTjPackageListByWoMan(tjPackageService.getTjPackageListByWoMan());
 
         //鏈煡
-        getTjPackageListByManAndWoMan(tjPackageService.list(new LambdaQueryWrapper<TjPackage>().eq(TjPackage::getPacStatus,0)));
+        getTjPackageListByManAndWoMan(tjPackageService.list(new LambdaQueryWrapper<TjPackage>().eq(TjPackage::getPacStatus, 0)));
     }
 
     @Override
     @Async("async")
-    public void addNewReservationConfirm(List<TjReservation> rightList ) {
-        if(null !=rightList && rightList.size()>0){
+    public void addNewReservationConfirm(List<TjReservation> rightList) {
+        if (null != rightList && rightList.size() > 0) {
             for (TjReservation reservation : rightList) {
                 transitionService.deletedTbTransitionByCusId(reservation.getIdCard());
                 List<AddNewReservationConfirm> confirmList = groupingProService.getAddNewReservationConfirm(reservation.getGroupingId());
-                if (null !=confirmList && confirmList.size()>0){
+                if (null != confirmList && confirmList.size() > 0) {
                     for (AddNewReservationConfirm confirm : confirmList) {
-                        List<TbTransition> transitionss = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(reservation.getIdCard(),confirm.getPid());
+                        List<TbTransition> transitionss = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(reservation.getIdCard(), confirm.getPid());
                         if (null != transitionss && transitionss.size() > 0) {
                             continue;
                         }
@@ -878,8 +2613,7 @@
     @Override
     @Async("async")
     public void saveNewReservationConfirm(List<TjReservation> rightList) {
-        long l = System.currentTimeMillis();
-        if(null !=rightList && rightList.size()>0){
+        if (null != rightList && rightList.size() > 0) {
             //鍒涘缓绾跨▼姹�
             ExecutorService threadPool = Executors.newFixedThreadPool(rightList.size());
             for (TjReservation reservation : rightList) {
@@ -890,7 +2624,8 @@
                     @Override
                     public void run() {
                         try {
-                            transitionService.saveTemoTransitionByGroupingId(reservation.getIdCard(),reservation.getGroupingId());
+//                            transitionService.saveTemoTransitionByGroupingId(reservation.getIdCard(), reservation.getGroupingId());
+                            transitionService.ttsaveTemoTransitionByGroupingId(reservation.getIdCard(),"0",reservation.getGroupingId());
 
                             threadPool.shutdown();
                         } catch (Exception e) {
@@ -900,24 +2635,21 @@
                 });
             }
         }
-        long ll = System.currentTimeMillis();
-
-        System.out.println("杩欐浠g爜鎵ц鏃堕棿涓�"+ (ll-l));
     }
 
     @Override
     @Async("async")
     public void updateCheckType(String tjNum) {
-//        AjaxResult ajaxResult = getAjaxResult(tjNum);
-        redisCache.setCacheMapValue("updateCheckType"+tjNum,tjNum,getAjaxResult(tjNum));
+        redisCache.setCacheMapValue("updateCheckType" + tjNum, tjNum, getAjaxResult(tjNum));
+        redisCache.setHashKeyExpireTime("updateCheckType" + tjNum, 7L, TimeUnit.DAYS);
     }
 
     @Override
     @Async("async")
     public void getPrintOrderList(List<TjOrder> list) {
 
-        redisCache.setCacheMapValue("getPrintOrderList","0",extracted(0, list));
-        redisCache.setCacheMapValue("getPrintOrderList","1",extracted(1, list));
+        redisCache.setCacheMapValue("getPrintOrderList", "0", extracted(0, list));
+        redisCache.setCacheMapValue("getPrintOrderList", "1", extracted(1, list));
 
     }
 
@@ -925,7 +2657,233 @@
     @Async("async")
     public void getDictSfxms() {
         List<DictSfxm> dictSfxm = getDictSfxm();
-        redisCache.setCacheObject("getDictSfxms",dictSfxm);
+        redisCache.setCacheObject("getDictSfxms", dictSfxm);
+    }
+
+    @Override
+    @Async("async")
+    public void getOrderDetailByProParentId(String tjNumber, Map<String, Object> map, String proParentId) {
+        if (null != map && !map.isEmpty()) {
+            redisCache.setCacheMapValue("getOrderDetailByProParentId" + tjNumber, proParentId, map);
+        } else {
+            redisCache.setCacheMapValue("getOrderDetailByProParentId" + tjNumber, proParentId, getOrderDetailByProParentId(proParentId, tjNumber));
+        }
+        redisCache.setHashKeyExpireTime("getOrderDetailByProParentId" + tjNumber, 7L, TimeUnit.DAYS);
+
+    }
+
+    @Override
+    @Async("async")
+    public void getLineChart() {
+        redisCache.setCacheObject("getLineChart", getLineCharts());
+    }
+
+    @Override
+    @Async("async")
+    public void getPieChart() {
+        redisCache.setCacheObject("getPieChart", getPieCharts());
+    }
+
+    @Override
+    public void addTjChargingStandard(TjOrder order, List<TbTransition> tbTransitionList, SysUser sysUser) {
+        List<TjConsumables> list2 = new ArrayList<>();
+        for (TbTransition transition : tbTransitionList) {
+
+            if (transition.getNowPrice().compareTo(BigDecimal.valueOf(0)) == 0) {
+                continue;
+            }
+
+            TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
+            //瀛愰」
+            if (null != tjProject) {
+                TjChargingStandard tjChargingStandard = new TjChargingStandard();
+                tjChargingStandard.setTjNum(order.getTjNumber());
+                tjChargingStandard.setProId(transition.getProId());
+                tjChargingStandard.setPrice(transition.getNowPrice());
+                tjChargingStandard.setProName(tjProject.getProName());
+                tjChargingStandard.setCreateBy(sysUser.getNickName());
+                tjChargingStandard.setCreateTime(new Date());
+                tjChargingStandard.setUpdateBy(sysUser.getNickName());
+                tjChargingStandard.setUpdateTime(new Date());
+                tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
+                tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
+                chargingStandardService.save(tjChargingStandard);
+            }
+        }
+
+        //鐖堕」
+        ArrayList<TbTransition> collect1 = tbTransitionList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TbTransition::getParentProId))), ArrayList::new));
+        List<Long> parentProIds = collect1.stream().map(TbTransition::getParentProId).collect(Collectors.toList());
+        if (parentProIds.size() > 0) {
+            for (Long parentProId : parentProIds) {
+                TjProject parentProject = projectService.selectTjProjectByProId(parentProId);
+                if (null != parentProject) {
+                    LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
+                    wqqq.eq(TjProConsumables::getProId, parentProject.getProId());
+                    List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
+                    if (null != proConsumables && proConsumables.size() > 0) {
+                        for (TjProConsumables tjProConsumables : proConsumables) {
+                            TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
+                            list2.add(tjConsumables);
+                        }
+                    }
+                }
+            }
+        }
+
+        ArrayList<TjConsumables> collect = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
+        for (TjConsumables tjConsumables : collect) {
+            TjChargingStandard tjChargingStandard = new TjChargingStandard();
+            tjChargingStandard.setTjNum(order.getTjNumber());
+            tjChargingStandard.setConsumablesId(tjConsumables.getId());
+            tjChargingStandard.setPrice(tjConsumables.getPrice());
+            tjChargingStandard.setProName(tjConsumables.getMakings());
+            tjChargingStandard.setConsumablesName(tjConsumables.getMakings());
+            tjChargingStandard.setCompany(tjConsumables.getSpecifications());
+            tjChargingStandard.setCreateBy(sysUser.getNickName());
+            tjChargingStandard.setCreateTime(new Date());
+            tjChargingStandard.setUpdateBy(sysUser.getNickName());
+            tjChargingStandard.setUpdateTime(new Date());
+            tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
+            tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
+            chargingStandardService.save(tjChargingStandard);
+        }
+
+        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(order.getOrderId());
+        addCaiYangDengJi(detailList, detailList.size() > 0, order, sysUser,null);
+    }
+
+
+
+    //棣栭〉楗肩姸鍥剧櫥璁颁汉鏁版帴鍙�
+    private AjaxResult getPieCharts() {
+        Map<String, Object> map = new HashMap<>();
+
+        Date date=new Date();
+
+        //鑾峰彇浣撴鐧昏鏁�
+        LambdaQueryWrapper<TjOrder> wq0 = new LambdaQueryWrapper<>();
+        wq0.between(TjOrder::getCreateTime,DateUtil.offsetMonth(date,-1),date);
+        List<TjOrder> orderCountList = orderService.list(wq0);
+        if (null != orderCountList && !orderCountList.isEmpty()) {
+            List<PieChartVo> pieChartVoList = getTjorderCountMap(orderCountList);
+            map.put("tjdj", pieChartVoList);
+        } else {
+            map.put("tjdj", 0);
+        }
+        //鑾峰彇浣撴寮傚父鏁�
+        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+        wq1.between(TjOrder::getCreateTime,DateUtil.offsetMonth(date,-1),date);
+//        wq1.isNotNull(TjOrder::getFinishTime);
+//        wq1.eq(TjOrder::getCheckStatus, 1);
+        List<TjOrder> orderList = orderService.list(wq1);
+        if (null !=orderList && !orderList.isEmpty()) {
+//            List<TjOrder> orderList = orderAbnormalCountList.stream().distinct().collect(Collectors.toList());
+            List<PieChartVo> pieChartVoList = getTjorderAbnormalCountMap(orderList);
+            map.put("tjyc", pieChartVoList);
+        } else {
+            map.put("tjyc", 0);
+        }
+
+        return AjaxResult.success(map);
+    }
+
+    //棣栭〉鎶樼嚎鍥炬暟鎹�
+    private AjaxResult getLineCharts() {
+//        List<Map<Object, Object>> line = orderService.getLine();
+        List<LineChartsVo> line = orderService.getLine();
+        Collections.reverse(line);
+        return AjaxResult.success("鎶樼嚎鍥炬暟鎹�", line);
+    }
+
+
+    //鑾峰彇浣撴鐧昏鏁�
+    private List<PieChartVo> getTjorderCountMap(List<TjOrder> orderList) {
+        int a = 0;
+        int b = 0;
+        int c = 0;
+        int d = 0;
+        int e = 0;
+        Map<String, Object> map = null;
+        for (TjOrder tjOrder : orderList) {
+            map = new HashMap<>();
+            TjCustomer customer = tjCustomerService.getById(tjOrder.getUserId());
+            if (null != customer) {
+                int age = DateUtil.ageOfNow(customer.getCusBrithday());
+                if (age >= 0 && age <= 3) {
+                    a += 1;
+                } else if (age > 3 && age <= 16) {
+                    b += 1;
+                } else if (age > 16 && age <= 40) {
+                    c += 1;
+                } else if (age > 40 && age <= 60) {
+                    d += 1;
+                } else {
+                    e += 1;
+                }
+            }
+            map.put("0-3宀�", a);
+            map.put("3-16宀�", b);
+            map.put("16-40宀�", c);
+            map.put("40-60宀�", d);
+            map.put("60宀佷互涓�", e);
+        }
+        List<PieChartVo> pieChartVoList = new ArrayList<>();
+        assert map != null;
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
+            PieChartVo pieChartVo = new PieChartVo();
+            pieChartVo.setName(entry.getKey());
+            pieChartVo.setCount((Integer) entry.getValue());
+            pieChartVoList.add(pieChartVo);
+        }
+        return pieChartVoList;
+    }
+
+    //鑾峰彇浣撴寮傚父鏁�
+    private List<PieChartVo> getTjorderAbnormalCountMap(List<TjOrder> orderList) {
+        int a = 0;
+        int b = 0;
+        int c = 0;
+        int d = 0;
+        int e = 0;
+        Map<String, Object> map = new HashMap<>();
+        for (TjOrder tjOrder : orderList) {
+            LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
+            wq.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
+            wq.eq(TjOrderDetail::getExceptionDesc, 1);
+            List<TjOrderDetail> list = tjOrderDetailService.list(wq);
+            int count = hysqdService.getHyYcXmCount(tjOrder.getCardId());
+            if ((null != list && !list.isEmpty()) || (count>0)) {
+                TjCustomer customer = tjCustomerService.getById(tjOrder.getUserId());
+                if (null != customer) {
+                    int age = DateUtil.ageOfNow(customer.getCusBrithday());
+                    if (age >= 0 && age <= 3) {
+                        a += 1;
+                    } else if (age > 3 && age <= 16) {
+                        b += 1;
+                    } else if (age > 16 && age <= 40) {
+                        c += 1;
+                    } else if (age > 40 && age <= 60) {
+                        d += 1;
+                    } else {
+                        e += 1;
+                    }
+                }
+            }
+        }
+        map.put("0-3宀�", a);
+        map.put("3-16宀�", b);
+        map.put("16-40宀�", c);
+        map.put("40-60宀�", d);
+        map.put("60宀佷互涓�", e);
+        List<PieChartVo> pieChartVoList = new ArrayList<>();
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
+            PieChartVo pieChartVo = new PieChartVo();
+            pieChartVo.setName(entry.getKey());
+            pieChartVo.setCount((Integer) entry.getValue());
+            pieChartVoList.add(pieChartVo);
+        }
+        return pieChartVoList;
     }
 
     private List<DictSfxm> getDictSfxm() {
@@ -944,8 +2902,9 @@
         }
         return dictSfxms;
     }
+
     private List<TjOrder> extracted(Integer type, List<TjOrder> list) {
-        List<TjOrder> list1=new ArrayList<>();
+        List<TjOrder> list1 = new ArrayList<>();
         for (TjOrder order : list) {
             TjCustomer tjCustomer = tjCustomerService.selectTjCustomerByCusId(order.getUserId());
             if (null != tjCustomer) {
@@ -953,8 +2912,10 @@
                 order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                 order.setGrMoBanId(reportService.getGrMoBanIds());
                 order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
-                if(null!=tjCustomer.getCusPhone())order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
-                if(null!=tjCustomer.getCusIdcard())order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
+                if (null != tjCustomer.getCusPhone())
+                    order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
+                if (null != tjCustomer.getCusIdcard())
+                    order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
             }
             String firmId = order.getFirmId();
             if (firmId != null && null != compService.selectDictCompByDrugManufacturerId(String.valueOf(order.getFirmId()))) {
@@ -983,6 +2944,7 @@
         }
         return list1;
     }
+
     private void getTjPackageListsByMan(List<TjPackage> tjPackageList) {
         if (null != tjPackageList && tjPackageList.size() > 0) {
             for (TjPackage aPackage : tjPackageList) {
@@ -1020,12 +2982,13 @@
                 aPackage.setAllProName(allProName.toString());
                 aPackage.setAllSonName(allSonName);
             }
-            if(redisCache.hasKey("getTjPackageListBySex")){
-                redisCache.deleteCacheMapValue("getTjPackageListBySex","getTjPackageListByMan");
+            if (redisCache.hasKey("getTjPackageListBySex")) {
+                redisCache.deleteCacheMapValue("getTjPackageListBySex", "getTjPackageListByMan");
             }
-            redisCache.setCacheMapValue("getTjPackageListBySex","getTjPackageListByMan",tjPackageList);
+            redisCache.setCacheMapValue("getTjPackageListBySex", "getTjPackageListByMan", tjPackageList);
         }
     }
+
     private void getTjPackageListByWoMan(List<TjPackage> tjPackageList) {
         if (null != tjPackageList && tjPackageList.size() > 0) {
             for (TjPackage aPackage : tjPackageList) {
@@ -1063,12 +3026,13 @@
                 aPackage.setAllProName(allProName.toString());
                 aPackage.setAllSonName(allSonName);
             }
-            if(redisCache.hasKey("getTjPackageListBySex")){
-                redisCache.deleteCacheMapValue("getTjPackageListBySex","getTjPackageListByWoMan");
+            if (redisCache.hasKey("getTjPackageListBySex")) {
+                redisCache.deleteCacheMapValue("getTjPackageListBySex", "getTjPackageListByWoMan");
             }
-            redisCache.setCacheMapValue("getTjPackageListBySex","getTjPackageListByWoMan",tjPackageList);
+            redisCache.setCacheMapValue("getTjPackageListBySex", "getTjPackageListByWoMan", tjPackageList);
         }
     }
+
     private void getTjPackageListByManAndWoMan(List<TjPackage> tjPackageList) {
         if (null != tjPackageList && tjPackageList.size() > 0) {
             for (TjPackage aPackage : tjPackageList) {
@@ -1094,15 +3058,14 @@
                 aPackage.setAllProName(allProName.toString());
                 aPackage.setAllSonName(allSonName);
             }
-            if(redisCache.hasKey("getTjPackageListBySex")){
-                redisCache.deleteCacheMapValue("getTjPackageListBySex","getTjPackageListByManAndWoMan");
+            if (redisCache.hasKey("getTjPackageListBySex")) {
+                redisCache.deleteCacheMapValue("getTjPackageListBySex", "getTjPackageListByManAndWoMan");
             }
-            redisCache.setCacheMapValue("getTjPackageListBySex","getTjPackageListByManAndWoMan",tjPackageList);
+            redisCache.setCacheMapValue("getTjPackageListBySex", "getTjPackageListByManAndWoMan", tjPackageList);
         }
     }
 
-
-    //宸叉
+    //宸叉(鏁翠綋瀛樺叆)
     public List<TjCustomer> getYjAjaxResult(List<Long> ksproList) {
         List<TjCustomer> customerLis = new ArrayList<>();
         LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -1117,9 +3080,10 @@
                     () -> new TreeSet<>(Comparator.comparing(TjOrderDetail::getOrderId))
             ), ArrayList::new)).stream().map(TjOrderDetail::getOrderId).collect(Collectors.toList());
             for (Long orderId : orderIds) {
+
                 if (null != orderId) {
                     TjOrder order = orderService.getById(orderId);
-                    if(null ==order){
+                    if (null == order) {
                         continue;
                     }
                     LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
@@ -1133,6 +3097,14 @@
 
                     TjCustomer customer = tjCustomerService.getById(order.getUserId());
                     if (null != customer) {
+                        //閬嶅巻椤圭洰 鍒ゆ柇鏄惁鏈夐噸澶ч槼鎬�  鏍囪
+                        for (TjOrderDetail tjOrderDetail11 : lists) {
+                            customer.setIsPositive(tjOrderDetail11.getIsPositive());
+                            if (tjOrderDetail11.getIsPositive() == 1) {
+                                break;
+                            }
+                        }
+
                         customer.setCusName(hideCusName(customer.getCusName()));
                         customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
                         customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
@@ -1145,9 +3117,12 @@
                         customer.setTjTime(order.getCreateTime());
                         customer.setTjNumber(order.getTjNumber());
                         customer.setTjStatus(1L);
+                        customer.setOrderId(order.getOrderId());
+                        customer.setIsHz(order.getIsHz());
+                        customer.setTjCategory(order.getTjCategory());
                         LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
                         wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
-                        wq.in(TjOrderRemark::getType, 0,3);
+                        wq.in(TjOrderRemark::getType, 0, 3);
                         List<TjOrderRemark> list = orderRemarkService.list(wq);
                         if (null != list && list.size() > 0) {
                             StringBuilder stringBuilder = new StringBuilder();
@@ -1156,7 +3131,7 @@
                                 stringBuilder.append(byId.getProName()).append(";");
                             }
                             customer.setNotCheckeds(String.valueOf(stringBuilder));
-                            if(null ==customer.getNotCheckeds())customer.setNotCheckeds("鍏ㄩ儴宸叉");
+                            if (null == customer.getNotCheckeds()) customer.setNotCheckeds("鍏ㄩ儴宸叉");
                         }
                         customerLis.add(customer);
                     }
@@ -1166,7 +3141,7 @@
         return customerLis;
     }
 
-    //鏈
+    //鏈(鏁翠綋瀛樺叆)
     public List<TjCustomer> getWjAjaxResult(List<Long> ksproList) {
         List<TjCustomer> customerLis = new ArrayList<>();
         LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -1181,13 +3156,32 @@
                     () -> new TreeSet<>(Comparator.comparing(TjOrderDetail::getOrderId))
             ), ArrayList::new)).stream().map(TjOrderDetail::getOrderId).collect(Collectors.toList());
             for (Long orderId : orderIds) {
+//                for (Long aLong : ksproList) {
+//                    getDgWjAjaxResult(orderId,aLong);
+//                }
                 if (null != orderId) {
                     TjOrder order = orderService.getById(orderId);
-                    if(null ==order){
+                    if (null == order) {
                         continue;
                     }
+
                     TjCustomer customer = tjCustomerService.getById(order.getUserId());
+
                     if (null != customer) {
+                        LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
+                        qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
+                        qww.isNotNull(TjOrderDetail::getFlowingWaterId);
+                        List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
+                        if (null != lists) {
+                            //閬嶅巻椤圭洰 鍒ゆ柇鏄惁鏈夐噸澶ч槼鎬�  鏍囪
+                            for (TjOrderDetail tjOrderDetail11 : lists) {
+                                customer.setIsPositive(tjOrderDetail11.getIsPositive());
+                                if (tjOrderDetail11.getIsPositive() == 1) {
+                                    break;
+                                }
+                            }
+                        }
+
                         customer.setCusName(hideCusName(customer.getCusName()));
                         customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
                         customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
@@ -1200,20 +3194,27 @@
                         }
                         customer.setTjTime(order.getCreateTime());
                         customer.setTjNumber(order.getTjNumber());
+                        customer.setOrderId(order.getOrderId());
+                        customer.setIsHz(order.getIsHz());
+                        customer.setTjCategory(order.getTjCategory());
                         customer.setTjStatus(0L);
                         LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
                         wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
-                        wq.in(TjOrderRemark::getType, 0,3);
+                        wq.in(TjOrderRemark::getType, 0, 3);
                         List<TjOrderRemark> list = orderRemarkService.list(wq);
                         if (null != list && list.size() > 0) {
                             StringBuilder stringBuilder = new StringBuilder();
                             for (TjOrderRemark remark : list) {
                                 TjProject byId = projectService.getById(remark.getProId());
-                                stringBuilder.append(byId.getProName()).append(";");
+                                if (null != byId) {
+                                    stringBuilder.append(byId.getProName()).append(";");
+                                }
+
                             }
                             customer.setNotCheckeds(String.valueOf(stringBuilder));
-                            if(null ==customer.getNotCheckeds())customer.setNotCheckeds("鍏ㄩ儴宸叉");
+                            if (null == customer.getNotCheckeds()) customer.setNotCheckeds("鍏ㄩ儴宸叉");
                         }
+
                         customerLis.add(customer);
                     }
                 }
@@ -1222,22 +3223,139 @@
         return customerLis;
     }
 
+    //宸叉(鍗曚釜瀛樺叆)0鏈,1宸叉
+    public void getDgYjAjaxResult(Long orderId, Long ksId) {
+        if (null != orderId) {
+            TjOrder order = orderService.getById(orderId);
+            if (null != order) {
+                LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
+                qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
+                qww.eq(TjOrderDetail::getTjStatus, 0);
+                qww.isNotNull(TjOrderDetail::getFlowingWaterId);
+                TjCustomer customer = tjCustomerService.getById(order.getUserId());
+                List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
+                if (null == lists || lists.size() == 0) {
+                    redisCache.deleteCacheMapValue("ks" + ksId + customer.getCusId(), "1");
+                    redisCache.setCacheMapValue("ks:" + ksId + ":" + customer.getCusId(), "0", customer);
+                }
+                if (null != customer) {
+                    //閬嶅巻椤圭洰 鍒ゆ柇鏄惁鏈夐噸澶ч槼鎬�  鏍囪
+                    for (TjOrderDetail tjOrderDetail11 : lists) {
+                        customer.setIsPositive(tjOrderDetail11.getIsPositive());
+                        if (tjOrderDetail11.getIsPositive() == 1) {
+                            break;
+                        }
+                    }
+                    customer.setCusName(hideCusName(customer.getCusName()));
+                    customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
+                    customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
+                    if (order.getTjType().equals("1")) {
+                        customer.setTjType("鍥綋");
+                    }
+                    if (order.getTjType().equals("2")) {
+                        customer.setTjType("涓汉");
+                    }
+                    customer.setTjTime(order.getCreateTime());
+                    customer.setTjNumber(order.getTjNumber());
+                    customer.setTjStatus(1L);
+                    customer.setOrderId(order.getOrderId());
+                    customer.setIsHz(order.getIsHz());
+                    customer.setTjCategory(order.getTjCategory());
+                    LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
+                    wq.in(TjOrderRemark::getType, 0, 3);
+                    List<TjOrderRemark> list = orderRemarkService.list(wq);
+                    if (null != list && list.size() > 0) {
+                        StringBuilder stringBuilder = new StringBuilder();
+                        for (TjOrderRemark remark : list) {
+                            TjProject byId = projectService.getById(remark.getProId());
+                            stringBuilder.append(byId.getProName()).append(";");
+                        }
+                        customer.setNotCheckeds(String.valueOf(stringBuilder));
+                        if (null == customer.getNotCheckeds()) customer.setNotCheckeds("鍏ㄩ儴宸叉");
+                    }
+                    redisCache.setCacheMapValue("ks:" + ksId + ":" + customer.getCusId(), "1", customer);
+                }
+            }
+        }
+    }
+
+
+    //鏈(鍗曚釜瀛樺叆)0鏈,1宸叉
+    public void getDgWjAjaxResult(Long orderId, Long ksId) {
+        if (null != orderId) {
+            TjOrder order = orderService.getById(orderId);
+            if (null == order) {
+                TjCustomer customer = tjCustomerService.getById(order.getUserId());
+                if (null != customer) {
+                    LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
+                    qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
+                    qww.isNotNull(TjOrderDetail::getFlowingWaterId);
+                    List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
+                    if (null != lists) {
+                        //閬嶅巻椤圭洰 鍒ゆ柇鏄惁鏈夐噸澶ч槼鎬�  鏍囪
+                        for (TjOrderDetail tjOrderDetail11 : lists) {
+                            customer.setIsPositive(tjOrderDetail11.getIsPositive());
+                            if (tjOrderDetail11.getIsPositive() == 1) {
+                                break;
+                            }
+                        }
+                    }
+
+                    customer.setCusName(hideCusName(customer.getCusName()));
+                    customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
+                    customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
+
+                    if (order.getTjType().equals("1")) {
+                        customer.setTjType("鍥綋");
+                    }
+                    if (order.getTjType().equals("2")) {
+                        customer.setTjType("涓汉");
+                    }
+                    customer.setTjTime(order.getCreateTime());
+                    customer.setTjNumber(order.getTjNumber());
+                    customer.setOrderId(order.getOrderId());
+                    customer.setIsHz(order.getIsHz());
+                    customer.setTjCategory(order.getTjCategory());
+                    customer.setTjStatus(0L);
+                    LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
+                    wq.in(TjOrderRemark::getType, 0, 3);
+                    List<TjOrderRemark> list = orderRemarkService.list(wq);
+                    if (null != list && list.size() > 0) {
+                        StringBuilder stringBuilder = new StringBuilder();
+                        for (TjOrderRemark remark : list) {
+                            TjProject byId = projectService.getById(remark.getProId());
+                            stringBuilder.append(byId.getProName()).append(";");
+                        }
+                        customer.setNotCheckeds(String.valueOf(stringBuilder));
+                        if (null == customer.getNotCheckeds()) customer.setNotCheckeds("鍏ㄩ儴宸叉");
+                    }
+//                        redisCache.setCacheMapValue("ks"+ksId+":"+customer.getCusId(),"1",customer);
+                    redisCache.setCacheMapValue("ks" + ksId + ":" + customer.getCusId(), "0", customer);
+                }
+            }
+        }
+    }
+
+
     //宸插
     private List<TjCustomer> getYsResult(String config) {
         List<TjOrder> orderList = null;
-        if("Y".equals(config)){
-            orderList = orderService.getCsTjOrderList1(null,1,null,null,null);
-        }else {
-            orderList = orderService.getTjOrderList(null,1,null,null,null);
+        if ("Y".equals(config)) {
+            orderList = orderService.getCsTjOrderList1(null, 1, null, null, null);
+        } else {
+            orderList = orderService.getTjOrderList(null, 1, null, null, null);
         }
         List<TjCustomer> customerList = new ArrayList<>();
-        if(null !=orderList && orderList.size()>0){
+        if (null != orderList && orderList.size() > 0) {
             for (TjOrder tjOrder : orderList) {
                 if (null != tjOrder) {
                     TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
                     if (customer == null) {
                         continue;
                     }
+
                     customer.setCusName(hideCusName(customer.getCusName()));
                     customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
                     customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
@@ -1247,6 +3365,7 @@
                     customer.setTjTime(tjOrder.getCreateTime());
                     customer.setFinishTime(tjOrder.getFinishTime());
                     customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+                    customer.setTjCategory(tjOrder.getTjCategory());
                     if (tjOrder.getFirmId() == null) {
                         customer.setTjCompName("鏃�");
                     } else {
@@ -1265,13 +3384,13 @@
     //鏈
     private List<TjCustomer> getWsResult(String config) {
         List<TjOrder> orderList = null;
-        if("Y".equals(config)){
-            orderList = orderService.getCsTjOrderList1(null,0,null,null,null);
-        }else {
-            orderList = orderService.getTjOrderList(null,0,null,null,null);
+        if ("Y".equals(config)) {
+            orderList = orderService.getCsTjOrderList1(null, 0, null, null, null);
+        } else {
+            orderList = orderService.getTjOrderList(null, 0, null, null, null);
         }
         List<TjCustomer> customerList = new ArrayList<>();
-        if(null !=orderList && orderList.size()>0) {
+        if (null != orderList && orderList.size() > 0) {
             for (TjOrder tjOrder : orderList) {
                 if (null != tjOrder) {
                     TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
@@ -1287,6 +3406,7 @@
                     customer.setTjTime(tjOrder.getCreateTime());
                     customer.setFinishTime(tjOrder.getFinishTime());
                     customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+                    customer.setTjCategory(tjOrder.getTjCategory());
                     if (tjOrder.getFirmId() == null) {
                         customer.setTjCompName("鏃�");
                     } else {
@@ -1302,15 +3422,24 @@
         return customerList;
     }
 
+    //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡
+    public JSONObject getJSONObject(String builder) {
+        String Response = JSONUtil.parseObj(builder).getStr("Response");
+        return JSONUtil.parseObj(Response);
+    }
+
+    //鑾峰彇鏂规硶杩斿洖鍊间俊鎭�
+    public String getAjaxResult(AjaxResult result) {
+        return result.get("data").toString();
+    }
+
     //鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏
-    private AjaxResult getAjaxResult(String tjNumber) {
+    private List<Map<String, Object>> getAjaxResult(String tjNumber) {
         List<Map<String, Object>> list = new ArrayList<>();
         TjOrder one = orderService.getOrderByTjNum(tjNumber);
-
         if (one == null) {
-            return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+            return list;
         }
-
         TjCustomer customer = tjCustomerService.getById(one.getUserId());
         List<TjOrderRemark> remarkList = orderRemarkService.getRemarkListByTjNumAndType(tjNumber);
 
@@ -1327,7 +3456,11 @@
                 if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                     for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                         final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
-                        tjOrderDetail.setProject(byId);
+                        if (null == byId) {
+                            tjOrderDetailService.removeById(tjOrderDetail.getOrderDetailId());
+                        } else {
+                            tjOrderDetail.setProject(byId);
+                        }
                         List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
                         if (list2.size() == 0) {
                             tjOrderDetail.setStandard(new TjStandard());
@@ -1335,15 +3468,20 @@
                             tjOrderDetail.setStandard(list2.get(0));
                         } else {
                             final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()));
-                            TjStandard tjStandard1=tjStandardService.getListBySexAndType(customer.getCusSex(),ageType, String.valueOf(tjOrderDetail.getProId()));
+                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId()));
                             tjOrderDetail.setStandard(tjStandard1);
                         }
                     }
                     String summary = remark.getSummary();
                     if (null != summary) {
                         String[] split = summary.split(";");
-                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(Arrays.asList(split)));
-
+//                        List<Long> longList = new ArrayList<>();
+//                        for (String str : split) {
+//                            if(!"".equals(str)){
+//                                longList.add(Long.valueOf(str));
+//                            }
+//                        }
+                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
                     } else {
                         parent.put("parentAdvice", null);
                     }
@@ -1353,29 +3491,25 @@
                         parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName());
                     }
                     list.add(parent);
-                } else {
-                    return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
                 }
-//                }
             }
-            return AjaxResult.success(list);
         }
-        return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁锛�");
+        return list;
     }
 
     //宸茬鏀�/鏈鏀�
-    private List<Map<String, Object>>  getYWqsResult(int a) {
-        LambdaQueryWrapper<TjSampling>wq=new LambdaQueryWrapper<>();
-        List<Map<String,Object>> arrayList=new ArrayList<>();
+    private List<Map<String, Object>> getYWqsResult(int a) {
+        LambdaQueryWrapper<TjSampling> wq = new LambdaQueryWrapper<>();
+        List<Map<String, Object>> arrayList = new ArrayList<>();
         wq.orderByDesc(TjSampling::getApplicationTime);
-        wq.eq(TjSampling::getIsSignFor,a);
+        wq.eq(TjSampling::getIsSignFor, a);
         List<TjSampling> list = tjSamplingService.list(wq);
-        if(null != list && list.size()>0 ){
+        if (null != list && list.size() > 0) {
             Map<String, List<TjSampling>> stringListMap = list.stream().collect(Collectors.groupingBy(TjSampling::getCusId));
             for (Map.Entry<String, List<TjSampling>> entry : stringListMap.entrySet()) {
-                Map<String,Object>map=new HashMap<>();
+                Map<String, Object> map = new HashMap<>();
                 TjCustomer customer = tjCustomerService.getById(entry.getKey());
-                if (customer==null){
+                if (customer == null) {
                     continue;
                 }
                 customer.setCusName(hideCusName(customer.getCusName()));
@@ -1383,24 +3517,24 @@
                 customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
                 customer.setTjNumber(entry.getValue().get(0).getTjNum());
                 customer.setApplicationTime(entry.getValue().get(0).getApplicationTime());
+
                 List<TjSampling> samplings = entry.getValue();
-                if(null !=samplings && samplings.size()>0){
-                    List<TjSampling> projectList=new ArrayList<>();
+                if (null != samplings && samplings.size() > 0) {
+                    List<TjSampling> projectList = new ArrayList<>();
                     for (TjSampling sampling : samplings) {
                         TjProject project = projectService.getById(sampling.getProId());
-                        if(null !=project && project.getProParentId()==0){
+                        if (null != project && project.getProParentId() == 0) {
                             projectList.add(sampling);
                         }
                     }
-                    map.put("list",projectList);
+                    map.put("list", projectList);
                 }
-                map.put("customer",customer);
+                map.put("customer", customer);
                 arrayList.add(map);
             }
         }
         return arrayList;
     }
-
 
     /**
      * 闅愯棌鎵嬫満鍙�
@@ -1408,21 +3542,21 @@
      * @param phoneNum
      * @return
      */
-    public static String hidePhoneNum(String phoneNum){
-        if(null==phoneNum){
+    public static String hidePhoneNum(String phoneNum) {
+        if (null == phoneNum) {
             return "";
         }
-        if(phoneNum.contains("*")){
+        if (phoneNum.contains("*")) {
             return phoneNum;
         }
         Pattern pattern = Pattern.compile("((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}");
         Matcher matcher = pattern.matcher(phoneNum);
         StringBuffer sb = new StringBuffer();
         try {
-            while(matcher.find()) {
+            while (matcher.find()) {
                 String phoneStr = matcher.group();
                 phoneStr = phoneStr.substring(0, 3) + "****" + phoneStr.substring(7, phoneStr.length());
-                matcher.appendReplacement(sb,phoneStr);
+                matcher.appendReplacement(sb, phoneStr);
             }
             matcher.appendTail(sb);
         } catch (Exception ex) {
@@ -1437,24 +3571,24 @@
      * @param idCardNum
      * @return
      */
-    public static String hideIdCardNum(String idCardNum){
-        if(null==idCardNum){
+    public static String hideIdCardNum(String idCardNum) {
+        if (null == idCardNum) {
             return "";
         }
-        if(idCardNum.contains("*")){
+        if (idCardNum.contains("*")) {
             return idCardNum;
         }
         Pattern pattern = Pattern.compile("(\\d{6})(19|20)(\\d{2})(1[0-2]|0[1-9])(0[1-9]|[1-2][0-9]|3[0-1])(\\d{3})(\\d|X|x)");
         Matcher matcher = pattern.matcher(idCardNum);
         StringBuffer sb = new StringBuffer();
         try {
-            while(matcher.find()) {
+            while (matcher.find()) {
                 String idCardStr = matcher.group();
-                int len=idCardStr.length();
-                if(len>=9){
-                    idCardStr =  idCardStr.replaceAll("(.{"+(len<12?3:6)+"})(.*)(.{4})", "$1" + "****" + "$3");
+                int len = idCardStr.length();
+                if (len >= 9) {
+                    idCardStr = idCardStr.replaceAll("(.{" + (len < 12 ? 3 : 6) + "})(.*)(.{4})", "$1" + "****" + "$3");
                 }
-                matcher.appendReplacement(sb,idCardStr);
+                matcher.appendReplacement(sb, idCardStr);
             }
             matcher.appendTail(sb);
         } catch (Exception ex) {
@@ -1463,43 +3597,143 @@
         return sb.toString();
     }
 
-
     /**
      * 闅愯棌鐢ㄦ埛濮撳悕
      *
      * @param cusName
      * @return
      */
-    public static String hideCusName(String cusName){
-        if(null==cusName){
+    public static String hideCusName(String cusName) {
+        if (null == cusName) {
             return "";
         }
-        if(!cusName.contains("*")){
-            String realname=null;
-            char[] r =  cusName.toCharArray();
-            if(r.length ==1){
-                realname =  cusName;
+        if (!cusName.contains("*")) {
+            String realname = null;
+            char[] r = cusName.toCharArray();
+            if (r.length == 1) {
+                realname = cusName;
             }
-            if(r.length == 2){
-                realname =  cusName.replaceFirst(cusName.substring(1),"*");
+            if (r.length == 2) {
+                realname = cusName.replaceFirst(cusName.substring(1), "*");
             }
             if (r.length > 2) {
-                realname =  cusName.replaceFirst(cusName.substring(1,r.length-1) ,"*");
+                realname = cusName.replaceFirst(cusName.substring(1, r.length - 1), "*");
             }
             return realname;
         }
         return cusName;
     }
 
-
     //涓存椂琛ㄦ坊鍔犲崟椤�
-    public void saveRedisTransitionByProId(String cusId, List<Long> proIds) {
+    public void saveRedisTransitionByProId(String cusId,String cardId, List<Long> proIds) {
         for (Long proId : proIds) {
-            List<TbTransition> transitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
-            if (null != transitionList && transitionList.size() > 0) {
-                continue;
+            TjProject project = projectService.selectTjProjectByProId(proId);
+            if(null !=project){ //&& (!project.getProName().contains("闈欒剦閲囪")|| !project.getProName().contains("璐�"))
+                List<TbTransition> transitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
+                if (null == transitionList || transitionList.size() == 0) {
+                    transitionService.saveRedisTransitionByProId(cusId,cardId, proId);
+                }
             }
-            transitionService.saveRedisTransitionByProId(cusId,proId);
+//            if(null !=project) transitionService.saveRedisTransitionByProId(cusId,cardId, proId);
         }
     }
+
+    //鍚戠紦瀛樹腑娣诲姞 鐖堕」鐩殑瀛愰」鐩鎯�
+    private Map<String, Object> getOrderDetailByProParentId(String proParentId, String tjNumber) {
+        TjOrderRemark remark = orderRemarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
+        List<TjProject> proParentList = projectService.getTjProjectListBySoneId(proParentId);
+        if (null == proParentList) {
+            return AjaxResult.error("璇ラ」鐩笅鏆傛椂娌℃暟鎹�");
+        }
+        List<Long> proParentIdList = proParentList.stream().map(TjProject::getProId).collect(Collectors.toList());
+        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+        if (null == one) {
+            return AjaxResult.success("璇ョ敤鎴锋殏鏃舵病鏈変綋妫�鏁版嵁");
+        }
+        List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.getTjOrderDetailListInProParentIdList(String.valueOf(one.getOrderId()), proParentIdList);
+        TjCustomer customer = tjCustomerService.getById(one.getUserId());
+        if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                TjProject project = projectService.getById(tjOrderDetail.getProId());
+                List<TjRules> rulesList = tjRulesService.getTjRulesListByTjNumAndProId(tjNumber, tjOrderDetail.getProId());
+                tjOrderDetail.setRulesList(rulesList);
+
+                //鏌ユ爣鍑嗗拰鍗曚綅----start
+                List<TjStandard> list26 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
+                if (list26.size() == 0) {
+                    project.setProMetering("/");
+                    project.setProScope("/");
+                } else if (list26.size() == 1) {
+                    project.setProMetering(list26.get(0).getCompany() == null ? " " : list26.get(0).getCompany());
+                    project.setProScope((list26.get(0).getTjStandardLtValue() == null ? " " : list26.get(0).getTjStandardLtValue()) + "-" + (list26.get(0).getTjStandardGtValue() == null ? " " : list26.get(0).getTjStandardGtValue()));
+                } else {
+                    Long cusSex = customer.getCusSex();
+                    Date cusBrithday = customer.getCusBrithday();
+                    int age = DateUtil.ageOfNow(cusBrithday);
+                    for (TjStandard tjStandard : list26) {
+                        LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
+                        if (tjStandard.getTjSex() != null) {
+                            wq8.eq(TjStandard::getTjSex, cusSex);
+                        }
+                        if (tjStandard.getTjType() != null) {
+                            wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(age));
+                        }
+                        TjStandard standard = tjStandardService.getOne(wq8);
+                        project.setProMetering(standard.getCompany());
+                        project.setProScope((standard.getTjStandardLtValue() == null ? " " : standard.getTjStandardLtValue()) + "-" + (standard.getTjStandardGtValue() == null ? " " : standard.getTjStandardGtValue()));
+                    }
+                }
+                //鏌ユ爣鍑嗗拰鍗曚綅-----end
+                tjOrderDetail.setProject(project);
+                List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(project.getProId()));
+                if (list2.size() == 0) {
+                    tjOrderDetail.setStandard(null);
+                } else if (list2.size() == 1) {
+                    tjOrderDetail.setStandard(list2.get(0));
+                } else {
+                    for (TjStandard tjStandard : list2) {
+                        LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
+                        if (tjStandard.getTjSex() != null) {
+                            wq8.eq(TjStandard::getTjSex, customer.getCusSex());
+                        }
+                        if (tjStandard.getTjType() != null) {
+                            wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
+                        }
+                        TjStandard standard = tjStandardService.getOne(wq8);
+                        tjOrderDetail.setStandard(standard);
+                    }
+                }
+                if (null != remark.getDoctorName()) {
+                    //lg0412
+                    SysUser byId = userService.getById(remark.getDoctorName());
+                    if (byId != null) {
+                        tjOrderDetail.setDoctorName(userService.getById(remark.getDoctorName()).getNickName());
+                    }
+                } else {
+                    tjOrderDetail.setDoctorName(null);
+                }
+            }
+        }
+        Map<String, Object> map = new HashMap<>();
+        List<TjAdvice> adviceList = new ArrayList<>();
+        if (null != remark) {
+            String[] strings = StringUtils.split(remark.getSummary(), ";");
+            if (null != strings && strings.length > 0) {
+                List<TjAdvice> list = tjAdviceService.getAdviceStringByIds(strings);
+                adviceList.addAll(list);
+            }
+            map.put("xiaoJieIds", StringUtils.split(remark.getSummary(), ";"));
+        } else {
+            map.put("xiaoJieIds", null);
+        }
+        map.put("sons", tjOrderDetails);
+        map.put("xiaoJie", adviceList);
+        map.put("remark", remark.getRemark());
+        return map;
+    }
+
+    @Override
+    public void tjUpdateDetatilByVi(String s) {
+
+    }
 }

--
Gitblit v1.8.0