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 |  149 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 106 insertions(+), 43 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 e8b7984..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
@@ -1507,8 +1507,19 @@
             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<>();
@@ -1524,11 +1535,34 @@
                 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);
@@ -1538,13 +1572,19 @@
             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);
-                obj.putOpt("zhiXingKs", "100");
+                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", "浣撴璐�");
@@ -3236,7 +3276,7 @@
         TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
         if (null != order) {
 
-            if (null != order.getFinishTime()) return AjaxResult.error("璇ヤ汉鍛樺凡绛剧,涓嶅彲鎾ら攢!!!");
+            if (null != order.getPrintLastTime()) return AjaxResult.error("璇ヤ汉鍛樻姤鍛婂凡鎵撳嵃,涓嶅彲鎾ら攢!!!");
 
             Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
             String username = SecurityUtils.getUsername();
@@ -3245,7 +3285,7 @@
             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");
@@ -3261,7 +3301,7 @@
                 for (TjFlowingWater water : list) {
                     if (water.getPayStasus() == 0L) {
                         weizhifu.add(water);
-                    } else {
+                    } else if (water.getPayStasus() == 1L){
                         yizhifu.add(water);
                     }
                 }
@@ -3269,27 +3309,22 @@
                 log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴峰嵆灏嗘挙閿� 浣撴鍙蜂负:"+tjNum+" 鐨勪綋妫�璁板綍;" );
                 AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, tjNum);
                 if (error != null && !error.get("code").toString().equals("200")){
-                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖鏈敮浠樼殑浣撴璁板綍;" );
+                    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"))
                 {
-                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖宸叉敮浠樼殑浣撴璁板綍;" );
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖宸叉敮浠樼殑浣撴璁板綍;   鎾ら攢澶辫触!!!!" );
                     return error1;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+tjNum+" 骞朵笖宸叉敮浠樼殑浣撴璁板綍;" );
                 }
-            } 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);
-                tjCustomer.setCardId("0");
-                tjCustomerService.updateById(tjCustomer);
-                xdPictureService.deleteTjXdPictureBytjNum(tjNum);
-                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());
+
             }
+
 
             String configByKey = configService.selectConfigByKey("sfkqdyhis");
             if (configByKey.equals("Y")) {
@@ -3319,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("绛惧埌璁板綍涓嶅瓨鍦�!");
     }
 
 
@@ -3518,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);
@@ -3558,6 +3607,8 @@
         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");
@@ -3611,7 +3662,7 @@
                     TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
                     if (water.getPayStasus() == 0L) {
                         weizhifu.add(water);
-                    } else {
+                    } else if (water.getPayStasus() == 1L){
                         yizhifu.add(water);
                     }
                 }
@@ -3623,28 +3674,32 @@
                 AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, dto.getTjh());
                 if (error != null && !error.get("code").toString().equals("200"))
                 {
-                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖鏈敮浠樼殑琛ュ綍浣撴璁板綍;" );
+                    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"))
                 {
-                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖宸叉敮浠樼殑琛ュ綍浣撴璁板綍;" );
+                    log.info("浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖宸叉敮浠樼殑琛ュ綍浣撴璁板綍;  鎾ら攢澶辫触" );
                     return error1;
+                }else {
+                    log.info("宸ュ彿涓�: "+username+" 鐨勭敤鎴锋鍦ㄦ挙閿� 浣撴鍙蜂负:"+dto.getTjh()+"琛ュ綍鍗曞彿涓�: " + dto.getBldhs()+ " 骞朵笖宸叉敮浠樼殑琛ュ綍浣撴璁板綍;" );
                 }
-                return AjaxResult.success();
-            } else {
+            }
+
                 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) {
@@ -3717,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);
@@ -3727,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("鎾ら攢澶辫触");
                 }
             }
         }
@@ -3745,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)) {
@@ -3757,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