Browse Source

Merge remote-tracking branch 'origin/master'

master
刘忱 2 years ago
parent
commit
aab524a06d
  1. 2
      pom.xml
  2. 7
      win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm
  3. 8
      win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
  4. 1
      win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm
  5. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/itembasic/ErrorCodeConstants.java
  6. 102
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/ItembasicController.java
  7. 119
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicBaseVO.java
  8. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicCreateReqVO.java
  9. 125
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicExcelVO.java
  10. 103
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicExportReqVO.java
  11. 105
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicPageReqVO.java
  12. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicRespVO.java
  13. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicUpdateReqVO.java
  14. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itembasic/ItembasicConvert.java
  15. 194
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/itembasic/ItembasicDO.java
  16. 86
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itembasic/ItembasicMapper.java
  17. 70
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java
  18. 82
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  19. 12
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/itembasic/ItembasicMapper.xml
  20. 367
      win-module-wms/win-module-wms-biz/src/test/java/com/win/module/wms/service/itembasic/ItembasicServiceImplTest.java

2
pom.xml

@ -32,7 +32,7 @@
<properties>
<revision>3.0.0</revision>
<!-- Maven 相关 -->
<java.version>17</java.version>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>

7
win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm

@ -1,5 +1,6 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
@ -7,6 +8,7 @@
label-width="100px"
v-loading="formLoading"
>
<el-row>
#set ($dictMethods = [])## 使用到的 dict 字典方法
#foreach($column in $columns)
#if ($column.createOperation || $column.updateOperation)
@ -23,7 +25,9 @@
#elseif ($javaType == "Boolean")
#set ($dictMethod = "getBoolDictOptions")
#end
<el-col :span="12">
#if ($column.htmlType == "input" && !$column.primaryKey)## 忽略主键,不用在表单里
<el-form-item label="${comment}" prop="${javaField}">
<el-input v-model="formData.${javaField}" placeholder="请输入${comment}" />
</el-form-item>
@ -111,9 +115,12 @@
<el-input v-model="formData.${javaField}" type="textarea" placeholder="请输入${comment}" />
</el-form-item>
#end
</el-col>
#end
#end
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
<el-button @click="dialogVisible = false">取 消</el-button>

8
win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm

@ -90,14 +90,13 @@
#end
#end
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button type="info" plain @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button type="info" plain @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
#if ($permissionPrefix.length() <= 12)
<el-button type="primary" @click="openForm('create')" v-hasPermi="['${permissionPrefix}:create']">
#else
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['${permissionPrefix}:create']"
>
@ -106,7 +105,6 @@
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['${permissionPrefix}:export']"
@ -145,7 +143,7 @@
#end
#end
#end
<el-table-column label="操作" align="center" width="150px">
<el-table-column label="操作" align="center" width="150px" fixed="right">
<template #default="scope">
<el-button
link

1
win-module-infra/win-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm

@ -6,7 +6,6 @@
<template #actionMore>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['${permissionPrefix}:create']"
>

14
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/itembasic/ErrorCodeConstants.java

@ -0,0 +1,14 @@
package com.win.module.wms.enums.itembasic;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode ITEMBASIC_NOT_EXISTS = new ErrorCode(1_020_000_000, "物品基本信息不存在");
}

102
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/ItembasicController.java

@ -0,0 +1,102 @@
package com.win.module.wms.controller.admin.itembasic;
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.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.admin.itembasic.vo.*;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.service.itembasic.ItembasicService;
@Tag(name = "管理后台 - 物品基本信息")
@RestController
@RequestMapping("/wms/itembasic")
@Validated
public class ItembasicController {
@Resource
private ItembasicService itembasicService;
@PostMapping("/create")
@Operation(summary = "创建物品基本信息")
@PreAuthorize("@ss.hasPermission('wms:itembasic:create')")
public CommonResult<Long> createItembasic(@Valid @RequestBody ItembasicCreateReqVO createReqVO) {
return success(itembasicService.createItembasic(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物品基本信息")
@PreAuthorize("@ss.hasPermission('wms:itembasic:update')")
public CommonResult<Boolean> updateItembasic(@Valid @RequestBody ItembasicUpdateReqVO updateReqVO) {
itembasicService.updateItembasic(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物品基本信息")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:itembasic:delete')")
public CommonResult<Boolean> deleteItembasic(@RequestParam("id") Long id) {
itembasicService.deleteItembasic(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物品基本信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:itembasic:query')")
public CommonResult<ItembasicRespVO> getItembasic(@RequestParam("id") Long id) {
ItembasicDO itembasic = itembasicService.getItembasic(id);
return success(ItembasicConvert.INSTANCE.convert(itembasic));
}
@GetMapping("/list")
@Operation(summary = "获得物品基本信息列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('wms:itembasic:query')")
public CommonResult<List<ItembasicRespVO>> getItembasicList(@RequestParam("ids") Collection<Long> ids) {
List<ItembasicDO> list = itembasicService.getItembasicList(ids);
return success(ItembasicConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:itembasic:query')")
public CommonResult<PageResult<ItembasicRespVO>> getItembasicPage(@Valid ItembasicPageReqVO pageVO) {
PageResult<ItembasicDO> pageResult = itembasicService.getItembasicPage(pageVO);
return success(ItembasicConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物品基本信息 Excel")
@PreAuthorize("@ss.hasPermission('wms:itembasic:export')")
@OperateLog(type = EXPORT)
public void exportItembasicExcel(@Valid ItembasicExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ItembasicDO> list = itembasicService.getItembasicList(exportReqVO);
// 导出 Excel
List<ItembasicExcelVO> datas = ItembasicConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "物品基本信息.xls", "数据", ItembasicExcelVO.class, datas);
}
}

119
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicBaseVO.java

@ -0,0 +1,119 @@
package com.win.module.wms.controller.admin.itembasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 物品基本信息 Base VO提供给添加修改详细的子 VO 使用
* 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成
*/
@Data
public class ItembasicBaseVO {
@Schema(description = "id", example = "id")
private Long id;
@Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "代码不能为空")
private String code;
@Schema(description = "名称", example = "李四")
private String name;
@Schema(description = "描述1")
private String desc1;
@Schema(description = "描述2")
private String desc2;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "状态不能为空")
private String status;
@Schema(description = "计量单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "计量单位不能为空")
private String uom;
@Schema(description = "替代计量单位")
private String altUom;
@Schema(description = "是否标包", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否标包不能为空")
private Integer isStdPack;
@Schema(description = "可采购", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "可采购不能为空")
private Integer enableBuy;
@Schema(description = "可制造", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "可制造不能为空")
private Integer enableMake;
@Schema(description = "可委外加工", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "可委外加工不能为空")
private Integer enableOutsourcing;
@Schema(description = "回收件", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "回收件不能为空")
private Integer isRecycled;
@Schema(description = "虚零件", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "虚零件不能为空")
private Integer isPhantom;
@Schema(description = "ABC类", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "ABC类不能为空")
private String abcClass;
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "类型不能为空")
private String type;
@Schema(description = "种类")
private String category;
@Schema(description = "分组")
private String itemGroup;
@Schema(description = "颜色")
private String color;
@Schema(description = "配置")
private String configuration;
@Schema(description = "项目")
private String project;
@Schema(description = "质量等级")
private String eqLevel;
@Schema(description = "有效天数", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "有效天数不能为空")
private Integer validityDays;
@Schema(description = "是否可用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否可用不能为空")
private Integer available;
@Schema(description = "生效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime activeTime;
@Schema(description = "失效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime expireTime;
@Schema(description = "备注", example = "你猜")
private String remark;
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicCreateReqVO.java

@ -0,0 +1,14 @@
package com.win.module.wms.controller.admin.itembasic.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 ItembasicCreateReqVO extends ItembasicBaseVO {
}

125
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicExcelVO.java

@ -0,0 +1,125 @@
package com.win.module.wms.controller.admin.itembasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
/**
* 物品基本信息 Excel VO
*
* @author 超级管理员
*/
@Data
public class ItembasicExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述1")
private String desc1;
@ExcelProperty("描述2")
private String desc2;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("item_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String status;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty(value = "替代计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String altUom;
@ExcelProperty(value = "是否标包", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer isStdPack;
@ExcelProperty(value = "可采购", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer enableBuy;
@ExcelProperty(value = "可制造", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer enableMake;
@ExcelProperty(value = "可委外加工", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer enableOutsourcing;
@ExcelProperty(value = "回收件", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer isRecycled;
@ExcelProperty(value = "虚零件", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private Integer isPhantom;
@ExcelProperty(value = "ABC类", converter = DictConvert.class)
@DictFormat("abc_class") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String abcClass;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat("item_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type;
@ExcelProperty(value = "种类", converter = DictConvert.class)
@DictFormat("Item_category") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String category;
@ExcelProperty(value = "分组", converter = DictConvert.class)
@DictFormat("item_group") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String itemGroup;
@ExcelProperty(value = "颜色", converter = DictConvert.class)
@DictFormat("item_color") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String color;
@ExcelProperty(value = "配置", converter = DictConvert.class)
@DictFormat("item_configuration") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String configuration;
@ExcelProperty("项目")
private String project;
@ExcelProperty(value = "质量等级", converter = DictConvert.class)
@DictFormat("eq_level") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String eqLevel;
@ExcelProperty("有效天数")
private Integer validityDays;
@ExcelProperty("是否可用")
private Integer available;
@ExcelProperty("生效时间")
private LocalDateTime activeTime;
@ExcelProperty("失效时间")
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty("创建者ID")
private String creator;
}

103
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicExportReqVO.java

@ -0,0 +1,103 @@
package com.win.module.wms.controller.admin.itembasic.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物品基本信息 Excel 导出 Request VO,参数和 ItembasicPageReqVO 是一致的")
@Data
public class ItembasicExportReqVO {
@Schema(description = "代码")
private String code;
@Schema(description = "名称", example = "李四")
private String name;
@Schema(description = "描述1")
private String desc1;
@Schema(description = "描述2")
private String desc2;
@Schema(description = "状态", example = "2")
private String status;
@Schema(description = "计量单位")
private String uom;
@Schema(description = "替代计量单位")
private String altUom;
@Schema(description = "是否标包")
private Integer isStdPack;
@Schema(description = "可采购")
private Integer enableBuy;
@Schema(description = "可制造")
private Integer enableMake;
@Schema(description = "可委外加工")
private Integer enableOutsourcing;
@Schema(description = "回收件")
private Integer isRecycled;
@Schema(description = "虚零件")
private Integer isPhantom;
@Schema(description = "ABC类")
private String abcClass;
@Schema(description = "类型", example = "1")
private String type;
@Schema(description = "种类")
private String category;
@Schema(description = "分组")
private String itemGroup;
@Schema(description = "颜色")
private String color;
@Schema(description = "配置")
private String configuration;
@Schema(description = "项目")
private String project;
@Schema(description = "质量等级")
private String eqLevel;
@Schema(description = "有效天数")
private Integer validityDays;
@Schema(description = "是否可用")
private Integer available;
@Schema(description = "生效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] activeTime;
@Schema(description = "失效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] expireTime;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建者ID")
private String creator;
}

105
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicPageReqVO.java

@ -0,0 +1,105 @@
package com.win.module.wms.controller.admin.itembasic.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物品基本信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ItembasicPageReqVO extends PageParam {
@Schema(description = "代码")
private String code;
@Schema(description = "名称", example = "李四")
private String name;
@Schema(description = "描述1")
private String desc1;
@Schema(description = "描述2")
private String desc2;
@Schema(description = "状态", example = "2")
private String status;
@Schema(description = "计量单位")
private String uom;
@Schema(description = "替代计量单位")
private String altUom;
@Schema(description = "是否标包")
private Integer isStdPack;
@Schema(description = "可采购")
private Integer enableBuy;
@Schema(description = "可制造")
private Integer enableMake;
@Schema(description = "可委外加工")
private Integer enableOutsourcing;
@Schema(description = "回收件")
private Integer isRecycled;
@Schema(description = "虚零件")
private Integer isPhantom;
@Schema(description = "ABC类")
private String abcClass;
@Schema(description = "类型", example = "1")
private String type;
@Schema(description = "种类")
private String category;
@Schema(description = "分组")
private String itemGroup;
@Schema(description = "颜色")
private String color;
@Schema(description = "配置")
private String configuration;
@Schema(description = "项目")
private String project;
@Schema(description = "质量等级")
private String eqLevel;
@Schema(description = "有效天数")
private Integer validityDays;
@Schema(description = "是否可用")
private Integer available;
@Schema(description = "生效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] activeTime;
@Schema(description = "失效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] expireTime;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建者ID")
private String creator;
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicRespVO.java

@ -0,0 +1,19 @@
package com.win.module.wms.controller.admin.itembasic.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 ItembasicRespVO extends ItembasicBaseVO {
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "创建者ID")
private String creator;
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/admin/itembasic/vo/ItembasicUpdateReqVO.java

@ -0,0 +1,14 @@
package com.win.module.wms.controller.admin.itembasic.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 ItembasicUpdateReqVO extends ItembasicBaseVO {
}

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itembasic/ItembasicConvert.java

@ -0,0 +1,34 @@
package com.win.module.wms.convert.itembasic;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.controller.admin.itembasic.vo.*;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
/**
* 物品基本信息 Convert
*
* @author 超级管理员
*/
@Mapper
public interface ItembasicConvert {
ItembasicConvert INSTANCE = Mappers.getMapper(ItembasicConvert.class);
ItembasicDO convert(ItembasicCreateReqVO bean);
ItembasicDO convert(ItembasicUpdateReqVO bean);
ItembasicRespVO convert(ItembasicDO bean);
List<ItembasicRespVO> convertList(List<ItembasicDO> list);
PageResult<ItembasicRespVO> convertPage(PageResult<ItembasicDO> page);
List<ItembasicExcelVO> convertList02(List<ItembasicDO> list);
}

194
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/itembasic/ItembasicDO.java

@ -0,0 +1,194 @@
package com.win.module.wms.dal.dataobject.itembasic;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/**
* 物品基本信息 DO
*
* @author 超级管理员
*/
@TableName("basic_itembasic")
@KeySequence("basic_itembasic_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ItembasicDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 代码
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 描述1
*/
private String desc1;
/**
* 描述2
*/
private String desc2;
/**
* 状态
*
* 枚举 {@link TODO item_status 对应的类}
*/
private String status;
/**
* 计量单位
*
* 枚举 {@link TODO uom 对应的类}
*/
private String uom;
/**
* 替代计量单位
*
* 枚举 {@link TODO uom 对应的类}
*/
private String altUom;
/**
* 是否标包
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer isStdPack;
/**
* 可采购
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer enableBuy;
/**
* 可制造
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer enableMake;
/**
* 可委外加工
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer enableOutsourcing;
/**
* 回收件
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer isRecycled;
/**
* 虚零件
*
* 枚举 {@link TODO true_false 对应的类}
*/
private Integer isPhantom;
/**
* ABC类
*
* 枚举 {@link TODO abc_class 对应的类}
*/
private String abcClass;
/**
* 类型
*
* 枚举 {@link TODO item_type 对应的类}
*/
private String type;
/**
* 种类
*
* 枚举 {@link TODO Item_category 对应的类}
*/
private String category;
/**
* 分组
*
* 枚举 {@link TODO item_group 对应的类}
*/
private String itemGroup;
/**
* 颜色
*
* 枚举 {@link TODO item_color 对应的类}
*/
private String color;
/**
* 配置
*
* 枚举 {@link TODO item_configuration 对应的类}
*/
private String configuration;
/**
* 项目
*/
private String project;
/**
* 质量等级
*
* 枚举 {@link TODO eq_level 对应的类}
*/
private String eqLevel;
/**
* 有效天数
*/
private Integer validityDays;
/**
* 用户组代码
*/
private String userGroupCode;
/**
* 是否可用
*/
private Integer available;
/**
* 生效时间
*/
private LocalDateTime activeTime;
/**
* 失效时间
*/
private LocalDateTime expireTime;
/**
* 备注
*/
private String remark;
/**
* 删除时间
*/
private LocalDateTime deletionTime;
/**
* 删除者ID
*/
private String deleterId;
/**
* 扩展属性
*/
private String extraProperties;
/**
* 并发乐观锁
*/
private String concurrencyStamp;
/**
* 地点ID
*/
private String siteId;
}

86
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itembasic/ItembasicMapper.java

@ -0,0 +1,86 @@
package com.win.module.wms.dal.mysql.itembasic;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import org.apache.ibatis.annotations.Mapper;
import com.win.module.wms.controller.admin.itembasic.vo.*;
/**
* 物品基本信息 Mapper
*
* @author 超级管理员
*/
@Mapper
public interface ItembasicMapper extends BaseMapperX<ItembasicDO> {
default PageResult<ItembasicDO> selectPage(ItembasicPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ItembasicDO>()
.eqIfPresent(ItembasicDO::getCode, reqVO.getCode())
.likeIfPresent(ItembasicDO::getName, reqVO.getName())
.likeIfPresent(ItembasicDO::getDesc1, reqVO.getDesc1())
.likeIfPresent(ItembasicDO::getDesc2, reqVO.getDesc2())
.eqIfPresent(ItembasicDO::getStatus, reqVO.getStatus())
.eqIfPresent(ItembasicDO::getUom, reqVO.getUom())
.eqIfPresent(ItembasicDO::getAltUom, reqVO.getAltUom())
.eqIfPresent(ItembasicDO::getIsStdPack, reqVO.getIsStdPack())
.eqIfPresent(ItembasicDO::getEnableBuy, reqVO.getEnableBuy())
.eqIfPresent(ItembasicDO::getEnableMake, reqVO.getEnableMake())
.eqIfPresent(ItembasicDO::getEnableOutsourcing, reqVO.getEnableOutsourcing())
.eqIfPresent(ItembasicDO::getIsRecycled, reqVO.getIsRecycled())
.eqIfPresent(ItembasicDO::getIsPhantom, reqVO.getIsPhantom())
.eqIfPresent(ItembasicDO::getAbcClass, reqVO.getAbcClass())
.eqIfPresent(ItembasicDO::getType, reqVO.getType())
.eqIfPresent(ItembasicDO::getCategory, reqVO.getCategory())
.eqIfPresent(ItembasicDO::getItemGroup, reqVO.getItemGroup())
.eqIfPresent(ItembasicDO::getColor, reqVO.getColor())
.eqIfPresent(ItembasicDO::getConfiguration, reqVO.getConfiguration())
.eqIfPresent(ItembasicDO::getProject, reqVO.getProject())
.eqIfPresent(ItembasicDO::getEqLevel, reqVO.getEqLevel())
.eqIfPresent(ItembasicDO::getValidityDays, reqVO.getValidityDays())
.eqIfPresent(ItembasicDO::getAvailable, reqVO.getAvailable())
.betweenIfPresent(ItembasicDO::getActiveTime, reqVO.getActiveTime())
.betweenIfPresent(ItembasicDO::getExpireTime, reqVO.getExpireTime())
.eqIfPresent(ItembasicDO::getRemark, reqVO.getRemark())
.betweenIfPresent(ItembasicDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ItembasicDO::getCreator, reqVO.getCreator())
.orderByDesc(ItembasicDO::getId));
}
default List<ItembasicDO> selectList(ItembasicExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ItembasicDO>()
.eqIfPresent(ItembasicDO::getCode, reqVO.getCode())
.likeIfPresent(ItembasicDO::getName, reqVO.getName())
.likeIfPresent(ItembasicDO::getDesc1, reqVO.getDesc1())
.likeIfPresent(ItembasicDO::getDesc2, reqVO.getDesc2())
.eqIfPresent(ItembasicDO::getStatus, reqVO.getStatus())
.eqIfPresent(ItembasicDO::getUom, reqVO.getUom())
.eqIfPresent(ItembasicDO::getAltUom, reqVO.getAltUom())
.eqIfPresent(ItembasicDO::getIsStdPack, reqVO.getIsStdPack())
.eqIfPresent(ItembasicDO::getEnableBuy, reqVO.getEnableBuy())
.eqIfPresent(ItembasicDO::getEnableMake, reqVO.getEnableMake())
.eqIfPresent(ItembasicDO::getEnableOutsourcing, reqVO.getEnableOutsourcing())
.eqIfPresent(ItembasicDO::getIsRecycled, reqVO.getIsRecycled())
.eqIfPresent(ItembasicDO::getIsPhantom, reqVO.getIsPhantom())
.eqIfPresent(ItembasicDO::getAbcClass, reqVO.getAbcClass())
.eqIfPresent(ItembasicDO::getType, reqVO.getType())
.eqIfPresent(ItembasicDO::getCategory, reqVO.getCategory())
.eqIfPresent(ItembasicDO::getItemGroup, reqVO.getItemGroup())
.eqIfPresent(ItembasicDO::getColor, reqVO.getColor())
.eqIfPresent(ItembasicDO::getConfiguration, reqVO.getConfiguration())
.eqIfPresent(ItembasicDO::getProject, reqVO.getProject())
.eqIfPresent(ItembasicDO::getEqLevel, reqVO.getEqLevel())
.eqIfPresent(ItembasicDO::getValidityDays, reqVO.getValidityDays())
.eqIfPresent(ItembasicDO::getAvailable, reqVO.getAvailable())
.betweenIfPresent(ItembasicDO::getActiveTime, reqVO.getActiveTime())
.betweenIfPresent(ItembasicDO::getExpireTime, reqVO.getExpireTime())
.eqIfPresent(ItembasicDO::getRemark, reqVO.getRemark())
.betweenIfPresent(ItembasicDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ItembasicDO::getCreator, reqVO.getCreator())
.orderByDesc(ItembasicDO::getId));
}
}

70
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java

@ -0,0 +1,70 @@
package com.win.module.wms.service.itembasic;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.admin.itembasic.vo.*;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.framework.common.pojo.PageResult;
/**
* 物品基本信息 Service 接口
*
* @author 超级管理员
*/
public interface ItembasicService {
/**
* 创建物品基本信息
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createItembasic(@Valid ItembasicCreateReqVO createReqVO);
/**
* 更新物品基本信息
*
* @param updateReqVO 更新信息
*/
void updateItembasic(@Valid ItembasicUpdateReqVO updateReqVO);
/**
* 删除物品基本信息
*
* @param id 编号
*/
void deleteItembasic(Long id);
/**
* 获得物品基本信息
*
* @param id 编号
* @return 物品基本信息
*/
ItembasicDO getItembasic(Long id);
/**
* 获得物品基本信息列表
*
* @param ids 编号
* @return 物品基本信息列表
*/
List<ItembasicDO> getItembasicList(Collection<Long> ids);
/**
* 获得物品基本信息分页
*
* @param pageReqVO 分页查询
* @return 物品基本信息分页
*/
PageResult<ItembasicDO> getItembasicPage(ItembasicPageReqVO pageReqVO);
/**
* 获得物品基本信息列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 物品基本信息列表
*/
List<ItembasicDO> getItembasicList(ItembasicExportReqVO exportReqVO);
}

82
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java

@ -0,0 +1,82 @@
package com.win.module.wms.service.itembasic;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.controller.admin.itembasic.vo.*;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.dal.mysql.itembasic.ItembasicMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.itembasic.ErrorCodeConstants.ITEMBASIC_NOT_EXISTS;
/**
* 物品基本信息 Service 实现类
*
* @author 超级管理员
*/
@Service
@Validated
public class ItembasicServiceImpl implements ItembasicService {
@Resource
private ItembasicMapper itembasicMapper;
@Override
public Long createItembasic(ItembasicCreateReqVO createReqVO) {
// 插入
ItembasicDO itembasic = ItembasicConvert.INSTANCE.convert(createReqVO);
itembasicMapper.insert(itembasic);
// 返回
return itembasic.getId();
}
@Override
public void updateItembasic(ItembasicUpdateReqVO updateReqVO) {
// 校验存在
validateItembasicExists(updateReqVO.getId());
// 更新
ItembasicDO updateObj = ItembasicConvert.INSTANCE.convert(updateReqVO);
itembasicMapper.updateById(updateObj);
}
@Override
public void deleteItembasic(Long id) {
// 校验存在
validateItembasicExists(id);
// 删除
itembasicMapper.deleteById(id);
}
private void validateItembasicExists(Long id) {
if (itembasicMapper.selectById(id) == null) {
throw exception(ITEMBASIC_NOT_EXISTS);
}
}
@Override
public ItembasicDO getItembasic(Long id) {
return itembasicMapper.selectById(id);
}
@Override
public List<ItembasicDO> getItembasicList(Collection<Long> ids) {
return itembasicMapper.selectBatchIds(ids);
}
@Override
public PageResult<ItembasicDO> getItembasicPage(ItembasicPageReqVO pageReqVO) {
return itembasicMapper.selectPage(pageReqVO);
}
@Override
public List<ItembasicDO> getItembasicList(ItembasicExportReqVO exportReqVO) {
return itembasicMapper.selectList(exportReqVO);
}
}

12
win-module-wms/win-module-wms-biz/src/main/resources/mapper/itembasic/ItembasicMapper.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.itembasic.ItembasicMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

367
win-module-wms/win-module-wms-biz/src/test/java/com/win/module/wms/service/itembasic/ItembasicServiceImplTest.java

@ -0,0 +1,367 @@
package com.win.module.wms.service.itembasic;
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.win.framework.test.core.ut.BaseDbUnitTest;
import com.win.module.wms.controller.admin.itembasic.vo.*;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.mysql.itembasic.ItembasicMapper;
import com.win.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.win.framework.test.core.util.AssertUtils.*;
import static com.win.framework.test.core.util.RandomUtils.*;
import static com.win.framework.common.util.date.LocalDateTimeUtils.*;
import static com.win.framework.common.util.object.ObjectUtils.*;
import static com.win.framework.common.util.date.DateUtils.*;
import static com.win.module.wms.enums.itembasic.ErrorCodeConstants.ITEMBASIC_NOT_EXISTS;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link ItembasicServiceImpl} 的单元测试类
*
* @author 超级管理员
*/
@Import(ItembasicServiceImpl.class)
public class ItembasicServiceImplTest extends BaseDbUnitTest {
@Resource
private ItembasicServiceImpl itembasicService;
@Resource
private ItembasicMapper itembasicMapper;
@Test
public void testCreateItembasic_success() {
// 准备参数
ItembasicCreateReqVO reqVO = randomPojo(ItembasicCreateReqVO.class);
// 调用
Long itembasicId = itembasicService.createItembasic(reqVO);
// 断言
assertNotNull(itembasicId);
// 校验记录的属性是否正确
ItembasicDO itembasic = itembasicMapper.selectById(itembasicId);
assertPojoEquals(reqVO, itembasic);
}
@Test
public void testUpdateItembasic_success() {
// mock 数据
ItembasicDO dbItembasic = randomPojo(ItembasicDO.class);
itembasicMapper.insert(dbItembasic);// @Sql: 先插入出一条存在的数据
// 准备参数
ItembasicUpdateReqVO reqVO = randomPojo(ItembasicUpdateReqVO.class, o -> {
o.setId(dbItembasic.getId()); // 设置更新的 ID
});
// 调用
itembasicService.updateItembasic(reqVO);
// 校验是否更新正确
ItembasicDO itembasic = itembasicMapper.selectById(reqVO.getId()); // 获取最新的
assertPojoEquals(reqVO, itembasic);
}
@Test
public void testUpdateItembasic_notExists() {
// 准备参数
ItembasicUpdateReqVO reqVO = randomPojo(ItembasicUpdateReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> itembasicService.updateItembasic(reqVO), ITEMBASIC_NOT_EXISTS);
}
@Test
public void testDeleteItembasic_success() {
// mock 数据
ItembasicDO dbItembasic = randomPojo(ItembasicDO.class);
itembasicMapper.insert(dbItembasic);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbItembasic.getId();
// 调用
itembasicService.deleteItembasic(id);
// 校验数据不存在了
assertNull(itembasicMapper.selectById(id));
}
@Test
public void testDeleteItembasic_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> itembasicService.deleteItembasic(id), ITEMBASIC_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetItembasicPage() {
// mock 数据
ItembasicDO dbItembasic = randomPojo(ItembasicDO.class, o -> { // 等会查询到
o.setCode(null);
o.setName(null);
o.setDesc1(null);
o.setDesc2(null);
o.setStatus(null);
o.setUom(null);
o.setAltUom(null);
o.setIsStdPack(null);
o.setEnableBuy(null);
o.setEnableMake(null);
o.setEnableOutsourcing(null);
o.setIsRecycled(null);
o.setIsPhantom(null);
o.setAbcClass(null);
o.setType(null);
o.setCategory(null);
o.setItemGroup(null);
o.setColor(null);
o.setConfiguration(null);
o.setProject(null);
o.setEqLevel(null);
o.setValidityDays(null);
o.setAvailable(null);
o.setActiveTime(null);
o.setExpireTime(null);
o.setRemark(null);
o.setCreateTime(null);
o.setCreator(null);
});
itembasicMapper.insert(dbItembasic);
// 测试 code 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCode(null)));
// 测试 name 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setName(null)));
// 测试 desc1 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc1(null)));
// 测试 desc2 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc2(null)));
// 测试 status 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setStatus(null)));
// 测试 uom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setUom(null)));
// 测试 altUom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAltUom(null)));
// 测试 isStdPack 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsStdPack(null)));
// 测试 enableBuy 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableBuy(null)));
// 测试 enableMake 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableMake(null)));
// 测试 enableOutsourcing 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableOutsourcing(null)));
// 测试 isRecycled 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsRecycled(null)));
// 测试 isPhantom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsPhantom(null)));
// 测试 abcClass 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAbcClass(null)));
// 测试 type 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setType(null)));
// 测试 category 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCategory(null)));
// 测试 itemGroup 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setItemGroup(null)));
// 测试 color 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setColor(null)));
// 测试 configuration 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setConfiguration(null)));
// 测试 project 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setProject(null)));
// 测试 eqLevel 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEqLevel(null)));
// 测试 validityDays 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setValidityDays(null)));
// 测试 available 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAvailable(null)));
// 测试 activeTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setActiveTime(null)));
// 测试 expireTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setExpireTime(null)));
// 测试 remark 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setRemark(null)));
// 测试 createTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreateTime(null)));
// 测试 creator 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreator(null)));
// 准备参数
ItembasicPageReqVO reqVO = new ItembasicPageReqVO();
reqVO.setCode(null);
reqVO.setName(null);
reqVO.setDesc1(null);
reqVO.setDesc2(null);
reqVO.setStatus(null);
reqVO.setUom(null);
reqVO.setAltUom(null);
reqVO.setIsStdPack(null);
reqVO.setEnableBuy(null);
reqVO.setEnableMake(null);
reqVO.setEnableOutsourcing(null);
reqVO.setIsRecycled(null);
reqVO.setIsPhantom(null);
reqVO.setAbcClass(null);
reqVO.setType(null);
reqVO.setCategory(null);
reqVO.setItemGroup(null);
reqVO.setColor(null);
reqVO.setConfiguration(null);
reqVO.setProject(null);
reqVO.setEqLevel(null);
reqVO.setValidityDays(null);
reqVO.setAvailable(null);
reqVO.setActiveTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setExpireTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setRemark(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setCreator(null);
// 调用
PageResult<ItembasicDO> pageResult = itembasicService.getItembasicPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbItembasic, pageResult.getList().get(0));
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetItembasicList() {
// mock 数据
ItembasicDO dbItembasic = randomPojo(ItembasicDO.class, o -> { // 等会查询到
o.setCode(null);
o.setName(null);
o.setDesc1(null);
o.setDesc2(null);
o.setStatus(null);
o.setUom(null);
o.setAltUom(null);
o.setIsStdPack(null);
o.setEnableBuy(null);
o.setEnableMake(null);
o.setEnableOutsourcing(null);
o.setIsRecycled(null);
o.setIsPhantom(null);
o.setAbcClass(null);
o.setType(null);
o.setCategory(null);
o.setItemGroup(null);
o.setColor(null);
o.setConfiguration(null);
o.setProject(null);
o.setEqLevel(null);
o.setValidityDays(null);
o.setAvailable(null);
o.setActiveTime(null);
o.setExpireTime(null);
o.setRemark(null);
o.setCreateTime(null);
o.setCreator(null);
});
itembasicMapper.insert(dbItembasic);
// 测试 code 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCode(null)));
// 测试 name 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setName(null)));
// 测试 desc1 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc1(null)));
// 测试 desc2 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc2(null)));
// 测试 status 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setStatus(null)));
// 测试 uom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setUom(null)));
// 测试 altUom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAltUom(null)));
// 测试 isStdPack 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsStdPack(null)));
// 测试 enableBuy 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableBuy(null)));
// 测试 enableMake 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableMake(null)));
// 测试 enableOutsourcing 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableOutsourcing(null)));
// 测试 isRecycled 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsRecycled(null)));
// 测试 isPhantom 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsPhantom(null)));
// 测试 abcClass 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAbcClass(null)));
// 测试 type 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setType(null)));
// 测试 category 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCategory(null)));
// 测试 itemGroup 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setItemGroup(null)));
// 测试 color 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setColor(null)));
// 测试 configuration 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setConfiguration(null)));
// 测试 project 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setProject(null)));
// 测试 eqLevel 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEqLevel(null)));
// 测试 validityDays 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setValidityDays(null)));
// 测试 available 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAvailable(null)));
// 测试 activeTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setActiveTime(null)));
// 测试 expireTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setExpireTime(null)));
// 测试 remark 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setRemark(null)));
// 测试 createTime 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreateTime(null)));
// 测试 creator 不匹配
itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreator(null)));
// 准备参数
ItembasicExportReqVO reqVO = new ItembasicExportReqVO();
reqVO.setCode(null);
reqVO.setName(null);
reqVO.setDesc1(null);
reqVO.setDesc2(null);
reqVO.setStatus(null);
reqVO.setUom(null);
reqVO.setAltUom(null);
reqVO.setIsStdPack(null);
reqVO.setEnableBuy(null);
reqVO.setEnableMake(null);
reqVO.setEnableOutsourcing(null);
reqVO.setIsRecycled(null);
reqVO.setIsPhantom(null);
reqVO.setAbcClass(null);
reqVO.setType(null);
reqVO.setCategory(null);
reqVO.setItemGroup(null);
reqVO.setColor(null);
reqVO.setConfiguration(null);
reqVO.setProject(null);
reqVO.setEqLevel(null);
reqVO.setValidityDays(null);
reqVO.setAvailable(null);
reqVO.setActiveTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setExpireTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setRemark(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setCreator(null);
// 调用
List<ItembasicDO> list = itembasicService.getItembasicList(reqVO);
// 断言
assertEquals(1, list.size());
assertPojoEquals(dbItembasic, list.get(0));
}
}
Loading…
Cancel
Save