From 1b7ed7edb09aaecf68ddf3396ee007bc6eadf52a Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 30 十二月 2024 17:04:09 +0800
Subject: [PATCH] zjh202412030

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java |  210 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 205 insertions(+), 5 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 4c02c33..fd8b804 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,15 @@
 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.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.update.LambdaUpdateWrapper;
 import com.ltkj.common.annotation.RepeatSubmit;
 import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysUser;
@@ -87,6 +90,8 @@
     private ISysDeptService sysDeptService;
     @Autowired
     private TjFlowingWaterHisService tjFlowingWaterHisService;
+    @Autowired
+    private ITjSamplingService tjSamplingService;
 
     /**
      * 鏌ヨ璇ヤ綋妫�鍙峰搴旂殑璁㈠崟娴佹按鍒楄〃
@@ -357,6 +362,135 @@
         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.getFinishTime() !=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);
+        }
+        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());
+                    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();
+    }
+
 
     /**
      * 鍒犻櫎浣撴娴佹按
@@ -609,14 +743,15 @@
                     .like(TjCustomer::getCusPhone, tjPhone);
             List<TjCustomer> customerList = customerService.list(wq0);
             if (null != customerList && !customerList.isEmpty()) {
-                for (TjCustomer customer : customerList) {
                     LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-                    wq1.eq(TjOrder::getUserId, customer.getCusId());
+                    wq1.in(TjOrder::getUserId,customerList.stream().map(TjCustomer::getCusId).collect(Collectors.toList()));
                     wq1.eq(TjOrder::getCheckStatus, 0);
+//                    wq1.isNotNull(TjOrder::getReportTime);
                     wq1.orderByDesc(TjOrder::getCreateTime);
                     List<TjOrder> tjOrders = orderService.list(wq1);
                     if (null != tjOrders && !tjOrders.isEmpty()) {
                         for (TjOrder order : tjOrders) {
+                            TjCustomer customer = customerService.getById(order.getUserId());
                             LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
                             wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
                             List<TjOrderDetail> detailList = detailService.list(wq2);
@@ -644,13 +779,13 @@
                                     tjRefundVo.setTjFlowingWater(water);
                                     tjRefundVo.setTjNumber(order.getTjNumber());
                                     tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
-                                    tjCollectFeesVoList.add(tjRefundVo);
+                                    TjCollectFeesVo vo = BeanUtil.copyProperties(tjRefundVo, TjCollectFeesVo.class);
+                                    tjCollectFeesVoList.add(vo);
                                 }
-                                // tjRefundVo.setPaidIn(String.valueOf(one.getPaidIn()));
                             }
                         }
                     }
-                }
+
                 return AjaxResult.success(tjCollectFeesVoList);
             }
             return AjaxResult.error("璇ョ敤鎴蜂笉瀛樺湪");
@@ -761,6 +896,71 @@
         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 (null != OrderId) {
+            TjOrder order = orderService.getById(OrderId);
+            if (null != order) {
+                List<TjProject> tjProjectList = null;
+                TjFlowingWater water = tjFlowingWaterService.getById(tjSerialNumber);
+                if (type == 0) {
+                    if (StrUtil.isBlank(water.getJxbz()))
+                        tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullAndJxbzIsNull(OrderId);
+                    else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullN(OrderId,water.getJxbz());
+                } else {
+                    if (StrUtil.isBlank(water.getJxbz()))
+                        tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullAndJxbzIsNull(OrderId);
+                    else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullN(OrderId,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().setScale(2));
+                                    project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)).setScale(2));
+                                }
+                            } else {
+                                project.setProPrice(project.getProPrice().setScale(2));
+                                project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)).setScale(2));
+                            }
+                        }
+                    }
+
+                    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)).setScale(2));
+                                tjProjectList.add(project);
+                            }
+                        }
+
+                    }
+                }
+                return AjaxResult.success(tjProjectList);
+            }
+        }
+        return AjaxResult.error("鏆傛椂娌℃湁鏁版嵁");
+    }
+
 
     /**
      * 浣撴閫�璐归」鐩煡璇㈡帴鍙�

--
Gitblit v1.8.0