From b8bf9a10ca1c65e94d75a2db5550e6263b582512 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 16 十二月 2024 15:01:41 +0800
Subject: [PATCH] 调整结果项目状态判断结论增加非空判断

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java | 1250 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 1,081 insertions(+), 169 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
index dfc1860..111bff4 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -1,34 +1,34 @@
 package com.ltkj.web.controller.his;
 
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 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.utils.SecurityUtils;
-import com.ltkj.hosp.domain.TjCustomer;
-import com.ltkj.hosp.domain.TjOrder;
-import com.ltkj.hosp.domain.TjOrderDetail;
-import com.ltkj.hosp.domain.TjProject;
-import com.ltkj.hosp.hisDto.OutpinexamapplyDto;
-import com.ltkj.hosp.hisDto.OutpinregapplyDto;
-import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
-import com.ltkj.hosp.hisDto.OutpintestapplyDto;
-import com.ltkj.hosp.service.ITjCustomerService;
-import com.ltkj.hosp.service.ITjOrderDetailService;
-import com.ltkj.hosp.service.ITjOrderService;
-import com.ltkj.hosp.service.ITjProjectService;
+import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.hisDto.*;
+import com.ltkj.hosp.service.*;
+import com.ltkj.system.service.ISysConfigService;
+import com.ltkj.system.service.ISysDeptService;
+import com.ltkj.web.controller.lis.LisApiMethod;
+import com.ltkj.web.controller.pacs.PacsApiMethodService;
+import com.ltkj.web.controller.service.TjSysAsyncServiceImpl;
+import com.ltkj.web.controller.system.SamplingServiceApi;
+import jdk.nashorn.internal.runtime.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /* @Authot:zjh
@@ -36,6 +36,7 @@
  * */
 
 @Component
+@Slf4j
 public class HisApiMethod {
     @Autowired
     private HisApiMethodService controller;
@@ -47,6 +48,41 @@
     private ITjOrderDetailService detailService;
     @Resource
     private ITjProjectService projectService;
+    @Resource
+    private ITbTransitionService tbTransitionService;
+    @Autowired
+    private HisApiConfigService hisApiConfigService;
+    @Autowired
+    private HisApiGetMethodService hisApiGetMethodService;
+    @Resource
+    private ISysDeptService deptService;
+    @Resource
+    private ITbTransitionService transitionService;
+    @Autowired
+    private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
+    @Autowired
+    private LtkjJfzhglmxjfxmzdService ltkjJfzhglmxjfxmzdService;
+    @Autowired
+    private LtkjMxjfxmzdService ltkjMxjfxmzdService;
+    @Autowired
+    private LtkjEjjfxmzdService ltkjEjjfxmzdService;
+    @Autowired
+    private TjCfService cfService;
+    @Autowired
+    private PacsApiMethodService pacsApiMethodService;
+    @Autowired
+    private ITjOrderDetailService tjOrderDetailService;
+    @Autowired
+    private TjSysAsyncServiceImpl tjSysAsyncService;
+    @Autowired
+    private LisApiMethod lisApiMethod;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private ITjSamplingService tjSamplingService;
+    @Autowired
+    private SamplingServiceApi samplingService;
+
 
     //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡
     public JSONObject getJSONObject(String builder) {
@@ -60,177 +96,1053 @@
     }
 
     //瀵规帴his鎬绘帴鍙�  娉ㄥ唽鎸傚彿鎺ヨ瘖鐢宠鍗曟搷浣�
+    @Logger
+    public AjaxResult HisApiMethods(TjCustomer customer,TjOrder tjOrder) {
+        String jzh=null;
+        String dept = configService.selectConfigByKey("request_default_dept");
+        String ysbm = configService.selectConfigByKey("request_default_ysbm");
+        try {
+//            TjOrder tjOrder = orderService.getById(orderId);
+            Date dates = new Date();
+            final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
+            OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
+            outpinregapplyDto.setPationid(customer.getPationId());
+            outpinregapplyDto.setSqysbm(ysbm);
+            outpinregapplyDto.setMzksbm(dept);
+            outpinregapplyDto.setCzybm(ysbm);
+            outpinregapplyDto.setSfjz("0");
+            outpinregapplyDto.setGhzlbm("01");
+            outpinregapplyDto.setYwckbm("0001");
+            outpinregapplyDto.setSflstd("0");
+            outpinregapplyDto.setGhrq(date);
+            //闂ㄨ瘖鎸傚彿
+            AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
+            String result2 = getAjaxResult(ajaxResult);
+            JSONObject object1 = getJSONObject(result2);
+            String code1 = object1.getStr("ResultCode");
+            if (code1.equals("0")) {
+                JSONArray resultDatas = object1.getJSONArray("ResultData");
+                if (null != resultDatas && resultDatas.size() > 0) {
+                    Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0);
+                    String hisRegistrationId = resultDatasss.get("his_registration_id").toString();
+                    jzh=hisRegistrationId;
+                    //淇濆瓨鎸傚彿鍏ュ弬鍑哄弬
+                    resultDatasss.put("cardId",hisRegistrationId);
+                    JSONObject object4 = JSONUtil.parseObj(resultDatasss);
+                    LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+                    lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpinregapply");
+                    HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
+                    hisApiGetMethodService.save(object4, "Outpinregapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(outpinregapplyDto)));
+
+                    //闂ㄨ瘖鍖荤敓鎺ヨ瘖
+                    AjaxResult result = controller.Outpinconapply(hisRegistrationId, date, ysbm);
+                    String result3 = getAjaxResult(result);
+                    JSONObject object2 = getJSONObject(result3);
+                    String code2 = object2.getStr("ResultCode");
+                    if (!code2.equals("0")) {
+                        return AjaxResult.error(object2.getStr("ResultContent"));
+                    }
+                    log.info("his鎺ュ彛-----鍖荤敓鎺ヨ瘖鎴愬姛!");
+                    if(null != tjOrder.getTjCategory() && !tjOrder.getTjCategory().equals("13")){
+                      customer.setCardId(hisRegistrationId);
+                    }else {
+                        customer.setCardId("0");
+                    }
+                    customerService.updateById(customer);
+                    transitionService.updateCardIdByTjNumAndIdCard(customer.getCusIdcard(), hisRegistrationId, tjOrder.getTjNumber());
+                    tjOrder.setCardId(hisRegistrationId);
+                    orderService.updateById(tjOrder);
+                }
+
+                //娣诲姞浣撴璇婃柇
+                OutpinimpapplyDto dto=new OutpinimpapplyDto();
+                dto.setHisRegistrationId(tjOrder.getCardId());
+                dto.setMzzdid(1);
+                dto.setSqysbm(ysbm);
+                dto.setMzksbm(dept);
+                dto.setFbrq(date);
+                dto.setZdrq(date);
+                dto.setCzybm(ysbm);
+                dto.setCzyksbm(dept);
+                dto.setZs("鍋ュ悍鏌ヤ綋");
+                dto.setBs("涓嶈");
+                dto.setClyz("");
+                dto.setJws("");
+                dto.setTgjc("");
+                dto.setGms("");
+                dto.setJbbm("Z00.001");
+                dto.setJbbm1("");
+                dto.setJbbm2("");
+                dto.setFzbz("1");
+                dto.setHzqx("6");
+                dto.setSfqc("0");
+                dto.setQchs("");
+                dto.setSfqj("0");
+                dto.setJzqk(9);
+                controller.Outpinimpapply(dto);
+                return AjaxResult.success();
+            }
+            return AjaxResult.error();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error().put("jzh",jzh);
+        }
+    }
+
+
+    //浣撴瀵筯is鐢宠鍗曡皟鐢ㄦ柟娉�
+    public AjaxResult tijianshenqing(TjCustomer customer, String date,String cardId) {
+        String dept = configService.selectConfigByKey("request_default_dept");
+        String ysbm = configService.selectConfigByKey("request_default_ysbm");
+        String ysmc = configService.selectConfigByKey("request_default_ysmc");
+
+        List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(),cardId);
+
+        //妫�楠岀敵璇�
+        OutpintestapplyDto dto = new OutpintestapplyDto();
+        dto.setHisRegistrationId(cardId);
+        dto.setSfzh(customer.getCusIdcard());
+        dto.setSqysbm(ysbm);
+        dto.setMzksbm(dept);
+        dto.setSjrq(date);
+        dto.setCzybm(ysbm);
+        dto.setCzyksbm(dept);
+        dto.setSfjz("0");
+
+        List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
+        List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =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.setCardId(dto.getHisRegistrationId());
+                    tree.setPationid(customer.getPationId());
+                    JSONObject resultData = object3.getJSONObject("ResultData");
+                    tree.setSqdh(resultData.getStr("jysqdh"));
+                    tree.setFyhj(resultData.getStr("fyhj"));
+                    String mxfyxmbm = detail.getMxfyxmbm();
+                    tree.setHisXmdm(mxfyxmbm);
+                    tree.setType("妫�楠�");
+                    tree.setService("his");
+                    tree.setTjPrice(String.valueOf(detail.getProjg()));
+                    LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                    if (detail.getSfzhfy().equals("1"))
+                        wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+                    else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+                    List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                    if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                        String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                        LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+                        wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                        LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+                        LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                        wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                        LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+                        tree.setXmfl(ejjfxmzd.getYjkmdm());
+                    }
+                    tree.setCreateTime(DateUtil.date());
+                    ltkjJianchajianyanTreeService.save(tree);
+                }
+                // TODO 涓汉浠ュ強鍥綋 鏆備笉鍚戦噰鏍风鐞嗗啓鏁版嵁
+                // HIS鍙戦�佹棤娉曞悎骞舵搷浣� 鏃犳硶鑾峰彇LIS鐨勬楠屽簭鍙� 鏉$爜鏃犳硶鎵撳嵃
+//                TjOrder tjOrder = orderService.getOrderByCardId(cardId);
+//                if(null !=tjOrder){
+//                    List<TjOrderDetail> dengJi = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
+//                    tjSysAsyncService.addCaiYangDengJi(dengJi,!dengJi.isEmpty(),tjOrder, SecurityUtils.getLoginUser().getUser(), null);
+//                }
+            }
+        }
+
+        //闂ㄨ瘖妫�鏌ョ敵璇�
+        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.size() > 0) {
+            outpinexamapplyDto.setDetails(detailsDtoss);
+            AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto);
+            String result6 = getAjaxResult(ajaxResult2);
+            JSONObject object5 = getJSONObject(result6);
+            String code4 = object5.getStr("ResultCode");
+            if (code4.equals("0")) {
+                List<OutpintestapplyDetailsDto> details = outpinexamapplyDto.getDetails();
+                for (OutpintestapplyDetailsDto detail : details) {
+                    LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                    tree.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.size() > 0) {
+            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.size() > 0) {
+                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.size() > 0) {
+            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.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.size()>0){
+            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.setCardId(cardId);
+                    cf.setSfzh(customer.getCusIdcard());
+                    cf.setCfh(cfh);
+                    cf.setSqysbm(ysbm);
+                    cf.setSqysxm(ysmc);
+                    cf.setMzksbn(dept);
+                    cf.setSqrq(date);
+                    cf.setCzybm(ysbm);
+                    cf.setYpbm(detilsDto.getYpbm());
+                    cf.setYpmc("灏跨礌[14C]鍛兼皵璇曢獙鑽洅");
+                    cf.setSl(String.valueOf(detilsDto.getSl()));
+                    cf.setDj(String.valueOf(detilsDto.getDj()));
+                    cf.setDcjl(String.valueOf(detilsDto.getDcjl()));
+                    cf.setPj(String.valueOf(detilsDto.getPj()));
+                    cf.setJj(String.valueOf(detilsDto.getJj()));
+                    cf.setCreateTime(new Date());
+                    cfService.save(cf);
+                }
+            }
+        }
+
+        return AjaxResult.success();
+    }
+
+
+
+    public AjaxResult tijianshenqing(TjCustomer customer, String date, TjOrder tjOrder, SysUser sysUser, AjaxResult result) {
+        List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(), tjOrder.getCardId());
+        if (!pacsApiMethodService.save(tjOrder, customer, detailList)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            Object jzh = result.get("jzh");
+            if (null != jzh && null != jzh.toString()) {
+                ZfHisApiMethod(jzh.toString());
+            }
+            log.error("pacs鐢宠澶辫触 璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId());
+            return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString());
+        }
+
+//        LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
+//        wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
+//        wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
+//        wq2.eq(TjOrderDetail::getIsSampling, 0);
+//        List<TjOrderDetail> detailList1 = tjOrderDetailService.list(wq2);
+        List<TjOrderDetail> detailList1 = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
+//        log.info("TjOrderDetail ->{}",JSONUtil.toJsonStr(detailList1));
+        tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, sysUser,null);
+
+        String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request");
+        if (mergeRequest.equals("Y")){
+            LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber());
+            List<TjSampling> list = tjSamplingService.list(wrapper);
+            log.info("閲囨牱鏁版嵁 ->{}",JSONUtil.toJsonStr(list));
+            if (!list.isEmpty()) {
+                Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode));
+            log.info("鍒嗙粍鍚� ->{}",JSONUtil.toJsonStr(listMap));
+                ArrayList<String> ids = new ArrayList<>();
+                for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) {
+                log.info("key ->{},val ->{}",entry.getKey(),entry.getValue());
+                    // Lis鏍囨湰浠g爜
+                    String specimenTypeCode = entry.getKey();
+                    List<TjSampling> samplings = entry.getValue();
+                    if (samplings.size() >= 2) {
+                        // 杩涜鍚堝苟
+                        List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList());
+                        log.info("鎻愬彇id ->{}",stringList);
+                        for (int i = 0; i < stringList.size(); i++) {
+                            String s = stringList.get(i);
+                            if (tjSamplingService.isMergeItem(s) != 0) {
+                                stringList.remove(s);
+                                ids.add(s);
+                            }
+                        }
+                        if (stringList.size() > 1) {
+                            String id = tjSamplingService.mergeCaiYangApi(stringList);
+                            ids.add(id);
+                        }else {
+                            ids.add(stringList.get(0));
+                        }
+                    } else {
+                        ids.add(samplings.get(0).getId());
+                    }
+                }
+                Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
+                if (!confirmed) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("澶勭悊澶辫触");
+                }
+            }
+        }
+
+        //妫�楠岀敵璇�
+//        OutpintestapplyDto dto = new OutpintestapplyDto();
+//        dto.setHisRegistrationId(tjOrder.getCardId());
+//        dto.setSfzh(customer.getCusIdcard());
+//        dto.setSqysbm("00029");
+//        dto.setMzksbm("0101");
+//        dto.setSjrq(date);
+//        dto.setCzybm("00029");
+//        dto.setCzyksbm("0101");
+//        dto.setSfjz("0");
+
+//        List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>();
+
+        //闂ㄨ瘖娌荤枟澶勭疆鐢宠
+//        OutpintreatapplyDto dao = new OutpintreatapplyDto();
+//        dao.setHisRegistrationId(tjOrder.getCardId());
+//        dao.setSfzh(customer.getCusIdcard());
+//        dao.setSqysbm("00029");
+//        dao.setMzksbm("0101");
+//        dao.setSjrq(date);
+//        dao.setCzybm("00029");
+//        dao.setCzyksbm("0101");
+//        dao.setSfjz("0");
+//        List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>();
+//        if (!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.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(tjOrder.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 resultt = controller.Outpinmedicapply(dto1);
+//            String result1 = getAjaxResult(resultt);
+//            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.setCardId(tjOrder.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());
+//                    cfService.save(cf);
+//                }
+//            }
+//        }
+
+        return AjaxResult.success();
+    }
+
+    //閫�璐瑰悗鍙栨秷鎺ヨ瘖浣滃簾鐢宠鍗曠瓑鎿嶄綔
     @Transactional
-    public void HisApiMethods(TjCustomer customer, Long orderId) {
-        HisApiGetMethodService hisApiGetMethodService = new HisApiGetMethodService();
+    public boolean ZfHisApiMethods(TjCustomer customer, TjOrder order,Boolean isUseLisAndPacsRegister) {
+        String ysbm = configService.selectConfigByKey("request_default_ysbm");
 
         Date dates = new Date();
         final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
-        AjaxResult result = controller.Outpincreateapply(customer);
-        String result1 = getAjaxResult(result);
-        JSONObject object = getJSONObject(result1);
-        String code = object.getStr("ResultCode");
-        if (code.equals("0")) {
-            JSONArray resultDatass = object.getJSONArray("ResultData");
-            Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0);
-            if (null != resultData && resultData.size() > 0) {
-                String pationid = resultData.get("PationId").toString();
-                if (null != pationid) {
-                    customer.setPationId(pationid);
-                    customerService.updateById(customer);
-                    OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
-                    outpinregapplyDto.setPationid(pationid);
-//                    outpinregapplyDto.setHisRegistrationId(pationid);
-                    outpinregapplyDto.setSqysbm(SecurityUtils.getUsername());
-                    outpinregapplyDto.setMzksbm("0101");
-                    outpinregapplyDto.setCzybm("00029");
-                    outpinregapplyDto.setSfjz("0");
-                    outpinregapplyDto.setGhzlbm("01");
-                    outpinregapplyDto.setYwckbm("0001");
-                    outpinregapplyDto.setSflstd("0");
-                    outpinregapplyDto.setGhrq(date);
-                    //闂ㄨ瘖鎸傚彿
-                    AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
-                    String result2 = getAjaxResult(ajaxResult);
-                    JSONObject object1 = getJSONObject(result2);
-                    String code1 = object1.getStr("ResultCode");
+
+
+        List<String> zlsqdh = orderService.getHuoQuZlsqdh(order.getCardId());
+
+
+        List<String> cfhs = cfService.getCfhs(order.getCardId());
+
+
+        AjaxResult ajaxResult = null;
+        String result2 = null;
+        JSONObject object1 = null;
+        String code1 = null;
+
+//        if (isUseLisAndPacsRegister){
+            TjCustomer customer1 = customerService.getById(order.getUserId());
+            // 浣滃簾妫�鏌ョ敵璇�
+        List<String> bljcsqdhByPacs = orderService.getBljcsqdhByPacs(order.getCardId());
+        if (bljcsqdhByPacs != null && !bljcsqdhByPacs.isEmpty()){
+            for (String sqdh : bljcsqdhByPacs) {
+                AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
+                String result = cancelPacsAjaxResult.get("data").toString();
+                JSONObject object = JSONUtil.parseObj(result);
+                String code = object.getStr("ResultCode");
+                if(code.equals("1")){
+                    orderService.delHuoQuJcsqdh(order.getCardId());
+                }
+            }
+        }
+            // 浣滃簾妫�楠岀敵璇�
+        List<String> bljysqdhByLis = orderService.getBljysqdhByLis(order.getCardId());
+        if (bljysqdhByLis != null && !bljysqdhByLis.isEmpty()){
+            for (String sqdh : bljysqdhByLis) {
+                AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
+                log.info("lis璇锋眰杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
+                if (cancelLisAjaxResult.get("code").toString().equals("200")){
+                    String result = cancelLisAjaxResult.get("data").toString();
+                    JSONObject object = JSONUtil.parseObj(result);
+                    String code= object.getStr("ResultCode");
+                    if(code.equals("1")){
+                        orderService.delHuoQuJysqdh(order.getCardId());
+                    }
+                }
+            }
+        }
+
+//        }else {
+        List<String> jcsqdh = orderService.getHuoQuJcsqdh(order.getCardId());
+
+        List<String> jysqdh = orderService.getHuoQuJysqdh(order.getCardId());
+            //2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
+            if (null != jcsqdh && jcsqdh.size()>0) {
+                for (String s : jcsqdh) {
+                    AjaxResult result = controller.Outpindelexamapply(order.getCardId(), ysbm, s);
+                    String result1 = getAjaxResult(result);
+                    JSONObject object = getJSONObject(result1);
+                    String code = object.getStr("ResultCode");
+                    if (code.equals("0")) {
+                        orderService.delHuoQuJcsqdh(order.getCardId());
+                    }
+//                else {
+//                    return false;
+//                }
+                }
+
+            }
+            //2.1.6.3 浣滃簾闂ㄨ瘖妫�楠岀敵璇�
+            if (null != jysqdh && jysqdh.size()>0) {
+                for (String s : jysqdh) {
+                    ajaxResult = controller.Outpindeltestapply(order.getCardId(), ysbm, s);
+                    result2 = getAjaxResult(ajaxResult);
+                    object1 = getJSONObject(result2);
+                    code1 = object1.getStr("ResultCode");
                     if (code1.equals("0")) {
-                        JSONArray resultDatas = object1.getJSONArray("ResultData");
-                        if (null != resultDatas && resultDatas.size() > 0) {
-                            Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0);
-                            String hisRegistrationId = resultDatasss.get("his_registration_id").toString();
-                            if (null != hisRegistrationId) {
-                                //闂ㄨ瘖鍖荤敓鎺ヨ瘖
-                                AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername());
-                                String result4 = getAjaxResult(result3);
-                                JSONObject object2 = getJSONObject(result4);
-                                String code2 = object2.getStr("ResultCode");
-                                if (code2.equals("0")) {
-                                    Map<String, Object> data = object2.getJSONObject("ResultData");
-                                    String toString = data.get("his_registration_id").toString();
-                                    if (null != toString) {
-                                        //妫�楠岀敵璇�
-                                        OutpintestapplyDto dto = new OutpintestapplyDto();
-                                        dto.setHisRegistrationId(hisRegistrationId);
-                                        dto.setSfjz(customer.getCusIdcard());
-                                        dto.setSqysbm(SecurityUtils.getUsername());
-                                        dto.setMzksbm("0101");
-                                        dto.setSjrq(date);
-                                        dto.setCzybm("00029");
-                                        dto.setCzyksbm("0101");
-                                        dto.setSfjz("1");
-                                        List<TjOrderDetail> detailList = detailService.getTjOrderDetailListByOrderId(orderId.toString());
-                                        List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
-                                        if (null != detailList && detailList.size() > 0) {
-                                            LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
-                                            wq.in(TjProject::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
-                                            List<TjProject> projects = projectService.list(wq);
-                                            if (null != projects && projects.size() > 0) {
-                                                for (TjProject project : projects) {
-                                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
-//                                                    if(null !=project.getHisXmbm()){
-//                                                        detailsDto.setMxfyxmbm(project.getHisXmbm());
-//                                                    }else {
-//                                                        detailsDto.setMxfyxmbm(null);
-//                                                    }
-                                                    detailsDto.setMxfyxmbm("tj001");
-                                                    detailsDto.setSfzhfy("1");
-                                                    detailsDto.setSl(1);
-                                                    detailsDtos.add(detailsDto);
-                                                }
-                                            }
-                                        }
-                                        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")) {
-                                            Map<String, Object> datas = object3.getJSONObject("ResultData");
-                                            datas.put("cardId", hisRegistrationId);
-                                            JSONObject object4 = JSONUtil.parseObj(datas);
-                                            if(null ==orderService.getHuoQuJysqdh(hisRegistrationId)){
-                                                hisApiGetMethodService.save(object4, "Outpintestapply");
-                                            }
-                                            //闂ㄨ瘖妫�鏌ョ敵璇�
-                                            OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto();
-                                            outpinexamapplyDto.setHisRegistrationId(hisRegistrationId);
-                                            outpinexamapplyDto.setSfzh(customer.getCusIdcard());
-                                            outpinexamapplyDto.setSqysbm(SecurityUtils.getUsername());
-                                            outpinexamapplyDto.setMzksbm("0101");
-                                            outpinexamapplyDto.setCzybm("00029");
-                                            outpinexamapplyDto.setCzyksbm("0101");
-                                            List<TjOrderDetail> detailLists = detailService.getTjOrderDetailListByOrderId(orderId.toString());
-                                            List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>();
-                                            if (null != detailList && detailList.size() > 0) {
-                                                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
-                                                wq.in(TjProject::getProId, detailLists.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
-                                                List<TjProject> projects = projectService.list(wq);
-                                                if (null != projects && projects.size() > 0) {
-                                                    for (TjProject project : projects) {
-                                                        OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
-                                                        detailsDto.setMxfyxmbm("tj001");
-                                                        detailsDto.setSfzhfy("1");
-                                                        detailsDto.setSl(1);
-                                                        detailsDtoss.add(detailsDto);
-                                                    }
-                                                }
-                                            }
-                                            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")) {
-                                                Map<String, Object> map = object5.getJSONObject("ResultData");
-                                                map.put("cardId", hisRegistrationId);
-                                                JSONObject jsonObject = JSONUtil.parseObj(map);
-                                                if(null ==orderService.getHuoQuJcsqdh(hisRegistrationId))
-                                                hisApiGetMethodService.save(jsonObject, "Outpinexamapply");
-                                            }
-                                        }
-                                    }
-                                }
+                        orderService.delHuoQuJysqdh(order.getCardId());
+                    }
+//                else {
+//                    return false;
+//                }
+                }
+            }
+
+            //2.1.6.9 浣滃簾闂ㄨ瘖娌荤枟澶勭疆鐢宠
+            if (null != zlsqdh && zlsqdh.size()>0) {
+                for (String s : zlsqdh) {
+                    ajaxResult = controller.Outpintdelreatapply(order.getCardId(), ysbm, s);
+                    result2 = getAjaxResult(ajaxResult);
+                    object1 = getJSONObject(result2);
+                    code1 = object1.getStr("ResultCode");
+                    if (code1.equals("0")) {
+                        orderService.delHuoQuZlsqdh(order.getCardId());
+                    }
+                }
+            }
+
+            //浣滃簾鑽搧鐢宠
+            if(null !=cfhs && cfhs.size()>0){
+                for (String cfh : cfhs) {
+                    AjaxResult result = controller.Outpindelmedicapply(order.getCardId(), ysbm, cfh);
+                    String result1 = getAjaxResult(result);
+                    JSONObject object = getJSONObject(result1);
+                    String code = object.getStr("ResultCode");
+                    if(null !=code && code.equals("0")){
+                        cfService.delCfByCardId(cfh);
+                    }
+                }
+            }
+//        }
+
+        //2.1.3 闂ㄨ瘖鍖荤敓鍙栨秷鎺ヨ瘖
+        ajaxResult = controller.Outpinunconapply(order.getCardId(), date, ysbm);
+        result2 = getAjaxResult(ajaxResult);
+        object1 = getJSONObject(result2);
+        code1 = object1.getStr("ResultCode");
+//        if (!code1.equals("0")) {
+//            return false;
+//        }
+        return true;
+    }
+
+
+
+    //浣滃簾琛ュ綍椤圭洰
+    public boolean ZfBlXm(List<String> bldhs, TjOrder order) {
+        log.info("bldhs ->{}",JSONUtil.toJsonStr(bldhs));
+        if(null !=bldhs && bldhs.size()>0){
+            log.info("杩涘叆鍒ゆ柇");
+            String ysbm = configService.selectConfigByKey("request_default_ysbm");
+            try {
+                for (String bldh : bldhs) {
+
+                    List<String> zlsqdh = orderService.getHuoQuBlZlsqdh(order.getCardId(),bldh);
+
+
+                    List<String> cfhs = cfService.getCfBlhs(order.getCardId(),bldh);
+
+                    AjaxResult ajaxResult = null;
+                    String result2 = null;
+                    JSONObject object1 = null;
+                    String code1 = null;
+                    log.info("鏌ヨ鍓�");
+//                    if (lisApiMethod.isUseLisAndPacsRegister(order)) {
+                    TjCustomer customer1 = customerService.getById(order.getUserId());
+                    log.info("customer1 ->{}",customer1);
+                    List<String> bljcsqdhByPacs = orderService.getBljcsqdhByPacs(order.getCardId(), bldh);
+                    log.info("bljcsqdhByPacs ->{}",bljcsqdhByPacs);
+                    // 浣滃簾妫�鏌ョ敵璇�
+                    if (bljcsqdhByPacs != null && !bljcsqdhByPacs.isEmpty()){
+                        for (String sqdh : bljcsqdhByPacs) {
+                            AjaxResult cancelPacsAjaxResult = pacsApiMethodService.updatePacsApply(sqdh, order.getCardId(), customer1.getCusName());
+                            log.info("浣滃簾妫�鏌� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelPacsAjaxResult));
+                            String result = cancelPacsAjaxResult.get("data").toString();
+                            JSONObject object = JSONUtil.parseObj(result);
+                            String code = object.getStr("ResultCode");
+                            if(code.equals("1")){
+                                orderService.delHuoQuBlJcsqdh(order.getCardId(),bldh);
+                            }else {
+                                return false;
+                            }
+                        }
+                    }
+                    List<String> bljysqdhByLis = orderService.getBljysqdhByLis(order.getCardId(), bldh);
+                    log.info("bljysqdhByLis ->{}",bljysqdhByLis);
+                    // 浣滃簾妫�楠岀敵璇�
+                    if (bljysqdhByLis != null && !bljysqdhByLis.isEmpty()){
+                        for (String sqdh : bljysqdhByLis) {
+                            AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName());
+                            log.info("浣滃簾妫�楠� pacs杩斿洖 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult));
+                            String result = cancelLisAjaxResult.get("data").toString();
+                            JSONObject object = JSONUtil.parseObj(result);
+                            String code= object.getStr("ResultCode");
+                            if(code.equals("1")){
+                                orderService.delHuoQuBlJysqdh(order.getCardId(),bldh);
+                            }else {
+                                return false;
                             }
                         }
                     }
 
+                    List<String> jcsqdh = orderService.getHuoQuBlJcsqdh(order.getCardId(),bldh);
+
+                    List<String> jysqdh = orderService.getHuoQuBlJysqdh(order.getCardId(),bldh);
+//                    }else {
+//                        2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
+                        if (null != jcsqdh && jcsqdh.size()>0) {
+                            for (String s : jcsqdh) {
+                                AjaxResult result = controller.Outpindelexamapply(order.getCardId(), ysbm, s);
+                                String result1 = getAjaxResult(result);
+                                JSONObject object = getJSONObject(result1);
+                                String code = object.getStr("ResultCode");
+                                if (code.equals("0")) {
+                                    orderService.delHuoQuBlJcsqdh(order.getCardId(),bldh);
+                                }else {
+                                    return false;
+                                }
+                            }
+                        }
+
+                        //2.1.6.3 浣滃簾闂ㄨ瘖妫�楠岀敵璇�
+                        if (null != jysqdh && jysqdh.size()>0) {
+                            for (String s : jysqdh) {
+                                ajaxResult = controller.Outpindeltestapply(order.getCardId(), ysbm, s);
+                                result2 = getAjaxResult(ajaxResult);
+                                object1 = getJSONObject(result2);
+                                code1 = object1.getStr("ResultCode");
+                                if (code1.equals("0")) {
+                                    orderService.delHuoQuBlJysqdh(order.getCardId(),bldh);
+                                }else {
+                                    return false;
+                                }
+                            }
+                        }
+
+                        //2.1.6.9 浣滃簾闂ㄨ瘖娌荤枟澶勭疆鐢宠
+                        if (null != zlsqdh && zlsqdh.size()>0) {
+                            for (String s : zlsqdh) {
+                                ajaxResult = controller.Outpintdelreatapply(order.getCardId(), ysbm, s);
+                                result2 = getAjaxResult(ajaxResult);
+                                object1 = getJSONObject(result2);
+                                code1 = object1.getStr("ResultCode");
+                                if (code1.equals("0")) {
+                                    orderService.delHuoQuZlsqdh(order.getCardId(),bldh);
+                                }else {
+                                    return false;
+                                }
+                            }
+                        }
+
+                        //浣滃簾鑽搧鐢宠
+                        if(null !=cfhs && cfhs.size()>0){
+                            for (String cfh : cfhs) {
+                                AjaxResult result = controller.Outpindelmedicapply(order.getCardId(), ysbm, cfh);
+                                String result1 = getAjaxResult(result);
+                                JSONObject object = getJSONObject(result1);
+                                String code = object.getStr("ResultCode");
+                                if(null !=code && code.equals("0")){
+                                    cfService.delCfByCardId(cfh);
+                                }else {
+                                    return false;
+                                }
+                            }
+                        }
+//                    }
+                    return true;
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                return false;
+            }
+        }
+        return true;
+    }
+
+    //閫�璐瑰悗鍙栨秷鎺ヨ瘖浣滃簾鐢宠鍗曠瓑鎿嶄綔
+    public boolean ZfHisApiMethod(String jzh) {
+        String ysbm = configService.selectConfigByKey("request_default_ysbm");
+        Date dates = new Date();
+        final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
+
+        List<String> jcsqdh = orderService.getHuoQuJcsqdh(jzh);
+
+        List<String> jysqdh = orderService.getHuoQuJysqdh(jzh);
+
+
+        List<String> zlsqdh = orderService.getHuoQuZlsqdh(jzh);
+
+
+        List<String> cfhs = cfService.getCfhs(jzh);
+
+        //2.1.6.5 浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
+        if (null != jcsqdh && jcsqdh.size()>0) {
+            for (String s : jcsqdh) {
+                AjaxResult result = controller.Outpindelexamapply(jzh, ysbm, s);
+                String result1 = getAjaxResult(result);
+                JSONObject object = getJSONObject(result1);
+                String code = object.getStr("ResultCode");
+                if (code.equals("0")) {
+                    orderService.delHuoQuJcsqdh(jzh);
                 }
             }
 
         }
+
+
+        //2.1.6.3 浣滃簾闂ㄨ瘖妫�楠岀敵璇�
+
+        AjaxResult ajaxResult = null;
+        String result2 = null;
+        JSONObject object1 = null;
+        String code1 = null;
+
+        if (null != jysqdh && jysqdh.size()>0) {
+            for (String s : jysqdh) {
+                ajaxResult = controller.Outpindeltestapply(jzh, ysbm, s);
+                result2 = getAjaxResult(ajaxResult);
+                object1 = getJSONObject(result2);
+                code1 = object1.getStr("ResultCode");
+                if (code1.equals("0")) {
+                    orderService.delHuoQuJysqdh(jzh);
+                }
+            }
+        }
+
+        //2.1.6.9 浣滃簾闂ㄨ瘖娌荤枟澶勭疆鐢宠
+        if (null != zlsqdh && zlsqdh.size()>0) {
+            for (String s : zlsqdh) {
+                ajaxResult = controller.Outpintdelreatapply(jzh, ysbm, s);
+                result2 = getAjaxResult(ajaxResult);
+                object1 = getJSONObject(result2);
+                code1 = object1.getStr("ResultCode");
+                if (code1.equals("0")) {
+                    orderService.delHuoQuZlsqdh(jzh);
+                }
+            }
+        }
+
+        //浣滃簾鑽搧鐢宠
+        if(null !=cfhs && cfhs.size()>0){
+            for (String cfh : cfhs) {
+                AjaxResult result = controller.Outpindelmedicapply(jzh, ysbm, cfh);
+                String result1 = getAjaxResult(result);
+                JSONObject object = getJSONObject(result1);
+                String code = object.getStr("ResultCode");
+                if(null !=code && code.equals("0")){
+                    cfService.delCfByCardId(cfh);
+                }
+            }
+        }
+
+
+        //2.1.3 闂ㄨ瘖鍖荤敓鍙栨秷鎺ヨ瘖
+        ajaxResult = controller.Outpinunconapply(jzh, date, ysbm);
+        result2 = getAjaxResult(ajaxResult);
+        object1 = getJSONObject(result2);
+        code1 = object1.getStr("ResultCode");
+        return true;
     }
 
-
-    //閫�璐瑰悗鍙栨秷鎺ヨ瘖浣滃簾鐢宠鍗曠瓑鎿嶄綔
+    //鑾峰彇闂ㄨ瘖缁撶畻璁板綍
     @Transactional
-    public void ZfHisApiMethods(TjCustomer customer, TjOrder order) {
+    public void getHisMzJsJl(TjOrder order) {
         Date dates = new Date();
         final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
 
-        String jcsqdh= orderService.getHuoQuJcsqdh(order.getCardId());
-
-        String jysqdh= orderService.getHuoQuJysqdh(order.getCardId());
-
-        //浣滃簾闂ㄨ瘖妫�鏌ョ敵璇�
-        AjaxResult result = controller.Outpindelexamapply(order.getCardId(), "00029", jcsqdh);
-        String result1 = getAjaxResult(result);
-        JSONObject object = getJSONObject(result1);
-        String code = object.getStr("ResultCode");
-        if(code.equals("0")){
-            orderService.delHuoQuJcsqdh(order.getCardId());
-        }
-
-        //浣滃簾闂ㄨ瘖鐢宠
-        AjaxResult ajaxResult = controller.Outpindeltestapply(order.getCardId(), "00029", jysqdh);
-        String result2 = getAjaxResult(ajaxResult);
-        JSONObject object1 = getJSONObject(result2);
-        String code1 = object1.getStr("ResultCode");
-        if(code1.equals("0")){
-            orderService.delHuoQuJysqdh(order.getCardId());
-        }
-
-        controller.Outpinunconapply(order.getCardId(),date,"00029");
-
     }
+
 }

--
Gitblit v1.8.0