parent
3828d1af57
commit
d65695437f
@ -0,0 +1,69 @@
|
||||
package cc.yunxi.domain.po;
|
||||
|
||||
import cc.yunxi.enums.ProductWeightEnum;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 回收订单-废品信息表
|
||||
* </p>
|
||||
*
|
||||
* @author ccongli
|
||||
* @since 2024-03-09 09:29:28
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("nx_recycle_order_product")
|
||||
@ApiModel(value = "RecycleOrderProduct对象", description = "回收订单-废品信息表")
|
||||
public class RecycleOrderProduct {
|
||||
|
||||
@ApiModelProperty("主键id")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("订单id")
|
||||
@TableField("recycle_order_id")
|
||||
private String recycleOrderId;
|
||||
|
||||
@ApiModelProperty("商品id")
|
||||
@TableField("product_id")
|
||||
private String productId;
|
||||
|
||||
@ApiModelProperty("商品名称")
|
||||
@TableField("product_name")
|
||||
private String productName;
|
||||
|
||||
@ApiModelProperty("商品预估重量")
|
||||
@TableField("product_weight")
|
||||
private ProductWeightEnum productWeight;
|
||||
|
||||
@ApiModelProperty("商品实际重量")
|
||||
@TableField("product_actual_weight")
|
||||
private Double productActualWeight;
|
||||
|
||||
@ApiModelProperty("下单时回收单价")
|
||||
@TableField("recovery_price")
|
||||
private BigDecimal recoveryPrice;
|
||||
|
||||
@ApiModelProperty("实际回收单价")
|
||||
@TableField("actual_recoveryl_price")
|
||||
private BigDecimal ActualRecoveryPrice;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@TableField("f_creator_time")
|
||||
private LocalDateTime creatorTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
@TableField("f_last_modify_time")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package cc.yunxi.domain.vo.recycleorderdetail;
|
||||
|
||||
import cc.yunxi.enums.ProductWeightEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import javax.validation.constraints.Digits;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@ApiModel(description = "回收订单添加明细 Request VO")
|
||||
@Data
|
||||
public class RecycleOrderDetailCreateVO {
|
||||
|
||||
@ApiModelProperty(value = "订单id", hidden = true, example = "1763827319099719682")
|
||||
private String recycleOrderId;
|
||||
|
||||
@ApiModelProperty(value = "商品id", required = true, example = "534658869696135686")
|
||||
@NotBlank(message = "商品id不能为空")
|
||||
private String productId;
|
||||
|
||||
@ApiModelProperty(value = "商品名称", required = true)
|
||||
@NotBlank(message = "商品名称不能为空")
|
||||
private String productName;
|
||||
|
||||
@ApiModelProperty(value = "商品预估重量", required = true)
|
||||
@NotBlank(message = "商品预估重量不能为空")
|
||||
private ProductWeightEnum productWeight;
|
||||
|
||||
@ApiModelProperty(value = "下单时回收单价", required = true)
|
||||
@NotBlank(message = "下单时回收单价不能为空")
|
||||
@DecimalMin(value = "0.01", message = "下单时回收单价数值错误")
|
||||
private BigDecimal recoveryPrice;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", hidden = true)
|
||||
private LocalDateTime creatorTime;
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cc.yunxi.domain.vo.recycleorder;
|
||||
|
||||
import cc.yunxi.enums.OrderStatusEnum;
|
||||
import cc.yunxi.enums.OrderTypeEnum;
|
||||
import cc.yunxi.enums.ProductWeightEnum;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 回收订单明细 VO
|
||||
* </p>
|
||||
*
|
||||
* @author ccongli
|
||||
* @since 2024-03-01 11:15:39
|
||||
*/
|
||||
@ApiModel(description = "回收订单明细 Response VO")
|
||||
@Data
|
||||
public class RecycleOrderDetailResponseVO {
|
||||
|
||||
@ApiModelProperty("主键id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("订单id")
|
||||
private String recycleOrderId;
|
||||
|
||||
@ApiModelProperty("商品id")
|
||||
private String productId;
|
||||
|
||||
@ApiModelProperty("商品名称")
|
||||
private String productName;
|
||||
|
||||
@ApiModelProperty("商品预估重量")
|
||||
private ProductWeightEnum productWeight;
|
||||
|
||||
@ApiModelProperty("商品实际重量")
|
||||
private Double productActualWeight;
|
||||
|
||||
@ApiModelProperty("下单时回收单价")
|
||||
private BigDecimal recoveryPrice;
|
||||
|
||||
@ApiModelProperty("实际回收单价")
|
||||
private BigDecimal actualRecoveryPrice;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private LocalDateTime creatorTime;
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package cc.yunxi.domain.vo.recycleorderdetail;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@ApiModel(description = "回收订单更新明细 Request VO")
|
||||
@Data
|
||||
public class RecycleOrderDetailUpdateVO {
|
||||
|
||||
@ApiModelProperty(value = "主键id", required = true)
|
||||
@NotBlank(message = "id不能为空")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "商品id", required = true, example = "534658869696135686")
|
||||
@NotBlank(message = "商品id不能为空")
|
||||
private String productId;
|
||||
|
||||
@ApiModelProperty(value = "商品实际重量", required = true, example = "1.08")
|
||||
@NotBlank(message = "商品实际重量不能为空")
|
||||
@DecimalMin(value = "0.00", message = "商品实际重量数值错误")
|
||||
private Double productActualWeight;
|
||||
|
||||
|
||||
// @ApiModelProperty(value = "实际回收单价", required = true, example = "100.00")
|
||||
// @NotBlank(message = "实际回收单价不能为空")
|
||||
// @DecimalMin(value = "0.01", message = "实际回收单价数值错误")
|
||||
@ApiModelProperty(value = "实际回收单价", hidden = true)
|
||||
private BigDecimal actualRecoveryPrice;
|
||||
|
||||
@ApiModelProperty(value = "更新时间", hidden = true)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package cc.yunxi.enums;
|
||||
|
||||
|
||||
import cc.yunxi.common.enums.BaseEnum;
|
||||
import cc.yunxi.common.enums.SwaggerDisplayEnum;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 废品单位枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@SwaggerDisplayEnum
|
||||
public enum ProductUnitEnum implements BaseEnum {
|
||||
|
||||
G("1", "克"),
|
||||
KG("2", "千克"),
|
||||
TON("3", "吨");
|
||||
|
||||
@EnumValue
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cc.yunxi.enums;
|
||||
|
||||
import cc.yunxi.common.enums.BaseEnum;
|
||||
import cc.yunxi.common.enums.SwaggerDisplayEnum;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 废品重量枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@SwaggerDisplayEnum
|
||||
public enum ProductWeightEnum implements BaseEnum {
|
||||
|
||||
I("1", "10Kg以下"),
|
||||
|
||||
II("2", "10Kg~20Kg"),
|
||||
|
||||
III("3", "20Kg以上");
|
||||
|
||||
@EnumValue
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package cc.yunxi.mapper;
|
||||
|
||||
import cc.yunxi.domain.po.PriceProduct;
|
||||
import cc.yunxi.domain.po.RecycleOrderProduct;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 回收订单-废品信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author ccongli
|
||||
* @since 2024-03-09 09:29:28
|
||||
*/
|
||||
@Mapper
|
||||
public interface RecycleOrderProductMapper extends BaseMapper<RecycleOrderProduct> {
|
||||
|
||||
/**
|
||||
* 根据废品id 查询最新一条的有效的价目
|
||||
* @param productId
|
||||
* @return Price
|
||||
*/
|
||||
PriceProduct getLatestPriceProductByProductId(@Param("productId") String productId);
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package cc.yunxi.service;
|
||||
|
||||
import cc.yunxi.domain.po.PriceProduct;
|
||||
import cc.yunxi.domain.po.RecycleOrderProduct;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 回收订单-废品信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author ccongli
|
||||
* @since 2024-03-09 09:29:28
|
||||
*/
|
||||
public interface IRecycleOrderProductService extends IService<RecycleOrderProduct> {
|
||||
|
||||
/**
|
||||
* 获取废品最新价格信息
|
||||
* @param productId
|
||||
* @return PriceProduct
|
||||
*/
|
||||
PriceProduct getLatestPriceProduct(String productId);
|
||||
|
||||
|
||||
/**
|
||||
* 订单废品明细
|
||||
* @param orderId
|
||||
* @return List<RecycleOrderProduct>
|
||||
*/
|
||||
List<RecycleOrderProduct> getOrderProductsByOrderId(String orderId);
|
||||
|
||||
|
||||
/**
|
||||
* 订单废品批量添加
|
||||
* @param
|
||||
* @return List<RecycleOrderProduct>
|
||||
*/
|
||||
void createOrderProducts(Collection<RecycleOrderProduct> recycleOrderProducts);
|
||||
|
||||
|
||||
/**
|
||||
* 订单废品批量更新
|
||||
* @param
|
||||
* @return List<RecycleOrderProduct>
|
||||
*/
|
||||
void updateOrderProducts(Collection<RecycleOrderProduct> recycleOrderProducts);
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package cc.yunxi.service.impl;
|
||||
|
||||
import cc.yunxi.domain.po.PriceProduct;
|
||||
import cc.yunxi.domain.po.RecycleOrderProduct;
|
||||
import cc.yunxi.mapper.RecycleOrderProductMapper;
|
||||
import cc.yunxi.service.IRecycleOrderProductService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 回收订单-废品信息表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author ccongli
|
||||
* @since 2024-03-09 09:29:28
|
||||
*/
|
||||
@Service
|
||||
public class RecycleOrderProductServiceImpl extends ServiceImpl<RecycleOrderProductMapper, RecycleOrderProduct> implements IRecycleOrderProductService {
|
||||
|
||||
@Resource
|
||||
private RecycleOrderProductMapper recycleOrderProductMapper;
|
||||
|
||||
@Override
|
||||
public PriceProduct getLatestPriceProduct(String productId) {
|
||||
return recycleOrderProductMapper.getLatestPriceProductByProductId(productId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RecycleOrderProduct> getOrderProductsByOrderId(String orderId) {
|
||||
LambdaQueryWrapper<RecycleOrderProduct> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(RecycleOrderProduct::getRecycleOrderId, orderId);
|
||||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void createOrderProducts(Collection<RecycleOrderProduct> recycleOrderProducts) {
|
||||
this.saveBatch(recycleOrderProducts);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateOrderProducts(Collection<RecycleOrderProduct> recycleOrderProducts) {
|
||||
this.updateBatchById(recycleOrderProducts);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue