zjh
2024-12-25 79f9fbd9f999e26af3f0bca534d825eb687e092c
ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -1,19 +1,38 @@
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.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.AjaxResult;
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.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 +44,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 +55,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
@@ -88,26 +109,70 @@
    private ITjDwDeptService dwDeptService;
    @Resource
    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;
    @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);
@@ -116,7 +181,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) {
@@ -128,10 +193,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);
@@ -154,25 +219,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("这段代码时间"+(l-System.currentTimeMillis()));
        System.out.println("这段代码时间" + (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()) {
@@ -205,9 +270,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()));
@@ -218,20 +283,26 @@
        }
        //添加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()));
            }
        }
        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()));
        }
        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) {
@@ -271,9 +342,10 @@
    @Async("async")
    public void collectFees(TjOrder order, List<TjConsumables> list2, List<TbTransition> tbTransitionList, SysUser sysUser, String discount) {
        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) {
@@ -308,7 +380,7 @@
                            list2.add(tjConsumables);
                        }
                    }
                    TjOrderRemark tjOrderRemark=new TjOrderRemark();
                    TjOrderRemark tjOrderRemark = new TjOrderRemark();
                    tjOrderRemark.setProId(parentProId);
                    tjOrderRemark.setProName(parentProject.getProName());
                    tjOrderRemark.setDeptId(parentProject.getDeptId());
@@ -320,6 +392,8 @@
                    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);
                }
            }
        }
@@ -342,26 +416,51 @@
            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){
//        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);
        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(order.getOrderId());
        addCaiYangDengJi(detailList, !detailList.isEmpty(), order, sysUser,null);
    }
    public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser,String jxbz) {
        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();
                if (null != proParentId && proParentId == 0) {
                    sampling.setJyxh(idUtils.generateLisID());
                    LtkjJyxmzd jyxmzd = lisApiMethod.getJyxmzd(project);
                    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());
                    }
                } else {
                    TjProject project1 = projectService.getById(proParentId);
                    sampling.setJyxh(idUtils.generateLisID());
                    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());
@@ -374,29 +473,62 @@
                sampling.setUpdateTime(new 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);
                    }
                }
            }
        }
    }
    @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()));
@@ -433,119 +565,1262 @@
    @Override
    @Async("async")
    public void iundividualCharges(TjFlowingWater tjFlowingWater, TjOrder order, TjCustomer customer,  SysUser sysUser) {
        List<TjConsumables> list2 = new ArrayList<>();
    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<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
//
//        //检查
//        List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
//
//
//        //处置
//        List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>();
//
//        List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>();
        List<TjProject>  projectList=new ArrayList<>();
        ArrayList<TjOrderDetail> tjOrderDetails = new ArrayList<>();
        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) {
            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);
                }
                if(null !=config && config.equals("Y")){
                //检验
//                if (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getJyDeptIds().contains(project.getDeptId().toString())) {
//                    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());
//                        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 (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getJcDeptIds().contains(project.getDeptId().toString())) {
//                    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());
//                        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 (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getCzDeptIds().contains(project.getDeptId().toString())) {
//                    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());
//                        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);
//                        }
//                }
            }
            } 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);
                    }
                }
                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 和签到登记一样 只有配置中的以及收费类型为体检票时才增加到采样管理表
//        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(),jxbz);
//        addCaiYangDengJi(detailList,!detailList.isEmpty(), order, sysUser,jxbz);
        tjOrderDetails = new ArrayList<>();
        ArrayList<TjProject> jianChaProjects = new ArrayList<>();
//        ArrayList<TjProject> jianYanProjects = 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.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                detail1.setProId(proId);
                detail1.setProId(project.getProId());
                detail1.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()));
                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(null !=config && config.equals("Y")){
                    //检验
//                    if (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getJyDeptIds().contains(project.getDeptId().toString())) {
//                        if (null != project.getHisXmbm()) {
//                            jianYanProjects.add(project);
//                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
//
//                            detailsDto.setMxfyxmbm(project.getHisXmbm());
//
//                            if (project.getSfzhfy().equals("Y")) {
//                                detailsDto.setSfzhfy("1");
//                            } else {
//                                detailsDto.setSfzhfy("0");
//                            }
//                            detailsDto.setSl(project.getSl());
//                            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 (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getJcDeptIds().contains(project.getDeptId().toString())) {
                        if (null != project.getHisXmbm()) {
                            jianChaProjects.add(project);
//                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
//                            detailsDto.setMxfyxmbm(project.getHisXmbm());
//                            if (project.getSfzhfy().equals("Y")) {
//                                detailsDto.setSfzhfy("1");
//                            } else {
//                                detailsDto.setSfzhfy("0");
//                            }
//                            detailsDto.setSl(project.getSl());
//                            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 (project.getProPrice().compareTo(BigDecimal.ZERO) != 0 && deptService.getCzDeptIds().contains(project.getDeptId().toString())) {
//                        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());
//                            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);
//                            }
//                    }
//                }
            }
            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);
            // TODO 和签到登记一样 只有配置中的以及收费类型为体检票时才增加到采样管理表
            if(config.equals("Y")){
                if (lisApiMethod.isUseLisAndPacsRegister(order) && tjFlowingWater.getPayType() == 6L) {
                    List<TjOrderDetail> detailLists = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(), jxbz);
                    addCaiYangDengJi(detailLists, !detailLists.isEmpty(), order, sysUser, jxbz);
                }
            }else {
                tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(order.getOrderId()),
                        sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                List<TjOrderDetail> detailLists = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(), jxbz);
                addCaiYangDengJiByDiaoYongShiTu(detailLists, !detailLists.isEmpty(), order, sysUser, jxbz);
            }
        }
//        Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
        if(null !=config && config.equals("Y")){
            AjaxResult result = tijianbulushenqing(customer, date, order.getCardId(), jxbz, jianChaProjects, tjFlowingWater.getPayType() == 6L);
            if (!result.get("code").toString().equals("200"))
                return false;
//            if (useLisAndPacsRegister) {
//                List<TjProject> projectList2 = jianYanProjects.stream().distinct().collect(Collectors.toList());
                // 检查申请
//                pacsReg(order, customer, jianChaProjects);
//            }else {
   /*             //检验申请
                if(!detailsDtos.isEmpty()){
                    OutpintestapplyDto dto = new OutpintestapplyDto();
                    dto.setHisRegistrationId(order.getCardId());
                    dto.setSfzh(customer.getCusIdcard());
                    dto.setSqysbm("00029");
                    dto.setMzksbm("0101");
                    dto.setSjrq(date);
                    dto.setCzybm("00029");
                    dto.setCzyksbm("0101");
                    dto.setSfjz("0");
                    dto.setDetails(detailsDtos.stream().distinct().collect(Collectors.toList()));
                    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.setSfjx("Y");
                            tree.setJxbz(jxbz);
                            tree.setCardId(dto.getHisRegistrationId());
                            LambdaQueryWrapper<TjCustomer> wrapper4 = new LambdaQueryWrapper<>();
                            wrapper4.eq(TjCustomer::getCardId, tree.getCardId());
                            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper4);
                            tree.setPationid(tjCustomer.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("检验");
                            LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
                            wrapper.eq(TjProject::getHisXmbm, mxfyxmbm);
                            wrapper.eq(TjProject::getProParentId,0);
                            List<TjProject> list = projectService.list(wrapper);
                            String tj_price = "";
                            for (TjProject project : list) {
                                tj_price += project.getProPrice() + "、";
                            }
                            tree.setTjPrice(tj_price.substring(0, tj_price.length() - 1));
                            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(dates);
                            ltkjJianchajianyanTreeService.save(tree);
                        }
//                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(order.getOrderId());
//                        addCaiYangDengJi(detailList,!detailList.isEmpty(), order, sysUser,jxbz);
                    }
                }
                //父项
                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);
                //门诊检查申请
                if(!detailsDtoss.isEmpty()){
                    OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
                    outpinexamapplyDto.setHisRegistrationId(order.getCardId());
                    outpinexamapplyDto.setSfzh(customer.getCusIdcard());
                    outpinexamapplyDto.setSqysbm("00029");
                    outpinexamapplyDto.setMzksbm("0101");
                    outpinexamapplyDto.setCzybm("00029");
                    outpinexamapplyDto.setCzyksbm("0101");
                    outpinexamapplyDto.setSfjz("0");
                    outpinexamapplyDto.setDetails(detailsDtoss.stream().distinct().collect(Collectors.toList()));
                    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.setSfjx("Y");
                            tree.setJxbz(jxbz);
                            tree.setCardId(outpinexamapplyDto.getHisRegistrationId());
                            LambdaQueryWrapper<TjCustomer> wrapper4 = new LambdaQueryWrapper<>();
                            wrapper4.eq(TjCustomer::getCardId, tree.getCardId());
                            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper4);
                            tree.setPationid(tjCustomer.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("检查");
                            LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
                            wrapper.eq(TjProject::getHisXmbm, mxfyxmbm);
                            wrapper.eq(TjProject::getProParentId,0);
                            List<TjProject> list = projectService.list(wrapper);
                            String tj_price = "";
                            for (TjProject project : list) {
                                tj_price += project.getProPrice() + "、";
                            }
                            tree.setTjPrice(tj_price.substring(0, tj_price.length() - 1));
                            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(dates);
                            ltkjJianchajianyanTreeService.save(tree);
                        }
                    }
                }*/
//            }
        /*    //药品申请
            if(!outpinmedicapplyDetilsDtos.isEmpty()){
                OutpinmedicapplyDto dto1=new OutpinmedicapplyDto();
                dto1.setHisRegistrationId(order.getCardId());
                dto1.setSfzh(customer.getCusIdcard());
                dto1.setSqysbm("00029");
                dto1.setMzksbm("0101");
                dto1.setSjrq(date);
                dto1.setCzybm("00029");
                dto1.setCzyksbm("0101");
                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");
                    for (OutpinmedicapplyDetilsDto detilsDto : outpinmedicapplyDetilsDtos) {
                        TjCf cf=new TjCf();
                        cf.setCardId(order.getCardId());
                        cf.setSfzh(customer.getCusIdcard());
                        cf.setCfh(cfh);
                        cf.setSqysbm("00029");
                        cf.setSqysxm("王健萍");
                        cf.setMzksbn("0101");
                        cf.setSqrq(date);
                        cf.setCzybm("00029");
                        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());
                        cf.setJxbz(jxbz);
                        cfService.save(cf);
                    }
                }
            }
            //门诊治疗处置申请
            if(!detailDtos.isEmpty()){
                OutpintreatapplyDto dao = new OutpintreatapplyDto();
                dao.setHisRegistrationId(order.getCardId());
                dao.setSfzh(customer.getCusIdcard());
                dao.setSqysbm("00029");
                dao.setMzksbm("0101");
                dao.setSjrq(date);
                dao.setCzybm("00029");
                dao.setCzyksbm("0101");
                dao.setSfjz("0");
                dao.setDetails(detailDtos.stream().distinct().collect(Collectors.toList()));
                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.setSfjx("Y");
                        tree.setJxbz(jxbz);
                        tree.setCardId(dao.getHisRegistrationId());
                        LambdaQueryWrapper<TjCustomer> wrapper4 = new LambdaQueryWrapper<>();
                        wrapper4.eq(TjCustomer::getCardId, tree.getCardId());
                        TjCustomer tjCustomer = tjCustomerService.getOne(wrapper4);
                        tree.setPationid(tjCustomer.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("处置");
                        LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
                        wrapper.eq(TjProject::getHisXmbm, mxfyxmbm);
                        wrapper.eq(TjProject::getProParentId,0);
                        List<TjProject> list = projectService.list(wrapper);
                        String tj_price = "";
                        for (TjProject project : list) {
                            tj_price += project.getProPrice() + "、";
                        }
                        tree.setTjPrice(tj_price.substring(0, tj_price.length() - 1));
                        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(dates);
                        ltkjJianchajianyanTreeService.save(tree);
                    }
                }
            }*/
        }
        //父项耗材
//        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(dates);
//            tjChargingStandard.setUpdateBy(sysUser.getNickName());
//            tjChargingStandard.setUpdateTime(dates);
//            tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
//            tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
//            chargingStandardService.save(tjChargingStandard);
//        }
        return true;
    }
    public void addCaiYangDengJiByDiaoYongShiTu(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser,String jxbz) {
        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());
                    sampling.setSpecimenTypeCode(project.getSpecimenType());
                    sampling.setSpecimenType(dictLabel);
                    sampling.setJyxmdm(project.getProId().toString());
                } else {
                    TjProject project1 = projectService.getById(proParentId);
                    sampling.setJyxh(idUtils.generateLisID());
                    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);
                    }
                }
            }
        }
    }
    //体检对his申请单调用方法
    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");
            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标本代码
                        String specimenTypeCode = entry.getKey();
                        List<TjSampling> samplings = entry.getValue();
                        if (samplings.size() >= 2){
                            // 进行合并
                            List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList());
                            log.info("提取id ->{}",stringList);
                            for (int i = 0; i < stringList.size(); i++) {
                                String s = stringList.get(i);
                                if (tjSamplingService.isMergeItem(s) != 0) {
                                    stringList.remove(s);
                                    ids.add(s);
                                }
                            }
                            if (stringList.size() > 1) {
                                String id = tjSamplingService.mergeCaiYangApi(stringList);
                                ids.add(id);
                            }else {
                                ids.add(stringList.get(0));
                            }
                        }else {
                            ids.add(samplings.get(0).getId());
                        }
                    }
                    Boolean confirmed = 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);
                        }
                    }
                }
            }
        }
        //父项耗材
        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
@@ -553,16 +1828,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());
@@ -590,14 +1865,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());
@@ -625,7 +1900,7 @@
                }
            }
        }
        redisCache.setCacheMapValue("cScheck", "ys",customerList);
        redisCache.setCacheMapValue("cScheck", "ys", customerList);
    }
@@ -636,33 +1911,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());
@@ -677,53 +1956,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);
@@ -738,7 +2020,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);
@@ -749,8 +2031,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));
@@ -773,12 +2055,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);
        }
    }
@@ -835,19 +2117,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;
                        }
@@ -876,8 +2158,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) {
@@ -888,7 +2169,7 @@
                    @Override
                    public void run() {
                        try {
                            transitionService.saveTemoTransitionByGroupingId(reservation.getIdCard(),reservation.getGroupingId());
                            transitionService.saveTemoTransitionByGroupingId(reservation.getIdCard(), reservation.getGroupingId());
                            threadPool.shutdown();
                        } catch (Exception e) {
@@ -898,29 +2179,276 @@
                });
            }
        }
        long ll = System.currentTimeMillis();
        System.out.println("这段代码执行时间为"+ (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));
    }
    @Override
    @Async("async")
    public void getDictSfxms() {
        List<DictSfxm> dictSfxm = getDictSfxm();
        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() {
        List<DictSfxm> dictSfxms = dictSfxmService.getYjDictSfxmList();
        if (null != dictSfxms && dictSfxms.size() > 0) {
            for (DictSfxm dictSfxm : dictSfxms) {
                List<DictSfxm> sfxms = dictSfxmService.getEjDictSfxmList(dictSfxm.getId());
                if (null != sfxms && sfxms.size() > 0) {
                    for (DictSfxm sfxm : sfxms) {
                        List<DictSfxm> sfx = dictSfxmService.getSjDictSfxmList(dictSfxm.getId());
                        sfxm.setDictSfxms(sfx);
                    }
                }
                dictSfxm.setDictSfxms(sfxms);
            }
        }
        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) {
@@ -928,8 +2456,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()))) {
@@ -996,12 +2526,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) {
@@ -1039,12 +2570,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) {
@@ -1070,15 +2602,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<>();
@@ -1093,9 +2624,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<>();
@@ -1109,6 +2641,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()));
@@ -1121,9 +2661,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();
@@ -1132,7 +2675,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);
                    }
@@ -1142,7 +2685,7 @@
        return customerLis;
    }
    //未检
    //未检(整体存入)
    public List<TjCustomer> getWjAjaxResult(List<Long> ksproList) {
        List<TjCustomer> customerLis = new ArrayList<>();
        LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -1157,13 +2700,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()));
@@ -1176,20 +2738,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);
                    }
                }
@@ -1198,22 +2767,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()));
@@ -1223,6 +2909,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 {
@@ -1241,13 +2928,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());
@@ -1263,6 +2950,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 {
@@ -1278,15 +2966,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);
@@ -1303,7 +3000,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());
@@ -1311,15 +3012,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);
                    }
@@ -1329,29 +3035,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()));
@@ -1359,24 +3061,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;
    }
    /**
     * 隐藏手机号
@@ -1384,18 +3086,21 @@
     * @param phoneNum
     * @return
     */
    public static String hidePhoneNum(String phoneNum){
        if(phoneNum.contains("*")){
    public static String hidePhoneNum(String phoneNum) {
        if (null == phoneNum) {
            return "";
        }
        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) {
@@ -1410,21 +3115,24 @@
     * @param idCardNum
     * @return
     */
    public static String hideIdCardNum(String idCardNum){
        if(idCardNum.contains("*")){
    public static String hideIdCardNum(String idCardNum) {
        if (null == idCardNum) {
            return "";
        }
        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) {
@@ -1433,39 +3141,143 @@
        return sb.toString();
    }
    /**
     * 隐藏用户姓名
     *
     * @param cusName
     * @return
     */
    public static String hideCusName(String cusName){
        if(!cusName.contains("*")){
            String realname=null;
            char[] r =  cusName.toCharArray();
            if(r.length ==1){
                realname =  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(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) {
            if (null != transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId)) && transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId)).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) {
    }
}