Merge branch 'master' of http://222.71.165.188:3000/ccongli/YX-SCM
commit
26dfb38388
@ -0,0 +1,102 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.controller.admin.product;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import javax.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||||
|
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
import com.yunxi.scm.module.xxjj.convert.product.ProductConvert;
|
||||||
|
import com.yunxi.scm.module.xxjj.service.product.ProductService;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 商品")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xxjj/product")
|
||||||
|
@Validated
|
||||||
|
public class ProductController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProductService productService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建商品")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:create')")
|
||||||
|
public CommonResult<Long> createProduct(@Valid @RequestBody ProductCreateReqVO createReqVO) {
|
||||||
|
return success(productService.createProduct(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新商品")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:update')")
|
||||||
|
public CommonResult<Boolean> updateProduct(@Valid @RequestBody ProductUpdateReqVO updateReqVO) {
|
||||||
|
productService.updateProduct(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除商品")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:delete')")
|
||||||
|
public CommonResult<Boolean> deleteProduct(@RequestParam("id") Long id) {
|
||||||
|
productService.deleteProduct(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得商品")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:query')")
|
||||||
|
public CommonResult<ProductRespVO> getProduct(@RequestParam("id") Long id) {
|
||||||
|
ProductDO product = productService.getProduct(id);
|
||||||
|
return success(ProductConvert.INSTANCE.convert(product));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "获得商品列表")
|
||||||
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:query')")
|
||||||
|
public CommonResult<List<ProductRespVO>> getProductList(@RequestParam("ids") Collection<Long> ids) {
|
||||||
|
List<ProductDO> list = productService.getProductList(ids);
|
||||||
|
return success(ProductConvert.INSTANCE.convertList(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得商品分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:query')")
|
||||||
|
public CommonResult<PageResult<ProductRespVO>> getProductPage(@Valid ProductPageReqVO pageVO) {
|
||||||
|
PageResult<ProductDO> pageResult = productService.getProductPage(pageVO);
|
||||||
|
return success(ProductConvert.INSTANCE.convertPage(pageResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出商品 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('xxjj:product:export')")
|
||||||
|
@OperateLog(type = EXPORT)
|
||||||
|
public void exportProductExcel(@Valid ProductExportReqVO exportReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
List<ProductDO> list = productService.getProductList(exportReqVO);
|
||||||
|
// 导出 Excel
|
||||||
|
List<ProductExcelVO> datas = ProductConvert.INSTANCE.convertList02(list);
|
||||||
|
ExcelUtils.write(response, "商品.xls", "数据", ProductExcelVO.class, datas);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.controller.admin.product.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 商品创建 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class ProductCreateReqVO extends ProductBaseVO {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.controller.admin.product.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 商品 Response VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class ProductRespVO extends ProductBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25337")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.controller.admin.product.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 商品更新 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class ProductUpdateReqVO extends ProductBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25337")
|
||||||
|
@NotNull(message = "编号不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.convert.product;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品 Convert
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ProductConvert {
|
||||||
|
|
||||||
|
ProductConvert INSTANCE = Mappers.getMapper(ProductConvert.class);
|
||||||
|
|
||||||
|
ProductDO convert(ProductCreateReqVO bean);
|
||||||
|
|
||||||
|
ProductDO convert(ProductUpdateReqVO bean);
|
||||||
|
|
||||||
|
ProductRespVO convert(ProductDO bean);
|
||||||
|
|
||||||
|
List<ProductRespVO> convertList(List<ProductDO> list);
|
||||||
|
|
||||||
|
PageResult<ProductRespVO> convertPage(PageResult<ProductDO> page);
|
||||||
|
|
||||||
|
List<ProductExcelVO> convertList02(List<ProductDO> list);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,202 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.dal.mysql.product;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品 Mapper
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ProductMapper extends BaseMapperX<ProductDO> {
|
||||||
|
|
||||||
|
default PageResult<ProductDO> selectPage(ProductPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ProductDO>()
|
||||||
|
.eqIfPresent(ProductDO::getPhoto, reqVO.getPhoto())
|
||||||
|
.eqIfPresent(ProductDO::getCode, reqVO.getCode())
|
||||||
|
.likeIfPresent(ProductDO::getName, reqVO.getName())
|
||||||
|
.eqIfPresent(ProductDO::getProductStatus, reqVO.getProductStatus())
|
||||||
|
.eqIfPresent(ProductDO::getProductType, reqVO.getProductType())
|
||||||
|
.likeIfPresent(ProductDO::getShortName, reqVO.getShortName())
|
||||||
|
.eqIfPresent(ProductDO::getBarCode, reqVO.getBarCode())
|
||||||
|
.eqIfPresent(ProductDO::getBoxSurfaceNum, reqVO.getBoxSurfaceNum())
|
||||||
|
.eqIfPresent(ProductDO::getSpec, reqVO.getSpec())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryType, reqVO.getInventoryType())
|
||||||
|
.eqIfPresent(ProductDO::getBrandId, reqVO.getBrandId())
|
||||||
|
.eqIfPresent(ProductDO::getArea, reqVO.getArea())
|
||||||
|
.eqIfPresent(ProductDO::getProductTypeId, reqVO.getProductTypeId())
|
||||||
|
.eqIfPresent(ProductDO::getAreaCategory, reqVO.getAreaCategory())
|
||||||
|
.eqIfPresent(ProductDO::getDangerousFlag, reqVO.getDangerousFlag())
|
||||||
|
.eqIfPresent(ProductDO::getImportedFlag, reqVO.getImportedFlag())
|
||||||
|
.eqIfPresent(ProductDO::getFirstSupplierId, reqVO.getFirstSupplierId())
|
||||||
|
.eqIfPresent(ProductDO::getSettlementEntity, reqVO.getSettlementEntity())
|
||||||
|
.eqIfPresent(ProductDO::getOutputTaxRate, reqVO.getOutputTaxRate())
|
||||||
|
.eqIfPresent(ProductDO::getInputTaxRate, reqVO.getInputTaxRate())
|
||||||
|
.eqIfPresent(ProductDO::getDeliveryType, reqVO.getDeliveryType())
|
||||||
|
.eqIfPresent(ProductDO::getManyUnitFlag, reqVO.getManyUnitFlag())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryUnitId, reqVO.getInventoryUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOrderMainUnitId, reqVO.getOrderMainUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOrderOtherUnitId, reqVO.getOrderOtherUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getSalesMainUnitId, reqVO.getSalesMainUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOtherUnitId, reqVO.getSalesOtherUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOperateUnitId, reqVO.getOperateUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getPricingUnitId, reqVO.getPricingUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderQuantityDown, reqVO.getPurchaseOrderQuantityDown())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderQuantityUpper, reqVO.getPurchaseOrderQuantityUpper())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderMultiple, reqVO.getPurchaseOrderMultiple())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseInitialAmount, reqVO.getPurchaseInitialAmount())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseAllowOverchargingRatio, reqVO.getPurchaseAllowOverchargingRatio())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderStart, reqVO.getPurchaseOrderStart())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderEnd, reqVO.getPurchaseOrderEnd())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseMode, reqVO.getPurchaseMode())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderQuantityDown, reqVO.getSalesOrderQuantityDown())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderQuantityUpper, reqVO.getSalesOrderQuantityUpper())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderMultiple, reqVO.getSalesOrderMultiple())
|
||||||
|
.eqIfPresent(ProductDO::getSalesInitialAmount, reqVO.getSalesInitialAmount())
|
||||||
|
.eqIfPresent(ProductDO::getSalesAllowOverchargingRatio, reqVO.getSalesAllowOverchargingRatio())
|
||||||
|
.eqIfPresent(ProductDO::getSalesStart, reqVO.getSalesStart())
|
||||||
|
.eqIfPresent(ProductDO::getSalesEnd, reqVO.getSalesEnd())
|
||||||
|
.eqIfPresent(ProductDO::getSalesModeStart, reqVO.getSalesModeStart())
|
||||||
|
.eqIfPresent(ProductDO::getSalesMode, reqVO.getSalesMode())
|
||||||
|
.betweenIfPresent(ProductDO::getDeliverGoodsDate, reqVO.getDeliverGoodsDate())
|
||||||
|
.eqIfPresent(ProductDO::getDelayNum, reqVO.getDelayNum())
|
||||||
|
.eqIfPresent(ProductDO::getSafetyStock, reqVO.getSafetyStock())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDayDown, reqVO.getInventoryDayDown())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDayUpper, reqVO.getInventoryDayUpper())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDown, reqVO.getInventoryDown())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryUpper, reqVO.getInventoryUpper())
|
||||||
|
.eqIfPresent(ProductDO::getFixedReplenishmentQuantity, reqVO.getFixedReplenishmentQuantity())
|
||||||
|
.eqIfPresent(ProductDO::getAvailableInventory, reqVO.getAvailableInventory())
|
||||||
|
.eqIfPresent(ProductDO::getTransitInventory, reqVO.getTransitInventory())
|
||||||
|
.eqIfPresent(ProductDO::getManageInventory, reqVO.getManageInventory())
|
||||||
|
.eqIfPresent(ProductDO::getFromInventory, reqVO.getFromInventory())
|
||||||
|
.eqIfPresent(ProductDO::getManageBatches, reqVO.getManageBatches())
|
||||||
|
.eqIfPresent(ProductDO::getTransportStoreyBoardNum, reqVO.getTransportStoreyBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportBoxStoreyNum, reqVO.getTransportBoxStoreyNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportBoxBoardNum, reqVO.getTransportBoxBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperature, reqVO.getTransportTemperature())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperatureDown, reqVO.getTransportTemperatureDown())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperatureUpper, reqVO.getTransportTemperatureUpper())
|
||||||
|
.eqIfPresent(ProductDO::getStorageStoreyBoardNum, reqVO.getStorageStoreyBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageBoxStoreyNum, reqVO.getStorageBoxStoreyNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageBoxBoardNum, reqVO.getStorageBoxBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperature, reqVO.getStorageTemperature())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperatureDown, reqVO.getStorageTemperatureDown())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperatureUpper, reqVO.getStorageTemperatureUpper())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionRatio, reqVO.getQualityInspectionRatio())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionFrequency, reqVO.getQualityInspectionFrequency())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReport, reqVO.getQualityInspectionReport())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReportStart, reqVO.getQualityInspectionReportStart())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReportEnd, reqVO.getQualityInspectionReportEnd())
|
||||||
|
.eqIfPresent(ProductDO::getQualityControl, reqVO.getQualityControl())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionStandards, reqVO.getQualityInspectionStandards())
|
||||||
|
.eqIfPresent(ProductDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields1, reqVO.getReservedFields1())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields2, reqVO.getReservedFields2())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields3, reqVO.getReservedFields3())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields4, reqVO.getReservedFields4())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields5, reqVO.getReservedFields5())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields6, reqVO.getReservedFields6())
|
||||||
|
.betweenIfPresent(ProductDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ProductDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<ProductDO> selectList(ProductExportReqVO reqVO) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<ProductDO>()
|
||||||
|
.eqIfPresent(ProductDO::getPhoto, reqVO.getPhoto())
|
||||||
|
.eqIfPresent(ProductDO::getCode, reqVO.getCode())
|
||||||
|
.likeIfPresent(ProductDO::getName, reqVO.getName())
|
||||||
|
.eqIfPresent(ProductDO::getProductStatus, reqVO.getProductStatus())
|
||||||
|
.eqIfPresent(ProductDO::getProductType, reqVO.getProductType())
|
||||||
|
.likeIfPresent(ProductDO::getShortName, reqVO.getShortName())
|
||||||
|
.eqIfPresent(ProductDO::getBarCode, reqVO.getBarCode())
|
||||||
|
.eqIfPresent(ProductDO::getBoxSurfaceNum, reqVO.getBoxSurfaceNum())
|
||||||
|
.eqIfPresent(ProductDO::getSpec, reqVO.getSpec())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryType, reqVO.getInventoryType())
|
||||||
|
.eqIfPresent(ProductDO::getBrandId, reqVO.getBrandId())
|
||||||
|
.eqIfPresent(ProductDO::getArea, reqVO.getArea())
|
||||||
|
.eqIfPresent(ProductDO::getProductTypeId, reqVO.getProductTypeId())
|
||||||
|
.eqIfPresent(ProductDO::getAreaCategory, reqVO.getAreaCategory())
|
||||||
|
.eqIfPresent(ProductDO::getDangerousFlag, reqVO.getDangerousFlag())
|
||||||
|
.eqIfPresent(ProductDO::getImportedFlag, reqVO.getImportedFlag())
|
||||||
|
.eqIfPresent(ProductDO::getFirstSupplierId, reqVO.getFirstSupplierId())
|
||||||
|
.eqIfPresent(ProductDO::getSettlementEntity, reqVO.getSettlementEntity())
|
||||||
|
.eqIfPresent(ProductDO::getOutputTaxRate, reqVO.getOutputTaxRate())
|
||||||
|
.eqIfPresent(ProductDO::getInputTaxRate, reqVO.getInputTaxRate())
|
||||||
|
.eqIfPresent(ProductDO::getDeliveryType, reqVO.getDeliveryType())
|
||||||
|
.eqIfPresent(ProductDO::getManyUnitFlag, reqVO.getManyUnitFlag())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryUnitId, reqVO.getInventoryUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOrderMainUnitId, reqVO.getOrderMainUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOrderOtherUnitId, reqVO.getOrderOtherUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getSalesMainUnitId, reqVO.getSalesMainUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOtherUnitId, reqVO.getSalesOtherUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getOperateUnitId, reqVO.getOperateUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getPricingUnitId, reqVO.getPricingUnitId())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderQuantityDown, reqVO.getPurchaseOrderQuantityDown())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderQuantityUpper, reqVO.getPurchaseOrderQuantityUpper())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderMultiple, reqVO.getPurchaseOrderMultiple())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseInitialAmount, reqVO.getPurchaseInitialAmount())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseAllowOverchargingRatio, reqVO.getPurchaseAllowOverchargingRatio())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderStart, reqVO.getPurchaseOrderStart())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseOrderEnd, reqVO.getPurchaseOrderEnd())
|
||||||
|
.eqIfPresent(ProductDO::getPurchaseMode, reqVO.getPurchaseMode())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderQuantityDown, reqVO.getSalesOrderQuantityDown())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderQuantityUpper, reqVO.getSalesOrderQuantityUpper())
|
||||||
|
.eqIfPresent(ProductDO::getSalesOrderMultiple, reqVO.getSalesOrderMultiple())
|
||||||
|
.eqIfPresent(ProductDO::getSalesInitialAmount, reqVO.getSalesInitialAmount())
|
||||||
|
.eqIfPresent(ProductDO::getSalesAllowOverchargingRatio, reqVO.getSalesAllowOverchargingRatio())
|
||||||
|
.eqIfPresent(ProductDO::getSalesStart, reqVO.getSalesStart())
|
||||||
|
.eqIfPresent(ProductDO::getSalesEnd, reqVO.getSalesEnd())
|
||||||
|
.eqIfPresent(ProductDO::getSalesModeStart, reqVO.getSalesModeStart())
|
||||||
|
.eqIfPresent(ProductDO::getSalesMode, reqVO.getSalesMode())
|
||||||
|
.betweenIfPresent(ProductDO::getDeliverGoodsDate, reqVO.getDeliverGoodsDate())
|
||||||
|
.eqIfPresent(ProductDO::getDelayNum, reqVO.getDelayNum())
|
||||||
|
.eqIfPresent(ProductDO::getSafetyStock, reqVO.getSafetyStock())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDayDown, reqVO.getInventoryDayDown())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDayUpper, reqVO.getInventoryDayUpper())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryDown, reqVO.getInventoryDown())
|
||||||
|
.eqIfPresent(ProductDO::getInventoryUpper, reqVO.getInventoryUpper())
|
||||||
|
.eqIfPresent(ProductDO::getFixedReplenishmentQuantity, reqVO.getFixedReplenishmentQuantity())
|
||||||
|
.eqIfPresent(ProductDO::getAvailableInventory, reqVO.getAvailableInventory())
|
||||||
|
.eqIfPresent(ProductDO::getTransitInventory, reqVO.getTransitInventory())
|
||||||
|
.eqIfPresent(ProductDO::getManageInventory, reqVO.getManageInventory())
|
||||||
|
.eqIfPresent(ProductDO::getFromInventory, reqVO.getFromInventory())
|
||||||
|
.eqIfPresent(ProductDO::getManageBatches, reqVO.getManageBatches())
|
||||||
|
.eqIfPresent(ProductDO::getTransportStoreyBoardNum, reqVO.getTransportStoreyBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportBoxStoreyNum, reqVO.getTransportBoxStoreyNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportBoxBoardNum, reqVO.getTransportBoxBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperature, reqVO.getTransportTemperature())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperatureDown, reqVO.getTransportTemperatureDown())
|
||||||
|
.eqIfPresent(ProductDO::getTransportTemperatureUpper, reqVO.getTransportTemperatureUpper())
|
||||||
|
.eqIfPresent(ProductDO::getStorageStoreyBoardNum, reqVO.getStorageStoreyBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageBoxStoreyNum, reqVO.getStorageBoxStoreyNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageBoxBoardNum, reqVO.getStorageBoxBoardNum())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperature, reqVO.getStorageTemperature())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperatureDown, reqVO.getStorageTemperatureDown())
|
||||||
|
.eqIfPresent(ProductDO::getStorageTemperatureUpper, reqVO.getStorageTemperatureUpper())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionRatio, reqVO.getQualityInspectionRatio())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionFrequency, reqVO.getQualityInspectionFrequency())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReport, reqVO.getQualityInspectionReport())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReportStart, reqVO.getQualityInspectionReportStart())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionReportEnd, reqVO.getQualityInspectionReportEnd())
|
||||||
|
.eqIfPresent(ProductDO::getQualityControl, reqVO.getQualityControl())
|
||||||
|
.eqIfPresent(ProductDO::getQualityInspectionStandards, reqVO.getQualityInspectionStandards())
|
||||||
|
.eqIfPresent(ProductDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields1, reqVO.getReservedFields1())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields2, reqVO.getReservedFields2())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields3, reqVO.getReservedFields3())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields4, reqVO.getReservedFields4())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields5, reqVO.getReservedFields5())
|
||||||
|
.eqIfPresent(ProductDO::getReservedFields6, reqVO.getReservedFields6())
|
||||||
|
.betweenIfPresent(ProductDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ProductDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.service.product;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品 Service 接口
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
public interface ProductService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建商品
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createProduct(@Valid ProductCreateReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新商品
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateProduct(@Valid ProductUpdateReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除商品
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteProduct(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得商品
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 商品
|
||||||
|
*/
|
||||||
|
ProductDO getProduct(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得商品列表
|
||||||
|
*
|
||||||
|
* @param ids 编号
|
||||||
|
* @return 商品列表
|
||||||
|
*/
|
||||||
|
List<ProductDO> getProductList(Collection<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得商品分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 商品分页
|
||||||
|
*/
|
||||||
|
PageResult<ProductDO> getProductPage(ProductPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得商品列表, 用于 Excel 导出
|
||||||
|
*
|
||||||
|
* @param exportReqVO 查询条件
|
||||||
|
* @return 商品列表
|
||||||
|
*/
|
||||||
|
List<ProductDO> getProductList(ProductExportReqVO exportReqVO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.service.product;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.xxjj.convert.product.ProductConvert;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.mysql.product.ProductMapper;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ProductServiceImpl implements ProductService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProductMapper productMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createProduct(ProductCreateReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ProductDO product = ProductConvert.INSTANCE.convert(createReqVO);
|
||||||
|
productMapper.insert(product);
|
||||||
|
// 返回
|
||||||
|
return product.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateProduct(ProductUpdateReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateProductExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ProductDO updateObj = ProductConvert.INSTANCE.convert(updateReqVO);
|
||||||
|
productMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteProduct(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateProductExists(id);
|
||||||
|
// 删除
|
||||||
|
productMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateProductExists(Long id) {
|
||||||
|
if (productMapper.selectById(id) == null) {
|
||||||
|
throw exception(PRODUCT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProductDO getProduct(Long id) {
|
||||||
|
return productMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProductDO> getProductList(Collection<Long> ids) {
|
||||||
|
return productMapper.selectBatchIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ProductDO> getProductPage(ProductPageReqVO pageReqVO) {
|
||||||
|
return productMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProductDO> getProductList(ProductExportReqVO exportReqVO) {
|
||||||
|
return productMapper.selectList(exportReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,831 @@
|
|||||||
|
package com.yunxi.scm.module.xxjj.service.product;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.xxjj.controller.admin.product.vo.*;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.dataobject.product.ProductDO;
|
||||||
|
import com.yunxi.scm.module.xxjj.dal.mysql.product.ProductMapper;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.hutool.core.util.RandomUtil.*;
|
||||||
|
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||||
|
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link ProductServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Import(ProductServiceImpl.class)
|
||||||
|
public class ProductServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProductServiceImpl productService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProductMapper productMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateProduct_success() {
|
||||||
|
// 准备参数
|
||||||
|
ProductCreateReqVO reqVO = randomPojo(ProductCreateReqVO.class);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long productId = productService.createProduct(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(productId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
ProductDO product = productMapper.selectById(productId);
|
||||||
|
assertPojoEquals(reqVO, product);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateProduct_success() {
|
||||||
|
// mock 数据
|
||||||
|
ProductDO dbProduct = randomPojo(ProductDO.class);
|
||||||
|
productMapper.insert(dbProduct);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
ProductUpdateReqVO reqVO = randomPojo(ProductUpdateReqVO.class, o -> {
|
||||||
|
o.setId(dbProduct.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
productService.updateProduct(reqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
ProductDO product = productMapper.selectById(reqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(reqVO, product);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateProduct_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
ProductUpdateReqVO reqVO = randomPojo(ProductUpdateReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> productService.updateProduct(reqVO), PRODUCT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteProduct_success() {
|
||||||
|
// mock 数据
|
||||||
|
ProductDO dbProduct = randomPojo(ProductDO.class);
|
||||||
|
productMapper.insert(dbProduct);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbProduct.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
productService.deleteProduct(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(productMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteProduct_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> productService.deleteProduct(id), PRODUCT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetProductPage() {
|
||||||
|
// mock 数据
|
||||||
|
ProductDO dbProduct = randomPojo(ProductDO.class, o -> { // 等会查询到
|
||||||
|
o.setPhoto(null);
|
||||||
|
o.setCode(null);
|
||||||
|
o.setName(null);
|
||||||
|
o.setProductStatus(null);
|
||||||
|
o.setProductType(null);
|
||||||
|
o.setShortName(null);
|
||||||
|
o.setBarCode(null);
|
||||||
|
o.setBoxSurfaceNum(null);
|
||||||
|
o.setSpec(null);
|
||||||
|
o.setInventoryType(null);
|
||||||
|
o.setBrandId(null);
|
||||||
|
o.setArea(null);
|
||||||
|
o.setProductTypeId(null);
|
||||||
|
o.setAreaCategory(null);
|
||||||
|
o.setDangerousFlag(null);
|
||||||
|
o.setImportedFlag(null);
|
||||||
|
o.setFirstSupplierId(null);
|
||||||
|
o.setSettlementEntity(null);
|
||||||
|
o.setOutputTaxRate(null);
|
||||||
|
o.setInputTaxRate(null);
|
||||||
|
o.setDeliveryType(null);
|
||||||
|
o.setManyUnitFlag(null);
|
||||||
|
o.setInventoryUnitId(null);
|
||||||
|
o.setOrderMainUnitId(null);
|
||||||
|
o.setOrderOtherUnitId(null);
|
||||||
|
o.setSalesMainUnitId(null);
|
||||||
|
o.setSalesOtherUnitId(null);
|
||||||
|
o.setOperateUnitId(null);
|
||||||
|
o.setPricingUnitId(null);
|
||||||
|
o.setPurchaseOrderQuantityDown(null);
|
||||||
|
o.setPurchaseOrderQuantityUpper(null);
|
||||||
|
o.setPurchaseOrderMultiple(null);
|
||||||
|
o.setPurchaseInitialAmount(null);
|
||||||
|
o.setPurchaseAllowOverchargingRatio(null);
|
||||||
|
o.setPurchaseOrderStart(null);
|
||||||
|
o.setPurchaseOrderEnd(null);
|
||||||
|
o.setPurchaseMode(null);
|
||||||
|
o.setSalesOrderQuantityDown(null);
|
||||||
|
o.setSalesOrderQuantityUpper(null);
|
||||||
|
o.setSalesOrderMultiple(null);
|
||||||
|
o.setSalesInitialAmount(null);
|
||||||
|
o.setSalesAllowOverchargingRatio(null);
|
||||||
|
o.setSalesStart(null);
|
||||||
|
o.setSalesEnd(null);
|
||||||
|
o.setSalesModeStart(null);
|
||||||
|
o.setSalesMode(null);
|
||||||
|
o.setDeliverGoodsDate(null);
|
||||||
|
o.setDelayNum(null);
|
||||||
|
o.setSafetyStock(null);
|
||||||
|
o.setInventoryDayDown(null);
|
||||||
|
o.setInventoryDayUpper(null);
|
||||||
|
o.setInventoryDown(null);
|
||||||
|
o.setInventoryUpper(null);
|
||||||
|
o.setFixedReplenishmentQuantity(null);
|
||||||
|
o.setAvailableInventory(null);
|
||||||
|
o.setTransitInventory(null);
|
||||||
|
o.setManageInventory(null);
|
||||||
|
o.setFromInventory(null);
|
||||||
|
o.setManageBatches(null);
|
||||||
|
o.setTransportStoreyBoardNum(null);
|
||||||
|
o.setTransportBoxStoreyNum(null);
|
||||||
|
o.setTransportBoxBoardNum(null);
|
||||||
|
o.setTransportTemperature(null);
|
||||||
|
o.setTransportTemperatureDown(null);
|
||||||
|
o.setTransportTemperatureUpper(null);
|
||||||
|
o.setStorageStoreyBoardNum(null);
|
||||||
|
o.setStorageBoxStoreyNum(null);
|
||||||
|
o.setStorageBoxBoardNum(null);
|
||||||
|
o.setStorageTemperature(null);
|
||||||
|
o.setStorageTemperatureDown(null);
|
||||||
|
o.setStorageTemperatureUpper(null);
|
||||||
|
o.setQualityInspectionRatio(null);
|
||||||
|
o.setQualityInspectionFrequency(null);
|
||||||
|
o.setQualityInspectionReport(null);
|
||||||
|
o.setQualityInspectionReportStart(null);
|
||||||
|
o.setQualityInspectionReportEnd(null);
|
||||||
|
o.setQualityControl(null);
|
||||||
|
o.setQualityInspectionStandards(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setReservedFields1(null);
|
||||||
|
o.setReservedFields2(null);
|
||||||
|
o.setReservedFields3(null);
|
||||||
|
o.setReservedFields4(null);
|
||||||
|
o.setReservedFields5(null);
|
||||||
|
o.setReservedFields6(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
productMapper.insert(dbProduct);
|
||||||
|
// 测试 photo 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPhoto(null)));
|
||||||
|
// 测试 code 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setCode(null)));
|
||||||
|
// 测试 name 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setName(null)));
|
||||||
|
// 测试 productStatus 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductStatus(null)));
|
||||||
|
// 测试 productType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductType(null)));
|
||||||
|
// 测试 shortName 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setShortName(null)));
|
||||||
|
// 测试 barCode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBarCode(null)));
|
||||||
|
// 测试 boxSurfaceNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBoxSurfaceNum(null)));
|
||||||
|
// 测试 spec 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSpec(null)));
|
||||||
|
// 测试 inventoryType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryType(null)));
|
||||||
|
// 测试 brandId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBrandId(null)));
|
||||||
|
// 测试 area 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setArea(null)));
|
||||||
|
// 测试 productTypeId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductTypeId(null)));
|
||||||
|
// 测试 areaCategory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setAreaCategory(null)));
|
||||||
|
// 测试 dangerousFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDangerousFlag(null)));
|
||||||
|
// 测试 importedFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setImportedFlag(null)));
|
||||||
|
// 测试 firstSupplierId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFirstSupplierId(null)));
|
||||||
|
// 测试 settlementEntity 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSettlementEntity(null)));
|
||||||
|
// 测试 outputTaxRate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOutputTaxRate(null)));
|
||||||
|
// 测试 inputTaxRate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInputTaxRate(null)));
|
||||||
|
// 测试 deliveryType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDeliveryType(null)));
|
||||||
|
// 测试 manyUnitFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManyUnitFlag(null)));
|
||||||
|
// 测试 inventoryUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryUnitId(null)));
|
||||||
|
// 测试 orderMainUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOrderMainUnitId(null)));
|
||||||
|
// 测试 orderOtherUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOrderOtherUnitId(null)));
|
||||||
|
// 测试 salesMainUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesMainUnitId(null)));
|
||||||
|
// 测试 salesOtherUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOtherUnitId(null)));
|
||||||
|
// 测试 operateUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOperateUnitId(null)));
|
||||||
|
// 测试 pricingUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPricingUnitId(null)));
|
||||||
|
// 测试 purchaseOrderQuantityDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderQuantityDown(null)));
|
||||||
|
// 测试 purchaseOrderQuantityUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderQuantityUpper(null)));
|
||||||
|
// 测试 purchaseOrderMultiple 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderMultiple(null)));
|
||||||
|
// 测试 purchaseInitialAmount 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseInitialAmount(null)));
|
||||||
|
// 测试 purchaseAllowOverchargingRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseAllowOverchargingRatio(null)));
|
||||||
|
// 测试 purchaseOrderStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderStart(null)));
|
||||||
|
// 测试 purchaseOrderEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderEnd(null)));
|
||||||
|
// 测试 purchaseMode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseMode(null)));
|
||||||
|
// 测试 salesOrderQuantityDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderQuantityDown(null)));
|
||||||
|
// 测试 salesOrderQuantityUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderQuantityUpper(null)));
|
||||||
|
// 测试 salesOrderMultiple 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderMultiple(null)));
|
||||||
|
// 测试 salesInitialAmount 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesInitialAmount(null)));
|
||||||
|
// 测试 salesAllowOverchargingRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesAllowOverchargingRatio(null)));
|
||||||
|
// 测试 salesStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesStart(null)));
|
||||||
|
// 测试 salesEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesEnd(null)));
|
||||||
|
// 测试 salesModeStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesModeStart(null)));
|
||||||
|
// 测试 salesMode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesMode(null)));
|
||||||
|
// 测试 deliverGoodsDate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDeliverGoodsDate(null)));
|
||||||
|
// 测试 delayNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDelayNum(null)));
|
||||||
|
// 测试 safetyStock 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSafetyStock(null)));
|
||||||
|
// 测试 inventoryDayDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDayDown(null)));
|
||||||
|
// 测试 inventoryDayUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDayUpper(null)));
|
||||||
|
// 测试 inventoryDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDown(null)));
|
||||||
|
// 测试 inventoryUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryUpper(null)));
|
||||||
|
// 测试 fixedReplenishmentQuantity 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFixedReplenishmentQuantity(null)));
|
||||||
|
// 测试 availableInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setAvailableInventory(null)));
|
||||||
|
// 测试 transitInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransitInventory(null)));
|
||||||
|
// 测试 manageInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManageInventory(null)));
|
||||||
|
// 测试 fromInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFromInventory(null)));
|
||||||
|
// 测试 manageBatches 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManageBatches(null)));
|
||||||
|
// 测试 transportStoreyBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportStoreyBoardNum(null)));
|
||||||
|
// 测试 transportBoxStoreyNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportBoxStoreyNum(null)));
|
||||||
|
// 测试 transportBoxBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportBoxBoardNum(null)));
|
||||||
|
// 测试 transportTemperature 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperature(null)));
|
||||||
|
// 测试 transportTemperatureDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperatureDown(null)));
|
||||||
|
// 测试 transportTemperatureUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperatureUpper(null)));
|
||||||
|
// 测试 storageStoreyBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageStoreyBoardNum(null)));
|
||||||
|
// 测试 storageBoxStoreyNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageBoxStoreyNum(null)));
|
||||||
|
// 测试 storageBoxBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageBoxBoardNum(null)));
|
||||||
|
// 测试 storageTemperature 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperature(null)));
|
||||||
|
// 测试 storageTemperatureDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperatureDown(null)));
|
||||||
|
// 测试 storageTemperatureUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperatureUpper(null)));
|
||||||
|
// 测试 qualityInspectionRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionRatio(null)));
|
||||||
|
// 测试 qualityInspectionFrequency 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionFrequency(null)));
|
||||||
|
// 测试 qualityInspectionReport 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReport(null)));
|
||||||
|
// 测试 qualityInspectionReportStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReportStart(null)));
|
||||||
|
// 测试 qualityInspectionReportEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReportEnd(null)));
|
||||||
|
// 测试 qualityControl 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityControl(null)));
|
||||||
|
// 测试 qualityInspectionStandards 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionStandards(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setRemark(null)));
|
||||||
|
// 测试 reservedFields1 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields1(null)));
|
||||||
|
// 测试 reservedFields2 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields2(null)));
|
||||||
|
// 测试 reservedFields3 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields3(null)));
|
||||||
|
// 测试 reservedFields4 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields4(null)));
|
||||||
|
// 测试 reservedFields5 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields5(null)));
|
||||||
|
// 测试 reservedFields6 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields6(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
ProductPageReqVO reqVO = new ProductPageReqVO();
|
||||||
|
reqVO.setPhoto(null);
|
||||||
|
reqVO.setCode(null);
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setProductStatus(null);
|
||||||
|
reqVO.setProductType(null);
|
||||||
|
reqVO.setShortName(null);
|
||||||
|
reqVO.setBarCode(null);
|
||||||
|
reqVO.setBoxSurfaceNum(null);
|
||||||
|
reqVO.setSpec(null);
|
||||||
|
reqVO.setInventoryType(null);
|
||||||
|
reqVO.setBrandId(null);
|
||||||
|
reqVO.setArea(null);
|
||||||
|
reqVO.setProductTypeId(null);
|
||||||
|
reqVO.setAreaCategory(null);
|
||||||
|
reqVO.setDangerousFlag(null);
|
||||||
|
reqVO.setImportedFlag(null);
|
||||||
|
reqVO.setFirstSupplierId(null);
|
||||||
|
reqVO.setSettlementEntity(null);
|
||||||
|
reqVO.setOutputTaxRate(null);
|
||||||
|
reqVO.setInputTaxRate(null);
|
||||||
|
reqVO.setDeliveryType(null);
|
||||||
|
reqVO.setManyUnitFlag(null);
|
||||||
|
reqVO.setInventoryUnitId(null);
|
||||||
|
reqVO.setOrderMainUnitId(null);
|
||||||
|
reqVO.setOrderOtherUnitId(null);
|
||||||
|
reqVO.setSalesMainUnitId(null);
|
||||||
|
reqVO.setSalesOtherUnitId(null);
|
||||||
|
reqVO.setOperateUnitId(null);
|
||||||
|
reqVO.setPricingUnitId(null);
|
||||||
|
reqVO.setPurchaseOrderQuantityDown(null);
|
||||||
|
reqVO.setPurchaseOrderQuantityUpper(null);
|
||||||
|
reqVO.setPurchaseOrderMultiple(null);
|
||||||
|
reqVO.setPurchaseInitialAmount(null);
|
||||||
|
reqVO.setPurchaseAllowOverchargingRatio(null);
|
||||||
|
reqVO.setPurchaseOrderStart(null);
|
||||||
|
reqVO.setPurchaseOrderEnd(null);
|
||||||
|
reqVO.setPurchaseMode(null);
|
||||||
|
reqVO.setSalesOrderQuantityDown(null);
|
||||||
|
reqVO.setSalesOrderQuantityUpper(null);
|
||||||
|
reqVO.setSalesOrderMultiple(null);
|
||||||
|
reqVO.setSalesInitialAmount(null);
|
||||||
|
reqVO.setSalesAllowOverchargingRatio(null);
|
||||||
|
reqVO.setSalesStart(null);
|
||||||
|
reqVO.setSalesEnd(null);
|
||||||
|
reqVO.setSalesModeStart(null);
|
||||||
|
reqVO.setSalesMode(null);
|
||||||
|
reqVO.setDeliverGoodsDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setDelayNum(null);
|
||||||
|
reqVO.setSafetyStock(null);
|
||||||
|
reqVO.setInventoryDayDown(null);
|
||||||
|
reqVO.setInventoryDayUpper(null);
|
||||||
|
reqVO.setInventoryDown(null);
|
||||||
|
reqVO.setInventoryUpper(null);
|
||||||
|
reqVO.setFixedReplenishmentQuantity(null);
|
||||||
|
reqVO.setAvailableInventory(null);
|
||||||
|
reqVO.setTransitInventory(null);
|
||||||
|
reqVO.setManageInventory(null);
|
||||||
|
reqVO.setFromInventory(null);
|
||||||
|
reqVO.setManageBatches(null);
|
||||||
|
reqVO.setTransportStoreyBoardNum(null);
|
||||||
|
reqVO.setTransportBoxStoreyNum(null);
|
||||||
|
reqVO.setTransportBoxBoardNum(null);
|
||||||
|
reqVO.setTransportTemperature(null);
|
||||||
|
reqVO.setTransportTemperatureDown(null);
|
||||||
|
reqVO.setTransportTemperatureUpper(null);
|
||||||
|
reqVO.setStorageStoreyBoardNum(null);
|
||||||
|
reqVO.setStorageBoxStoreyNum(null);
|
||||||
|
reqVO.setStorageBoxBoardNum(null);
|
||||||
|
reqVO.setStorageTemperature(null);
|
||||||
|
reqVO.setStorageTemperatureDown(null);
|
||||||
|
reqVO.setStorageTemperatureUpper(null);
|
||||||
|
reqVO.setQualityInspectionRatio(null);
|
||||||
|
reqVO.setQualityInspectionFrequency(null);
|
||||||
|
reqVO.setQualityInspectionReport(null);
|
||||||
|
reqVO.setQualityInspectionReportStart(null);
|
||||||
|
reqVO.setQualityInspectionReportEnd(null);
|
||||||
|
reqVO.setQualityControl(null);
|
||||||
|
reqVO.setQualityInspectionStandards(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setReservedFields1(null);
|
||||||
|
reqVO.setReservedFields2(null);
|
||||||
|
reqVO.setReservedFields3(null);
|
||||||
|
reqVO.setReservedFields4(null);
|
||||||
|
reqVO.setReservedFields5(null);
|
||||||
|
reqVO.setReservedFields6(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<ProductDO> pageResult = productService.getProductPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbProduct, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetProductList() {
|
||||||
|
// mock 数据
|
||||||
|
ProductDO dbProduct = randomPojo(ProductDO.class, o -> { // 等会查询到
|
||||||
|
o.setPhoto(null);
|
||||||
|
o.setCode(null);
|
||||||
|
o.setName(null);
|
||||||
|
o.setProductStatus(null);
|
||||||
|
o.setProductType(null);
|
||||||
|
o.setShortName(null);
|
||||||
|
o.setBarCode(null);
|
||||||
|
o.setBoxSurfaceNum(null);
|
||||||
|
o.setSpec(null);
|
||||||
|
o.setInventoryType(null);
|
||||||
|
o.setBrandId(null);
|
||||||
|
o.setArea(null);
|
||||||
|
o.setProductTypeId(null);
|
||||||
|
o.setAreaCategory(null);
|
||||||
|
o.setDangerousFlag(null);
|
||||||
|
o.setImportedFlag(null);
|
||||||
|
o.setFirstSupplierId(null);
|
||||||
|
o.setSettlementEntity(null);
|
||||||
|
o.setOutputTaxRate(null);
|
||||||
|
o.setInputTaxRate(null);
|
||||||
|
o.setDeliveryType(null);
|
||||||
|
o.setManyUnitFlag(null);
|
||||||
|
o.setInventoryUnitId(null);
|
||||||
|
o.setOrderMainUnitId(null);
|
||||||
|
o.setOrderOtherUnitId(null);
|
||||||
|
o.setSalesMainUnitId(null);
|
||||||
|
o.setSalesOtherUnitId(null);
|
||||||
|
o.setOperateUnitId(null);
|
||||||
|
o.setPricingUnitId(null);
|
||||||
|
o.setPurchaseOrderQuantityDown(null);
|
||||||
|
o.setPurchaseOrderQuantityUpper(null);
|
||||||
|
o.setPurchaseOrderMultiple(null);
|
||||||
|
o.setPurchaseInitialAmount(null);
|
||||||
|
o.setPurchaseAllowOverchargingRatio(null);
|
||||||
|
o.setPurchaseOrderStart(null);
|
||||||
|
o.setPurchaseOrderEnd(null);
|
||||||
|
o.setPurchaseMode(null);
|
||||||
|
o.setSalesOrderQuantityDown(null);
|
||||||
|
o.setSalesOrderQuantityUpper(null);
|
||||||
|
o.setSalesOrderMultiple(null);
|
||||||
|
o.setSalesInitialAmount(null);
|
||||||
|
o.setSalesAllowOverchargingRatio(null);
|
||||||
|
o.setSalesStart(null);
|
||||||
|
o.setSalesEnd(null);
|
||||||
|
o.setSalesModeStart(null);
|
||||||
|
o.setSalesMode(null);
|
||||||
|
o.setDeliverGoodsDate(null);
|
||||||
|
o.setDelayNum(null);
|
||||||
|
o.setSafetyStock(null);
|
||||||
|
o.setInventoryDayDown(null);
|
||||||
|
o.setInventoryDayUpper(null);
|
||||||
|
o.setInventoryDown(null);
|
||||||
|
o.setInventoryUpper(null);
|
||||||
|
o.setFixedReplenishmentQuantity(null);
|
||||||
|
o.setAvailableInventory(null);
|
||||||
|
o.setTransitInventory(null);
|
||||||
|
o.setManageInventory(null);
|
||||||
|
o.setFromInventory(null);
|
||||||
|
o.setManageBatches(null);
|
||||||
|
o.setTransportStoreyBoardNum(null);
|
||||||
|
o.setTransportBoxStoreyNum(null);
|
||||||
|
o.setTransportBoxBoardNum(null);
|
||||||
|
o.setTransportTemperature(null);
|
||||||
|
o.setTransportTemperatureDown(null);
|
||||||
|
o.setTransportTemperatureUpper(null);
|
||||||
|
o.setStorageStoreyBoardNum(null);
|
||||||
|
o.setStorageBoxStoreyNum(null);
|
||||||
|
o.setStorageBoxBoardNum(null);
|
||||||
|
o.setStorageTemperature(null);
|
||||||
|
o.setStorageTemperatureDown(null);
|
||||||
|
o.setStorageTemperatureUpper(null);
|
||||||
|
o.setQualityInspectionRatio(null);
|
||||||
|
o.setQualityInspectionFrequency(null);
|
||||||
|
o.setQualityInspectionReport(null);
|
||||||
|
o.setQualityInspectionReportStart(null);
|
||||||
|
o.setQualityInspectionReportEnd(null);
|
||||||
|
o.setQualityControl(null);
|
||||||
|
o.setQualityInspectionStandards(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setReservedFields1(null);
|
||||||
|
o.setReservedFields2(null);
|
||||||
|
o.setReservedFields3(null);
|
||||||
|
o.setReservedFields4(null);
|
||||||
|
o.setReservedFields5(null);
|
||||||
|
o.setReservedFields6(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
productMapper.insert(dbProduct);
|
||||||
|
// 测试 photo 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPhoto(null)));
|
||||||
|
// 测试 code 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setCode(null)));
|
||||||
|
// 测试 name 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setName(null)));
|
||||||
|
// 测试 productStatus 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductStatus(null)));
|
||||||
|
// 测试 productType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductType(null)));
|
||||||
|
// 测试 shortName 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setShortName(null)));
|
||||||
|
// 测试 barCode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBarCode(null)));
|
||||||
|
// 测试 boxSurfaceNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBoxSurfaceNum(null)));
|
||||||
|
// 测试 spec 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSpec(null)));
|
||||||
|
// 测试 inventoryType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryType(null)));
|
||||||
|
// 测试 brandId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setBrandId(null)));
|
||||||
|
// 测试 area 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setArea(null)));
|
||||||
|
// 测试 productTypeId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setProductTypeId(null)));
|
||||||
|
// 测试 areaCategory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setAreaCategory(null)));
|
||||||
|
// 测试 dangerousFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDangerousFlag(null)));
|
||||||
|
// 测试 importedFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setImportedFlag(null)));
|
||||||
|
// 测试 firstSupplierId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFirstSupplierId(null)));
|
||||||
|
// 测试 settlementEntity 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSettlementEntity(null)));
|
||||||
|
// 测试 outputTaxRate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOutputTaxRate(null)));
|
||||||
|
// 测试 inputTaxRate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInputTaxRate(null)));
|
||||||
|
// 测试 deliveryType 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDeliveryType(null)));
|
||||||
|
// 测试 manyUnitFlag 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManyUnitFlag(null)));
|
||||||
|
// 测试 inventoryUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryUnitId(null)));
|
||||||
|
// 测试 orderMainUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOrderMainUnitId(null)));
|
||||||
|
// 测试 orderOtherUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOrderOtherUnitId(null)));
|
||||||
|
// 测试 salesMainUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesMainUnitId(null)));
|
||||||
|
// 测试 salesOtherUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOtherUnitId(null)));
|
||||||
|
// 测试 operateUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setOperateUnitId(null)));
|
||||||
|
// 测试 pricingUnitId 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPricingUnitId(null)));
|
||||||
|
// 测试 purchaseOrderQuantityDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderQuantityDown(null)));
|
||||||
|
// 测试 purchaseOrderQuantityUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderQuantityUpper(null)));
|
||||||
|
// 测试 purchaseOrderMultiple 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderMultiple(null)));
|
||||||
|
// 测试 purchaseInitialAmount 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseInitialAmount(null)));
|
||||||
|
// 测试 purchaseAllowOverchargingRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseAllowOverchargingRatio(null)));
|
||||||
|
// 测试 purchaseOrderStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderStart(null)));
|
||||||
|
// 测试 purchaseOrderEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseOrderEnd(null)));
|
||||||
|
// 测试 purchaseMode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setPurchaseMode(null)));
|
||||||
|
// 测试 salesOrderQuantityDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderQuantityDown(null)));
|
||||||
|
// 测试 salesOrderQuantityUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderQuantityUpper(null)));
|
||||||
|
// 测试 salesOrderMultiple 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesOrderMultiple(null)));
|
||||||
|
// 测试 salesInitialAmount 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesInitialAmount(null)));
|
||||||
|
// 测试 salesAllowOverchargingRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesAllowOverchargingRatio(null)));
|
||||||
|
// 测试 salesStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesStart(null)));
|
||||||
|
// 测试 salesEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesEnd(null)));
|
||||||
|
// 测试 salesModeStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesModeStart(null)));
|
||||||
|
// 测试 salesMode 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSalesMode(null)));
|
||||||
|
// 测试 deliverGoodsDate 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDeliverGoodsDate(null)));
|
||||||
|
// 测试 delayNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setDelayNum(null)));
|
||||||
|
// 测试 safetyStock 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setSafetyStock(null)));
|
||||||
|
// 测试 inventoryDayDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDayDown(null)));
|
||||||
|
// 测试 inventoryDayUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDayUpper(null)));
|
||||||
|
// 测试 inventoryDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryDown(null)));
|
||||||
|
// 测试 inventoryUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setInventoryUpper(null)));
|
||||||
|
// 测试 fixedReplenishmentQuantity 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFixedReplenishmentQuantity(null)));
|
||||||
|
// 测试 availableInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setAvailableInventory(null)));
|
||||||
|
// 测试 transitInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransitInventory(null)));
|
||||||
|
// 测试 manageInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManageInventory(null)));
|
||||||
|
// 测试 fromInventory 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setFromInventory(null)));
|
||||||
|
// 测试 manageBatches 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setManageBatches(null)));
|
||||||
|
// 测试 transportStoreyBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportStoreyBoardNum(null)));
|
||||||
|
// 测试 transportBoxStoreyNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportBoxStoreyNum(null)));
|
||||||
|
// 测试 transportBoxBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportBoxBoardNum(null)));
|
||||||
|
// 测试 transportTemperature 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperature(null)));
|
||||||
|
// 测试 transportTemperatureDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperatureDown(null)));
|
||||||
|
// 测试 transportTemperatureUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setTransportTemperatureUpper(null)));
|
||||||
|
// 测试 storageStoreyBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageStoreyBoardNum(null)));
|
||||||
|
// 测试 storageBoxStoreyNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageBoxStoreyNum(null)));
|
||||||
|
// 测试 storageBoxBoardNum 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageBoxBoardNum(null)));
|
||||||
|
// 测试 storageTemperature 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperature(null)));
|
||||||
|
// 测试 storageTemperatureDown 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperatureDown(null)));
|
||||||
|
// 测试 storageTemperatureUpper 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setStorageTemperatureUpper(null)));
|
||||||
|
// 测试 qualityInspectionRatio 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionRatio(null)));
|
||||||
|
// 测试 qualityInspectionFrequency 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionFrequency(null)));
|
||||||
|
// 测试 qualityInspectionReport 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReport(null)));
|
||||||
|
// 测试 qualityInspectionReportStart 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReportStart(null)));
|
||||||
|
// 测试 qualityInspectionReportEnd 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionReportEnd(null)));
|
||||||
|
// 测试 qualityControl 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityControl(null)));
|
||||||
|
// 测试 qualityInspectionStandards 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setQualityInspectionStandards(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setRemark(null)));
|
||||||
|
// 测试 reservedFields1 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields1(null)));
|
||||||
|
// 测试 reservedFields2 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields2(null)));
|
||||||
|
// 测试 reservedFields3 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields3(null)));
|
||||||
|
// 测试 reservedFields4 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields4(null)));
|
||||||
|
// 测试 reservedFields5 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields5(null)));
|
||||||
|
// 测试 reservedFields6 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setReservedFields6(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
productMapper.insert(cloneIgnoreId(dbProduct, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
ProductExportReqVO reqVO = new ProductExportReqVO();
|
||||||
|
reqVO.setPhoto(null);
|
||||||
|
reqVO.setCode(null);
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setProductStatus(null);
|
||||||
|
reqVO.setProductType(null);
|
||||||
|
reqVO.setShortName(null);
|
||||||
|
reqVO.setBarCode(null);
|
||||||
|
reqVO.setBoxSurfaceNum(null);
|
||||||
|
reqVO.setSpec(null);
|
||||||
|
reqVO.setInventoryType(null);
|
||||||
|
reqVO.setBrandId(null);
|
||||||
|
reqVO.setArea(null);
|
||||||
|
reqVO.setProductTypeId(null);
|
||||||
|
reqVO.setAreaCategory(null);
|
||||||
|
reqVO.setDangerousFlag(null);
|
||||||
|
reqVO.setImportedFlag(null);
|
||||||
|
reqVO.setFirstSupplierId(null);
|
||||||
|
reqVO.setSettlementEntity(null);
|
||||||
|
reqVO.setOutputTaxRate(null);
|
||||||
|
reqVO.setInputTaxRate(null);
|
||||||
|
reqVO.setDeliveryType(null);
|
||||||
|
reqVO.setManyUnitFlag(null);
|
||||||
|
reqVO.setInventoryUnitId(null);
|
||||||
|
reqVO.setOrderMainUnitId(null);
|
||||||
|
reqVO.setOrderOtherUnitId(null);
|
||||||
|
reqVO.setSalesMainUnitId(null);
|
||||||
|
reqVO.setSalesOtherUnitId(null);
|
||||||
|
reqVO.setOperateUnitId(null);
|
||||||
|
reqVO.setPricingUnitId(null);
|
||||||
|
reqVO.setPurchaseOrderQuantityDown(null);
|
||||||
|
reqVO.setPurchaseOrderQuantityUpper(null);
|
||||||
|
reqVO.setPurchaseOrderMultiple(null);
|
||||||
|
reqVO.setPurchaseInitialAmount(null);
|
||||||
|
reqVO.setPurchaseAllowOverchargingRatio(null);
|
||||||
|
reqVO.setPurchaseOrderStart(null);
|
||||||
|
reqVO.setPurchaseOrderEnd(null);
|
||||||
|
reqVO.setPurchaseMode(null);
|
||||||
|
reqVO.setSalesOrderQuantityDown(null);
|
||||||
|
reqVO.setSalesOrderQuantityUpper(null);
|
||||||
|
reqVO.setSalesOrderMultiple(null);
|
||||||
|
reqVO.setSalesInitialAmount(null);
|
||||||
|
reqVO.setSalesAllowOverchargingRatio(null);
|
||||||
|
reqVO.setSalesStart(null);
|
||||||
|
reqVO.setSalesEnd(null);
|
||||||
|
reqVO.setSalesModeStart(null);
|
||||||
|
reqVO.setSalesMode(null);
|
||||||
|
reqVO.setDeliverGoodsDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setDelayNum(null);
|
||||||
|
reqVO.setSafetyStock(null);
|
||||||
|
reqVO.setInventoryDayDown(null);
|
||||||
|
reqVO.setInventoryDayUpper(null);
|
||||||
|
reqVO.setInventoryDown(null);
|
||||||
|
reqVO.setInventoryUpper(null);
|
||||||
|
reqVO.setFixedReplenishmentQuantity(null);
|
||||||
|
reqVO.setAvailableInventory(null);
|
||||||
|
reqVO.setTransitInventory(null);
|
||||||
|
reqVO.setManageInventory(null);
|
||||||
|
reqVO.setFromInventory(null);
|
||||||
|
reqVO.setManageBatches(null);
|
||||||
|
reqVO.setTransportStoreyBoardNum(null);
|
||||||
|
reqVO.setTransportBoxStoreyNum(null);
|
||||||
|
reqVO.setTransportBoxBoardNum(null);
|
||||||
|
reqVO.setTransportTemperature(null);
|
||||||
|
reqVO.setTransportTemperatureDown(null);
|
||||||
|
reqVO.setTransportTemperatureUpper(null);
|
||||||
|
reqVO.setStorageStoreyBoardNum(null);
|
||||||
|
reqVO.setStorageBoxStoreyNum(null);
|
||||||
|
reqVO.setStorageBoxBoardNum(null);
|
||||||
|
reqVO.setStorageTemperature(null);
|
||||||
|
reqVO.setStorageTemperatureDown(null);
|
||||||
|
reqVO.setStorageTemperatureUpper(null);
|
||||||
|
reqVO.setQualityInspectionRatio(null);
|
||||||
|
reqVO.setQualityInspectionFrequency(null);
|
||||||
|
reqVO.setQualityInspectionReport(null);
|
||||||
|
reqVO.setQualityInspectionReportStart(null);
|
||||||
|
reqVO.setQualityInspectionReportEnd(null);
|
||||||
|
reqVO.setQualityControl(null);
|
||||||
|
reqVO.setQualityInspectionStandards(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setReservedFields1(null);
|
||||||
|
reqVO.setReservedFields2(null);
|
||||||
|
reqVO.setReservedFields3(null);
|
||||||
|
reqVO.setReservedFields4(null);
|
||||||
|
reqVO.setReservedFields5(null);
|
||||||
|
reqVO.setReservedFields6(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
List<ProductDO> list = productService.getProductList(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, list.size());
|
||||||
|
assertPojoEquals(dbProduct, list.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,120 @@
|
|||||||
|
import request from '@/config/axios'
|
||||||
|
|
||||||
|
export interface ProductVO {
|
||||||
|
id: number
|
||||||
|
photo: string
|
||||||
|
code: string
|
||||||
|
name: string
|
||||||
|
productStatus: string
|
||||||
|
productType: string
|
||||||
|
shortName: string
|
||||||
|
barCode: string
|
||||||
|
boxSurfaceNum: string
|
||||||
|
spec: string
|
||||||
|
inventoryType: string
|
||||||
|
brandId: number
|
||||||
|
area: string
|
||||||
|
productTypeId: string
|
||||||
|
areaCategory: string
|
||||||
|
dangerousFlag: string
|
||||||
|
importedFlag: string
|
||||||
|
firstSupplierId: number
|
||||||
|
settlementEntity: string
|
||||||
|
outputTaxRate: string
|
||||||
|
inputTaxRate: string
|
||||||
|
deliveryType: string
|
||||||
|
manyUnitFlag: string
|
||||||
|
inventoryUnitId: number
|
||||||
|
orderMainUnitId: number
|
||||||
|
orderOtherUnitId: string
|
||||||
|
salesMainUnitId: number
|
||||||
|
salesOtherUnitId: string
|
||||||
|
operateUnitId: number
|
||||||
|
pricingUnitId: number
|
||||||
|
purchaseOrderQuantityDown: string
|
||||||
|
purchaseOrderQuantityUpper: string
|
||||||
|
purchaseOrderMultiple: string
|
||||||
|
purchaseInitialAmount: string
|
||||||
|
purchaseAllowOverchargingRatio: string
|
||||||
|
purchaseOrderStart: Date
|
||||||
|
purchaseOrderEnd: Date
|
||||||
|
purchaseMode: string
|
||||||
|
salesOrderQuantityDown: string
|
||||||
|
salesOrderQuantityUpper: string
|
||||||
|
salesOrderMultiple: string
|
||||||
|
salesInitialAmount: string
|
||||||
|
salesAllowOverchargingRatio: string
|
||||||
|
salesStart: Date
|
||||||
|
salesEnd: Date
|
||||||
|
salesModeStart: string
|
||||||
|
salesMode: string
|
||||||
|
deliverGoodsDate: Date
|
||||||
|
delayNum: string
|
||||||
|
safetyStock: string
|
||||||
|
inventoryDayDown: string
|
||||||
|
inventoryDayUpper: string
|
||||||
|
inventoryDown: string
|
||||||
|
inventoryUpper: string
|
||||||
|
fixedReplenishmentQuantity: string
|
||||||
|
availableInventory: string
|
||||||
|
transitInventory: string
|
||||||
|
manageInventory: string
|
||||||
|
fromInventory: string
|
||||||
|
manageBatches: string
|
||||||
|
transportStoreyBoardNum: string
|
||||||
|
transportBoxStoreyNum: string
|
||||||
|
transportBoxBoardNum: string
|
||||||
|
transportTemperature: string
|
||||||
|
transportTemperatureDown: string
|
||||||
|
transportTemperatureUpper: string
|
||||||
|
storageStoreyBoardNum: string
|
||||||
|
storageBoxStoreyNum: string
|
||||||
|
storageBoxBoardNum: string
|
||||||
|
storageTemperature: string
|
||||||
|
storageTemperatureDown: string
|
||||||
|
storageTemperatureUpper: string
|
||||||
|
qualityInspectionRatio: string
|
||||||
|
qualityInspectionFrequency: string
|
||||||
|
qualityInspectionReport: string
|
||||||
|
qualityInspectionReportStart: Date
|
||||||
|
qualityInspectionReportEnd: Date
|
||||||
|
qualityControl: string
|
||||||
|
qualityInspectionStandards: string
|
||||||
|
remark: string
|
||||||
|
reservedFields1: string
|
||||||
|
reservedFields2: string
|
||||||
|
reservedFields3: string
|
||||||
|
reservedFields4: string
|
||||||
|
reservedFields5: string
|
||||||
|
reservedFields6: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询商品列表
|
||||||
|
export const getProductPage = async (params) => {
|
||||||
|
return await request.get({ url: `/xxjj/product/page`, params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询商品详情
|
||||||
|
export const getProduct = async (id: number) => {
|
||||||
|
return await request.get({ url: `/xxjj/product/get?id=` + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增商品
|
||||||
|
export const createProduct = async (data: ProductVO) => {
|
||||||
|
return await request.post({ url: `/xxjj/product/create`, data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改商品
|
||||||
|
export const updateProduct = async (data: ProductVO) => {
|
||||||
|
return await request.put({ url: `/xxjj/product/update`, data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除商品
|
||||||
|
export const deleteProduct = async (id: number) => {
|
||||||
|
return await request.delete({ url: `/xxjj/product/delete?id=` + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出商品 Excel
|
||||||
|
export const exportProduct = async (params) => {
|
||||||
|
return await request.download({ url: `/xxjj/product/export-excel`, params })
|
||||||
|
}
|
Loading…
Reference in new issue