Commit ecb916dc by 杨浩

订单进度查询

parent 71b29808
......@@ -16,7 +16,7 @@ import java.util.Arrays;
public enum CustomerOrderStatus implements ArrayValuable<String> {
// 下单成功
ORDER_SUCCESS("下单成功", "ORDER_SUCCESS") {
ORDER_SUCCESS("下单成功", "ORDER_SUCCESS", 0) {
@Override
public String getText() {
return "您已成功下单\n" +
......@@ -24,63 +24,63 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
}
},
// 订单匹配
ORDER_MATCH("订单匹配", "ORDER_MATCH") {
ORDER_MATCH("订单匹配", "ORDER_MATCH", 1) {
@Override
public String getText() {
return "【%s】供应商 匹配成功";
}
},
// 供应商接单
SUPPLIER_ACCEPT_ORDER("供应商接单", "SUPPLIER_ACCEPT_ORDER") {
SUPPLIER_ACCEPT_ORDER("供应商接单", "SUPPLIER_ACCEPT_ORDER", 2) {
@Override
public String getText() {
return "【%s】供应商 已接单";
}
},
// 供应商发货
SUPPLIER_SHIP("供应商发货", "SUPPLIER_SHIP") {
SUPPLIER_SHIP("供应商发货", "SUPPLIER_SHIP", 3) {
@Override
public String getText() {
return "【%s】供应商 已发货";
}
},
// 供应商到货
SUPPLIER_ARRIVE("供应商到货", "SUPPLIER_ARRIVE") {
SUPPLIER_ARRIVE("供应商到货", "SUPPLIER_ARRIVE", 4) {
@Override
public String getText() {
return "【%s】供应商 已到货";
}
},
// 分仓质检
WAREHOUSE_INSPECTION("分仓质检", "WAREHOUSE_INSPECTION") {
WAREHOUSE_INSPECTION("分仓质检", "WAREHOUSE_INSPECTION", 5) {
@Override
public String getText() {
return "您的商品已到达【%s】分仓,已完成质检入库;查看质检报告【%s】";
}
},
// 商品分拣
SORTING("商品分拣", "SORTING") {
SORTING("商品分拣", "SORTING", 6) {
@Override
public String getText() {
return "您的商品在【%s】分仓已完成分拣,【%s】正在进行配送";
}
},
// 商品配送
DELIVERY("商品配送", "DELIVERY") {
DELIVERY("商品配送", "DELIVERY", 7) {
@Override
public String getText() {
return "您的商品将在16小时内完成配送,请保持电话畅通,配送员【%s】联系方式:【%s】";
}
},
// 商品到货
ARRIVAL("商品到货", "ARRIVAL") {
ARRIVAL("商品到货", "ARRIVAL", 8) {
@Override
public String getText() {
return "您的商品已送到收货地址,请前往签收;配送员【%s】 联系方式:【%s】";
}
},
// 商品签收
SIGN_RECEIPT("商品签收", "SIGN_RECEIPT") {
SIGN_RECEIPT("商品签收", "SIGN_RECEIPT", 9) {
@Override
public String getText() {
return "您的商品完成签收查看签收单【%s】";
......@@ -88,7 +88,7 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
},
CANCEL("取消订单", "CANCEL") {
CANCEL("取消订单", "CANCEL", 9999) {
@Override
public String getText() {
return "";
......@@ -99,6 +99,7 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
private final String label;
private final String key;
private final int sort;
public static final String[] ARRAYS = Arrays.stream(values()).map(CustomerOrderStatus::getKey).toArray(String[]::new);
......
......@@ -3,6 +3,7 @@ package cn.iocoder.foodnexus.module.order.controller.admin.customerorder;
import cn.iocoder.foodnexus.module.order.api.CustomerOrderApi;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorderitem.vo.CustomerOrderItemRespVO;
import cn.iocoder.foodnexus.module.order.service.customerorderitem.CustomerOrderItemService;
import cn.iocoder.foodnexus.module.order.service.customerorderrecord.CustomerOrderRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
......@@ -45,6 +46,9 @@ public class CustomerOrderController {
@Autowired
private CustomerOrderApi customerOrderApi;
@Autowired
private CustomerOrderRecordService customerOrderRecordService;
/* @DeleteMapping("/delete")
@Operation(summary = "删除客户总订单")
......@@ -83,6 +87,13 @@ public class CustomerOrderController {
return success(BeanUtils.toBean(pageResult, CustomerOrderRespVO.class));
}
@GetMapping("/record")
@Operation(summary = "订单进度")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<List<CustomerOrderRecordMapVO>> queryRecord(@RequestParam("id") Long id) {
return success(customerOrderRecordService.queryRecordMap(id));
}
@GetMapping("/export-excel")
@Operation(summary = "导出客户总订单 Excel")
@PreAuthorize("@ss.hasPermission('order:customer-order:export')")
......
package cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorderrecord.vo.CustomerOrderRecordRespVO;
import cn.iocoder.foodnexus.module.order.enums.CustomerOrderStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
/**
* @author : yanghao
* create at: 2025/9/26 14:23
* @description: 订单进度
*/
@Data
@AllArgsConstructor
public class CustomerOrderRecordMapVO {
@Schema(description = "订单状态")
private CustomerOrderStatus orderStatus;
@Schema(description = "进度记录")
private List<CustomerOrderRecordRespVO> records;
}
......@@ -9,6 +9,7 @@ import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderPageReqVO;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRespVO;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderSaveReqVO;
import cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCustomerOrderRemarkReqVO;
......@@ -16,6 +17,7 @@ import cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCust
import cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCustomerOrderSaveReqVO;
import cn.iocoder.foodnexus.module.order.dal.dataobject.customerorder.CustomerOrderDO;
import cn.iocoder.foodnexus.module.order.service.customerorder.CustomerOrderService;
import cn.iocoder.foodnexus.module.order.service.customerorderrecord.CustomerOrderRecordService;
import cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
......@@ -23,6 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -43,6 +46,8 @@ public class AppCustomerOrderController {
@Resource
private CustomerOrderService customerOrderService;
@Autowired
private CustomerOrderRecordService customerOrderRecordService;
@PostMapping("/create")
@Operation(summary = "创建客户总订单")
......@@ -97,4 +102,11 @@ public class AppCustomerOrderController {
return success(BeanUtils.toBean(pageResult, CustomerOrderRespVO.class));
}
@GetMapping("/record")
@Operation(summary = "订单进度")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<List<CustomerOrderRecordMapVO>> queryRecord(@RequestParam("id") Long id) {
return success(customerOrderRecordService.queryRecordMap(id));
}
}
\ No newline at end of file
package cn.iocoder.foodnexus.module.order.service.customerorderrecord;
import java.util.*;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO;
import jakarta.validation.*;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorderrecord.vo.*;
import cn.iocoder.foodnexus.module.order.dal.dataobject.customerorderrecord.CustomerOrderRecordDO;
......@@ -59,4 +61,10 @@ public interface CustomerOrderRecordService {
*/
PageResult<CustomerOrderRecordDO> getCustomerOrderRecordPage(CustomerOrderRecordPageReqVO pageReqVO);
/**
* 订单进度记录
* @param id
* @return
*/
List<CustomerOrderRecordMapVO> queryRecordMap(Long id);
}
\ No newline at end of file
package cn.iocoder.foodnexus.module.order.service.customerorderrecord;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.spring.SpringUtils;
import cn.iocoder.foodnexus.module.erp.api.PurchaseOrderSplitEvent;
import cn.iocoder.foodnexus.module.order.api.CustomerOrderApi;
import cn.iocoder.foodnexus.module.order.api.CustomerOrderRecordApi;
import cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO;
import cn.iocoder.foodnexus.module.order.dto.CustomerOrderDTO;
import cn.iocoder.foodnexus.module.order.dto.CustomerOrderRecordEvent;
import cn.iocoder.foodnexus.module.order.enums.CustomerOrderStatus;
......@@ -98,6 +100,27 @@ public class CustomerOrderRecordServiceImpl implements CustomerOrderRecordServic
return customerOrderRecordMapper.selectPage(pageReqVO);
}
/**
* 订单进度记录
*
* @param customerOrderId
* @return
*/
@Override
public List<CustomerOrderRecordMapVO> queryRecordMap(Long customerOrderId) {
List<CustomerOrderRecordDO> list = customerOrderRecordMapper.selectList(CustomerOrderRecordDO::getCustomerOrderId, customerOrderId);
Map<CustomerOrderStatus, List<CustomerOrderRecordDO>> map = CommonUtil.listConvertListMap(list, CustomerOrderRecordDO::getOrderStatus);
List<CustomerOrderRecordMapVO> result = new ArrayList<>();
for (Map.Entry<CustomerOrderStatus, List<CustomerOrderRecordDO>> entry : map.entrySet()) {
CustomerOrderStatus orderStatus = entry.getKey();
List<CustomerOrderRecordDO> records = entry.getValue();
result.add(new CustomerOrderRecordMapVO(orderStatus, BeanUtils.toBean(records, CustomerOrderRecordRespVO.class)));
}
result.sort(Comparator.comparingInt(vo -> vo.getOrderStatus().getSort()));
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void recordEvent(CustomerOrderRecordEvent event) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment