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/system/TjFlowingWaterController.java |  838 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 688 insertions(+), 150 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 3065dac..f4aee0e 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
@@ -6,12 +6,17 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.pinyin.PinyinUtil;
 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.ltkj.common.annotation.RepeatSubmit;
 import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysUser;
@@ -29,6 +34,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import jodd.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -87,6 +93,12 @@
     private ISysDeptService sysDeptService;
     @Autowired
     private TjFlowingWaterHisService tjFlowingWaterHisService;
+    @Autowired
+    private ITjSamplingService tjSamplingService;
+    @Autowired
+    private TjOrderController tjOrderController;
+    @Autowired
+    private ITbTransitionService tbTransitionService;
 
     /**
      * 鏌ヨ璇ヤ綋妫�鍙峰搴旂殑璁㈠崟娴佹按鍒楄〃
@@ -223,98 +235,107 @@
 //        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());
         if (null != tjFlowingWater.getTjProIds() && tjFlowingWater.getTjProIds().length > 0) {
-            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() +SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
+            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
             tjFlowingWater.setIsAddition("Y");
+            if (tjFlowingWater.getPayStasus().toString().equals("0")) {
+                tjFlowingWater.setPayStasus(0L);
+                tjFlowingWater.setZfgf(tjFlowingWater.getPayStasus().toString());
+            } else {
+                tjFlowingWater.setPayStasus(1L);
+            }
+            tjFlowingWater.setZfgf(tjFlowingWater.getPayStasus().toString());
             if (tjFlowingWaterService.save(tjFlowingWater)) {
 
                 Date dates = new Date();
-                String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss")+order.getOrderId();
+                String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss") + order.getOrderId();
                 //寮傛鍗曢」鏀惰垂鏄庣粏
-                Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser,jxbz);
-                if (!b){
+                Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser, jxbz);
+                if (!b) {
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return AjaxResult.error();
                 }
 
-                String s = configService.selectConfigByKey("is_request_common_his_api");
-                if (null != s && s.equals("Y") && order.getTjType().equals("2")) {
-                    String apiUrl = configService.selectConfigByKey("common_api_url");
-                    String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
-                    HashMap<String, Object> map = new HashMap<>();
-                    map.put("pationId",customer.getPationId());
-                    map.put("cardId",customer.getHisJzkh());
-                    map.put("tjNum",tjFlowingWater.getTjSerialNumber());
-                    map.put("kaiDanKs","7805");
-                    // 鏀惰垂鏍囧織 1寰呭敭璐� 2寰呴��璐�
-                    map.put("shouTuiStatus","1");
+                if (tjFlowingWater.getPayStasus().equals(1L)) {
+                    detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(order.getOrderId().toString(), jxbz, tjFlowingWater.getTjSerialNumber().toString());
+                    remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), jxbz, tjFlowingWater.getTjSerialNumber().toString());
+                } else {
+                    String s = configService.selectConfigByKey("is_request_common_his_api");
+                    if (null != s && s.equals("Y")) {
+                        String apiUrl = configService.selectConfigByKey("common_api_url");
+                        String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
+                        HashMap<String, Object> map = new HashMap<>();
+                        map.put("pationId", customer.getPationId());
+                        map.put("cardId", customer.getHisJzkh());
+                        map.put("tjNum", tjFlowingWater.getTjSerialNumber());
+                        map.put("kaiDanKs", "7805");
+                        // 鏀惰垂鏍囧織 1寰呭敭璐� 2寰呴��璐�
+                        map.put("shouTuiStatus", "1");
 
-                    JSONArray array = JSONUtil.createArray();
-                    LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
-                    wrapper.eq(TbTransition::getTjNum,order.getTjNumber());
-                    wrapper.eq(TbTransition::getCusId,customer.getCusIdcard());
-                    wrapper.eq(TbTransition::getCardId,customer.getCardId());
-                    wrapper.eq(TbTransition::getJxbz,jxbz);
-                    wrapper.isNotNull(TbTransition::getOrdPrice);
-                    wrapper.gt(TbTransition::getOrdPrice,0);
+                        JSONArray array = JSONUtil.createArray();
+                        LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
+                        wrapper.eq(TbTransition::getTjNum, order.getTjNumber());
+                        wrapper.eq(TbTransition::getCusId, customer.getCusIdcard());
+                        wrapper.eq(TbTransition::getCardId, customer.getCardId());
+                        wrapper.eq(TbTransition::getJxbz, jxbz);
+                        wrapper.isNotNull(TbTransition::getNowPrice);
+                        wrapper.gt(TbTransition::getNowPrice, 0);
 
-                    List<TbTransition> list = transitionService.list(wrapper);
-                    for (TbTransition transition : list) {
-                        LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
-                        wrapper1.eq(TjProject::getProId,transition.getProId());
-                        TjProject project = projectService.getOne(wrapper1);
+                        List<TbTransition> list = transitionService.list(wrapper);
+                        for (TbTransition transition : list) {
+                            LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
+                            wrapper1.eq(TjProject::getProId, transition.getProId());
+                            TjProject project = projectService.getOne(wrapper1);
 
-                        LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
-                        wrapper2.eq(SysDept::getDeptId,project.getDeptId());
-                        SysDept dept = sysDeptService.getOne(wrapper2);
+                            LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
+                            wrapper2.eq(SysDept::getDeptId, project.getDeptId());
+                            SysDept dept = sysDeptService.getOne(wrapper2);
 
-                        JSONObject obj = JSONUtil.createObj();
-                        BigDecimal danjia = transition.getOrdPrice();
-                        Integer sl = project.getSl();
-                        BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
-                        obj.putOpt("danJia",danjia);
-                        obj.putOpt("jieSuanJe",allPrice);
-                        obj.putOpt("shuliang",sl);
-                        obj.putOpt("zhiXingKs",dept.getDeptId());
-                        obj.putOpt("zhiXingKsMc",dept.getDeptName());
-                        obj.putOpt("shouFeiXmId",project.getHisXmbm());
-                        obj.putOpt("shouFeiXmMc",project.getHisXmmc());
+                            JSONObject obj = JSONUtil.createObj();
+                            BigDecimal danjia = transition.getNowPrice();
+                            Integer sl = project.getSl();
+                            BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
+                            obj.putOpt("danJia", danjia);
+                            obj.putOpt("jieSuanJe", allPrice);
+                            obj.putOpt("shuliang", sl);
+                            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);
-                    }
-                    map.put("feiYongInfoList",array);
-
-                    String post = HttpClientUtils.sendPost(apiUrl + "/api/his/"+hospbm+"/creatCostInfo", map);
-                    JSONObject object = JSONUtil.parseObj(post);
-                    if (object.getInt("code") == 200) {
-                        JSONObject data = object.getJSONObject("data");
-                        tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
-                        JSONArray mxList = data.getJSONArray("mxList");
-                        if (mxList != null && mxList.size() > 0) {
-                            List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
-                            tjFlowingWaterHisService.saveBatch(his);
+                            array.add(obj);
                         }
-                        tjFlowingWaterService.updateById(tjFlowingWater);
-                    }else {
-                        return AjaxResult.error();
+                        map.put("feiYongInfoList", array);
+
+                        String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
+                        JSONObject object = JSONUtil.parseObj(post);
+                        if (object.getInt("code") == 200) {
+                            JSONObject data = object.getJSONObject("data");
+                            tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
+                            JSONArray mxList = data.getJSONArray("mxList");
+                            if (mxList != null && mxList.size() > 0) {
+                                List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
+                                tjFlowingWaterHisService.saveBatch(his);
+                            }
+                            tjFlowingWaterService.updateById(tjFlowingWater);
+                        } else {
+                            return AjaxResult.error();
+                        }
                     }
                 }
-//                if(!b){
-//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                }
-                //extracted(tjFlowingWater, order, customer);
                 Map<String, Object> map = new HashMap<>();
                 map.put("waterId", tjFlowingWater.getWaterId());
                 map.put("mobanId", reportService.getMoBanIds());
+                tjFlowingWaterService.getTjBlCall(order.getTjNumber());
                 return AjaxResult.success("鏀惰垂鎴愬姛", map);
             }
         }
@@ -323,24 +344,26 @@
             return AjaxResult.success("璇ヨ鍗曞凡浠樻 鏃犻』鍐嶄粯");
         }
         if (tjFlowingWaterService.updateById(tjFlowingWater)) {
-            LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
-            wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
-            wq2.isNull(TjOrderDetail::getFlowingWaterId);
+//            LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
+//            wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+//            wq2.isNull(TjOrderDetail::getFlowingWaterId);
             List<TjConsumables> list2 = new ArrayList<>();
-            for (TjOrderDetail tjOrderDetail : detailService.list(wq2)) {
-                tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                detailService.updateById(tjOrderDetail);
-            }
+//            for (TjOrderDetail tjOrderDetail : detailService.list(wq2)) {
+//                tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+//                detailService.updateById(tjOrderDetail);
+//            }
+            detailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String.valueOf(order.getOrderId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(order.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
             LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
             wq3.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
             wq3.isNotNull(TjOrderDetail::getFlowingWaterId);
             List<TjOrderDetail> detailList = detailService.list(wq3);
-            if (null != detailList && detailList.size() > 0) {
+            if (null != detailList && !detailList.isEmpty()) {
                 LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
                 wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
                 wqq.in(TbTransition::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
                 List<TbTransition> tbTransitionList = transitionService.list(wqq);
-                if (null != tbTransitionList && tbTransitionList.size() > 0) {
+                if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
 //                    extracted(order, list2, tbTransitionList);
                     //寮傛娣诲姞鏀惰垂鏄庣粏
                     asyncService.collectFees(order, list2, tbTransitionList, sysUser, tjFlowingWater.getDiscount());
@@ -353,6 +376,145 @@
             return AjaxResult.success("璇ョ敤鎴峰凡鏀惰垂涓嶅彲閲嶅鏀惰垂");
         }
         return AjaxResult.error();
+    }
+
+    @PutMapping("supper")
+    @ApiOperation(value = "浣撴鐐瑰嚮寮哄埗鏀惰垂鎸夐挳鎺ュ彛")
+    @Transactional
+    @RepeatSubmit
+    public AjaxResult supperEdit(@RequestBody TjFlowingWater tjFlowingWater) {
+        Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
+        SysUser sysUser = userService.getById(userId);
+
+        TjFlowingWater flowingWater = tjFlowingWaterService.getById(tjFlowingWater.getTjSerialNumber());
+//        tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+//        tjFlowingWater.setPayStasus(1L);
+        TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
+
+        if (order.getPrintLastTime() != null) {
+            return AjaxResult.error("璇ヤ汉鍛樻姤鍛婂凡鎵撳嵃,涓嶅彲琛ュ綍椤圭洰!");
+        }
+
+        TjCustomer customer = customerService.getById(order.getUserId());
+        if (null != tjFlowingWater.getTjProIds() && tjFlowingWater.getTjProIds().length > 0) {
+            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
+            tjFlowingWater.setIsAddition("Y");
+            if (tjFlowingWaterService.save(tjFlowingWater)) {
+
+                Date dates = new Date();
+                String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss") + order.getOrderId();
+                //寮傛鍗曢」鏀惰垂鏄庣粏
+                Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser, jxbz);
+                if (!b) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error();
+                }
+                Map<String, Object> map = new HashMap<>();
+                map.put("waterId", tjFlowingWater.getWaterId());
+                map.put("mobanId", reportService.getMoBanIds());
+                return AjaxResult.success("鏀惰垂鎴愬姛", map);
+            }
+        }
+
+//        if (flowingWater.getPayStasus() == 1) {
+//            return AjaxResult.success("璇ヨ鍗曞凡浠樻 鏃犻』鍐嶄粯");
+//        }
+        String s = configService.selectConfigByKey("is_request_common_his_api");
+//        if (null != s && s.equals("Y") && order.getTjType().equals("2") && StrUtil.isNotBlank(tjFlowingWater.getHisWaterId())) {
+        tjFlowingWater.setPayStasus(1L);
+        tjFlowingWater.setCopeWith(null);
+        tjFlowingWater.setPaidIn(null);
+//          }
+        if (tjFlowingWaterService.updateById(tjFlowingWater)) {
+//            LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
+//            wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+//            wq2.isNull(TjOrderDetail::getFlowingWaterId);
+            List<TjConsumables> list2 = new ArrayList<>();
+//            for (TjOrderDetail tjOrderDetail : detailService.list(wq2)) {
+//                tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+//                detailService.updateById(tjOrderDetail);
+//            }
+            if (StrUtil.isBlank(flowingWater.getJxbz())) {
+                detailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String.valueOf(order.getOrderId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                remarkService.updateTjOrderRemarkSfbzByJxbzisnull(order.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
+            } else {
+                detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(String.valueOf(order.getOrderId()), flowingWater.getJxbz(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), flowingWater.getJxbz(), tjFlowingWater.getTjSerialNumber().toString());
+            }
+
+            LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
+            wq3.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+            wq3.isNotNull(TjOrderDetail::getFlowingWaterId);
+            List<TjOrderDetail> detailList = detailService.list(wq3);
+            if (null != detailList && !detailList.isEmpty()) {
+                LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
+                wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
+                wqq.in(TbTransition::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
+                List<TbTransition> tbTransitionList = transitionService.list(wqq);
+                if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
+//                    extracted(order, list2, tbTransitionList);
+                    //寮傛娣诲姞鏀惰垂鏄庣粏
+//                    asyncService.collectFees(order, list2, tbTransitionList, sysUser, tjFlowingWater.getDiscount());
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("waterId", tjFlowingWater.getWaterId());
+                    map.put("mobanId", reportService.getMoBanIds());
+
+                    SysUser user = null;
+                    if (flowingWater.getCreateId() != null)
+                        user = userService.getById(flowingWater.getCreateId());
+                    else user = userService.getById(1L);
+                    TjOrder tjOrder = orderService.getById(flowingWater.getOrderId());
+                    List<TjOrderDetail> detailList1 = detailService.getCaiYangDengJi(flowingWater.getOrderId());
+                    tjOrderController.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, user, null);
+                    return AjaxResult.success("鏀惰垂鎴愬姛", map);
+                }
+            }
+            return AjaxResult.success("璇ョ敤鎴峰凡鏀惰垂涓嶅彲閲嶅鏀惰垂");
+        }
+        return AjaxResult.error();
+    }
+
+    @PutMapping("refund")
+    @ApiOperation(value = "浣撴鐐瑰嚮寮哄埗閫�璐规寜閽帴鍙�")
+    @Transactional
+    @RepeatSubmit
+    public AjaxResult refundEdit(@RequestBody String json) {
+        JSONObject parseObj = JSONUtil.parseObj(json);
+        String tjSerialNumber = parseObj.getStr("tjSerialNumber");
+        TjFlowingWater tjFlowingWater = tjFlowingWaterService.getById(tjSerialNumber);
+        Long orderId = tjFlowingWater.getOrderId();
+        LambdaQueryWrapper<TjOrderRemark> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TjOrderRemark::getSfbz, tjSerialNumber);
+        List<TjOrderRemark> list = remarkService.list(wrapper);
+        if (list.isEmpty()) {
+            return AjaxResult.error("璇ヤ汉鍛樻病鏈夊凡鏀惰垂椤圭洰");
+        }
+        String tjNumber = list.get(0).getTjNumber();
+        List<Long> proIds = list.stream().map(TjOrderRemark::getProId).collect(Collectors.toList());
+        LambdaQueryWrapper<TjSampling> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.eq(TjSampling::getTjNum, tjNumber);
+        wrapper1.in(TjSampling::getProId, proIds);
+        wrapper1.eq(TjSampling::getIsSignFor, "0");
+        List<TjSampling> samplings = tjSamplingService.list(wrapper1);
+        if (!samplings.isEmpty())
+            return AjaxResult.error("璇ヤ汉鍛樻鍗曚腑瀛樺湪宸插仛鐨勫寲楠岄」鐩�,涓嶅彲閫�璐�");
+
+        if (StrUtil.isBlank(tjFlowingWater.getJxbz())) {
+
+            LambdaUpdateWrapper<TjOrderDetail> wrapper2 = new LambdaUpdateWrapper<>();
+            wrapper2.set(TjOrderDetail::getFlowingWaterId, null)
+                    .set(TjOrderDetail::getUpdateTime, new Date())
+                    .eq(TjOrderDetail::getOrderId, orderId)
+                    .isNull(TjOrderDetail::getJxbz);
+            detailService.update(wrapper2);
+
+            LambdaUpdateWrapper<TjOrderRemark> wrapper3 = new LambdaUpdateWrapper<>();
+//            wrapper3
+        } else {
+//            detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(String.valueOf(order.getOrderId()), flowingWater.getJxbz(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+//            remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), flowingWater.getJxbz(), tjFlowingWater.getTjSerialNumber().toString());
+        }
+        return AjaxResult.success();
     }
 
 
@@ -378,7 +540,7 @@
 
         if (null != tjName || null != tjPhone) {
             LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
-            wq0.eq(TjCustomer::getCusName, tjName)
+            wq0.like(TjCustomer::getCusName, tjName)
                     .or()
                     .eq(TjCustomer::getCusPhone, tjPhone);
             List<TjCustomer> customerList = customerService.list(wq0);
@@ -485,6 +647,94 @@
         return AjaxResult.error("璇疯緭鍏ヨ鏌ヨ鏉′欢");
     }
 
+    @GetMapping("/findTjRefundListByNameAndTjNumAndPhone2")
+    @ApiOperation(value = "浣撴(閫�璐�)椤甸潰鏌ヨ鎺ュ彛")
+    public AjaxResult findTjRefundListByNameAndTjNumAndPhone2(@RequestParam(required = false) @ApiParam(value = "浣撴鍙�") String tjNum,
+                                                              @RequestParam(required = false) @ApiParam(value = "浣撴浜哄鍚�") String tjName,
+                                                              @RequestParam(required = false) @ApiParam(value = "浣撴浜烘墜鏈哄彿") String tjPhone) {
+
+        if (null != tjName || null != tjPhone) {
+            LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
+            wq0.like(TjCustomer::getCusName, tjName)
+                    .or()
+                    .eq(TjCustomer::getCusPhone, tjPhone);
+            List<TjCustomer> customerList = customerService.list(wq0);
+            if (null != customerList && customerList.size() > 0) {
+                List<TjRefundVo> tjRefundVoList = new ArrayList<>();
+                for (TjCustomer customer : customerList) {
+                    LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+                    wq1.eq(TjOrder::getUserId, customer.getCusId());
+                    wq1.eq(TjOrder::getCheckStatus, 0);
+                    wq1.orderByDesc(TjOrder::getCreateTime);
+                    List<TjOrder> tjOrders = orderService.list(wq1);
+                    TjOrder order = null;
+                    if (null != tjOrders && tjOrders.size() > 0) {
+                        order = tjOrders.get(0);
+                    }
+                    if (null == order) {
+                        continue;
+                    }
+                    LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(TjFlowingWater::getOrderId, order.getOrderId());
+                    wrapper.eq(TjFlowingWater::getPayStasus, 1L);
+                    List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
+                    for (TjFlowingWater water : list) {
+                        TjRefundVo tjRefundVo = new TjRefundVo();
+                        tjRefundVo.setTjName(customer.getCusName());
+                        tjRefundVo.setTjPhone(customer.getCusPhone());
+                        tjRefundVo.setTjNumber(order.getTjNumber());
+                        tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
+                        if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
+                        if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
+                        tjRefundVo.setRegisterTime(order.getCreateTime());
+                        tjRefundVo.setDrawerTime(order.getCreateTime());
+                        tjRefundVo.setReportTime(order.getReportTime());
+                        tjRefundVo.setTotalAmount(water.getPaidIn());
+                        tjRefundVo.setTjFlowingWater(water);
+                        tjRefundVoList.add(tjRefundVo);
+                    }
+                }
+                return AjaxResult.success(tjRefundVoList);
+            }
+            return AjaxResult.error("璇ョ敤鎴蜂笉瀛樺湪");
+        }
+
+        if (null != tjNum) {
+            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+            wq1.likeLeft(TjOrder::getTjNumber, tjNum);
+            wq1.eq(TjOrder::getCheckStatus, 0);
+            List<TjOrder> orderList = orderService.list(wq1);
+            if (null != orderList && orderList.size() > 0) {
+                List<TjRefundVo> tjRefundVoList = new ArrayList<>();
+                for (TjOrder order : orderList) {
+                    LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(TjFlowingWater::getOrderId, order.getOrderId());
+                    wrapper.eq(TjFlowingWater::getPayStasus, 1L);
+                    List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
+                    TjCustomer customer = customerService.getById(order.getUserId());
+                    for (TjFlowingWater water : list) {
+                        TjRefundVo tjRefundVo = new TjRefundVo();
+                        tjRefundVo.setTjName(customer.getCusName());
+                        tjRefundVo.setTjPhone(customer.getCusPhone());
+                        tjRefundVo.setTjNumber(order.getTjNumber());
+                        tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
+                        if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
+                        if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
+                        tjRefundVo.setRegisterTime(order.getCreateTime());
+                        tjRefundVo.setDrawerTime(order.getCreateTime());
+                        tjRefundVo.setReportTime(order.getReportTime());
+                        tjRefundVo.setTotalAmount(water.getPaidIn());
+                        tjRefundVo.setTjFlowingWater(water);
+                        tjRefundVoList.add(tjRefundVo);
+                    }
+                }
+                return AjaxResult.success(tjRefundVoList);
+            }
+            return AjaxResult.success("璇ョ敤鎴蜂笉瀛樺湪鎴栧凡浣撴瀹屾垚");
+        }
+        return AjaxResult.error("璇疯緭鍏ヨ鏌ヨ鏉′欢");
+    }
+
 
     /**
      * 浣撴(鏀惰垂)椤甸潰鏌ヨ鎺ュ彛
@@ -501,19 +751,19 @@
                     .or()
                     .like(TjCustomer::getCusPhone, tjPhone);
             List<TjCustomer> customerList = customerService.list(wq0);
-            if (null != customerList && customerList.size() > 0) {
+            if (null != customerList && !customerList.isEmpty()) {
                 for (TjCustomer customer : customerList) {
                     LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
                     wq1.eq(TjOrder::getUserId, customer.getCusId());
                     wq1.eq(TjOrder::getCheckStatus, 0);
                     wq1.orderByDesc(TjOrder::getCreateTime);
                     List<TjOrder> tjOrders = orderService.list(wq1);
-                    if (null != tjOrders && tjOrders.size() > 0) {
+                    if (null != tjOrders && !tjOrders.isEmpty()) {
                         for (TjOrder order : tjOrders) {
                             LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
                             wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
                             List<TjOrderDetail> detailList = detailService.list(wq2);
-                            if (null != detailList && detailList.size() > 0) {
+                            if (null != detailList && !detailList.isEmpty()) {
                                 TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
                                 tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
                                 tjRefundVo.setTjName(customer.getCusName());
@@ -540,39 +790,6 @@
                             }
                         }
                     }
-                    //                    TjOrder order = null;
-//                    if (null != tjOrders && tjOrders.size() > 0) {
-//                        order = tjOrders.get(0);
-//                    }
-//                    if (null == order) {
-//                        continue;
-//                    }
-//                    LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
-//                    wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
-//                    List<TjOrderDetail> detailList = detailService.list(wq2);
-//                    if (null != detailList && detailList.size() > 0) {
-//                        TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
-//                        tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
-//                        tjRefundVo.setTjName(customer.getCusName());
-//                        tjRefundVo.setTjPhone(customer.getCusPhone());
-//                        tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
-//                        tjRefundVo.setIdCard(customer.getCusIdcard());
-//                        if (null != order.getDictCompName())
-//                            tjRefundVo.setTjComp(compService.getById(order.getFirmId()) != null ? compService.getById(order.getFirmId()).getCnName() : null);
-//                        if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
-//                        LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
-//                        wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
-//                        wq.eq(TjFlowingWater::getIsAddition, "N");
-//                        wq.eq(TjFlowingWater::getPayStasus, 0);
-//                        TjFlowingWater one = tjFlowingWaterService.getOne(wq);
-////                        if (null == one) {
-////                            return AjaxResult.success("涓嶅彲閲嶅鏀惰垂");
-////                        }
-//                        tjRefundVo.setTjFlowingWater(one);
-//                        tjRefundVo.setTjNumber(order.getTjNumber());
-//                        tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
-//                        tjCollectFeesVoList.add(tjRefundVo);
-//                    }
                 }
                 return AjaxResult.success(tjCollectFeesVoList);
             }
@@ -584,13 +801,13 @@
             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()) {
                 for (TjOrder order : orderList) {
                     LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
                     wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
                     //wq2.isNull(TjOrderDetail::getFlowingWaterId);
                     List<TjOrderDetail> detailList = detailService.list(wq2);
-                    if (null != detailList && detailList.size() > 0) {
+                    if (null != detailList && !detailList.isEmpty()) {
                         TjCustomer customer = customerService.getById(order.getUserId());
                         if (null != customer) {
                             TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
@@ -624,6 +841,89 @@
         return AjaxResult.error("璇疯緭鍏ヨ鏌ヨ鏉′欢");
     }
 
+    /**
+     * 浣撴(鏀惰垂)椤甸潰鏌ヨ鎺ュ彛
+     */
+    @GetMapping("/findTjCollectFeesByNameAndTjNumAndPhoneN")
+    @ApiOperation(value = "浣撴(鏀惰垂)椤甸潰鏌ヨ鎺ュ彛")
+    public AjaxResult findTjCollectFeesByNameAndTjNumAndPhoneNew(@RequestParam(required = false) @ApiParam(value = "浣撴鍙�") String tjNum,
+                                                                 @RequestParam(required = false) @ApiParam(value = "浣撴浜哄鍚�") String tjName,
+                                                                 @RequestParam(required = false) @ApiParam(value = "浣撴浜烘墜鏈哄彿") String tjPhone) {
+        List<TjCollectFeesVo> tjCollectFeesVoList = new ArrayList<>();
+        if (null != tjName || null != tjPhone) {
+            LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
+            wq0.like(TjCustomer::getCusName, tjName)
+                    .or()
+                    .like(TjCustomer::getCusPhone, tjPhone);
+            List<TjCustomer> customerList = customerService.list(wq0);
+            if (null != customerList && !customerList.isEmpty()) {
+                LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+                wq1.in(TjOrder::getUserId, customerList.stream().map(TjCustomer::getCusId).collect(Collectors.toList()));
+                List<TjOrder> tjOrders = orderService.list(wq1);
+                if (null != tjOrders && !tjOrders.isEmpty()) {
+                    for (TjOrder order : tjOrders) {
+                            LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
+                            wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
+                            List<TjFlowingWater> list = tjFlowingWaterService.list(wq);
+                            for (TjFlowingWater water : list) {
+                                TjCustomer customer = customerService.getById(order.getUserId());
+                                TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
+                                tjRefundVo.setTjType(order.getTjType());
+                                tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
+                                tjRefundVo.setTjName(customer.getCusName());
+                                tjRefundVo.setTjPhone(customer.getCusPhone());
+                                tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
+                                tjRefundVo.setIdCard(customer.getCusIdcard());
+                                tjRefundVo.setTjComp(order.getFirmName());
+                                tjRefundVo.setTjFlowingWater(water);
+                                tjRefundVo.setTjNumber(order.getTjNumber());
+                                tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
+                                tjCollectFeesVoList.add(tjRefundVo);
+                            }
+
+                    }
+                }
+
+                return AjaxResult.success(tjCollectFeesVoList);
+            }
+            return AjaxResult.error("璇ョ敤鎴蜂笉瀛樺湪");
+        }
+
+        if (null != tjNum) {
+            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+            wq1.likeLeft(TjOrder::getTjNumber, tjNum);
+            List<TjOrder> orderList = orderService.list(wq1);
+            if (null != orderList && !orderList.isEmpty()) {
+                for (TjOrder order : orderList) {
+                    LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
+                    List<TjFlowingWater> list = tjFlowingWaterService.list(wq);
+                    for (TjFlowingWater water : list) {
+                        TjCustomer customer = customerService.getById(order.getUserId());
+                        TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
+                        tjRefundVo.setTjType(order.getTjType());
+                        tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
+                        tjRefundVo.setTjName(customer.getCusName());
+                        tjRefundVo.setTjPhone(customer.getCusPhone());
+                        tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
+                        tjRefundVo.setIdCard(customer.getCusIdcard());
+                        tjRefundVo.setTjComp(order.getFirmName());
+                        tjRefundVo.setTjFlowingWater(water);
+                        tjRefundVo.setTjNumber(order.getTjNumber());
+                        tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
+//                        TjCollectFeesVo vo = BeanUtil.copyProperties(tjRefundVo, TjCollectFeesVo.class);
+                        tjCollectFeesVoList.add(tjRefundVo);
+                    }
+
+
+                }
+                return AjaxResult.success(tjCollectFeesVoList);
+            }
+            return AjaxResult.success("璇ョ敤鎴蜂笉瀛樺湪鎴栧凡浣撴瀹屾垚");
+        }
+        return AjaxResult.error("璇疯緭鍏ヨ鏌ヨ鏉′欢");
+    }
+
 
     /**
      * 浣撴宸叉敹璐规湭鏀惰垂淇℃伅鏌ヨ鎺ュ彛
@@ -641,41 +941,11 @@
                 } else {
                     tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNull(OrderId);
                 }
-                String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(),order.getCardId());
+                String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(), order.getCardId());
                 String s = tjFlowingWaterService.getDiscount(OrderId);
-                if (null != tjProjectList && tjProjectList.size() > 0) {
+                if (null != tjProjectList && !tjProjectList.isEmpty()) {
                     for (TjProject project : tjProjectList) {
                         if (project.getProParentId() == 0) {
-/*                            //LambdaQueryWrapper<TbTransition> wqq1 = new LambdaQueryWrapper<>();
-//                            wqq1.eq(TbTransition::getCusId, customerService.getById(order.getUserId()).getCusIdcard());
-//                            wqq1.eq(TbTransition::getParentProId, project.getProId());
-//                            List<TbTransition> tbTransitionList = transitionService.list(wqq1);
-//                            BigDecimal bigDecimal = new BigDecimal("0.00");
-//                            BigDecimal bigDecimal1 = new BigDecimal("0.00");
-//                            for (TbTransition transition : tbTransitionList) {
-//                                 bigDecimal = bigDecimal.add(transition.getNowPrice());
-//                                 bigDecimal1=bigDecimal1.add(transition.getOrdPrice());
-//                            }
-//                            project.setProPrice(bigDecimal.setScale(0,BigDecimal.ROUND_UP));
-//                            project.setProOrdPrice(bigDecimal1);
-                            BigDecimal decimal = transitionService.getTbTransitionPriceAndOrdPrice(customerService.getById(order.getUserId()).getCusIdcard(),
-                                    project.getProId());
-                            String s = tjFlowingWaterService.getDiscount(OrderId);
-                            if(null !=decimal){
-//                                project.setProPrice(decimal.setScale(2));
-                                project.setProPrice(decimal);
-//                                project.setProOrdPrice(decimal.multiply(new BigDecimal(s)).setScale(2));
-                                project.setProOrdPrice(decimal);
-                            }else {
-                                BigDecimal decimal1 = transitionService.getTbTransitionDxPriceAndOrdPrice(String.valueOf(order.getUserId()),project.getProId());
-                                if(null !=decimal1){
-                                    project.setProPrice(decimal1.setScale(2));
-                                    project.setProOrdPrice(decimal1.multiply(new BigDecimal(s)).setScale(2));
-                                }else {
-                                    project.setProPrice(new BigDecimal("0.00").setScale(2));
-                                    project.setProOrdPrice(new BigDecimal("0.00").setScale(2));
-                                }
-                            }*/
                             if (null != pacId) {
                                 TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
                                         .eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
@@ -696,17 +966,106 @@
                     List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>()
                             .eq(TjFlowingWater::getOrderId, order)
                             .eq(TjFlowingWater::getPayStasus, 2));
-                    if (null != list && list.size() > 0) {
+                    if (null != list && !list.isEmpty()) {
                         List<TjProject> projectList = projectService.getTjProListByPacIdAndDeptId(pacId);
-                        if(null !=projectList && projectList.size()>0){
+                        if (null != projectList && !projectList.isEmpty()) {
                             for (TjProject project : projectList) {
-                                project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(),pacId)
+                                project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(), pacId)
                                         .multiply(new BigDecimal(s)).setScale(2));
                                 tjProjectList.add(project);
                             }
                         }
 
                     }
+                }
+                return AjaxResult.success(tjProjectList);
+            }
+        }
+        return AjaxResult.error("鏆傛椂娌℃湁鏁版嵁");
+    }
+
+    /**
+     * 浣撴宸叉敹璐规湭鏀惰垂淇℃伅鏌ヨ鎺ュ彛
+     */
+    @GetMapping("/findTjChargedButNotChargedByTjNumN")
+    @ApiOperation(value = "浣撴宸叉敹璐规湭鏀惰垂淇℃伅鏌ヨ鎺ュ彛")
+    public AjaxResult findTjChargedButNotChargedByTjNumN(@RequestParam @ApiParam(value = "0鏈即璐�1宸茬即璐�") Integer type,
+                                                         @RequestParam @ApiParam(value = "浣撴鍙�") String OrderId,
+                                                         @RequestParam String tjSerialNumber) {
+        if (StringUtil.isNotBlank(OrderId)) {
+            TjOrder order = orderService.getById(OrderId);
+            if (null != order) {
+                List<TjProject> tjProjectList = new ArrayList<>();
+                List<TjOrderRemark> remarkList = null;
+                LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(TjFlowingWater::getTjSerialNumber, tjSerialNumber);
+//                wrapper.eq(TjFlowingWater::getPayStasus,type);
+                TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
+                if (water == null)
+                    return AjaxResult.success(tjProjectList);
+                if (type == 0) {
+                    if (StrUtil.isBlank(water.getJxbz()))
+//                        tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullAndJxbzIsNull(OrderId);
+                        remarkList = remarkService.shoufeiyemianweishoufei(order.getTjNumber(), null);
+//                    else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullN(OrderId,water.getJxbz());
+                    else remarkList = remarkService.shoufeiyemianweishoufei(order.getTjNumber(), water.getJxbz());
+                } else {
+                    if (StrUtil.isBlank(water.getJxbz()))
+//                        tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullAndJxbzIsNull(OrderId);
+                        remarkList = remarkService.shoufeiyemianyishoufei(order.getTjNumber(), null);
+//                    else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullN(OrderId,water.getJxbz());
+                    else remarkList = remarkService.shoufeiyemianyishoufei(order.getTjNumber(), water.getJxbz());
+                }
+//                String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(),order.getCardId());
+//                String s = tjFlowingWaterService.getDiscount(OrderId);
+/*
+                if (null != tjProjectList && !tjProjectList.isEmpty()) {
+                    for (TjProject project : tjProjectList) {
+                        if (project.getProParentId() == 0) {
+                            if (null != pacId) {
+                                TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
+                                        .eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
+                                if (null != pp) {
+                                    project.setProPrice(pp.getPriceNow());
+                                    project.setProOrdPrice(pp.getPriceNow().multiply(new BigDecimal(s)));
+                                } else {
+                                    project.setProPrice(project.getProPrice());
+                                    project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)));
+                                }
+                            } else {
+                                project.setProPrice(project.getProPrice());
+                                project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)));
+                            }
+                        }
+                    }
+
+                    List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>()
+                            .eq(TjFlowingWater::getOrderId, order)
+                            .eq(TjFlowingWater::getPayStasus, 2));
+                    if (null != list && !list.isEmpty()) {
+                        List<TjProject> projectList = projectService.getTjProListByPacIdAndDeptId(pacId);
+                        if(null !=projectList && !projectList.isEmpty()){
+                            for (TjProject project : projectList) {
+                                project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(),pacId)
+                                        .multiply(new BigDecimal(s)));
+                                tjProjectList.add(project);
+                            }
+                        }
+
+                    }
+                }
+*/
+
+                if (!remarkList.isEmpty()) {
+                    for (TjOrderRemark remark : remarkList) {
+                        TjProject tjProject = projectService.getById(remark.getProId());
+                        BigDecimal newdecimal = transitionService.getTbTransitionNewPriceByTjNumAndParentId(remark.getTjNumber(), remark.getProId().toString());
+                        BigDecimal orddecimal = transitionService.getTbTransitionOrdPriceByTjNumAndParentId(remark.getTjNumber(), remark.getProId().toString());
+                        tjProject.setProOrdPrice(orddecimal);
+                        tjProject.setProPrice(newdecimal);
+                        tjProjectList.add(tjProject);
+                    }
+
                 }
                 return AjaxResult.success(tjProjectList);
             }
@@ -733,8 +1092,8 @@
             wq.ne(TjOrderDetail::getTjStatus, 3);
             wq.isNotNull(TjOrderDetail::getFlowingWaterId);
             List<TjOrderDetail> detailList = detailService.list(wq);
-            String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(tjOrder.getTjNumber(),tjOrder.getCardId());
-            if (null != detailList && detailList.size() > 0) {
+            String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(tjOrder.getTjNumber(), tjOrder.getCardId());
+            if (null != detailList && !detailList.isEmpty()) {
                 List<TjRefundProInfoVo> tjRefundProInfoVoList = new ArrayList<>();
                 for (TjOrderDetail detail : detailList) {
                     TjProject project = projectService.getById(detail.getProId());
@@ -767,7 +1126,10 @@
                             proInfoVo.setPrice(project.getProPrice());
                         }
                         proInfoVo.setCollectFeesTime(tjFlowingWaterService.getById(detail.getFlowingWaterId()).getUpdateTime());
-                        proInfoVo.setTollCollector(userService.getById(tjFlowingWaterService.getById(detail.getFlowingWaterId()).getTollCollectorId()).getNickName());
+//                        TjFlowingWater water = tjFlowingWaterService.getById(detail.getFlowingWaterId());
+//                        String tollCollectorId = water.getTollCollectorId();
+//                        SysUser user = userService.getById(tollCollectorId);
+//                        proInfoVo.setTollCollector(user.getNickName());
                         proInfoVo.setProName(project.getProName());
                         proInfoVo.setProId(String.valueOf(project.getProId()));
                         tjRefundProInfoVoList.add(proInfoVo);
@@ -775,6 +1137,54 @@
                 }
                 return AjaxResult.success(tjRefundProInfoVoList);
             }
+        }
+        return AjaxResult.success("浣撴宸插叏閮ㄥ畬鎴愭垨宸插け鏁�");
+    }
+
+    /**
+     * 浣撴閫�璐归」鐩煡璇㈡帴鍙�
+     */
+    @GetMapping("/getTjRefundProInfoVoList2")
+    @ApiOperation(value = "浣撴閫�璐归」鐩鎯呮煡璇㈡帴鍙�")
+    @Transactional
+    public AjaxResult getTjRefundProInfoVoList2(@RequestParam @ApiParam(value = "浣撴璁㈠崟id") String orderId) {
+        TjOrder tjOrder = orderService.getById(orderId);
+        if (null == tjOrder) return AjaxResult.error("璇ヤ綋妫�璁板綍涓嶅瓨鍦�");
+        if (tjOrder.getCheckStatus() == 0 && tjOrder.getReportTime() == null) {
+            List<TjRefundProInfoVo> tjRefundProInfoVoList = new ArrayList<>();
+            LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
+            wrapper.eq(TjFlowingWater::getPayStasus, 1L);
+            List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
+            if (list.isEmpty())
+                return AjaxResult.error("娌℃湁鏀惰垂椤圭洰");
+            for (TjFlowingWater water : list) {
+                LambdaQueryWrapper<TjOrderRemark> wrapper1 = new LambdaQueryWrapper<>();
+                wrapper1.eq(TjOrderRemark::getTjNumber, tjOrder.getTjNumber());
+                if (StrUtil.isNotBlank(water.getJxbz()))
+                    wrapper1.eq(TjOrderRemark::getJxbz, water.getJxbz());
+                else wrapper1.isNull(TjOrderRemark::getJxbz);
+                wrapper1.isNotNull(TjOrderRemark::getSfbz);
+                List<TjOrderRemark> list1 = remarkService.list(wrapper1);
+                for (TjOrderRemark remark : list1) {
+                    TjProject project = projectService.getById(remark.getProId());
+                    QueryWrapper<TbTransition> wrapper2 = new QueryWrapper<>();
+                    wrapper2.select("sum(now_price) as now_price");
+                    wrapper2.eq("tj_num", remark.getTjNumber());
+                    wrapper2.eq("parent_pro_id", remark.getProId());
+                    wrapper2.groupBy("parent_pro_id");
+                    TbTransition transition = tbTransitionService.getOne(wrapper2);
+                    TjRefundProInfoVo proInfoVo = new TjRefundProInfoVo();
+                    proInfoVo.setNetReceipts(transition.getNowPrice());
+                    proInfoVo.setPrice(project.getProPrice());
+                    proInfoVo.setCollectFeesTime(water.getUpdateTime());
+                    proInfoVo.setProName(project.getProName());
+                    proInfoVo.setProId(String.valueOf(project.getProId()));
+                    tjRefundProInfoVoList.add(proInfoVo);
+                }
+            }
+            if (!tjRefundProInfoVoList.isEmpty())
+                return AjaxResult.success(tjRefundProInfoVoList);
         }
         return AjaxResult.success("浣撴宸插叏閮ㄥ畬鎴愭垨宸插け鏁�");
     }
@@ -861,4 +1271,132 @@
         }
         return AjaxResult.error();
     }
+
+    /**
+     * 浣撴閫�璐规帴鍙�
+     */
+    @PostMapping("/tjRefund2")
+    @ApiOperation(value = "浣撴閫�璐规寜閽帴鍙�")
+    @Transactional
+    public AjaxResult tjRefund2(@RequestBody @ApiParam(value = "娴佹按瀵硅薄") TjFlowingWater tjFlowingWater) {
+        if (null == tjFlowingWater.getRefundPros() || tjFlowingWater.getRefundPros().size() == 0)
+            return AjaxResult.error("璇烽�夋嫨閫�璐归」鐩�");
+        TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
+        List<TjProject> refundPros = tjFlowingWater.getRefundPros();
+        List<Long> proIds = refundPros.stream().map(TjProject::getProId).collect(Collectors.toList());
+        LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(TjSampling::getProId, proIds);
+        wrapper.eq(TjSampling::getTjNum, order.getTjNumber());
+        wrapper.eq(TjSampling::getIsSignFor, "0");
+        List<TjSampling> list1 = tjSamplingService.list(wrapper);
+        if (!list1.isEmpty())
+            return AjaxResult.error("鎵�閫夐」鐩腑鍖呭惈宸插仛妫�楠岄」鐩棤娉曢��璐�");
+        tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        tjFlowingWater.setRefundPersonId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        tjFlowingWater.setRefundTime(new Date());
+        tjFlowingWater.setIsAddition("N");
+        tjFlowingWater.setPayStasus(2L);
+        tjFlowingWater.setWaterId("TF" + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
+        tjFlowingWater.setPaidIn(BigDecimal.valueOf(0.00).subtract(tjFlowingWater.getRefundPrice()));
+        tjFlowingWater.setCopeWith(tjFlowingWater.getRefundPrice());
+        tjFlowingWater.setTjSerialNumber(IdUtil.getSnowflake().nextId());
+        if (tjFlowingWaterService.save(tjFlowingWater)) {
+            for (TjProject refundPro : tjFlowingWater.getRefundPros()) {
+                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjProject::getProParentId, refundPro.getProId());
+                List<Long> collect = projectService.list(wq).stream().map(TjProject::getProId).collect(Collectors.toList());
+                LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
+                wq1.in(TjOrderDetail::getProId, collect);
+                wq1.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+                wq1.isNotNull(TjOrderDetail::getFlowingWaterId);
+                wq1.eq(TjOrderDetail::getTjStatus, 0);
+                List<TjOrderDetail> list = detailService.list(wq1);
+                if (null != list && list.size() > 0) {
+                    for (TjOrderDetail orderDetail : list) {
+                        orderDetail.setFlowingWaterId(null);
+                        detailService.updateById(orderDetail);
+                        LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
+                        wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
+                        wqq.eq(TjChargingStandard::getProId, orderDetail.getProId());
+                        chargingStandardService.remove(wqq);
+                    }
+                }
+                LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
+                wq2.eq(TjOrderDetail::getProId, refundPro.getProId());
+                wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+                wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
+                wq2.eq(TjOrderDetail::getTjStatus, 0);
+                TjOrderDetail detail = detailService.getOne(wq2);
+                if (null != detail) {
+                    detail.setFlowingWaterId(null);
+                    detailService.updateById(detail);
+                    LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
+                    wqqq.eq(TjProConsumables::getProId, detail.getProId());
+                    List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
+                    List<TjConsumables> list2 = new ArrayList<>();
+                    if (null != proConsumables && proConsumables.size() > 0) {
+                        for (TjProConsumables tjProConsumables : proConsumables) {
+                            TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
+                            list2.add(tjConsumables);
+                        }
+                    }
+                    if (null != list && !list.isEmpty()) {
+                        ArrayList<TjConsumables> collectw = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
+                        for (TjConsumables tjConsumables : collectw) {
+                            LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
+                            wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
+                            wqq.eq(TjChargingStandard::getConsumablesId, tjConsumables.getId());
+                            chargingStandardService.remove(wqq);
+                        }
+                    }
+                }
+                LambdaUpdateWrapper<TjOrderRemark> wqz = new LambdaUpdateWrapper<>();
+                wqz.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
+                wqz.eq(TjOrderRemark::getProId, refundPro.getProId());
+                wqz.set(TjOrderRemark::getSfbz, null);
+                remarkService.update(wqz);
+            }
+
+            asyncService.tjRefund(refundPros, order.getTjNumber());
+            Map<String, Object> map = new HashMap<>();
+            map.put("waterId", tjFlowingWater.getWaterId());
+            map.put("mobanId", reportService.getMoBanId());
+            return AjaxResult.success("閫�璐规垚鍔�", map);
+        }
+        return AjaxResult.error();
+    }
+
+
+
+    @GetMapping("/gettuantijiesuanrenyuan")
+    @ApiOperation(value = "鑾峰彇鍥綋缁撶畻浜哄憳")
+    public AjaxResult gettuantijiesuanrenyuan(@RequestParam(required = false) @ApiParam("鍗曚綅ID") String dwId,
+                                              @RequestParam(required = false) @ApiParam("鐧昏寮�濮嬫椂闂�") String djkssj,
+                                              @RequestParam(required = false) @ApiParam("鐧昏缁撴潫鏃堕棿") String djjssj,
+                                              @RequestParam(required = false) @ApiParam("缁撶畻寮�濮嬫椂闂�") String jskssj,
+                                              @RequestParam(required = false) @ApiParam("缁撶畻缁撴潫鏃堕棿") String jsjssj,
+                                              @RequestParam(required = false) @ApiParam("浣撴鍙�") String tjh,
+                                              @RequestParam(required = false) @ApiParam("缁撶畻浜篿d") String jsrid,
+                                              @ApiParam(value = "鏄剧ず鏉℃暟(榛樿10)") @RequestParam(defaultValue = "10") Integer pageSize,
+                                              @ApiParam(value = "椤电爜鏁�(榛樿1)") @RequestParam(defaultValue = "1") Integer page) {
+
+        if (StringUtil.isNotBlank(dwId)) dwId = "";
+        if (StringUtil.isNotBlank(djkssj)) djkssj = "";
+        if (StringUtil.isNotBlank(djjssj)) djjssj = "";
+        if (StringUtil.isNotBlank(jskssj)) jskssj = "";
+        if (StringUtil.isNotBlank(jsjssj)) jsjssj = "";
+        if (StringUtil.isNotBlank(tjh)) tjh = "";
+        if (StringUtil.isNotBlank(jsrid)) jsrid = "";
+        return AjaxResult.success(tjFlowingWaterService.gettuantijiesuanrenyuan(page, pageSize,dwId,djkssj, djjssj, jskssj, jsjssj, tjh, jsrid));
+    }
+
+
+
+    @PostMapping("/tuantijiesuan")
+    @ApiOperation(value = "鍥綋缁撶畻")
+    public AjaxResult tuantijiesuan(@RequestParam(required = false) @ApiParam("鍗曚綅ID") List<String> dwId) {
+
+        return AjaxResult.success();
+    }
+
 }

--
Gitblit v1.8.0