From 0892d843cd394f383ff50f480f7f22f2ec3829bc Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期五, 27 六月 2025 20:24:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java |  440 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 349 insertions(+), 91 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
index 3873138..28a48a6 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
@@ -3,26 +3,38 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.XmlUtil;
+import cn.hutool.http.HttpRequest;
+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.SysDept;
 import com.ltkj.common.utils.AgeResult;
 import com.ltkj.common.utils.DateUtils;
 import com.ltkj.hosp.domain.*;
 import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
 import com.ltkj.hosp.pacsDto.SavePacsApply;
 import com.ltkj.hosp.service.*;
+import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
+import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.web.controller.his.HisApiGetMethodService;
+import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
+import javax.xml.soap.*;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -46,139 +58,193 @@
     private LtkjEjjfxmzdService ltkjEjjfxmzdService;
     @Autowired
     private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private ITbTransitionService transitionService;
+    @Autowired
+    private ITjOrderService tjOrderService;
+    @Autowired
+    private LtkjExamJcsqdService ltkjExamJcsqdService;
 
 
     /**
      * pas 妫�鏌ョ敵璇蜂俊鎭繚瀛�
+     *
      * @param savePacsApply
      * @return
      */
-    private AjaxResult savePacsApply(SavePacsApply savePacsApply){
+    private AjaxResult savePacsApply(SavePacsApply savePacsApply) {
         Map<String, Object> map = BeanUtil.beanToMap(savePacsApply);
         return getMethodService.getPacsData("savePacsApply", map);
     }
 
     /**
      * pas 缁撴灉鑾峰彇
+     *
      * @param regNo 妫�鏌ョ敵璇峰崟鍙�
      * @return
      */
-    public AjaxResult getPacsReport(String regNo){
+    public AjaxResult getPacsReport(String regNo) {
         HashMap<String, Object> hashMap = new HashMap<>();
         hashMap.put("regNo", regNo);
-        return getMethodService.getPacsData("getPacsReport",hashMap);
+        return getMethodService.getPacsData("getPacsReport", hashMap);
     }
 
     /**
      * pas 妫�鏌ョ敵璇蜂俊鎭綔搴�
-     * @param regNo 妫�鏌ョ敵璇峰崟鍙�
+     *
+     * @param regNo  妫�鏌ョ敵璇峰崟鍙�
      * @param examNo 浣撴鍙�
-     * @param name 鐥呬汉濮撳悕
+     * @param name   鐥呬汉濮撳悕
      * @return
      */
-    public AjaxResult updatePacsApply(String regNo,String examNo,String name){
+    public AjaxResult updatePacsApply(String regNo, String examNo, String name) {
         HashMap<String, Object> hashMap = new HashMap<>();
         hashMap.put("regNo", regNo);
         hashMap.put("examNo", examNo);
         hashMap.put("name", name);
-        log.info("浣滃簾妫�鏌� ->{}",JSONUtil.toJsonStr(hashMap));
-//        return getMethodService.getPacsData("updatePacsApply",hashMap);
-        return AjaxResult.success();
+        log.info("浣滃簾妫�鏌� ->{}", JSONUtil.toJsonStr(hashMap));
+        return getMethodService.getPacsData("updatePacsApply", hashMap);
+//        JSONObject object = JSONUtil.createObj();
+//        object.putOpt("ResultCode","1");
+//        return AjaxResult.success().put("data",JSONUtil.toJsonStr(object));
     }
 
-    public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer,List<TbTransition> detailList) {
+    public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TbTransition> detailList) {
+//        if (true)
+//            return true;
+        JSONArray array = JSONUtil.createArray();
+        ArrayList<SavePacsApply> errorPacsList = new ArrayList<>();
+        ArrayList<SavePacsApply> successPacsList = new ArrayList<>();
+        int allTotal = 0;
         if (detailList != null && !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());
+            wq.in(TjProject::getDeptId, deptService.getJcDeptIds());
             List<TjProject> projects = projectService.list(wq);
-            ArrayList<SavePacsApply> errorPacsList = new ArrayList<>();
-            ArrayList<SavePacsApply> successPacsList = new ArrayList<>();
-            int allTotal = 0;
-            if (projects != null && !projects.isEmpty()){
-                for (TjProject project : projects) {
-                    if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
-                        if (null != project.getHisXmbm()) {
-                            SavePacsApply savePacsApply = new SavePacsApply();
-                            savePacsApply.setExamNo(tjOrder.getCardId());
-                            savePacsApply.setName(tjCustomer.getCusName());
-                            savePacsApply.setSex(tjCustomer.getCusSex()==1?"2":"1");
-                            AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
-                            savePacsApply.setAge(String.valueOf(ageResult.getAge()));
-                            savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
-                            savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
-                            savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
-                            savePacsApply.setTel(tjCustomer.getCusPhone());
-                            Date date = new Date();
-                            String regNo = "jk_"+DateFormatUtils.format(date, "yyyyMMddHHmmss") +"_"+project.getHisXmbm();
-                            savePacsApply.setRegNo(regNo);
-                            savePacsApply.setCheckItemID(project.getHisXmbm());
-                            savePacsApply.setCheckItem(project.getHisXmmc());
-                            // TODO 妫�鏌ラ儴浣�
-                            savePacsApply.setCheckPosition("");
-                            savePacsApply.setAmount(project.getProPrice());
-                            savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
-                            savePacsApply.setApplyDepment("0101");
-                            savePacsApply.setApplyDepmentName("浣撴涓績");
-                            savePacsApply.setApplyDoctor("00029");
-                            savePacsApply.setApplyDoctorName("鐜嬪仴钀�");
-                            savePacsApply.setExecDepment("0101");
-                            savePacsApply.setExecDepmentName("浣撴涓績");
-                            savePacsApply.setCreateTime(savePacsApply.getApplyDate());
-                            // TODO 妫�鏌ヨ澶�
-                            savePacsApply.setDevice("");
-                            // TODO 妫�鏌ヨ澶囩被鍨�
-                            savePacsApply.setDeviceType("");
-                            log.info("妫�鏌ョ敵璇� ->{}",JSONUtil.toJsonStr(savePacsApply));
-                            if (true)
-                                return false;
-                            AjaxResult ajaxResult = savePacsApply(savePacsApply);
-                            String result = ajaxResult.get("data").toString();
-                            JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response"));
-                            log.info("璇锋眰杩斿洖 ->{}",object);
-                            String code = object.getStr("ResultCode");
-                            allTotal++;
-                            if(code.equals("0")){
-                                successPacsList.add(savePacsApply);
-                                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
-                                tree.setCardId(tjOrder.getCardId());
-                                tree.setPationid(tjCustomer.getPationId());
-                                tree.setSqdh(regNo);
-                                tree.setFyhj(String.valueOf(project.getProPrice()));
-                                tree.setHisXmdm(project.getHisXmbm());
-                                tree.setType("妫�鏌�");
-                                tree.setTjPrice(String.valueOf(project.getProPrice()));
-                                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
-                                if (project.getSfzhfy().equals("Y"))
-                                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
-                                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
-                                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);
-                            }else {
-                                errorPacsList.add(savePacsApply);
+            try {
+                allTotal = saveProjects(tjOrder, tjCustomer, projects, array, successPacsList, errorPacsList);
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                for (Object object : array) {
+                    JSONObject jsonObject = (JSONObject) object;
+                    updatePacsApply(jsonObject.getStr("regNo"), jsonObject.getStr("cardId"), jsonObject.getStr("name"));
+                }
+                return false;
+            }
+        }
+        log.info("妫�鏌ユ�昏 ->{}涓�", allTotal);
+        if (!errorPacsList.isEmpty()) {
+            log.info("鎴愬姛 ->{}", successPacsList);
+            log.error("澶辫触 ->{}", errorPacsList);
+        }
+        return true;
+    }
+
+    public int saveProjects(TjOrder tjOrder, TjCustomer tjCustomer, List<TjProject> projects, JSONArray array, ArrayList<SavePacsApply> successPacsList, ArrayList<SavePacsApply> errorPacsList) {
+        int allTotal = 0;
+        if (projects != null && !projects.isEmpty()) {
+            String dept = configService.selectConfigByKey("request_default_dept");
+            String ysbm = configService.selectConfigByKey("request_default_ysbm");
+            String ysmc = configService.selectConfigByKey("request_default_ysmc");
+            for (TjProject project : projects) {
+                if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
+                    if(project.getSfzhfy().equalsIgnoreCase("Y")){
+                        allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, project, dept, ysbm, ysmc, allTotal);
+                    }else {
+                        List<TjProject> bySoneId = projectService.getTjProjectListBySoneId(project.getProId().toString());
+                        for (TjProject tjProject : bySoneId) {
+                            if(project.getProPrice().compareTo(BigDecimal.ZERO) != 0){
+                                allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, tjProject, dept, ysbm, ysmc, allTotal);
                             }
                         }
                     }
+
                 }
             }
-            log.info("妫�鏌ユ�昏 ->{}涓�",allTotal);
-            if (!errorPacsList.isEmpty()){
-                log.info("鎴愬姛 ->{}",successPacsList);
-                log.error("澶辫触 ->{}",errorPacsList);
+        }
+        return allTotal;
+    }
+
+    private int getAllTotal(TjOrder tjOrder, TjCustomer tjCustomer, JSONArray array, ArrayList<SavePacsApply> successPacsList, ArrayList<SavePacsApply> errorPacsList, TjProject project, String dept, String ysbm, String ysmc, int allTotal) {
+        if (StringUtil.isNotBlank(project.getHisXmbm())) {
+            SavePacsApply savePacsApply = new SavePacsApply();
+            savePacsApply.setExamNo(tjOrder.getCardId());
+            savePacsApply.setName(tjCustomer.getCusName());
+            savePacsApply.setSex(tjCustomer.getCusSex() == 1 ? "2" : "1");
+            AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
+            savePacsApply.setAge(String.valueOf(ageResult.getAge()));
+            savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
+            savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
+            savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
+            savePacsApply.setTel(tjCustomer.getCusPhone());
+            Date date = new Date();
+            String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
+            savePacsApply.setRegNo(regNo);
+            JSONObject jsonObject = JSONUtil.createObj();
+            jsonObject.putOpt("cardId", tjOrder.getCardId());
+            jsonObject.putOpt("regNo", regNo);
+            jsonObject.putOpt("name", tjCustomer.getCusName());
+            array.add(jsonObject);
+            savePacsApply.setCheckItemID(project.getHisXmbm());
+            savePacsApply.setCheckItem(project.getProName());
+            // TODO 妫�鏌ラ儴浣�
+            savePacsApply.setCheckPosition("-");
+            savePacsApply.setAmount(project.getProPrice());
+            savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
+            savePacsApply.setApplyDepment(dept);
+            savePacsApply.setApplyDepmentName("浣撴涓績");
+            savePacsApply.setApplyDoctor(ysbm);
+            savePacsApply.setApplyDoctorName(ysmc);
+            savePacsApply.setExecDepment(dept);
+            savePacsApply.setExecDepmentName("浣撴涓績");
+            savePacsApply.setCreateTime(savePacsApply.getApplyDate());
+            // TODO 妫�鏌ヨ澶�
+            savePacsApply.setDevice("-");
+            // TODO 妫�鏌ヨ澶囩被鍨�
+            savePacsApply.setDeviceType("-");
+            log.info("PACS妫�鏌ョ敵璇� ->{}", JSONUtil.toJsonStr(savePacsApply));
+            AjaxResult ajaxResult = savePacsApply(savePacsApply);
+            log.info("杩斿洖 ->{}",JSONUtil.toJsonStr(ajaxResult));
+            String result = ajaxResult.get("data").toString();
+            JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
+            log.info("PACS璇锋眰杩斿洖 ->{}", object);
+            String code = object.getStr("ResultCode");
+            allTotal++;
+            if (code.equals("1")) {
+                successPacsList.add(savePacsApply);
+                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                tree.setCardId(tjOrder.getCardId());
+                tree.setPationid(tjCustomer.getPationId());
+                tree.setSqdh(regNo);
+                tree.setFyhj(String.valueOf(project.getProPrice()));
+                tree.setHisXmdm(project.getHisXmbm());
+                tree.setType("妫�鏌�");
+                tree.setService("pacs");
+                tree.setTjPrice(String.valueOf(project.getProPrice()));
+                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                if (project.getSfzhfy().equals("Y"))
+                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
+                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
+                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);
+            } else {
+                errorPacsList.add(savePacsApply);
             }
         }
-        return true;
+        return allTotal;
     }
 
     /*         鏌ヨ妫�鏌ョ粨鏋溿�佹洿鏂版煡璇㈢姸鎬�           */
@@ -186,4 +252,196 @@
     // exec usp_tjjk_pacsjg 鈥樹綋妫�鍙封��
     // 璋冪敤鏇存柊鐘舵�侊細
     // exec usp_tjjk_pacszt 鈥樹綋妫�鍙封��
+
+
+    /**
+     * 璋冪敤pacs鐢宠鍗曟帹閫�
+     * xml浼犻��
+     */
+    public boolean OrderAdd(TjCustomer customer,TjOrder tjOrder){
+        String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
+
+        List<TbTransition> detailList = transitionService.getTbTransitionListByCusId(customer.getCusIdcard(), tjOrder.getCardId());
+        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);
+        HashMap<String, Object> root = new HashMap<>();
+        HashMap<String, Object> hashMap = new HashMap<>();
+
+        String xmlRequest = "";
+
+        MessageFactory messageFactory = null;
+        try {
+            // 鍒涘缓SOAP娑堟伅
+            messageFactory = MessageFactory.newInstance();
+            SOAPMessage soapMessage = messageFactory.createMessage();
+            // 鍒涘缓SOAP Envelope
+            SOAPPart soapPart = soapMessage.getSOAPPart();
+            SOAPEnvelope envelope = soapPart.getEnvelope();
+            envelope.addNamespaceDeclaration("xmlns", "http://tempuri.org/");
+
+            // 鍒涘缓SOAP Body
+            SOAPBody soapBody = envelope.getBody();
+            SOAPElement rootElement = soapBody.addChildElement("OrderAdd", "xmlns");
+            rootElement.addChildElement("dataSourceName").addTextNode("hisDataSource");
+
+            // PatientInfor 閮ㄥ垎
+            SOAPElement patientInfor = rootElement.addChildElement("PatientInfor");
+            if (customer.getCusSex() == 0) patientInfor.addChildElement("PatientSex").addTextNode("M");
+            else if (customer.getCusSex() == 1) patientInfor.addChildElement("PatientSex").addTextNode("F");
+            else patientInfor.addChildElement("PatientSex").addTextNode("O");
+            patientInfor.addChildElement("PatBirthday").addTextNode(new SimpleDateFormat("yyyy-MM-dd").format(customer.getCusBrithday()));
+            patientInfor.addChildElement("VisitNo").addTextNode(tjOrder.getTjNumber());
+            patientInfor.addChildElement("PatientId").addTextNode(String.valueOf(customer.getCusId()));
+            patientInfor.addChildElement("HospitalID").addTextNode("shanxiqinxamjyy");
+            patientInfor.addChildElement("IdCard").addTextNode(customer.getCusIdcard());
+            patientInfor.addChildElement("PatientName").addTextNode(customer.getCusName());
+            patientInfor.addChildElement("PatType").addTextNode("P");
+
+            // ExamItemList 閮ㄥ垎
+            SOAPElement examItemList = rootElement.addChildElement("ExamItemList");
+
+            String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            for (TjProject project : projects) {
+                SOAPElement examItem = examItemList.addChildElement("ExamItem");
+                examItem.addChildElement("HisID").addTextNode(tjOrder.getTjNumber() + String.valueOf(project.getProId()).substring(String.valueOf(project.getProId()).length() - 4));
+                examItem.addChildElement("EmergencyFlag").addTextNode("0");
+                examItem.addChildElement("ExamItemID").addTextNode(project.getHisXmbm());
+                examItem.addChildElement("ExamItemName").addTextNode(project.getHisXmmc());
+                examItem.addChildElement("OrderDT").addTextNode(date);
+                SysDept dept = deptService.getById(project.getDeptId());
+                examItem.addChildElement("Modality").addTextNode(dept.getModality());
+                examItem.addChildElement("ChargeFlag").addTextNode("1");
+            }
+
+            // 淇濆瓨SOAP娑堟伅
+            soapMessage.saveChanges();
+
+            // 鎵撳嵃鐢熸垚鐨凷OAP璇锋眰
+            System.out.println("鐢熸垚鐨凷OAP璇锋眰鍐呭锛�");
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            soapMessage.writeTo(byteArrayOutputStream);
+            xmlRequest = byteArrayOutputStream.toString("UTF-8");
+        } catch (SOAPException | IOException e) {
+            log.error("SOAP寮傚父 ->{}",String.valueOf(e));
+        }
+
+
+//        HashMap<String, Object> patientInfo = new HashMap<>();
+//        patientInfo.put("PatientId",customer.getCusId());
+//        patientInfo.put("VisitNo",tjOrder.getTjNumber());
+//        patientInfo.put("PatType","P");
+//        patientInfo.put("PatientName",customer.getCusName());
+//        if (customer.getCusSex() == 0) patientInfo.put("PatientSex","M");
+//        else if (customer.getCusSex() == 1) patientInfo.put("PatientSex","F");
+//        else patientInfo.put("PatientSex","O");
+//        patientInfo.put("PatBirthday",new SimpleDateFormat("yyyy-MM-dd").format(customer.getCusBrithday()));
+//        patientInfo.put("IdCard",customer.getCusIdcard());
+//        patientInfo.put("hospitalid","chkwyy");
+//        patientInfo.put("HospitalID",hospbm);
+//
+//        HashMap<String, Object> examItemList = new HashMap<>();
+//        List<Map<String, Object>> examItemsList = new ArrayList<>();
+        String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+//
+//        for (TjProject project : projects) {
+//            HashMap<String, Object> examItem = new HashMap<>();
+//            // 鐢宠鍗曞彿瑙勫垯锛氫綋妫�鍙穇project.getProId()鍚庡洓浣�
+//            examItem.put("HisID", tjOrder.getTjNumber() + String.valueOf(project.getProId()).substring(String.valueOf(project.getProId()).length() - 4));
+//            examItem.put("EmergencyFlag", "0");
+//            examItem.put("ExamItemID", project.getHisXmbm());
+//            examItem.put("ExamItemName", project.getHisXmmc());
+//            examItem.put("OrderDT", date);
+//
+//            SysDept dept = deptService.getById(project.getDeptId());
+//            examItem.put("Modality", dept.getModality());
+//            // 鏀惰垂鏍囪瘑锛�1 鏄敹璐癸紝0 鏈敹璐�
+//            examItem.put("ChargeFlag", "1");
+//
+//            examItemsList.add(examItem); // 灏嗘瘡涓狤xamItem娣诲姞鍒伴泦鍚�
+//        }
+//
+//        // 鏋勯�犳渶缁堢殑ExamItemList
+//        examItemList.put("ExamItem", examItemsList);
+//        hashMap.put("ExamItemList", examItemList);
+//
+//        hashMap.put("PatientInfor", patientInfo);
+//
+//        // 灏嗘暟鎹皝瑁呭埌鏍硅妭鐐�
+//        root.put("Root", hashMap);
+//
+//        // 浣跨敤Hutool灏哅ap杞崲涓篨ML瀛楃涓�
+//        String xmlRequest = XmlUtil.mapToXmlStr(root);
+
+        String result = "1";
+        log.info("璋冪敤pacs浼犻�掑弬鏁扮殑鍊间负: "+xmlRequest);
+        Map<String, Object> map = XmlUtil.xmlToMap(result);
+        if (map.get("Code").toString().equals("1")){
+            for (TjProject project : projects) {
+                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                tree.setCardId(tjOrder.getTjNumber());
+                tree.setPationid(String.valueOf(customer.getCusId()));
+                tree.setSqdh(tjOrder.getTjNumber() + String.valueOf(project.getProId()).substring(String.valueOf(project.getProId()).length() - 4));
+                tree.setFyhj(String.valueOf(project.getProPrice()));
+                tree.setHisXmdm(project.getHisXmbm());
+                tree.setType("妫�鏌�");
+                tree.setService("pacs");
+                tree.setTjPrice(String.valueOf(project.getProPrice()));
+                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                if (project.getSfzhfy().equals("Y"))
+                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
+                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
+                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);
+
+
+                LtkjExamJcsqd jcsqd = new LtkjExamJcsqd();
+                jcsqd.setTjh(tjOrder.getTjNumber());
+                jcsqd.setTmh(tree.getSqdh());
+                jcsqd.setJcxmid(tree.getHisXmdm());
+                jcsqd.setJcxmmc(project.getHisXmmc());
+                jcsqd.setSqsj(date);
+                ltkjExamJcsqdService.save(jcsqd);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 璋冪敤pacs鐢宠鍗曚綔搴�
+     * @param sqdh 鐢宠鍗曞彿
+     * @param czrid 鎿嶄綔浜虹紪鐮�
+     * @return
+     */
+    public boolean OrderDelete(String sqdh,String czrid){
+        HashMap<String, Object> root = new HashMap<>();
+        HashMap<String, Object> hashMap = new HashMap<>();
+        LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(new LambdaQueryWrapper<LtkjJianchajianyanTree>().eq(LtkjJianchajianyanTree::getSqdh, sqdh));
+        String pationid = tree.getPationid();
+        hashMap.put("PatientId",pationid);
+        hashMap.put("PatType","P");
+        hashMap.put("Operator",czrid);
+        hashMap.put("HisID",sqdh);
+        root.put("Root",hashMap);
+        String result = HttpRequest.post("").body(XmlUtil.mapToXmlStr(root)).contentType("application/xml;charset:utf-8;").execute().body();
+        Map<String, Object> map = XmlUtil.xmlToMap(result);
+        if (map.get("Code").toString().equals("1")){
+            ltkjJianchajianyanTreeService.removeById(tree);
+            return true;
+        }
+        return false;
+    }
 }

--
Gitblit v1.8.0