定点、到站回收订单业务功能开发v3

door
LI-CCONG\李聪聪 7 months ago
parent 5b1e161954
commit 4db9a72c76

@ -2,12 +2,15 @@ package cc.yunxi.common.utils;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.SneakyThrows;
import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator; import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve; import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates; import org.gavaghan.geodesy.GlobalCoordinates;
import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -81,13 +84,38 @@ public class CommonUtil {
} }
@SneakyThrows
public static void assignField(Object obj, String fieldName, Object value) {
Class<?> clazz = obj.getClass();
Field field = ReflectUtil.getField(clazz, fieldName);
if (field != null) {
field.set(clazz, value);
}
}
@SneakyThrows
public static Object obtainField(Object obj, String fieldName) {
Class<?> clazz = obj.getClass();
Field field = ReflectUtil.getField(clazz, fieldName);
if (field == null) {
return null;
}
return field.get(clazz);
}
public static void main(String[] args) { public static void main(String[] args) {
// String lon1 = "121.233549"; // 121.190912
// String lat1 = "31.035796"; // 31.121521 大门口
// String lon2 = "121.404032";
// String lat2 = "31.163973"; // 121.190944
// System.out.println(getDistance(lon1, lat1, lon2, lat2)); // 31.122294 办公室
int i = new BigDecimal("0.09").compareTo(new BigDecimal("0.1")); String lon1 = "106.371621";
System.out.println(i); String lat1 = "39.009392";
String lon2 = "106.371979";
String lat2 = "39.010994";
System.out.println(getDistance(lon1, lat1, lon2, lat2));
// int i = new BigDecimal("0.09").compareTo(new BigDecimal("0.1"));
// System.out.println(i);
} }
} }

@ -14,9 +14,12 @@ import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO;
import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO; import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO;
import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO; import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO;
import cc.yunxi.domain.query.RecycleOrderQuery; import cc.yunxi.domain.query.RecycleOrderQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorder.dzorder.DZRecycleOrderCreateVO; import cc.yunxi.domain.vo.recycleorder.dzorder.DZRecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.dzorder.DZRecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorder.shorder.*; import cc.yunxi.domain.vo.recycleorder.shorder.*;
import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderCreateVO; import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.OrderTypeEnum;
@ -24,7 +27,6 @@ import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.*; import cc.yunxi.service.*;
import cc.yunxi.utils.UserContext; import cc.yunxi.utils.UserContext;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -32,6 +34,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -63,7 +66,7 @@ public class RecycleOrderController {
@ApiOperation("分页查询回收订单") @ApiOperation("分页查询回收订单")
@PostMapping("/page") @PostMapping("/page")
public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) { public CommonResult<PageDTO<? extends RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) {
if (ObjectUtil.isEmpty(recycleOrderQuery.getOrderType())) { if (ObjectUtil.isEmpty(recycleOrderQuery.getOrderType())) {
throw new BizIllegalException("请确定要查询的订单类型"); throw new BizIllegalException("请确定要查询的订单类型");
} }
@ -73,14 +76,15 @@ public class RecycleOrderController {
// recycleOrderQuery.setUserId(userDTO.getId()).setUserType(userDTO.getUserType()); // 测试时从前端获取回收站Id // recycleOrderQuery.setUserId(userDTO.getId()).setUserType(userDTO.getUserType()); // 测试时从前端获取回收站Id
// 2.分页查询 // 2.分页查询
Page<RecycleOrder> result = recycleOrderService.queryOrderByPage(recycleOrderQuery); Page<RecycleOrder> result = recycleOrderService.queryOrderByPage(recycleOrderQuery);
PageDTO<RecycleOrderRespVO> recycleOrderPageVO = PageDTO.of(result, RecycleOrderRespVO.class, (s, t) -> {
t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude()));
});
// 3.数据组装处理 // 3.数据组装处理
List<RecycleOrderRespVO> orderRespVOList = recycleOrderPageVO.getList(); List<RecycleOrder> recycleOrderList = result.getRecords();
if (CollUtils.isNotEmpty(orderRespVOList)) { List<? extends RecycleOrderRespVO> recycleOrderRespVOList = new ArrayList<>();
this.perfectOrderAttributes(recycleOrderQuery.getOrderType(), orderRespVOList, recycleOrderQuery.getLocation()); if (CollUtils.isNotEmpty(recycleOrderList)) {
OrderTypeEnum orderType = recycleOrderQuery.getOrderType();
LocationDTO location = recycleOrderQuery.getLocation();
recycleOrderRespVOList = this.buildOrderAttributes(orderType, recycleOrderList, location);
} }
PageDTO<? extends RecycleOrderRespVO> recycleOrderPageVO = PageDTO.of(result, recycleOrderRespVOList);
return CommonResult.success(recycleOrderPageVO); return CommonResult.success(recycleOrderPageVO);
} }
@ -117,24 +121,14 @@ public class RecycleOrderController {
} }
@ApiOperation("回收订单详情")
@ApiOperation("回收订单详情") // todo
@GetMapping("/info") @GetMapping("/info")
public CommonResult<RecycleOrderRespVO> findOrder(@RequestParam("orderId") String orderId, LocationDTO location) { public CommonResult<? extends RecycleOrderRespVO> findOrder(@RequestParam("orderId") String orderId, LocationDTO location) {
RecycleOrder recycleOrder = recycleOrderService.getOrderById(orderId); RecycleOrder recycleOrder = recycleOrderService.getOrderById(orderId);
RecycleOrderRespVO recycleOrderRespVO = BeanUtils.copyBean(recycleOrder, RecycleOrderRespVO.class, (s, t) -> { OrderTypeEnum orderType = recycleOrder.getOrderType();
t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude())); List<? extends RecycleOrderRespVO> recycleOrderRespVO =
}); this.buildOrderAttributes(orderType, CollUtils.singletonList(recycleOrder), location);
this.perfectOrderAttributes(recycleOrder.getOrderType(), CollUtils.singletonList(recycleOrderRespVO), location); return CommonResult.success(CollUtils.getFirst(recycleOrderRespVO));
// 接单后展示回收员信息
if (StrUtil.isNotEmpty(recycleOrder.getStaffsId())) {
Recycler recycler = recyclerService.getRecyclerById(recycleOrder.getStaffsId());
RecyclerSimpleVO recyclerSimpleVO = BeanUtils.copyBean(recycler, RecyclerSimpleVO.class);
recycleOrderRespVO.setRecyclerInfo(recyclerSimpleVO);
// 计算预计上门时间
recycleOrderRespVO.setEstimateArrivalTime(recycleOrderRespVO.getAppointmentTimeStart().plusHours(1));
}
return CommonResult.success(recycleOrderRespVO);
} }
@ -201,48 +195,57 @@ public class RecycleOrderController {
/** /**
* *
*
* @param orderType * @param orderType
* @param orderRespVOList * @param recycleOrderList
* @param locationDTO * @param locationDTO
* @return List<RecycleOrderRespVO>
*/ */
private void perfectOrderAttributes(OrderTypeEnum orderType, List<RecycleOrderRespVO> orderRespVOList, LocationDTO locationDTO) { private List<? extends RecycleOrderRespVO> buildOrderAttributes(OrderTypeEnum orderType,
List<RecycleOrder> recycleOrderList, LocationDTO locationDTO) {
switch (orderType) { switch (orderType) {
case SH_ORDER: case SH_ORDER:
this.computeOrderDistance(orderRespVOList, locationDTO); List<SHRecycleOrderRespVO> shOrderRespVOList = BeanUtils.copyList(recycleOrderList, SHRecycleOrderRespVO.class, (s, t) -> {
this.assembleProductInfo(orderRespVOList); t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude()));
this.assembleClientAddressInfo(orderRespVOList); });
this.assembleRecyclerInfo(orderRespVOList); this.computeOrderDistance(shOrderRespVOList, locationDTO);
break; this.assembleProductInfo(shOrderRespVOList);
this.assembleClientAddressInfo(shOrderRespVOList);
this.assembleRecyclerInfo(shOrderRespVOList);
return shOrderRespVOList;
case TM_RECOVERY: case TM_RECOVERY:
this.assembleProductInfo(orderRespVOList); List<TMRecycleOrderRespVO> tmOrderRespVOList = BeanUtils.copyList(recycleOrderList, TMRecycleOrderRespVO.class);
this.assembleRecyclerInfo(orderRespVOList); this.assembleProductInfo(tmOrderRespVOList);
this.assembleHousingEstateInfo(orderRespVOList); this.assembleRecyclerInfo(tmOrderRespVOList);
break; this.assembleHousingEstateInfo(tmOrderRespVOList);
return tmOrderRespVOList;
case DZ_RECOVERY: case DZ_RECOVERY:
this.assembleProductInfo(orderRespVOList); List<DZRecycleOrderRespVO> dzOrderRespVOList = BeanUtils.copyList(recycleOrderList, DZRecycleOrderRespVO.class);
this.assembleRecyclerInfo(orderRespVOList); this.assembleProductInfo(dzOrderRespVOList);
break; this.assembleRecyclerInfo(dzOrderRespVOList);
return dzOrderRespVOList;
default: default:
break; return BeanUtils.copyList(recycleOrderList, RecycleOrderRespVO.class);
} }
} }
/** /**
* -> (km) * -> (km)
*
* @param orderRespVOList * @param orderRespVOList
* @param locationDTO * @param locationDTO
*/ */
private void computeOrderDistance(List<RecycleOrderRespVO> orderRespVOList, LocationDTO locationDTO) { private <T extends RecycleOrderRespVO> void computeOrderDistance(List<T> orderRespVOList, LocationDTO locationDTO) {
if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) { if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) {
String longitude = locationDTO.getLongitude(); String longitude = locationDTO.getLongitude();
String latitude = locationDTO.getLatitude(); String latitude = locationDTO.getLatitude();
orderRespVOList.forEach(orderRespVO -> { orderRespVOList.forEach(orderRespVO -> {
String orderLongitude = orderRespVO.getLocation().getLongitude(); LocationDTO location = (LocationDTO) CommonUtil.obtainField(orderRespVO, "location");
String orderLatitude = orderRespVO.getLocation().getLatitude(); if (location != null) {
BigDecimal distance = CommonUtil.getDistance(longitude, latitude, orderLongitude, orderLatitude); BigDecimal distance = CommonUtil.getDistance(longitude, latitude, location.getLongitude(), location.getLatitude());
// orderRespVO.setDistance(distance.toString().concat("km")); CommonUtil.assignField(orderRespVO, "distance2", distance);
orderRespVO.setDistance2(distance.doubleValue()); }
}); });
} }
} }
@ -250,9 +253,10 @@ public class RecycleOrderController {
/** /**
* *
*
* @param orderRespVOList * @param orderRespVOList
*/ */
private void assembleProductInfo(List<RecycleOrderRespVO> orderRespVOList) { private <T extends RecycleOrderRespVO> void assembleProductInfo(List<T> orderRespVOList) {
List<String> orderIds = orderRespVOList.stream().map(RecycleOrderRespVO::getId).collect(Collectors.toList()); List<String> orderIds = orderRespVOList.stream().map(RecycleOrderRespVO::getId).collect(Collectors.toList());
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds); List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds);
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class); List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
@ -266,31 +270,41 @@ public class RecycleOrderController {
} }
Map<String, List<RecycleOrderDetailResponseVO>> orderProductsMap = Map<String, List<RecycleOrderDetailResponseVO>> orderProductsMap =
detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId)); detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId));
orderRespVOList.forEach(v -> v.setOrderDetails(orderProductsMap.get(v.getId()))); orderRespVOList.forEach(v -> {
CommonUtil.assignField(v, "orderDetails", orderProductsMap.get(v.getId()));
});
} }
/** /**
* *
*
* @param orderRespVOList * @param orderRespVOList
*/ */
private void assembleClientAddressInfo(List<RecycleOrderRespVO> orderRespVOList) { private <T extends RecycleOrderRespVO> void assembleClientAddressInfo(List<T> orderRespVOList) {
Map<String, String> orderAddressMap = orderRespVOList.stream().collect(Collectors.toMap( Map<String, String> orderAddressMap = orderRespVOList.stream().collect(Collectors.toMap(
RecycleOrderRespVO::getId, v -> Optional.ofNullable(v.getClientAddressId()).orElse(""), (k1, k2) -> k1)); RecycleOrderRespVO::getId, v -> {
String clientAddressId = (String) CommonUtil.obtainField(v, "clientAddressId");
return Optional.ofNullable(clientAddressId).orElse("");
}, (k1, k2) -> k1));
Set<String> addressIds = new HashSet<>(CollUtils.removeEmpty(orderAddressMap.values())); Set<String> addressIds = new HashSet<>(CollUtils.removeEmpty(orderAddressMap.values()));
List<ClientAddress> clientAddresses = clientAddressService.queryAddressList(addressIds); List<ClientAddress> clientAddresses = clientAddressService.queryAddressList(addressIds);
List<ClientAddressSimpleVO> addressSimpleVOList = BeanUtils.copyList(clientAddresses, ClientAddressSimpleVO.class); List<ClientAddressSimpleVO> addressSimpleVOList = BeanUtils.copyList(clientAddresses, ClientAddressSimpleVO.class);
Map<String, ClientAddressSimpleVO> clientAddressMap = addressSimpleVOList.stream().collect( Map<String, ClientAddressSimpleVO> clientAddressMap = addressSimpleVOList.stream().collect(
Collectors.toMap(ClientAddressSimpleVO::getId, v -> v, (k1, k2) -> k1)); Collectors.toMap(ClientAddressSimpleVO::getId, v -> v, (k1, k2) -> k1));
orderRespVOList.forEach(v -> v.setAddressInfo(clientAddressMap.get(v.getClientAddressId()))); orderRespVOList.forEach(v -> {
String clientAddressId = (String) CommonUtil.obtainField(v, "clientAddressId");
CommonUtil.assignField(v, "clientAddressId", clientAddressId);
});
} }
/** /**
* *
*
* @param orderRespVOList * @param orderRespVOList
*/ */
private void assembleRecyclerInfo(List<RecycleOrderRespVO> orderRespVOList) { private <T extends RecycleOrderRespVO> void assembleRecyclerInfo(List<T> orderRespVOList) {
Map<String, String> orderRecyclerMap = orderRespVOList.stream().collect(Collectors.toMap( Map<String, String> orderRecyclerMap = orderRespVOList.stream().collect(Collectors.toMap(
RecycleOrderRespVO::getId, v -> Optional.ofNullable(v.getStaffsId()).orElse(""), (k1, k2) -> k1)); RecycleOrderRespVO::getId, v -> Optional.ofNullable(v.getStaffsId()).orElse(""), (k1, k2) -> k1));
Set<String> recyclerIds = new HashSet<>(CollUtils.removeEmpty(orderRecyclerMap.values())); Set<String> recyclerIds = new HashSet<>(CollUtils.removeEmpty(orderRecyclerMap.values()));
@ -299,25 +313,35 @@ public class RecycleOrderController {
Map<String, RecyclerSimpleVO> recyclerMap = recyclerSimpleVOList.stream().collect( Map<String, RecyclerSimpleVO> recyclerMap = recyclerSimpleVOList.stream().collect(
Collectors.toMap(RecyclerSimpleVO::getId, v -> v, (k1, k2) -> k1)); Collectors.toMap(RecyclerSimpleVO::getId, v -> v, (k1, k2) -> k1));
orderRespVOList.forEach(v -> { orderRespVOList.forEach(v -> {
v.setRecyclerInfo(recyclerMap.get(v.getStaffsId())); CommonUtil.assignField(v, "recyclerInfo", recyclerMap.get(v.getStaffsId()));
v.setEstimateArrivalTime(v.getAppointmentTimeStart().plusHours(1)); // 预计上门时间 LocalDateTime appointmentTimeStart = (LocalDateTime) CommonUtil.obtainField(v, "appointmentTimeStart");
if (ObjectUtil.isNotEmpty(appointmentTimeStart)) {
CommonUtil.assignField(v, "estimateArrivalTime", appointmentTimeStart.plusHours(1));
}
}); });
} }
/** /**
* *
*
* @param orderRespVOList * @param orderRespVOList
*/ */
private void assembleHousingEstateInfo(List<RecycleOrderRespVO> orderRespVOList) { private <T extends RecycleOrderRespVO> void assembleHousingEstateInfo(List<T> orderRespVOList) {
Map<String, String> orderHousingEstateMap = orderRespVOList.stream().collect(Collectors.toMap( Map<String, String> orderHousingEstateMap = orderRespVOList.stream().collect(Collectors.toMap(
RecycleOrderRespVO::getId, v -> Optional.ofNullable(v.getHousingEstateId()).orElse(""), (k1, k2) -> k1)); RecycleOrderRespVO::getId, v -> {
String housingEstateId = (String) CommonUtil.obtainField(v, "housingEstateId");
return Optional.ofNullable(housingEstateId).orElse("");
}, (k1, k2) -> k1));
Set<String> housingEstateIds = new HashSet<>(CollUtils.removeEmpty(orderHousingEstateMap.values())); Set<String> housingEstateIds = new HashSet<>(CollUtils.removeEmpty(orderHousingEstateMap.values()));
List<HousingEstate> housingEstateList = housingEstateService.getHousingListByIds(housingEstateIds); List<HousingEstate> housingEstateList = housingEstateService.getHousingListByIds(housingEstateIds);
List<HousingEstateSimpleVO> housingSimpleVOList = BeanUtils.copyList(housingEstateList, HousingEstateSimpleVO.class); List<HousingEstateSimpleVO> housingSimpleVOList = BeanUtils.copyList(housingEstateList, HousingEstateSimpleVO.class);
Map<String, HousingEstateSimpleVO> housingEstateMap = housingSimpleVOList.stream().collect( Map<String, HousingEstateSimpleVO> housingEstateMap = housingSimpleVOList.stream().collect(
Collectors.toMap(HousingEstateSimpleVO::getId, v -> v, (k1, k2) -> k1)); Collectors.toMap(HousingEstateSimpleVO::getId, v -> v, (k1, k2) -> k1));
orderRespVOList.forEach(v -> v.setHousingEstateInfo(housingEstateMap.get(v.getHousingEstateId()))); orderRespVOList.forEach(v -> {
String housingEstateId = (String) CommonUtil.obtainField(v, "housingEstateId");
CommonUtil.assignField(v, "housingEstateInfo", housingEstateMap.get(housingEstateId));
});
} }
} }

@ -21,7 +21,6 @@ public class LocationDTO {
private static final String LATITUDE_REGEX = "^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,6}|90\\.0{1,6})$"; private static final String LATITUDE_REGEX = "^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,6}|90\\.0{1,6})$";
@ApiModelProperty(value = "当前经度", required = true, example = "121.404032") @ApiModelProperty(value = "当前经度", required = true, example = "121.404032")
@NotNull(message = "未知定位") @NotNull(message = "未知定位")
@Pattern(regexp = LONGITUDE_REGEX, message = "经度格式错误") @Pattern(regexp = LONGITUDE_REGEX, message = "经度格式错误")

@ -0,0 +1,78 @@
package cc.yunxi.domain.vo.recycleorder;
import cc.yunxi.domain.dto.LocationDTO;
import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO;
import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.ProductWeightEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* VO
* </p>
*
* @author ccongli
* @since 2024-03-01 11:15:39
*/
@ApiModel(description = "回收订单 Base Response VO")
@Data
public class RecycleOrderRespVO {
@ApiModelProperty("主键id")
protected String id;
@ApiModelProperty("回收站id")
protected String recycleStationId;
@ApiModelProperty("订单编号")
protected String orderNumber;
@ApiModelProperty("订单类型")
protected OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)")
protected BigDecimal orderAmount;
@ApiModelProperty("订单状态")
protected OrderStatusEnum orderStatus;
@ApiModelProperty("散户id")
protected String clientId;
@ApiModelProperty("散户姓名")
protected String clientName;
@ApiModelProperty("散户手机号")
protected String clientMobile;
@ApiModelProperty("回收员id")
protected String staffsId;
@ApiModelProperty("订单创建时间")
protected LocalDateTime creatorTime;
@ApiModelProperty("订单修改时间")
protected LocalDateTime updateTime;
@ApiModelProperty("完成时间")
protected LocalDateTime completeTime;
@ApiModelProperty("结算时间")
private LocalDateTime settleTime;
@ApiModelProperty("备注")
protected String remark;
}

@ -1,52 +1,18 @@
package cc.yunxi.domain.vo.recycleorder.dzorder; package cc.yunxi.domain.vo.recycleorder.dzorder;
import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO; import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ApiModel(description = "到站回收订单 Response VO") @ApiModel(description = "到站回收订单 Response VO")
@Data @Data
public class DZRecycleOrderRespVO { public class DZRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("主键id")
private String id;
@ApiModelProperty("回收站id")
private String recycleStationId;
@ApiModelProperty("订单编号")
private String orderNumber;
@ApiModelProperty("订单类型")
private OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)")
private BigDecimal orderAmount;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("散户id")
private String clientId;
@ApiModelProperty("散户姓名")
private String clientName;
@ApiModelProperty("散户手机号")
private String clientMobile;
@ApiModelProperty("回收员id")
private String staffsId;
@ApiModelProperty("回收员信息") @ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo; private RecyclerSimpleVO recyclerInfo;
@ -54,10 +20,4 @@ public class DZRecycleOrderRespVO {
@ApiModelProperty("订单明细详情") @ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails; private List<RecycleOrderDetailResponseVO> orderDetails;
@ApiModelProperty("订单创建时间")
private LocalDateTime creatorTime;
@ApiModelProperty("完成时间")
private LocalDateTime completeTime;
} }

@ -3,12 +3,12 @@ package cc.yunxi.domain.vo.recycleorder.shorder;
import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.dto.LocationDTO;
import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO; import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO;
import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO; import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.ProductWeightEnum; import cc.yunxi.enums.ProductWeightEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -25,36 +25,9 @@ import java.util.List;
* @author ccongli * @author ccongli
* @since 2024-03-01 11:15:39 * @since 2024-03-01 11:15:39
*/ */
@ApiModel(description = "回收订单 Response VO") @ApiModel(description = "预约回收订单 Response VO")
@Data @Data
public class RecycleOrderRespVO { public class SHRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("主键id")
private String id;
@ApiModelProperty("回收站id")
private String recycleStationId;
@ApiModelProperty("订单编号")
private String orderNumber;
@ApiModelProperty("订单类型")
private OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)")
private BigDecimal orderAmount;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("散户id")
private String clientId;
@ApiModelProperty("散户姓名")
private String clientName;
@ApiModelProperty("散户手机号")
private String clientMobile;
@ApiModelProperty("散户地址id") @ApiModelProperty("散户地址id")
private String clientAddressId; private String clientAddressId;
@ -65,47 +38,36 @@ public class RecycleOrderRespVO {
@ApiModelProperty("订单地理位置") @ApiModelProperty("订单地理位置")
private LocationDTO location; private LocationDTO location;
@ApiModelProperty("回收员id")
private String staffsId;
@ApiModelProperty("回收员姓名")
private String staffsName;
@ApiModelProperty("订单创建时间")
private LocalDateTime creatorTime;
@ApiModelProperty("订单修改时间")
private LocalDateTime updateTime;
@ApiModelProperty("预约上门时间起") @ApiModelProperty("预约上门时间起")
private LocalDateTime appointmentTimeStart; private LocalDateTime appointmentTimeStart;
@ApiModelProperty("预约上门时间止") @ApiModelProperty("预约上门时间止")
private LocalDateTime appointmentTimeEnd; private LocalDateTime appointmentTimeEnd;
// @ApiModelProperty("协商上门时间起")
// private LocalDateTime consultTimeStart;
//
// @ApiModelProperty("协商上门时间止")
// private LocalDateTime consultTimeEnd;
@ApiModelProperty("接单时间") @ApiModelProperty("接单时间")
private LocalDateTime receiveTime; private LocalDateTime receiveTime;
@ApiModelProperty("到达时间") @ApiModelProperty("到达时间")
private LocalDateTime arrivalTime; private LocalDateTime arrivalTime;
@ApiModelProperty("完成时间") @ApiModelProperty("订单->回收站距离(km)")
private LocalDateTime completeTime; private Double distance;
@ApiModelProperty("结算时间") @ApiModelProperty("订单->回收员距离(km)")
private LocalDateTime settleTime; private Double distance2;
@ApiModelProperty("小区id") @ApiModelProperty("预计到达时间")
private String housingEstateId; private LocalDateTime estimateArrivalTime;
@ApiModelProperty("散户地址信息")
private ClientAddressSimpleVO addressInfo;
@ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo;
@ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails;
@ApiModelProperty("备注")
private String remark;
// @ApiModelProperty("综合评分") // @ApiModelProperty("综合评分")
// private Integer starScore; // private Integer starScore;
@ -128,25 +90,4 @@ public class RecycleOrderRespVO {
// @ApiModelProperty("系统是否删除") // @ApiModelProperty("系统是否删除")
// private Integer isDeleted; // private Integer isDeleted;
@ApiModelProperty("订单->回收站距离(km)")
private Double distance;
@ApiModelProperty("订单->回收员距离(km)")
private Double distance2;
@ApiModelProperty("预计到达时间")
private LocalDateTime estimateArrivalTime;
@ApiModelProperty("散户地址信息")
private ClientAddressSimpleVO addressInfo;
@ApiModelProperty("小区信息")
private HousingEstateSimpleVO housingEstateInfo;
@ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo;
@ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails;
} }

@ -1,53 +1,23 @@
package cc.yunxi.domain.vo.recycleorder.tmorder; package cc.yunxi.domain.vo.recycleorder.tmorder;
import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO;
import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO; import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ApiModel(description = "定点回收订单 Response VO") @ApiModel(description = "定点回收订单 Response VO")
@Data @Data
public class TMRecycleOrderRespVO { public class TMRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("主键id")
private String id;
@ApiModelProperty("回收站id")
private String recycleStationId;
@ApiModelProperty("订单编号")
private String orderNumber;
@ApiModelProperty("订单类型")
private OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)")
private BigDecimal orderAmount;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("散户id") @ApiModelProperty("小区id")
private String clientId; protected String housingEstateId;
@ApiModelProperty("散户姓名")
private String clientName;
@ApiModelProperty("散户手机号")
private String clientMobile;
@ApiModelProperty("回收员id")
private String staffsId;
@ApiModelProperty("小区地址信息") @ApiModelProperty("小区地址信息")
private HousingEstateSimpleVO housingInfo; private HousingEstateSimpleVO housingInfo;
@ -58,11 +28,4 @@ public class TMRecycleOrderRespVO {
@ApiModelProperty("订单明细详情") @ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails; private List<RecycleOrderDetailResponseVO> orderDetails;
@ApiModelProperty("创建时间")
private LocalDateTime creatorTime;
@ApiModelProperty("完成时间")
private LocalDateTime completeTime;
} }

Loading…
Cancel
Save