Commit 4d3c0f84 authored by Smile's avatar Smile

集运包裹明细类添加

parent f83b4e99
package cn.iocoder.yudao.module.order.convert.consItem;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 集运包裹明细 Convert
* @author 系统管理员
*/
@Mapper
public interface ConsItemConvert {
/*****转换MapStruct*****/
ConsItemConvert INSTANCE = Mappers.getMapper(ConsItemConvert.class);
/***
* 创建VO转实体
* @param bean
* @return
*/
ConsItemDO convert(ConsItemCreateReqVO bean);
/***
* 修改VO转实体
* @param bean
* @return
*/
ConsItemDO convert(ConsItemUpdateReqVO bean);
/***
* 实体转返回VO
* @param bean
* @return
*/
ConsItemBackVO convert(ConsItemDO bean);
/***
* 实体列表转返回VO列表
* @param list
* @return
*/
List<ConsItemBackVO> convertList(List<ConsItemDO> list);
/***
* 实体分页转返回分页
* @param page
* @return
*/
PageResult<ConsItemBackVO> convertPage(PageResult<ConsItemDO> page);
}
package cn.iocoder.yudao.module.order.dal.dataobject.consItem;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import java.math.BigDecimal;
/**
* 集运包裹明细 DO
*
* @author 系统管理员
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_cons_item")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsItemDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
*
*/
private Long consId;
/**
* 商品ID
*/
private Long prodId;
/**
* 品牌
*/
private Long brand;
/**
* 来自字典表,brand_type 0 无牌 1 有牌 2 中性
*/
private Integer brandType;
/**
* 材质
*/
private String material;
/**
* 数量
*/
private BigDecimal quantity;
/**
* 验货件数
*/
private Integer inspectionNum;
/**
* 验货商品单位
*/
private String inspectionUnit;
/**
* 验货数量
*/
private BigDecimal inspectionQuantity;
/**
* 验货商品特性(可选多个特性ID)
*/
private String inspectionProdAttrIds;
/**
* 验货商品箱规
*/
private String inspectionBoxGauge;
/**
* 验货体积
*/
private BigDecimal inspectionVolume;
/**
* 验货重量
*/
private BigDecimal inspectionWeight;
/**
* 验货货值
*/
private BigDecimal inspectionWorth;
/**
* 验货商品货值单位,关联货币表
*/
private Integer inspectionWorthCurrency;
/**
* 验货商品用途
*/
private String inspectionUsageIds;
/**
* 验货明细
*/
private String inspectionJson;
/**
* 仓库id
*/
private Long warehouseId;
/**
* 库域ID
*/
private Long areaId;
/**
* 库位ID
*/
private Long positionId;
}
package cn.iocoder.yudao.module.order.dal.mysql.consItem;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQuery;
import cn.iocoder.yudao.framework.mybatis.core.mapper.AbstractMapper;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO;
import org.apache.ibatis.annotations.Mapper;
/**
* 集运包裹明细 Mapper
* @author 系统管理员
*/
@Mapper
public interface ConsItemMapper extends AbstractMapper<ConsItemDO> {
@Override
default PageResult<ConsItemDO> selectPage(PageVO page, Object object) {
if (object instanceof ConsItemQueryVO) {
ConsItemQueryVO vo = (ConsItemQueryVO)object;
return selectPage(page, new LambdaQuery<ConsItemDO>()
.eqIfPresent(ConsItemDO::getConsId, vo.getConsId())
.eqIfPresent(ConsItemDO::getProdId, vo.getProdId())
.eqIfPresent(ConsItemDO::getBrand, vo.getBrand())
.eqIfPresent(ConsItemDO::getBrandType, vo.getBrandType())
.eqIfPresent(ConsItemDO::getMaterial, vo.getMaterial())
.eqIfPresent(ConsItemDO::getQuantity, vo.getQuantity())
.eqIfPresent(ConsItemDO::getInspectionNum, vo.getInspectionNum())
.eqIfPresent(ConsItemDO::getInspectionUnit, vo.getInspectionUnit())
.eqIfPresent(ConsItemDO::getInspectionQuantity, vo.getInspectionQuantity())
.eqIfPresent(ConsItemDO::getInspectionProdAttrIds, vo.getInspectionProdAttrIds())
.eqIfPresent(ConsItemDO::getInspectionBoxGauge, vo.getInspectionBoxGauge())
.eqIfPresent(ConsItemDO::getInspectionVolume, vo.getInspectionVolume())
.eqIfPresent(ConsItemDO::getInspectionWeight, vo.getInspectionWeight())
.eqIfPresent(ConsItemDO::getInspectionWorth, vo.getInspectionWorth())
.eqIfPresent(ConsItemDO::getInspectionWorthCurrency, vo.getInspectionWorthCurrency())
.eqIfPresent(ConsItemDO::getInspectionUsageIds, vo.getInspectionUsageIds())
.eqIfPresent(ConsItemDO::getInspectionJson, vo.getInspectionJson())
.eqIfPresent(ConsItemDO::getWarehouseId, vo.getWarehouseId())
.eqIfPresent(ConsItemDO::getAreaId, vo.getAreaId())
.eqIfPresent(ConsItemDO::getPositionId, vo.getPositionId())
.betweenIfPresent(ConsItemDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsItemDO::getId));
}
return null;
}
@Override
default List<ConsItemDO> selectList(Object object) {
if (object instanceof ConsItemQueryVO) {
ConsItemQueryVO vo = (ConsItemQueryVO)object;
return selectList(new LambdaQuery<ConsItemDO>()
.eqIfPresent(ConsItemDO::getConsId, vo.getConsId())
.eqIfPresent(ConsItemDO::getProdId, vo.getProdId())
.eqIfPresent(ConsItemDO::getBrand, vo.getBrand())
.eqIfPresent(ConsItemDO::getBrandType, vo.getBrandType())
.eqIfPresent(ConsItemDO::getMaterial, vo.getMaterial())
.eqIfPresent(ConsItemDO::getQuantity, vo.getQuantity())
.eqIfPresent(ConsItemDO::getInspectionNum, vo.getInspectionNum())
.eqIfPresent(ConsItemDO::getInspectionUnit, vo.getInspectionUnit())
.eqIfPresent(ConsItemDO::getInspectionQuantity, vo.getInspectionQuantity())
.eqIfPresent(ConsItemDO::getInspectionProdAttrIds, vo.getInspectionProdAttrIds())
.eqIfPresent(ConsItemDO::getInspectionBoxGauge, vo.getInspectionBoxGauge())
.eqIfPresent(ConsItemDO::getInspectionVolume, vo.getInspectionVolume())
.eqIfPresent(ConsItemDO::getInspectionWeight, vo.getInspectionWeight())
.eqIfPresent(ConsItemDO::getInspectionWorth, vo.getInspectionWorth())
.eqIfPresent(ConsItemDO::getInspectionWorthCurrency, vo.getInspectionWorthCurrency())
.eqIfPresent(ConsItemDO::getInspectionUsageIds, vo.getInspectionUsageIds())
.eqIfPresent(ConsItemDO::getInspectionJson, vo.getInspectionJson())
.eqIfPresent(ConsItemDO::getWarehouseId, vo.getWarehouseId())
.eqIfPresent(ConsItemDO::getAreaId, vo.getAreaId())
.eqIfPresent(ConsItemDO::getPositionId, vo.getPositionId())
.betweenIfPresent(ConsItemDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsItemDO::getId));
}
return null;
}
List<ConsItemBackVO> getConsItemBackVOList(ConsItemQueryVO query);
}
package cn.iocoder.yudao.module.order.service.consItem;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemUpdateReqVO;
/**
* 集运包裹明细 Service 接口
*
* @author 系统管理员
*/
public interface ConsItemService extends IService<ConsItemDO> {
/**
* 创建集运包裹明细
* @param createReqVO 创建信息
* @return 编号
*/
Long createConsItem(@Valid ConsItemCreateReqVO createReqVO);
/**
* 更新集运包裹明细
* @param updateReqVO 更新信息
*/
void updateConsItem(@Valid ConsItemUpdateReqVO updateReqVO);
/**
* 删除集运包裹明细
* @param id 编号
*/
void deleteConsItem(Long id);
/**
* 获得集运包裹明细
* @param id 编号
* @return 集运包裹明细
*/
ConsItemDO getConsItem(Long id);
/**
* 获得集运包裹明细列表
* @param ids 编号
* @return 集运包裹明细列表
*/
List<ConsItemDO> getConsItemList(Collection<Long> ids);
/**
* 通过集运包裹id获得集运包裹明细列表
* @param query 请求体
* @return 集运包裹明细列表
*/
List<ConsItemBackVO> getConsItemBackVOList(ConsItemQueryVO query);
/**
* 获得集运包裹明细分页
* @param page 分页查询
* @param query 查询
* @return 集运包裹明细分页
*/
PageResult<ConsItemDO> getConsItemPage(ConsItemQueryVO query, PageVO page);
/**
* 获得集运包裹明细列表, 用于 Excel 导出
* @param query 查询
* @return 集运包裹明细列表
*/
List<ConsItemDO> getConsItemList(ConsItemQueryVO query);
}
package cn.iocoder.yudao.module.order.service.consItem;
import java.util.*;
import javax.annotation.Resource;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.convert.consItem.ConsItemConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO;
import cn.iocoder.yudao.module.order.dal.mysql.consItem.ConsItemMapper;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemUpdateReqVO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
/**
* 集运包裹明细 Service 实现类
*
* @author 系统管理员
*/
@Service
@Validated
public class ConsItemServiceImpl extends AbstractService<ConsItemMapper, ConsItemDO> implements ConsItemService {
@Resource
private ConsItemMapper consItemMapper;
@Override
public Long createConsItem(ConsItemCreateReqVO createReqVO) {
// 插入
ConsItemDO consItem = ConsItemConvert.INSTANCE.convert(createReqVO);
consItemMapper.insert(consItem);
// 返回
return consItem.getId();
}
@Override
public void updateConsItem(ConsItemUpdateReqVO updateReqVO) {
// 校验存在
this.validateConsItemExists(updateReqVO.getId());
// 更新
ConsItemDO updateObj = ConsItemConvert.INSTANCE.convert(updateReqVO);
consItemMapper.updateById(updateObj);
}
@Override
public void deleteConsItem(Long id) {
// 校验存在
this.validateConsItemExists(id);
// 删除
consItemMapper.deleteById(id);
}
private void validateConsItemExists(Long id) {
if (consItemMapper.selectById(id) == null) {
// throw exception(CONS_ITEM_NOT_EXISTS);
}
}
@Override
public ConsItemDO getConsItem(Long id) {
return consItemMapper.selectById(id);
}
@Override
public List<ConsItemDO> getConsItemList(Collection<Long> ids) {
return consItemMapper.selectBatchIds(ids);
}
@Override
public List<ConsItemBackVO> getConsItemBackVOList(ConsItemQueryVO query) {
return consItemMapper.getConsItemBackVOList(query);
}
@Override
public PageResult<ConsItemDO> getConsItemPage(ConsItemQueryVO query, PageVO page) {
return consItemMapper.selectPage(page, query);
}
@Override
public List<ConsItemDO> getConsItemList(ConsItemQueryVO query) {
return consItemMapper.selectList(query);
}
}
package cn.iocoder.yudao.module.order.vo.consItem;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 集运包裹明细 Response VO
* @author 系统管理员
*/
@Data
@ApiModel("管理后台 - 集运包裹明细 Response VO")
public class ConsItemBackVO {
@ExcelProperty("")
@ApiModelProperty(value = "", required = true)
private Long id;
@ExcelProperty("")
@ApiModelProperty(value = "", required = true)
private Long consId;
@ExcelProperty("商品ID")
@ApiModelProperty(value = "商品ID")
private Long prodId;
@ExcelProperty("商品名")
@ApiModelProperty(value = "商品名")
private String prodName;
@ExcelProperty("品牌")
@ApiModelProperty(value = "品牌")
private Long brand;
@ExcelProperty("来自字典表,brand_type 0 无牌 1 有牌 2 中性")
@ApiModelProperty(value = "来自字典表,brand_type 0 无牌 1 有牌 2 中性")
private Integer brandType;
@ExcelProperty("材质")
@ApiModelProperty(value = "材质")
private String material;
@ExcelProperty("数量")
@ApiModelProperty(value = "数量")
private BigDecimal quantity;
@ExcelProperty("验货件数")
@ApiModelProperty(value = "验货件数")
private Integer inspectionNum;
@ExcelProperty("验货商品单位")
@ApiModelProperty(value = "验货商品单位")
private String inspectionUnit;
@ExcelProperty("验货数量")
@ApiModelProperty(value = "验货数量")
private BigDecimal inspectionQuantity;
@ExcelProperty("验货商品特性(可选多个特性ID)")
@ApiModelProperty(value = "验货商品特性(可选多个特性ID)")
private String inspectionProdAttrIds;
@ExcelProperty("验货商品箱规")
@ApiModelProperty(value = "验货商品箱规")
private String inspectionBoxGauge;
@ExcelProperty("验货体积")
@ApiModelProperty(value = "验货体积")
private BigDecimal inspectionVolume;
@ExcelProperty("验货重量")
@ApiModelProperty(value = "验货重量")
private java.math.BigDecimal inspectionWeight;
@ExcelProperty("验货货值")
@ApiModelProperty(value = "验货货值")
private BigDecimal inspectionWorth;
@ExcelProperty("验货商品货值单位,关联货币表")
@ApiModelProperty(value = "验货商品货值单位,关联货币表")
private Integer inspectionWorthCurrency;
@ExcelProperty("验货商品用途")
@ApiModelProperty(value = "验货商品用途")
private String inspectionUsageIds;
@ExcelProperty("验货明细")
@ApiModelProperty(value = "验货明细")
private String inspectionJson;
@ExcelProperty("仓库id")
@ApiModelProperty(value = "仓库id")
private Long warehouseId;
@ExcelProperty("库域ID")
@ApiModelProperty(value = "库域ID")
private Long areaId;
@ExcelProperty("库位ID")
@ApiModelProperty(value = "库位ID")
private Long positionId;
@ExcelProperty("")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "", required = true)
private Date createTime;
}
package cn.iocoder.yudao.module.order.vo.consItem;
import lombok.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
/**
* 集运包裹明细 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class ConsItemBaseVO {
@ApiModelProperty(value = "", required = true)
@NotNull(message = "不能为空")
private Long consId;
@ApiModelProperty(value = "商品ID")
private Long prodId;
@ApiModelProperty(value = "品牌")
private Long brand;
@ApiModelProperty(value = "来自字典表,brand_type 0 无牌 1 有牌 2 中性")
private Integer brandType;
@ApiModelProperty(value = "材质")
private String material;
@ApiModelProperty(value = "数量")
private BigDecimal quantity;
@ApiModelProperty(value = "验货件数")
private Integer inspectionNum;
@ApiModelProperty(value = "验货商品单位")
private String inspectionUnit;
@ApiModelProperty(value = "验货数量")
private BigDecimal inspectionQuantity;
@ApiModelProperty(value = "验货商品特性(可选多个特性ID)")
private String inspectionProdAttrIds;
@ApiModelProperty(value = "验货商品箱规")
private String inspectionBoxGauge;
@ApiModelProperty(value = "验货体积")
private BigDecimal inspectionVolume;
@ApiModelProperty(value = "验货重量")
private BigDecimal inspectionWeight;
@ApiModelProperty(value = "验货货值")
private BigDecimal inspectionWorth;
@ApiModelProperty(value = "验货商品货值单位,关联货币表")
private Integer inspectionWorthCurrency;
@ApiModelProperty(value = "验货商品用途")
private String inspectionUsageIds;
@ApiModelProperty(value = "验货明细")
private String inspectionJson;
@ApiModelProperty(value = "仓库id")
private Long warehouseId;
@ApiModelProperty(value = "库域ID")
private Long areaId;
@ApiModelProperty(value = "库位ID")
private Long positionId;
}
package cn.iocoder.yudao.module.order.vo.consItem;
import lombok.*;
import io.swagger.annotations.*;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 集运包裹明细创建 Request VO")
public class ConsItemCreateReqVO extends ConsItemBaseVO {
}
package cn.iocoder.yudao.module.order.vo.consItem;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.annotations.*;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@ApiModel("管理后台 - 集运包裹明细查询 VO")
public class ConsItemQueryVO {
@ApiModelProperty(value = "")
private Long consId;
@ApiModelProperty(value = "商品ID")
private Long prodId;
@ApiModelProperty(value = "品牌")
private Long brand;
@ApiModelProperty(value = "来自字典表,brand_type 0 无牌 1 有牌 2 中性")
private Integer brandType;
@ApiModelProperty(value = "材质")
private String material;
@ApiModelProperty(value = "数量")
private BigDecimal quantity;
@ApiModelProperty(value = "验货件数")
private Integer inspectionNum;
@ApiModelProperty(value = "验货商品单位")
private String inspectionUnit;
@ApiModelProperty(value = "验货数量")
private BigDecimal inspectionQuantity;
@ApiModelProperty(value = "验货商品特性(可选多个特性ID)")
private String inspectionProdAttrIds;
@ApiModelProperty(value = "验货商品箱规")
private String inspectionBoxGauge;
@ApiModelProperty(value = "验货体积")
private BigDecimal inspectionVolume;
@ApiModelProperty(value = "验货重量")
private BigDecimal inspectionWeight;
@ApiModelProperty(value = "验货货值")
private BigDecimal inspectionWorth;
@ApiModelProperty(value = "验货商品货值单位,关联货币表")
private Integer inspectionWorthCurrency;
@ApiModelProperty(value = "验货商品用途")
private String inspectionUsageIds;
@ApiModelProperty(value = "验货明细")
private String inspectionJson;
@ApiModelProperty(value = "仓库id")
private Long warehouseId;
@ApiModelProperty(value = "库域ID")
private Long areaId;
@ApiModelProperty(value = "库位ID")
private Long positionId;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束")
private Date endCreateTime;
@ApiModelProperty(value = "语言")
private Integer lang;
}
package cn.iocoder.yudao.module.order.vo.consItem;
import lombok.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 集运包裹明细更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsItemUpdateReqVO extends ConsItemBaseVO {
@ApiModelProperty(value = "", required = true)
@NotNull(message = "不能为空")
private Long id;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.order.dal.mysql.consItem.ConsItemMapper">
<select id="myConsCount" resultType="java.lang.Long">
select count(1)
FROM ecw_cons cons
left join ecw_cons_item ci on cons.id = ci.cons_id
left join ecw_customer ec on cons.customer_id = ec.id
left join ecw_product ep on ci.prod_id = ep.id
WHERE cons.deleted = 0
order by cons.update_time desc
</select>
<select id="getConsItemBackVOList" resultType="cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO" parameterType="cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO">
SELECT ci.*,
if(#{lang} = 0, ep.title_zh, ep.title_en) as prod_name
FROM ecw_cons_item ci
left join ecw_product ep on ci.prod_id = ep.id
WHERE ci.deleted = 0
and ci.cons_id = #{consId}
order by ci.update_time desc
</select>
<sql id="myOrderQuery">
</sql>
</mapper>
\ No newline at end of file
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