From 9f8d59cbb041deed380fa62ec76429258831ec4e Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期六, 12 十月 2024 16:33:15 +0800
Subject: [PATCH] 增加异常捕捉撤销操作

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java |  183 ++++++++++++++++++++++++---------------------
 1 files changed, 98 insertions(+), 85 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..b504ac8 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,6 +3,7 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -82,101 +83,113 @@
         hashMap.put("examNo", examNo);
         hashMap.put("name", name);
         log.info("浣滃簾妫�鏌� ->{}",JSONUtil.toJsonStr(hashMap));
-//        return getMethodService.getPacsData("updatePacsApply",hashMap);
-        return AjaxResult.success();
+        return getMethodService.getPacsData("updatePacsApply",hashMap);
     }
 
     public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer,List<TbTransition> detailList) {
-        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());
-            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());
+        JSONArray array = JSONUtil.createArray();
+        try {
+            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());
+                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);
+                                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.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));
+                                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);
                                 }
-                                tree.setCreateTime(DateUtil.date());
-                                ltkjJianchajianyanTreeService.save(tree);
-                            }else {
-                                errorPacsList.add(savePacsApply);
                             }
                         }
                     }
                 }
+                log.info("妫�鏌ユ�昏 ->{}涓�",allTotal);
+                if (!errorPacsList.isEmpty()){
+                    log.info("鎴愬姛 ->{}",successPacsList);
+                    log.error("澶辫触 ->{}",errorPacsList);
+                }
             }
-            log.info("妫�鏌ユ�昏 ->{}涓�",allTotal);
-            if (!errorPacsList.isEmpty()){
-                log.info("鎴愬姛 ->{}",successPacsList);
-                log.error("澶辫触 ->{}",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;
         }
         return true;
     }

--
Gitblit v1.8.0