From 23fe6fc0a44c8fc840076837d6f92302e90962cd Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期六, 04 一月 2025 19:09:37 +0800 Subject: [PATCH] 20250104 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 258 insertions(+), 14 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 b1698ec..349d645 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 @@ -8,12 +8,14 @@ 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; @@ -94,6 +96,8 @@ private ITjSamplingService tjSamplingService; @Autowired private TjOrderController tjOrderController; + @Autowired + private ITbTransitionService tbTransitionService; /** * 鏌ヨ璇ヤ綋妫�鍙峰搴旂殑璁㈠崟娴佹按鍒楄〃 @@ -378,21 +382,21 @@ // tjFlowingWater.setPayStasus(1L); TjOrder order = orderService.getById(tjFlowingWater.getOrderId()); - if(order.getFinishTime() !=null){ + 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.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(); + 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(); } @@ -403,13 +407,15 @@ } } - if (flowingWater.getPayStasus() == 1) { - return AjaxResult.success("璇ヨ鍗曞凡浠樻 鏃犻』鍐嶄粯"); - } +// 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 (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()); @@ -525,7 +531,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); @@ -623,6 +629,94 @@ tjRefundVo.setTjFlowingWater(flowingWater); tjRefundVoList.add(tjRefundVo); } + } + } + return AjaxResult.success(tjRefundVoList); + } + return AjaxResult.success("璇ョ敤鎴蜂笉瀛樺湪鎴栧凡浣撴瀹屾垚"); + } + 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); @@ -919,7 +1013,12 @@ TjOrder order = orderService.getById(OrderId); if (null != order) { List<TjProject> tjProjectList = null; - TjFlowingWater water = tjFlowingWaterService.getById(tjSerialNumber); + 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); @@ -1025,7 +1124,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); @@ -1033,6 +1135,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("浣撴宸插叏閮ㄥ畬鎴愭垨宸插け鏁�"); } @@ -1119,4 +1269,98 @@ } 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.size() > 0) { + 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(); + } } -- Gitblit v1.8.0