From 2a9583fd376451ca77a0400af7f3a02d1b80e7f5 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期二, 24 六月 2025 18:04:34 +0800
Subject: [PATCH] 2025-06-24

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java |  219 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 158 insertions(+), 61 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
index ccca65b..372f240 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1040,11 +1040,11 @@
             }
             tjReservation.setIsExpire(1);
             tjReservationService.updateById(tjReservation);
-            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
-                tjOrder.setTjType("1");
-            } else if (tjOrder.getTjType().equals("2")) {
-                tjOrder.setTjType("2");
-            }
+//            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
+//                tjOrder.setTjType("1");
+//            } else if (tjOrder.getTjType().equals("2")) {
+//                tjOrder.setTjType("2");
+//            }
         }
         if (StringUtil.isBlank(tjOrder.getFirmId())) {
             tjOrder.setFirmId("0");
@@ -1506,6 +1506,21 @@
 
             List<TbTransition> list = tbTransitionService.list(wrapper);
             BigDecimal zongjia = new BigDecimal("0.0");
+
+            // his鐩存帴鍗曞紑浣撴璐瑰崟椤圭洰鎬讳环缂栫爜
+            String tjfhisxmbm = configService.selectConfigByKey("tjfhisxmbm");
+            // 鏄惁寮�鍚痟is鐩存帴鍗曞紑浣撴璐瑰崟椤圭洰 N浣跨敤鏄庣粏寮�鍗� 鍏朵粬閮戒负鍗曢」鐩紑鎬讳环
+            String lycdzjhmxj = configService.selectConfigByKey("lycdzjhmxj");
+            // 鏄惁浣跨敤his浠锋牸浼犻�掕鍒� Y寮�鍚�
+            String sfsyhisjgrule = configService.selectConfigByKey("sfsyhisjgrule");
+            // his浠锋牸浼犻�掕鍒欎繚鐣欏緱浣嶆暟 榛樿2浣�
+            String sfsyhisjgrulebaoliuweishu = configService.selectConfigByKey("sfsyhisjgrulebaoliuweishu");
+            // his浠锋牸浼犻�掕鍒� 1鍥涜垗浜斿叆 2鐩存帴鑸嶅幓
+            String sfsyhisjgrulesconfig = configService.selectConfigByKey("sfsyhisjgrulesconfig");
+            // 浼犻�掗」鐩槸鍚︿娇鐢╤is绉戝
+            String isUseHisKs = configService.selectConfigByKey("isCreateMenZhenFyUseHisKs");
+            String createMenZhenFyZJUseHisKs = configService.selectConfigByKey("createMenZhenFyZJUseHisKs");
+
             for (TbTransition transition : list) {
                 LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                 wrapper1.eq(TjProject::getProId, transition.getProId());
@@ -1520,17 +1535,63 @@
                 int sl = 1;
                 BigDecimal danjia = transition.getNowPrice();
                 BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
+                if (StrUtil.isNotBlank(sfsyhisjgrule) && sfsyhisjgrule.equalsIgnoreCase("Y")){
+                    int baoliuweishu = 2;
+                    if (StrUtil.isNotBlank(sfsyhisjgrulebaoliuweishu)){
+                        try {
+                            baoliuweishu = Integer.parseInt(sfsyhisjgrulebaoliuweishu);
+                        } catch (NumberFormatException e) {
+                            log.error("his浠锋牸浼犻�掕鍒欎繚鐣欎綅鏁拌浆鎹㈠紓甯� 閰嶇疆鍊�->{}\n{}{}",sfsyhisjgrulebaoliuweishu,e,e.getMessage());
+                            return AjaxResult.error();
+                        }
+                    }
+                    if (StrUtil.isNotBlank(sfsyhisjgrulesconfig) && !sfsyhisjgrulesconfig.equalsIgnoreCase("1")){
+                        // 鍏朵粬鑷畾涔夌殑瑙勫垯璁$畻鏂规硶
+                    }else {
+                        // 鍥涜垗浜斿叆
+                        danjia = danjia.setScale(baoliuweishu, RoundingMode.HALF_UP);
+                        allPrice = danjia.multiply(new BigDecimal(sl)).setScale(baoliuweishu, RoundingMode.HALF_UP);
+                    }
+                }
                 obj.putOpt("danJia", danjia);
                 obj.putOpt("jieSuanJe", allPrice);
                 obj.putOpt("shuliang", sl);
-                obj.putOpt("zhiXingKs", dept.getDeptId());
-                obj.putOpt("zhiXingKsMc", dept.getDeptName());
+                if (isUseHisKs.equalsIgnoreCase("Y")){
+                    obj.putOpt("zhiXingKs", dept.getHisksid());
+                    obj.putOpt("zhiXingKsMc", dept.getHisksmc());
+                }else {
+                    obj.putOpt("zhiXingKs", dept.getDeptId());
+                    obj.putOpt("zhiXingKsMc", dept.getDeptName());
+                }
                 obj.putOpt("shouFeiXmId", project.getHisXmbm());
                 obj.putOpt("shouFeiXmMc", project.getHisXmmc());
                 array.add(obj);
                 zongjia = zongjia.add(allPrice);
             }
-            map.put("feiYongInfoList", array);
+
+            if(StringUtil.isNotBlank(lycdzjhmxj) && lycdzjhmxj.equalsIgnoreCase("N")){
+                map.put("feiYongInfoList", array);
+            }else {
+                zongjia = tjFlowingWater.getPaidIn();
+                JSONArray zjarray = JSONUtil.createArray();
+                JSONObject obj = JSONUtil.createObj();
+                int sl = 1;
+                obj.putOpt("danJia", zongjia);
+                obj.putOpt("jieSuanJe", zongjia);
+                obj.putOpt("shuliang", sl);
+                if (isUseHisKs.equalsIgnoreCase("Y")){
+                    if (StrUtil.isBlank(createMenZhenFyZJUseHisKs)) return AjaxResult.error();
+                    obj.putOpt("zhiXingKs", createMenZhenFyZJUseHisKs);
+                }else {
+                    obj.putOpt("zhiXingKs", "100");
+                }
+                obj.putOpt("zhiXingKsMc","浣撴涓績");
+                obj.putOpt("shouFeiXmId", tjfhisxmbm);
+                obj.putOpt("shouFeiXmMc", "浣撴璐�");
+                zjarray.add(obj);
+                map.put("feiYongInfoList", zjarray);
+            }
+
             log.info("璋冪敤His鎺ュ彛鍓� 鏀惰垂鎬讳环:{}", zongjia.toString());
 
             String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
@@ -3214,16 +3275,17 @@
 
         TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
         if (null != order) {
-//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
-//            if (null != payByTjNum) {
-//                return AjaxResult.error("璇ョ敤鎴峰凡鏀惰垂涓嶅彲鎾ら攢绛惧埌!");
-//            }
-            if (null != order.getFinishTime()) return AjaxResult.error("璇ヤ汉鍛樺凡绛剧,涓嶅彲鎾ら攢!!!");
+
+            if (null != order.getPrintLastTime()) return AjaxResult.error("璇ヤ汉鍛樻姤鍛婂凡鎵撳嵃,涓嶅彲鎾ら攢!!!");
 
             Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+            String username = SecurityUtils.getUsername();
+            LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(TjCustomer::getCusId, order.getUserId());
+            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
 
             String s = configService.selectConfigByKey("is_request_common_his_api");
-//            if (null != s && s.equals("Y") && "2".equals(order.getTjType())) {
+
             if (null != s && s.equals("Y") && !useLisAndPacsRegister) {
                 String apiUrl = configService.selectConfigByKey("common_api_url");
                 String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
@@ -3234,37 +3296,35 @@
                 wrapper1.eq(TjFlowingWater::getOrderId, order.getOrderId());
                 wrapper1.orderByDesc(TjFlowingWater::getJxbz);
                 List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
-                LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
-                wrapper.eq(TjCustomer::getCusId, order.getUserId());
-                TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
+
 
                 for (TjFlowingWater water : list) {
                     if (water.getPayStasus() == 0L) {
                         weizhifu.add(water);
-                    } else {
+                    } else if (water.getPayStasus() == 1L){
                         yizhifu.add(water);
                     }
                 }
 
+                log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴峰嵆灏嗘挙閿� 浣撴鍙蜂负:"+tjNum+" 鐨勪綋妫�璁板綍;" );
                 AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, tjNum);
-                if (error != null && !error.get("code").toString().equals("200")) return error;
-
+                if (error != null && !error.get("code").toString().equals("200")){
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖鏈敮浠樼殑浣撴璁板綍;   鎾ら攢澶辫触!!!!" );
+                    return error;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖鏈敮浠樼殑浣撴璁板綍;" );
+                }
                 AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, tjNum);
-                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
-            } else {
-                tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
-                tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
-                remarkService.deletedOrderRemarkByTjNum(tjNum);
-                tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
-                transitionService.deletedTbTransitionByTjNum(tjNum);
-                ycxmService.delOrderYcXmJyByTjh(tjNum);
+                if (error1 != null && !error.get("code").toString().equals("200"))
+                {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖宸叉敮浠樼殑浣撴璁板綍;   鎾ら攢澶辫触!!!!" );
+                    return error1;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖宸叉敮浠樼殑浣撴璁板綍;" );
+                }
 
-                TjCustomer customer = tjCustomerService.getById(order.getUserId());
-                customer.setCardId("0");
-                tjCustomerService.updateById(customer);
-                xdPictureService.deleteTjXdPictureBytjNum(tjNum);
-                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());
             }
+
 
             String configByKey = configService.selectConfigByKey("sfkqdyhis");
             if (configByKey.equals("Y")) {
@@ -3294,8 +3354,21 @@
                 }
 
             }
+
+            tjCustomer.setCardId("0");
+            tjCustomerService.updateById(tjCustomer);
+                /*                tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
+                tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
+                remarkService.deletedOrderRemarkByTjNum(tjNum);
+                tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
+                transitionService.deletedTbTransitionByTjNum(tjNum);
+                ycxmService.delOrderYcXmJyByTjh(tjNum);
+                xdPictureService.deleteTjXdPictureBytjNum(tjNum);
+                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());*/
+            tjOrderService.removeById(order.getOrderId());
+            return AjaxResult.success("鎾ら攢鎴愬姛");
         }
-        return AjaxResult.success("绛惧埌璁板綍涓嶅瓨鍦�!");
+        return AjaxResult.error("绛惧埌璁板綍涓嶅瓨鍦�!");
     }
 
 
@@ -3471,11 +3544,9 @@
     public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNum) {
 
         TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
+        String username = SecurityUtils.getUsername();
+        log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴峰嵆灏嗗己鍒舵挙閿� 浣撴鍙蜂负:"+tjNum+" 鐨勪綋妫�璁板綍;" );
         if (null != order) {
-//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
-//            if (null != payByTjNum) {
-//                return AjaxResult.error("璇ョ敤鎴峰凡鏀惰垂涓嶅彲鎾ら攢绛惧埌!");
-//            }
             //杩欓噷鍒犻櫎鐨勬槸杩欎釜浜烘墍鏈夐」鐩寘鎷ˉ褰曢」鐩�
             tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
             tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
@@ -3495,6 +3566,7 @@
 
         TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
         if (null != order) {
+
             LambdaQueryWrapper<TjProBl> wq = new LambdaQueryWrapper<>();
             wq.eq(TjProBl::getTjh, tjNum);
             List<TjProBl> blList = blService.list(wq);
@@ -3533,7 +3605,12 @@
         }
 
         TjOrder order = tjOrderService.getOrderByTjNum(dto.getTjh());
+        String username = SecurityUtils.getUsername();
         if (null != order) {
+
+            if (null != order.getPrintLastTime()) return AjaxResult.error("璇ヤ汉鍛樻姤鍛婂凡鎵撳嵃,涓嶅彲鎾ら攢!!!");
+
+            log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴峰嵆灏嗘挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 鐨� 琛ュ綍浣撴璁板綍;" );
             String configByKey = configService.selectConfigByKey("sfkqdyhis");
             if (null != configByKey && configByKey.equals("Y")) {
                 log.info("dto鐨勬暟鎹槸" + JSONUtil.toJsonStr(dto));
@@ -3585,7 +3662,7 @@
                     TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
                     if (water.getPayStasus() == 0L) {
                         weizhifu.add(water);
-                    } else {
+                    } else if (water.getPayStasus() == 1L){
                         yizhifu.add(water);
                     }
                 }
@@ -3595,22 +3672,34 @@
                 wrapper.eq(TjCustomer::getCusId, order.getUserId());
                 TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
                 AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, dto.getTjh());
-                if (error != null && !error.get("code").toString().equals("200")) return error;
+                if (error != null && !error.get("code").toString().equals("200"))
+                {
+                    log.info("浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖鏈敮浠樼殑琛ュ綍浣撴璁板綍;  鎾ら攢澶辫触" );
+                    return error;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖鏈敮浠樼殑琛ュ綍浣撴璁板綍;" );
+                }
 
                 AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, dto.getTjh());
-                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
-                return AjaxResult.success();
-            } else {
+                if (error1 != null && !error.get("code").toString().equals("200"))
+                {
+                    log.info("浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖宸叉敮浠樼殑琛ュ綍浣撴璁板綍;  鎾ら攢澶辫触" );
+                    return error1;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖宸叉敮浠樼殑琛ュ綍浣撴璁板綍;" );
+                }
+            }
+
                 try {
                     extracted(dto, order);
                 } catch (Exception e) {
                     log.info("鎾ら攢澶辫触,鍒犻櫎琛ㄥけ璐�");
                     return AjaxResult.error("鎾ら攢澶辫触,鍒犻櫎琛ㄥけ璐�!");
                 }
-                return AjaxResult.success();
-            }
+                return AjaxResult.success("鎾ら攢鎴愬姛!");
+
         }
-        return AjaxResult.error();
+        return AjaxResult.error("鏈煡璇㈠埌浣撴璁板綍!");
     }
 
     private AjaxResult zuofeiYiZhifu(ArrayList<TjFlowingWater> yizhifu, TjCustomer tjCustomer, TjOrder order, String apiUrl, String hospbm, Boolean isDelete, String tjNum) {
@@ -3683,7 +3772,7 @@
                         String tfid = jsonObject.getJSONObject("data").getStr("feiYongId");
                         water.setHisTfWaterId(tfid);
                         tjFlowingWaterService.updateById(water);
-                        if (isDelete) {
+           /*             if (isDelete) {
                             for (TjFlowingWater water1 : yizhifu) {
                                 String bldh1 = water1.getJxbz();
                                 remarkService.deleteTjOrderDetailByjxbz(bldh1);
@@ -3693,8 +3782,8 @@
                                 blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1));
                                 tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1);
                             }
-                        }
-                    } else return AjaxResult.error();
+                        }*/
+                    } else return AjaxResult.error("鎾ら攢澶辫触");
                 }
             }
         }
@@ -3711,7 +3800,7 @@
 
             String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/revokeCost", chexiaoMap);
             if (JSONUtil.parseObj(post).getStr("code").equals("200")) {
-                if (isDelete) {
+                /*if (isDelete) {
                     for (TjFlowingWater water : weizhifu) {
                         String bldh = water.getJxbz();
                         if (StrUtil.isNotBlank(bldh)) {
@@ -3723,31 +3812,39 @@
                             tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh);
                         } else {
                             //杩欓噷鍒犻櫎鐨勬槸杩欎釜浜烘墍鏈夐」鐩寘鎷ˉ褰曢」鐩�
-                            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
+                *//*            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                             tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                             remarkService.deletedOrderRemarkByTjNum(tjNum);
                             tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
                             transitionService.deletedTbTransitionByTjNum(tjNum);
-                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
+                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());*//*
+//                            TjCustomer customer = tjCustomerService.getById(order.getUserId());
+//                            customer.setCardId("0");
+//                            tjCustomerService.updateById(customer);
+//                            tjOrderService.removeById(order.getOrderId());
                         }
 
                     }
-                }
-            } else return AjaxResult.error();
+                }*/
+            } else return AjaxResult.error("鎾ら攢澶辫触");
         }
         return null;
     }
 
     //    @Transactional(propagation =Propagation.REQUIRES_NEW)
     public void extracted(TjProBlDto dto, TjOrder order) {
-        for (String bldh : dto.getBldhs()) {
-            remarkService.deleteTjOrderDetailByjxbz(bldh);
-            tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
-            tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh);
-            transitionService.deleteTjOrderDetailByjxbz(bldh);
-            blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, dto.getTjh()).eq(TjProBl::getBldh, bldh));
+        try {
+            for (String bldh : dto.getBldhs()) {
+                remarkService.deleteTjOrderDetailByjxbz(bldh);
+                tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
+                tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh);
+                transitionService.deleteTjOrderDetailByjxbz(bldh);
+                blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, dto.getTjh()).eq(TjProBl::getBldh, bldh));
+            }
+            tjSamplingMapper.deleteByTjNumAndCusIdAndJxbz(dto.getTjh(), order.getUserId(), dto.getBldhs());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        tjSamplingMapper.deleteByTjNumAndCusIdAndJxbz(dto.getTjh(), order.getUserId(), dto.getBldhs());
     }
 
 

--
Gitblit v1.8.0