From d2260ade7bca26d63896f71b51aed97999cb078b Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Thu, 28 Aug 2025 11:33:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=BB=E5=8D=95=E9=80=80?= =?UTF-8?q?=E5=8D=95=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/OrderMasterController.java | 41 +++++++++++++------ .../ghy/web/pojo/vo/OrderStandardDetail.java | 15 +++++++ .../service/impl/CustomerServiceImpl.java | 3 ++ .../impl/DeptGoodsCategoryServiceImpl.java | 37 +++++++++-------- .../com/ghy/order/domain/OrderDetail.java | 15 +++++++ .../com/ghy/order/domain/OrderMaster.java | 15 +++++++ .../mapper/order/OrderDetailMapper.xml | 22 +++++++++- .../mapper/order/OrderMasterMapper.xml | 22 +++++++++- .../ghy/quartz/pojo/OrderStandardDetail.java | 15 +++++++ 9 files changed, 152 insertions(+), 33 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index 92438c93..c095f8a7 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -1498,6 +1498,10 @@ public class OrderMasterController extends BaseController { orderStandardDetail.setAfterTimeout(orderDetail.getAfterTimeout()); + orderStandardDetail.setReturnReason(orderDetail.getReturnReason()); + orderStandardDetail.setReturnReasonDetail(orderDetail.getReturnReasonDetail()); + orderStandardDetail.setReturnImages(orderDetail.getReturnImages()); + orderStandardDetails.add(orderStandardDetail); } @@ -2002,43 +2006,51 @@ public class OrderMasterController extends BaseController { @PostMapping("/console/cancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public AjaxResult consoleCancel(Long id) { - if(id == null){ + public AjaxResult consoleCancel(@RequestBody OrderMaster orderMaster) { + if(orderMaster.getId() == null){ return AjaxResult.error("订单编码id不能为空!"); } // 判断该主单状态 - OrderMaster orderMaster = orderMasterService.selectById(id); - if(!orderMaster.getOrderStatus().equals(OrderStatus.PLAIN.code()) && !orderMaster.getOrderStatus().equals(OrderStatus.RECEIVE.code())){ + OrderMaster orderMasterInfo = orderMasterService.selectById(orderMaster.getId()); + if(!orderMasterInfo.getOrderStatus().equals(OrderStatus.PLAIN.code()) && !orderMasterInfo.getOrderStatus().equals(OrderStatus.RECEIVE.code())){ return AjaxResult.error("该订单处于无法退单状态!"); } // 含有子单 - List orderDetails = orderDetailService.selectByOrderMasterId(id); + List orderDetails = orderDetailService.selectByOrderMasterId(orderMaster.getId()); if(CollectionUtils.isNotEmpty(orderDetails)){ return AjaxResult.error("该订单已经派发过子单,无法退单状态!"); } try { // 判断是否为服务订单且需要退还服务金额 - if (isServiceOrder(orderMaster) && - orderMaster.getGoodsOrderMasterId() != null && - orderMaster.getServerGoodsMoney() != null && - orderMaster.getServerGoodsMoney().compareTo(BigDecimal.ZERO) > 0) { + if (isServiceOrder(orderMasterInfo) && + orderMasterInfo.getGoodsOrderMasterId() != null && + orderMasterInfo.getServerGoodsMoney() != null && + orderMasterInfo.getServerGoodsMoney().compareTo(BigDecimal.ZERO) > 0) { logger.info("检测到服务订单退单,开始退还服务金额:订单[{}],金额[{}],目标商品订单[{}]", - orderMaster.getId(), orderMaster.getServerGoodsMoney(), orderMaster.getGoodsOrderMasterId()); + orderMasterInfo.getId(), orderMasterInfo.getServerGoodsMoney(), orderMasterInfo.getGoodsOrderMasterId()); // 退还服务金额到商品订单 - refundServerMoneyToGoodsOrder(orderMaster.getGoodsOrderMasterId(), orderMaster.getServerGoodsMoney()); + refundServerMoneyToGoodsOrder(orderMasterInfo.getGoodsOrderMasterId(), orderMasterInfo.getServerGoodsMoney()); // 重置配件主单的服务订单派发状态 OrderMaster goodsOrderUpdate = new OrderMaster(); - goodsOrderUpdate.setId(orderMaster.getGoodsOrderMasterId()); + goodsOrderUpdate.setId(orderMasterInfo.getGoodsOrderMasterId()); goodsOrderUpdate.setHasServiceOrder(0); // 重置为未派发状态 orderMasterService.updateOrderMaster(goodsOrderUpdate); } + // 保存退单信息 + OrderMaster returnOrderUpdate = new OrderMaster(); + returnOrderUpdate.setId(orderMaster.getId()); + returnOrderUpdate.setReturnReason(orderMaster.getReturnReason()); + returnOrderUpdate.setReturnReasonDetail(orderMaster.getReturnReasonDetail()); + returnOrderUpdate.setReturnImages(orderMaster.getReturnImages()); + orderMasterService.updateOrderMaster(returnOrderUpdate); + // 清空id orderMasterService.removeWorker(orderMaster.getId()); // 更新状态待接单 @@ -2047,7 +2059,7 @@ public class OrderMasterController extends BaseController { return AjaxResult.success("退单成功"); } catch (Exception e) { - logger.error("退单失败:订单ID={}, 错误信息={}", id, e.getMessage(), e); + logger.error("退单失败:订单ID={}, 错误信息={}", orderMaster.getId(), e.getMessage(), e); return AjaxResult.error("退单失败:" + e.getMessage()); } } @@ -2145,6 +2157,9 @@ public class OrderMasterController extends BaseController { detailRes.setOrderDetailCode(detail.getCode()); detailRes.setWorkerName(workerName); detailRes.setRemark(workerName + "(" + detail.getCode() + ")"); + detailRes.setReturnReason(detail.getReturnReason()); + detailRes.setReturnReasonDetail(detail.getReturnReasonDetail()); + detailRes.setReturnImages(detail.getReturnImages()); orderStandardDetails.add(detailRes); } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java index ed104a17..677cbb69 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java @@ -84,4 +84,19 @@ public class OrderStandardDetail { private BigDecimal addMoney; + /** + * 退单原因 + */ + private String returnReason; + + /** + * 退单原因详情 + */ + private String returnReasonDetail; + + /** + * 退单图片 + */ + private String returnImages; + } diff --git a/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerServiceImpl.java b/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerServiceImpl.java index ddb7218b..0a1831d2 100644 --- a/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerServiceImpl.java +++ b/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerServiceImpl.java @@ -30,6 +30,9 @@ public class CustomerServiceImpl implements CustomerService { @Override public Customer selectByCustomerId(Long customerId) { + if (customerId == null) { + return null; + } return customerMapper.selectByCustomerId(customerId); } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/DeptGoodsCategoryServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/DeptGoodsCategoryServiceImpl.java index c05eda58..fdcb63e8 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/DeptGoodsCategoryServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/DeptGoodsCategoryServiceImpl.java @@ -95,23 +95,28 @@ public class DeptGoodsCategoryServiceImpl implements DeptGoodsCategoryService { @Override public List appList(DeptGoodsCategory deptGoodsCategory) { Customer customer= customerService.selectByCustomerId(deptGoodsCategory.getCustomerId()); - Long customerId=customer.getCustomerPlace(); - if (customer.getPlaceStatus()==2){ - customerId=customer.getCustomerId(); - } - CustomerSelection customerSelection=new CustomerSelection(); - customerSelection.setCustomerId(customerId); - List customerSelections=customerSelectionService.selectCustomerSelectionList(customerSelection); - List goodsCategoryList =new ArrayList<>(); - log.info("用户id{}获取到的类目列表{}",customerId,customerSelections); - // 第一层 - if (deptGoodsCategory.getIsSetting()==1){ + List goodsCategoryList = new ArrayList<>(); + if (customer == null) { + log.warn("未找到客户,customerId: {}", deptGoodsCategory.getCustomerId()); + // 返回全部类目或默认类目 goodsCategoryList = deptGoodsCategoryMapper.appList(deptGoodsCategory); - }else{ - for (CustomerSelection customerSelection1 : customerSelections) { - DeptGoodsCategory deptGoodsCategory1=deptGoodsCategoryMapper.selectOneByGoodsCategoryId(customerSelection1.getDeptCategoryId()); - if (customerSelection1.getSelectionType()==1){ - goodsCategoryList.add(deptGoodsCategory1); + } else { + Long customerId = customer.getCustomerPlace(); + if (customer.getPlaceStatus() == 2) { + customerId = customer.getCustomerId(); + } + CustomerSelection customerSelection = new CustomerSelection(); + customerSelection.setCustomerId(customerId); + List customerSelections = customerSelectionService.selectCustomerSelectionList(customerSelection); + log.info("用户id{}获取到的类目列表{}", customerId, customerSelections); + if (deptGoodsCategory.getIsSetting() == 1) { + goodsCategoryList = deptGoodsCategoryMapper.appList(deptGoodsCategory); + } else { + for (CustomerSelection customerSelection1 : customerSelections) { + DeptGoodsCategory deptGoodsCategory1 = deptGoodsCategoryMapper.selectOneByGoodsCategoryId(customerSelection1.getDeptCategoryId()); + if (customerSelection1.getSelectionType() == 1) { + goodsCategoryList.add(deptGoodsCategory1); + } } } } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java index a4ccc9c0..502cf8e2 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java @@ -230,4 +230,19 @@ public class OrderDetail extends BaseEntity { */ private Integer delayCount; + /** + * 退单原因 + */ + private String returnReason; + + /** + * 退单原因详情 + */ + private String returnReasonDetail; + + /** + * 退单图片 + */ + private String returnImages; + } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index 30b4a5be..d902cd4f 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -303,4 +303,19 @@ public class OrderMaster extends BaseEntity { */ @Excel(name = "原师傅id", cellType = Excel.ColumnType.NUMERIC) private Long originalWorkerId; + + /** + * 退单原因 + */ + private String returnReason; + + /** + * 退单原因详情 + */ + private String returnReasonDetail; + + /** + * 退单图片 + */ + private String returnImages; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 9ae2e953..4bd1af2d 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -37,6 +37,9 @@ + + + @@ -70,7 +73,10 @@ timeout_, timeout_fine_times, after_timeout, - delay_count + delay_count, + return_reason, + return_reason_detail, + return_images FROM order_detail @@ -106,7 +112,10 @@ od.timeout_, od.timeout_fine_times, od.after_timeout, - od.delay_count + od.delay_count, + od.return_reason, + od.return_reason_detail, + od.return_images FROM order_detail od LEFT JOIN order_master om ON om.id = od.order_master_id LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id @@ -373,6 +382,9 @@ ledger_account_status = #{ledgerAccountStatus}, timeout_ = #{timeout}, delay_count = #{delayCount}, + return_reason = #{returnReason}, + return_reason_detail = #{returnReasonDetail}, + return_images = #{returnImages}, update_time = SYSDATE() WHERE id = #{id} @@ -432,6 +444,9 @@ handover_remark, confirm_start_time, delay_count, + return_reason, + return_reason_detail, + return_images, expect_time_start, expect_time_end, work_begin_time, @@ -452,6 +467,9 @@ #{handoverRemark}, #{confirmStartTime}, #{delayCount}, + #{returnReason}, + #{returnReasonDetail}, + #{returnImages}, #{expectTimeStart}, #{expectTimeEnd}, #{workBeginTime}, diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index fcf22042..51f1240c 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -65,6 +65,9 @@ + + + @@ -127,7 +130,10 @@ delivery_images, is_invoiced, is_need_bill, - original_worker_id + original_worker_id, + return_reason, + return_reason_detail, + return_images FROM order_master @@ -190,7 +196,10 @@ om.delivery_images, om.is_invoiced, om.is_need_bill, - om.original_worker_id + om.original_worker_id, + om.return_reason, + om.return_reason_detail, + om.return_images FROM order_master om LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id LEFT JOIN goods g ON g.goods_id = om.goods_id @@ -496,6 +505,9 @@ is_invoiced = #{isInvoiced}, is_need_bill = #{isNeedBill}, original_worker_id = #{originalWorkerId}, + return_reason = #{returnReason}, + return_reason_detail = #{returnReasonDetail}, + return_images = #{returnImages}, update_time = SYSDATE() WHERE id = #{id} @@ -564,6 +576,9 @@ is_invoiced, is_need_bill, original_worker_id, + return_reason, + return_reason_detail, + return_images, create_time )VALUES( #{deptId}, @@ -613,6 +628,9 @@ #{isInvoiced}, #{isNeedBill}, #{originalWorkerId}, + #{returnReason}, + #{returnReasonDetail}, + #{returnImages}, SYSDATE() ) diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/pojo/OrderStandardDetail.java b/ghy-quartz/src/main/java/com/ghy/quartz/pojo/OrderStandardDetail.java index a0f076f1..1bade7d8 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/pojo/OrderStandardDetail.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/pojo/OrderStandardDetail.java @@ -83,4 +83,19 @@ public class OrderStandardDetail { private Integer afterTimeout; + /** + * 退单原因 + */ + private String returnReason; + + /** + * 退单原因详情 + */ + private String returnReasonDetail; + + /** + * 退单图片 + */ + private String returnImages; + }