|
|
@@ -1,20 +1,34 @@
|
|
|
package org.dromara.order.controller;
|
|
|
|
|
|
+import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.constraints.NotNull;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.dromara.api.RemotePetService;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
+import org.dromara.common.core.utils.DateUtils;
|
|
|
+import org.dromara.common.excel.utils.ExcelUtil;
|
|
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
import org.dromara.common.web.core.BaseController;
|
|
|
+import org.dromara.order.api.enums.OrderStatusEnum;
|
|
|
+import org.dromara.order.api.enums.OrderTypeEnum;
|
|
|
import org.dromara.order.domain.bo.*;
|
|
|
+import org.dromara.order.domain.excel.SysSubOrderListExcel;
|
|
|
import org.dromara.order.domain.vo.*;
|
|
|
import org.dromara.order.service.ISysSubOrderService;
|
|
|
+import org.dromara.service.api.RemoteSysServiceService;
|
|
|
+import org.dromara.service.api.domain.vo.RemoteSysServiceVo;
|
|
|
+import org.dromara.service.api.enums.ServiceModeEnum;
|
|
|
+import org.dromara.system.api.RemoteAreaStationService;
|
|
|
+import org.dromara.system.api.domain.vo.RemoteAreaStationVo;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
-import java.util.List;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Validated
|
|
|
@RestController
|
|
|
@@ -24,6 +38,11 @@ public class SysSubOrderController extends BaseController {
|
|
|
|
|
|
private final ISysSubOrderService subOrderService;
|
|
|
|
|
|
+ @DubboReference
|
|
|
+ private final RemoteSysServiceService remoteSysServiceService;
|
|
|
+ @DubboReference
|
|
|
+ private final RemoteAreaStationService remoteAreaStationService;
|
|
|
+
|
|
|
@GetMapping("/list")
|
|
|
public TableDataInfo<SysSubOrderListPageVo> list(SysSubOrderListPageBo bo, PageQuery pageQuery) {
|
|
|
return subOrderService.list(bo, pageQuery);
|
|
|
@@ -58,7 +77,7 @@ public class SysSubOrderController extends BaseController {
|
|
|
|
|
|
@RepeatSubmit()
|
|
|
@PutMapping("/accept")
|
|
|
- public R<Void> accept(@RequestBody SysSubOrderAcceptBo bo) {
|
|
|
+ public R<Void> accept(@RequestBody SysSubOrderAcceptBo bo) {
|
|
|
return toAjax(subOrderService.accept(bo));
|
|
|
}
|
|
|
|
|
|
@@ -133,4 +152,42 @@ public class SysSubOrderController extends BaseController {
|
|
|
return subOrderService.listOnStatistic(status, pageQuery, LoginHelper.getUserId());
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/export")
|
|
|
+ public void export(SysSubOrderListPageBo bo, HttpServletResponse response) {
|
|
|
+ List<SysSubOrderListPageVo> list = subOrderService.listExcel(bo);
|
|
|
+
|
|
|
+ Map<Long, RemoteSysServiceVo> serviceMap = new HashMap<>();
|
|
|
+ Map<Long, RemoteAreaStationVo> areaStationMap = new HashMap<>();
|
|
|
+ remoteSysServiceService.listAll().forEach(e -> serviceMap.put(e.getId(), e));
|
|
|
+ remoteAreaStationService.listAll().forEach(e -> areaStationMap.put(e.getId(), e));
|
|
|
+
|
|
|
+ List<SysSubOrderListExcel> excels = list.stream()
|
|
|
+ .map(e -> {
|
|
|
+ SysSubOrderListExcel excel = new SysSubOrderListExcel();
|
|
|
+ excel.setId(e.getId());
|
|
|
+ excel.setCode(e.getCode());
|
|
|
+ excel.setService(e.getService());
|
|
|
+ RemoteSysServiceVo service = serviceMap.get(e.getService());
|
|
|
+ excel.setServiceName(service.getName());
|
|
|
+ excel.setServiceTime(Optional.ofNullable(e.getServiceTime()).map(DateUtils::formatDateTime).orElse("-"));
|
|
|
+ excel.setToAddress(e.getToAddress());
|
|
|
+ excel.setMode(service.getMode().equals(ServiceModeEnum.PICK_UP.getValue()) ? (e.getMode() == 1 ? "往返" : "单程") : "-");
|
|
|
+ excel.setType(OrderTypeEnum.getLabel(e.getType()));
|
|
|
+ excel.setPetName(e.getPetName());
|
|
|
+ excel.setPetBreed(e.getPetBreed());
|
|
|
+ excel.setCustomerName(e.getCustomerName());
|
|
|
+ excel.setSiteName(areaStationMap.get(e.getSite()).getName());
|
|
|
+ excel.setStoreName(e.getStoreName());
|
|
|
+ excel.setPlacerUsername(e.getPlacerUsername());
|
|
|
+ excel.setCreateTime(Optional.ofNullable(e.getCreateTime()).map(DateUtils::formatDateTime).orElse("-"));
|
|
|
+ excel.setStatus(OrderStatusEnum.getLabel(e.getStatus()));
|
|
|
+ excel.setFulfillerName(e.getFulfillerName());
|
|
|
+ excel.setPrice(Optional.ofNullable(e.getPrice())
|
|
|
+ .map(price -> new BigDecimal(price).multiply(new BigDecimal("0.01")))
|
|
|
+ .orElse(null));
|
|
|
+ return excel;
|
|
|
+ }).toList();
|
|
|
+ ExcelUtil.exportExcel(excels, "订单列表", SysSubOrderListExcel.class, response);
|
|
|
+ }
|
|
|
+
|
|
|
}
|