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/TjFlowingWaterController.java |  112 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
index 0d5da1a..ae59806 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
@@ -1,6 +1,7 @@
 package com.ltkj.web.controller.system;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
@@ -23,6 +24,7 @@
 import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.mapper.TjSamplingMapper;
 import com.ltkj.hosp.service.*;
 import com.ltkj.hosp.vodomain.TjCollectFeesVo;
 import com.ltkj.hosp.vodomain.TjRefundProInfoVo;
@@ -35,6 +37,7 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import jodd.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +56,7 @@
  * @author ltkj
  * @date 2022-11-25
  */
+@Slf4j
 @RestController
 @RequestMapping("/hosp/water")
 @Api(tags = "浣撴娴佹按鎺ュ彛")
@@ -99,6 +103,10 @@
     private TjOrderController tjOrderController;
     @Autowired
     private ITbTransitionService tbTransitionService;
+    @Autowired
+    private TjSamplingMapper tjSamplingMapper;
+    @Autowired
+    private TjProBlService blService;
 
     /**
      * 鏌ヨ璇ヤ綋妫�鍙峰搴旂殑璁㈠崟娴佹按鍒楄〃
@@ -235,8 +243,8 @@
 //        tjFlowingWater.setPayStasus(1L);
         TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
 
-        if (order.getFinishTime() != null) {
-            return AjaxResult.error("璇ヤ汉鍛樺凡绛剧,涓嶅彲琛ュ綍椤圭洰!");
+        if (order.getPrintLastTime() != null) {
+            return AjaxResult.error("璇ヤ汉鍛樻姤鍛婂凡鎵撳嵃,涓嶅彲琛ュ綍椤圭洰!");
         }
 
         TjCustomer customer = customerService.getById(order.getUserId());
@@ -285,6 +293,38 @@
                         wrapper.gt(TbTransition::getNowPrice, 0);
 
                         List<TbTransition> list = transitionService.list(wrapper);
+
+                        List<TbTransition> transitions = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(), order.getCardId(), jxbz);
+
+
+
+                        if(null==transitions || transitions.isEmpty()){
+                                remarkService.deleteTjOrderDetailByjxbz(jxbz);
+                                detailService.deleteTjOrderDetailByjxbz(jxbz);
+                                tjFlowingWaterService.deleteTjOrderDetailByjxbz(jxbz);
+                                transitionService.deleteTjOrderDetailByjxbz(jxbz);
+                                blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh,order.getTjNumber()).eq(TjProBl::getBldh, jxbz));
+                            List<String> ids=new ArrayList<>();
+                            ids.add(jxbz);
+                            tjSamplingMapper.deleteByTjNumAndCusIdAndJxbz(order.getTjNumber(), order.getUserId(),ids);
+                            return AjaxResult.error("琛ュ綍澶辫触,鎵�閫夐」鐩彲鑳藉凡瀛樺湪 涓嶅彲琛ュ綍!");
+                        }
+
+                        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());
@@ -298,21 +338,67 @@
                             BigDecimal danjia = transition.getNowPrice();
                             Integer sl = project.getSl();
                             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());
 
-//                        obj.putOpt("zhiXingKs","7805");
-//                        obj.putOpt("zhiXingKsMc","浣撴绉�");
-//                        obj.putOpt("shouFeiXmId","4735346");
-//                        obj.putOpt("shouFeiXmMc","浣撴璐�");
                             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);
                         JSONObject object = JSONUtil.parseObj(post);
@@ -320,7 +406,7 @@
                             JSONObject data = object.getJSONObject("data");
                             tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
                             JSONArray mxList = data.getJSONArray("mxList");
-                            if (mxList != null && mxList.size() > 0) {
+                            if (mxList != null && !mxList.isEmpty()) {
                                 List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
                                 tjFlowingWaterHisService.saveBatch(his);
                             }
@@ -656,7 +742,7 @@
                     .or()
                     .eq(TjCustomer::getCusPhone, tjPhone);
             List<TjCustomer> customerList = customerService.list(wq0);
-            if (null != customerList && customerList.size() > 0) {
+            if (null != customerList && !customerList.isEmpty()) {
                 List<TjRefundVo> tjRefundVoList = new ArrayList<>();
                 for (TjCustomer customer : customerList) {
                     LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
@@ -665,7 +751,7 @@
                     wq1.orderByDesc(TjOrder::getCreateTime);
                     List<TjOrder> tjOrders = orderService.list(wq1);
                     TjOrder order = null;
-                    if (null != tjOrders && tjOrders.size() > 0) {
+                    if (null != tjOrders && !tjOrders.isEmpty()) {
                         order = tjOrders.get(0);
                     }
                     if (null == order) {
@@ -701,7 +787,7 @@
             wq1.likeLeft(TjOrder::getTjNumber, tjNum);
             wq1.eq(TjOrder::getCheckStatus, 0);
             List<TjOrder> orderList = orderService.list(wq1);
-            if (null != orderList && orderList.size() > 0) {
+            if (null != orderList && !orderList.isEmpty()) {
                 List<TjRefundVo> tjRefundVoList = new ArrayList<>();
                 for (TjOrder order : orderList) {
                     LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();

--
Gitblit v1.8.0