Commit c1ea5ef3 authored by honghy's avatar honghy

需求124 PDA-集运包裹验货

parent a9f2d642
package cn.iocoder.yudao.module.order.convert.consInspectionDetails;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 集运验货明细 Convert
*
* @author jayden
*/
@Mapper
public interface ConsInspectionDetailsConvert {
/*****转换MapStruct*****/
ConsInspectionDetailsConvert INSTANCE = Mappers.getMapper(ConsInspectionDetailsConvert.class);
/***
* 创建VO转实体
* @param bean
* @return
*/
ConsInspectionDetailsDO convert(ConsInspectionDetailsCreateReqVO bean);
/***
* 修改VO转实体
* @param bean
* @return
*/
ConsInspectionDetailsDO convert(ConsInspectionDetailsUpdateReqVO bean);
/***
* 实体转返回VO
* @param bean
* @return
*/
ConsInspectionDetailsBackVO convert(ConsInspectionDetailsDO bean);
/***
* 实体列表转返回VO列表
* @param list
* @return
*/
List<ConsInspectionDetailsBackVO> convertList(List<ConsInspectionDetailsDO> list);
/***
* 实体分页转返回分页
* @param page
* @return
*/
PageResult<ConsInspectionDetailsBackVO> convertPage(PageResult<ConsInspectionDetailsDO> page);
}
package cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 集运验货明细 DO
*
* @author jayden
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_cons_inspection_details")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsInspectionDetailsDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 包裹ID
*/
private Long consId;
/**
* 包裹项id
*/
private Long consItemId;
/**
* 箱/件数
*/
private Integer cartonsNum;
/**
* 所有箱总数量
*/
private Integer quantityAll;
/**
* 箱规
*/
private String boxGauge;
/**
* 体积
*/
private java.math.BigDecimal volume;
/**
* 重量
*/
private java.math.BigDecimal weight;
/**
* 快递单号
*/
private String expressNo;
/**
* 验货时间
*/
private Date inTime;
/**
* 备注
*/
private String remark;
/**
* 验货纪录明细json
*/
private String inspectionDetails;
/**
* 入仓规格类型
*/
private Integer specificationType;
}
......@@ -110,4 +110,9 @@ public class ConsItemDO extends BaseDO {
* 订单项状态(数据字典item_status)
*/
private Integer itemStatus;
/**
* 无牌价0,有牌价1,中性品牌价2
*/
private Integer feeType;
}
package cn.iocoder.yudao.module.order.dal.dataobject.consLocation;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
......@@ -41,4 +42,13 @@ public class ConsLocationDO extends BaseDO {
*/
private Long locationId;
/**
* 集运明细id
*/
private Long consItemId;
/**
* 验货明细id
*/
private Long inspectionId;
}
package cn.iocoder.yudao.module.order.dal.mysql.consInspectionDetails;
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.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO;
import org.apache.ibatis.annotations.Mapper;
/**
* 集运验货明细 Mapper
* @author jayden
*/
@Mapper
public interface ConsInspectionDetailsMapper extends AbstractMapper<ConsInspectionDetailsDO> {
@Override
default PageResult<ConsInspectionDetailsDO> selectPage(PageVO page, Object object) {
if (object instanceof ConsInspectionDetailsQueryVO) {
ConsInspectionDetailsQueryVO vo = (ConsInspectionDetailsQueryVO)object;
return selectPage(page, new LambdaQuery<ConsInspectionDetailsDO>()
.eqIfPresent(ConsInspectionDetailsDO::getConsId, vo.getConsId())
.eqIfPresent(ConsInspectionDetailsDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsInspectionDetailsDO::getCartonsNum, vo.getCartonsNum())
.eqIfPresent(ConsInspectionDetailsDO::getQuantityAll, vo.getQuantityAll())
.eqIfPresent(ConsInspectionDetailsDO::getBoxGauge, vo.getBoxGauge())
.eqIfPresent(ConsInspectionDetailsDO::getVolume, vo.getVolume())
.eqIfPresent(ConsInspectionDetailsDO::getWeight, vo.getWeight())
.eqIfPresent(ConsInspectionDetailsDO::getExpressNo, vo.getExpressNo())
.betweenIfPresent(ConsInspectionDetailsDO::getInTime, vo.getBeginInTime(), vo.getEndInTime())
.betweenIfPresent(ConsInspectionDetailsDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.eqIfPresent(ConsInspectionDetailsDO::getRemark, vo.getRemark())
.eqIfPresent(ConsInspectionDetailsDO::getInspectionDetails, vo.getInspectionDetails())
.eqIfPresent(ConsInspectionDetailsDO::getSpecificationType, vo.getSpecificationType())
.orderByDesc(ConsInspectionDetailsDO::getId));
}
return null;
}
@Override
default List<ConsInspectionDetailsDO> selectList(Object object) {
if (object instanceof ConsInspectionDetailsQueryVO) {
ConsInspectionDetailsQueryVO vo = (ConsInspectionDetailsQueryVO)object;
return selectList(new LambdaQuery<ConsInspectionDetailsDO>()
.eqIfPresent(ConsInspectionDetailsDO::getConsId, vo.getConsId())
.eqIfPresent(ConsInspectionDetailsDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsInspectionDetailsDO::getCartonsNum, vo.getCartonsNum())
.eqIfPresent(ConsInspectionDetailsDO::getQuantityAll, vo.getQuantityAll())
.eqIfPresent(ConsInspectionDetailsDO::getBoxGauge, vo.getBoxGauge())
.eqIfPresent(ConsInspectionDetailsDO::getVolume, vo.getVolume())
.eqIfPresent(ConsInspectionDetailsDO::getWeight, vo.getWeight())
.eqIfPresent(ConsInspectionDetailsDO::getExpressNo, vo.getExpressNo())
.betweenIfPresent(ConsInspectionDetailsDO::getInTime, vo.getBeginInTime(), vo.getEndInTime())
.betweenIfPresent(ConsInspectionDetailsDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.eqIfPresent(ConsInspectionDetailsDO::getRemark, vo.getRemark())
.eqIfPresent(ConsInspectionDetailsDO::getInspectionDetails, vo.getInspectionDetails())
.eqIfPresent(ConsInspectionDetailsDO::getSpecificationType, vo.getSpecificationType())
.orderByDesc(ConsInspectionDetailsDO::getId));
}
return null;
}
}
package cn.iocoder.yudao.module.order.service.consInspectionDetails;
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.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
/**
* 集运验货明细 Service 接口
*
* @author jayden
*/
public interface ConsInspectionDetailsService extends IService<ConsInspectionDetailsDO> {
/**
* 创建集运验货明细
* @param createReqVO 创建信息
* @return 编号
*/
Long createConsInspectionDetails(@Valid ConsInspectionDetailsCreateReqVO createReqVO);
/**
* 更新集运验货明细
* @param updateReqVO 更新信息
*/
void updateConsInspectionDetails(@Valid ConsInspectionDetailsUpdateReqVO updateReqVO);
/**
* 删除集运验货明细
* @param id 编号
*/
void deleteConsInspectionDetails(Long id);
/**
* 获得集运验货明细
* @param id 编号
* @return 集运验货明细
*/
ConsInspectionDetailsDO getConsInspectionDetails(Long id);
/**
* 获得集运验货明细列表
* @param ids 编号
* @return 集运验货明细列表
*/
List<ConsInspectionDetailsDO> getConsInspectionDetailsList(Collection<Long> ids);
/**
* 获得集运验货明细分页
* @param page 分页查询
* @param query 查询
* @return 集运验货明细分页
*/
PageResult<ConsInspectionDetailsDO> getConsInspectionDetailsPage(ConsInspectionDetailsQueryVO query, PageVO page);
/**
* 获得集运验货明细列表, 用于 Excel 导出
* @param query 查询
* @return 集运验货明细列表
*/
List<ConsInspectionDetailsDO> getConsInspectionDetailsList(ConsInspectionDetailsQueryVO query);
}
package cn.iocoder.yudao.module.order.service.consInspectionDetails;
import java.util.*;
import javax.annotation.Resource;
import cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectionDetailsConvert;
import cn.iocoder.yudao.module.order.convert.consLocation.ConsLocationConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO;
import cn.iocoder.yudao.module.order.dal.mysql.consInspectionDetails.ConsInspectionDetailsMapper;
import cn.iocoder.yudao.module.order.dal.mysql.consItem.ConsItemMapper;
import cn.iocoder.yudao.module.order.dal.mysql.consLocation.ConsLocationMapper;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.InspectionDetails;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationBackVO;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.ecw.enums.ErrorCodeConstants.*;
/**
* 集运验货明细 Service 实现类
*
* @author jayden
*/
@Service
@Validated
public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspectionDetailsMapper, ConsInspectionDetailsDO> implements ConsInspectionDetailsService {
@Resource
private ConsInspectionDetailsMapper consInspectionDetailsMapper;
@Resource
private ConsItemMapper consItemMapper;
@Resource
private ConsLocationMapper consLocationMapper;
@Transactional
@Override
public Long createConsInspectionDetails(ConsInspectionDetailsCreateReqVO createReqVO) {
ConsItemDO consItemDO = consItemMapper.selectById(createReqVO.getConsItemId());
consItemDO.setProdId(createReqVO.getProdId());
consItemDO.setBrand(createReqVO.getBrand());
consItemDO.setBrandType(createReqVO.getBrandType());
consItemDO.setFeeType(createReqVO.getFeeType());
consItemDO.setMaterial(createReqVO.getMaterial());
consItemDO.setInspectionUnit(createReqVO.getInspectionUnit());
consItemMapper.updateById(consItemDO);
List<ConsInspectionDetailsCreateReqVO> consWarehouseInItemDoList = createReqVO.getConsWarehouseInItemDoList();
for (ConsInspectionDetailsCreateReqVO consInspectionDetailsCreateReqVO : consWarehouseInItemDoList) {
List<InspectionDetails> inspectionDetailsList = consInspectionDetailsCreateReqVO.getInspectionDetailsList();
if (!inspectionDetailsList.isEmpty()) {
consInspectionDetailsCreateReqVO.setInspectionDetails(JSON.toJSONString(inspectionDetailsList));
}
consInspectionDetailsCreateReqVO.setConsId(createReqVO.getConsId());
consInspectionDetailsCreateReqVO.setConsItemId(createReqVO.getConsItemId());
consInspectionDetailsCreateReqVO.setInTime(new Date());
// 插入
ConsInspectionDetailsDO consInspectionDetails = ConsInspectionDetailsConvert.INSTANCE.convert(consInspectionDetailsCreateReqVO);
consInspectionDetailsMapper.insert(consInspectionDetails);
List<ConsLocationUpdateReqVO> consLocationBackList = consInspectionDetailsCreateReqVO.getConsLocationBackList();
for (ConsLocationUpdateReqVO consLocationUpdateReqVO : consLocationBackList) {
consLocationUpdateReqVO.setConsId(createReqVO.getConsId());
consLocationUpdateReqVO.setConsItemId(createReqVO.getConsItemId());
consLocationUpdateReqVO.setInspectionId(consInspectionDetails.getId());
consLocationMapper.insert(ConsLocationConvert.INSTANCE.convert(consLocationUpdateReqVO));
}
}
return 1L;
}
@Transactional
@Override
public void updateConsInspectionDetails(ConsInspectionDetailsUpdateReqVO updateReqVO) {
// 更新
ConsInspectionDetailsDO updateObj = ConsInspectionDetailsConvert.INSTANCE.convert(updateReqVO);
consInspectionDetailsMapper.updateById(updateObj);
}
@Override
public void deleteConsInspectionDetails(Long id) {
// 删除
consInspectionDetailsMapper.deleteById(id);
}
@Override
public ConsInspectionDetailsDO getConsInspectionDetails(Long id) {
return consInspectionDetailsMapper.selectById(id);
}
@Override
public List<ConsInspectionDetailsDO> getConsInspectionDetailsList(Collection<Long> ids) {
return consInspectionDetailsMapper.selectBatchIds(ids);
}
@Override
public PageResult<ConsInspectionDetailsDO> getConsInspectionDetailsPage(ConsInspectionDetailsQueryVO query, PageVO page) {
return consInspectionDetailsMapper.selectPage(page, query);
}
@Override
public List<ConsInspectionDetailsDO> getConsInspectionDetailsList(ConsInspectionDetailsQueryVO query) {
return consInspectionDetailsMapper.selectList(query);
}
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationBackVO;
import lombok.*;
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 jayden
*/
@Data
@ApiModel("管理后台 - 集运验货明细 Response VO")
public class ConsInspectionDetailsBackVO {
@ExcelProperty("主键ID")
@ApiModelProperty(value = "主键ID", required = true)
private Long id;
@ExcelProperty("包裹ID")
@ApiModelProperty(value = "包裹ID", required = true)
private Long consId;
@ExcelProperty("包裹项id")
@ApiModelProperty(value = "包裹项id", required = true)
private Long consItemId;
@ExcelProperty("箱/件数")
@ApiModelProperty(value = "箱/件数", required = true)
private Integer cartonsNum;
@ExcelProperty("所有箱总数量")
@ApiModelProperty(value = "所有箱总数量")
private Integer quantityAll;
@ExcelProperty("箱规")
@ApiModelProperty(value = "箱规")
private String boxGauge;
@ExcelProperty("体积")
@ApiModelProperty(value = "体积")
private java.math.BigDecimal volume;
@ExcelProperty("重量")
@ApiModelProperty(value = "重量")
private java.math.BigDecimal weight;
@ExcelProperty("快递单号")
@ApiModelProperty(value = "快递单号", required = true)
private String expressNo;
@ExcelProperty("验货时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "验货时间")
private Date inTime;
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
@ExcelProperty("备注")
@ApiModelProperty(value = "备注")
private String remark;
@ExcelProperty("验货纪录明细json")
@ApiModelProperty(value = "验货纪录明细json")
private String inspectionDetails;
@ExcelProperty("入仓规格类型")
@ApiModelProperty(value = "入仓规格类型")
private Integer specificationType;
@ApiModelProperty(value = "储位")
private List<ConsLocationBackVO> consLocationBackList;
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO;
import lombok.*;
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;
/**
* 集运验货明细 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class ConsInspectionDetailsBaseVO {
@ApiModelProperty(value = "包裹ID", required = true)
private Long consId;
@ApiModelProperty(value = "包裹项id", required = true)
private Long consItemId;
@ApiModelProperty(value = "箱/件数", required = true)
private Integer cartonsNum;
@ApiModelProperty(value = "所有箱总数量")
private Integer quantityAll;
@ApiModelProperty(value = "箱规")
private String boxGauge;
@ApiModelProperty(value = "体积")
private java.math.BigDecimal volume;
@ApiModelProperty(value = "重量")
private java.math.BigDecimal weight;
@ApiModelProperty(value = "快递单号", required = true)
private String expressNo;
@ApiModelProperty(value = "验货时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date inTime;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "验货纪录明细json")
private String inspectionDetails;
@ApiModelProperty(value = "入仓规格类型")
private Integer specificationType;
private Long brand;
private Integer brandType;
@ApiModelProperty(value = "验货商品特性(可选多个特性ID)")
private String inspectionProdAttrIds;
@ApiModelProperty(value = "验货商品用途")
private String inspectionUsageIds;
@ApiModelProperty(value = "材质")
private String material;
@ApiModelProperty(value = "商品ID")
private Long prodId;
@ApiModelProperty(value = "验货商品单位")
private String inspectionUnit;
/**
* 无牌价0,有牌价1,中性品牌价2
*/
private Integer feeType;
@ApiModelProperty(value = "验货明细")
private List<ConsInspectionDetailsCreateReqVO> consWarehouseInItemDoList;
@ApiModelProperty(value = "储位")
private List<ConsLocationUpdateReqVO> consLocationBackList;
@ApiModelProperty(value = "验货纪录明细")
private List<InspectionDetails> inspectionDetailsList;
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 集运验货明细创建 Request VO")
public class ConsInspectionDetailsCreateReqVO extends ConsInspectionDetailsBaseVO {
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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 ConsInspectionDetailsQueryVO {
@ApiModelProperty(value = "包裹ID")
private Long consId;
@ApiModelProperty(value = "包裹项id")
private Long consItemId;
@ApiModelProperty(value = "箱/件数")
private Integer cartonsNum;
@ApiModelProperty(value = "所有箱总数量")
private Integer quantityAll;
@ApiModelProperty(value = "箱规")
private String boxGauge;
@ApiModelProperty(value = "体积")
private java.math.BigDecimal volume;
@ApiModelProperty(value = "重量")
private java.math.BigDecimal weight;
@ApiModelProperty(value = "快递单号")
private String expressNo;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始验货时间")
private Date beginInTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束验货时间")
private Date endInTime;
@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 String remark;
@ApiModelProperty(value = "验货纪录明细json")
private String inspectionDetails;
@ApiModelProperty(value = "入仓规格类型")
private Integer specificationType;
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 集运验货明细更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsInspectionDetailsUpdateReqVO extends ConsInspectionDetailsBaseVO {
@ApiModelProperty(value = "主键ID", required = true)
@NotNull(message = "主键ID不能为空")
private Long id;
}
package cn.iocoder.yudao.module.order.vo.consInspectionDetails;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 入仓纪录明细VO
*
* @author yanghao
*/
@Data
@ApiModel(value = "验货纪录明细VO")
public class InspectionDetails {
@ApiModelProperty(value = "商品ID")
private Long prodId;
@ApiModelProperty(value = "品牌ID")
private Long brand;
/**
* 商品特性(可选多个特性ID)
*/
private String prodAttrIds;
@ApiModelProperty("用途")
private String usageIds;
@ApiModelProperty(value = "箱/件数")
private Integer cartonsNum;
@ApiModelProperty(value = "所有箱内总货物数量")
private Integer quantityAll;
@ApiModelProperty(value = "单位")
private String unit;
/**
* 入仓规格类型 1箱/2整板 见字典 warehousing_specification_type
*/
@ApiModelProperty(value = "入仓规格类型")
private Integer specificationType;
/**
* 箱规
*/
@ApiModelProperty(value = "箱规")
private String boxGauge;
@ApiModelProperty(value = "体积")
private BigDecimal volume;
@ApiModelProperty(value = "重量")
private BigDecimal weight;
@ApiModelProperty(value = "快递单号")
private String expressNo;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
@ApiModelProperty(value = "材质")
private String material;
@ApiModelProperty(value = "产品中文标题")
private String prodTitleZh;
@ApiModelProperty(value = "产品英文标题")
private String prodTitleEn;
@ApiModelProperty(value = "品牌名称")
private String brandName;
}
......@@ -35,6 +35,9 @@ public class ConsItemBackVO {
@ApiModelProperty(value = "商品名")
private String prodName;
@ApiModelProperty(value = "英文商品名")
private String prodEnName;
@ExcelProperty("品牌")
@ApiModelProperty(value = "品牌")
private Long brand;
......
......@@ -47,4 +47,9 @@ public class ConsLocationBackVO {
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
@ApiModelProperty(value = "集运明细id")
private Long consItemId;
@ApiModelProperty(value = "验货明细id")
private Long inspectionId;
}
......@@ -31,4 +31,10 @@ public class ConsLocationBaseVO {
private String areaName;
private String warehouseName;
@ApiModelProperty(value = "集运明细id")
private Long consItemId;
@ApiModelProperty(value = "验货明细id")
private Long inspectionId;
}
......@@ -13,7 +13,8 @@
<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
if(#{lang} = 0, ep.title_zh, ep.title_en) as prod_name,
ep.title_en as prodEnName
FROM ecw_cons_item ci
left join ecw_product ep on ci.prod_id = ep.id
WHERE ci.deleted = 0
......@@ -24,4 +25,4 @@
</sql>
</mapper>
\ No newline at end of file
</mapper>
package cn.iocoder.yudao.module.order.controller.admin.cons;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectionDetailsConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.service.consInspectionDetails.ConsInspectionDetailsService;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import io.swagger.annotations.*;
import javax.validation.*;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Validated
@RestController
@Api(tags = "管理后台 - 集运验货明细")
@RequestMapping("/ecw/cons-inspection-details")
public class ConsInspectionDetailsController {
@Resource
private ConsInspectionDetailsService consInspectionDetailsService;
@PostMapping("/create")
@ApiOperation("创建集运验货明细")
public CommonResult<Long> createConsInspectionDetails(@RequestBody ConsInspectionDetailsCreateReqVO createReqVO) {
return success(consInspectionDetailsService.createConsInspectionDetails(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新集运验货明细")
public CommonResult<Boolean> updateConsInspectionDetails(@Valid @RequestBody ConsInspectionDetailsUpdateReqVO updateReqVO) {
consInspectionDetailsService.updateConsInspectionDetails(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@ApiOperation("删除集运验货明细")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<Boolean> deleteConsInspectionDetails(@RequestParam("id") Long id) {
consInspectionDetailsService.deleteConsInspectionDetails(id);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得集运验货明细")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsInspectionDetailsBackVO> getConsInspectionDetails(@RequestParam("id") Long id) {
ConsInspectionDetailsDO consInspectionDetails = consInspectionDetailsService.getConsInspectionDetails(id);
return success(ConsInspectionDetailsConvert.INSTANCE.convert(consInspectionDetails));
}
@GetMapping("/list")
@ApiOperation("获得集运验货明细列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
public CommonResult<List<ConsInspectionDetailsBackVO>> getConsInspectionDetailsList(@RequestParam("ids") Collection<Long> ids) {
List<ConsInspectionDetailsDO> list = consInspectionDetailsService.getConsInspectionDetailsList(ids);
return success(ConsInspectionDetailsConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@ApiOperation("获得集运验货明细分页")
public CommonResult<PageResult<ConsInspectionDetailsBackVO>> getConsInspectionDetailsPage(@Valid ConsInspectionDetailsQueryVO query, PageVO page) {
PageResult<ConsInspectionDetailsDO> pageResult = consInspectionDetailsService.getConsInspectionDetailsPage(query, page);
return success(ConsInspectionDetailsConvert.INSTANCE.convertPage(pageResult));
}
}
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