add auto code
parent
1ea1f11eb9
commit
f1c0533899
@ -0,0 +1,94 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
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 java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.service.autocode.AutocodePartService;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 编码规则组成")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/erp/autocode-part")
|
||||||
|
@Validated
|
||||||
|
public class AutocodePartController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodePartService autocodePartService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建编码规则组成")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:create')")
|
||||||
|
public CommonResult<Long> createAutocodePart(@Valid @RequestBody AutocodePartSaveReqVO createReqVO) {
|
||||||
|
return success(autocodePartService.createAutocodePart(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新编码规则组成")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:update')")
|
||||||
|
public CommonResult<Boolean> updateAutocodePart(@Valid @RequestBody AutocodePartSaveReqVO updateReqVO) {
|
||||||
|
autocodePartService.updateAutocodePart(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除编码规则组成")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:delete')")
|
||||||
|
public CommonResult<Boolean> deleteAutocodePart(@RequestParam("id") Long id) {
|
||||||
|
autocodePartService.deleteAutocodePart(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得编码规则组成")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:query')")
|
||||||
|
public CommonResult<AutocodePartRespVO> getAutocodePart(@RequestParam("id") Long id) {
|
||||||
|
AutocodePartDO autocodePart = autocodePartService.getAutocodePart(id);
|
||||||
|
return success(BeanUtils.toBean(autocodePart, AutocodePartRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得编码规则组成分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:query')")
|
||||||
|
public CommonResult<PageResult<AutocodePartRespVO>> getAutocodePartPage(@Valid AutocodePartPageReqVO pageReqVO) {
|
||||||
|
PageResult<AutocodePartDO> pageResult = autocodePartService.getAutocodePartPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, AutocodePartRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出编码规则组成 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-part:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportAutocodePartExcel(@Valid AutocodePartPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<AutocodePartDO> list = autocodePartService.getAutocodePartPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "编码规则组成.xls", "数据", AutocodePartRespVO.class,
|
||||||
|
BeanUtils.toBean(list, AutocodePartRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,121 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
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 java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRecordDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.service.autocode.AutocodeRecordService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 编码生成记录")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/erp/autocode-record")
|
||||||
|
@Validated
|
||||||
|
public class AutocodeRecordController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRecordService autocodeRecordService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建编码生成记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:create')")
|
||||||
|
public CommonResult<Long> createAutocodeRecord(@Valid @RequestBody AutocodeRecordSaveReqVO createReqVO) {
|
||||||
|
return success(autocodeRecordService.createAutocodeRecord(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新编码生成记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:update')")
|
||||||
|
public CommonResult<Boolean> updateAutocodeRecord(@Valid @RequestBody AutocodeRecordSaveReqVO updateReqVO) {
|
||||||
|
autocodeRecordService.updateAutocodeRecord(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除编码生成记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:delete')")
|
||||||
|
public CommonResult<Boolean> deleteAutocodeRecord(@RequestParam("id") Long id) {
|
||||||
|
autocodeRecordService.deleteAutocodeRecord(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得编码生成记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:query')")
|
||||||
|
public CommonResult<AutocodeRecordRespVO> getAutocodeRecord(@RequestParam("id") Long id) {
|
||||||
|
AutocodeRecordDO autocodeRecord = autocodeRecordService.getAutocodeRecord(id);
|
||||||
|
return success(BeanUtils.toBean(autocodeRecord, AutocodeRecordRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得编码生成记录分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:query')")
|
||||||
|
public CommonResult<PageResult<AutocodeRecordRespVO>> getAutocodeRecordPage(@Valid AutocodeRecordPageReqVO pageReqVO) {
|
||||||
|
PageResult<AutocodeRecordDO> pageResult = autocodeRecordService.getAutocodeRecordPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, AutocodeRecordRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出编码生成记录 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-record:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportAutocodeRecordExcel(@Valid AutocodeRecordPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<AutocodeRecordDO> list = autocodeRecordService.getAutocodeRecordPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "编码生成记录.xls", "数据", AutocodeRecordRespVO.class,
|
||||||
|
BeanUtils.toBean(list, AutocodeRecordRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AutoCodeUtil autoCodeUtil;
|
||||||
|
|
||||||
|
@Operation(summary = "获取一个自动生成的编码")
|
||||||
|
@Parameters({
|
||||||
|
@Parameter(name = "ruleCode", description = "规则编码", required = true),
|
||||||
|
@Parameter(name = "inputCharacter", description = "输入字符", required = false)
|
||||||
|
})
|
||||||
|
@GetMapping(value = "/getAutoCode")
|
||||||
|
public CommonResult<String> getAutoCode(@RequestParam("ruleCode") String ruleCode, String inputCharacter){
|
||||||
|
String code = autoCodeUtil.genSerialCode(ruleCode,inputCharacter);
|
||||||
|
return CommonResult.success(code);
|
||||||
|
}
|
||||||
|
@Operation(summary = "测试自动生成的编码")
|
||||||
|
@Parameters({
|
||||||
|
@Parameter(name = "ruleCode", description = "规则编码", required = true),
|
||||||
|
@Parameter(name = "inputCharacter", description = "输入字符", required = false)
|
||||||
|
})
|
||||||
|
@GetMapping(value = "/getTest")
|
||||||
|
public CommonResult<String> getAutoCodeTest(@RequestParam("ruleCode") String ruleCode,String inputCharacter){
|
||||||
|
String code = autoCodeUtil.genSerialCodeTest(ruleCode,inputCharacter);
|
||||||
|
return CommonResult.success(code);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,106 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
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 java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRuleDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.service.autocode.AutocodeRuleService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 编码规则")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/erp/autocode-rule")
|
||||||
|
@Validated
|
||||||
|
public class AutocodeRuleController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRuleService autocodeRuleService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建编码规则")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:create')")
|
||||||
|
public CommonResult<Long> createAutocodeRule(@Valid @RequestBody AutocodeRuleSaveReqVO createReqVO) {
|
||||||
|
return success(autocodeRuleService.createAutocodeRule(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新编码规则")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:update')")
|
||||||
|
public CommonResult<Boolean> updateAutocodeRule(@Valid @RequestBody AutocodeRuleSaveReqVO updateReqVO) {
|
||||||
|
autocodeRuleService.updateAutocodeRule(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除编码规则")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:delete')")
|
||||||
|
public CommonResult<Boolean> deleteAutocodeRule(@RequestParam("id") Long id) {
|
||||||
|
autocodeRuleService.deleteAutocodeRule(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得编码规则")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:query')")
|
||||||
|
public CommonResult<AutocodeRuleRespVO> getAutocodeRule(@RequestParam("id") Long id) {
|
||||||
|
AutocodeRuleDO autocodeRule = autocodeRuleService.getAutocodeRule(id);
|
||||||
|
return success(BeanUtils.toBean(autocodeRule, AutocodeRuleRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得编码规则分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:query')")
|
||||||
|
public CommonResult<PageResult<AutocodeRuleRespVO>> getAutocodeRulePage(@Valid AutocodeRulePageReqVO pageReqVO) {
|
||||||
|
PageResult<AutocodeRuleDO> pageResult = autocodeRuleService.getAutocodeRulePage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, AutocodeRuleRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出编码规则 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportAutocodeRuleExcel(@Valid AutocodeRulePageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<AutocodeRuleDO> list = autocodeRuleService.getAutocodeRulePage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "编码规则.xls", "数据", AutocodeRuleRespVO.class,
|
||||||
|
BeanUtils.toBean(list, AutocodeRuleRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 子表(编码规则组成) ====================
|
||||||
|
|
||||||
|
@GetMapping("/autocode-part/list-by-rule-id")
|
||||||
|
@Operation(summary = "获得编码规则组成列表")
|
||||||
|
@Parameter(name = "ruleId", description = "规则ID")
|
||||||
|
@PreAuthorize("@ss.hasPermission('erp:autocode-rule:query')")
|
||||||
|
public CommonResult<List<AutocodePartDO>> getAutocodePartListByRuleId(@RequestParam("ruleId") Long ruleId) {
|
||||||
|
return success(autocodeRuleService.getAutocodePartListByRuleId(ruleId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
public enum CycleMethodMnum {
|
||||||
|
|
||||||
|
CYCLE_METHOD_YEAR("YEAR","按年"),
|
||||||
|
CYCLE_METHOD_MONTH("MONTH","按月"),
|
||||||
|
CYCLE_METHOD_DAY("DAY","按日"),
|
||||||
|
CYCLE_METHOD_HOUR("HOUR","按小时"),
|
||||||
|
CYCLE_METHOD_MINUTE("MINUTE","按分钟"),
|
||||||
|
CYCLE_METHOD_OTHER("OTHER","其他");
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
CycleMethodMnum(String code,String name){
|
||||||
|
this.code=code;
|
||||||
|
this.name=name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CycleMethodMnum getByCode(String code){
|
||||||
|
for(CycleMethodMnum value : CycleMethodMnum.values()){
|
||||||
|
if(value.getCode().equals(code)){
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CYCLE_METHOD_OTHER;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
public enum PartTypeEnum {
|
||||||
|
|
||||||
|
PART_TYPE_INPUTCHAR("INPUTCHAR","传入字符",0),
|
||||||
|
PART_TYPE_NOWDATE("NOWDATE","当前日期",1),
|
||||||
|
PART_TYPE_FIXCHAR("FIXCHAR","固定字符",2),
|
||||||
|
PART_TYPE_SERIALNO("SERIALNO","流水号",3),
|
||||||
|
PART_TYPE_OTHER("OTHER","其他",99);
|
||||||
|
|
||||||
|
private final String code;
|
||||||
|
private final String name;
|
||||||
|
private final Integer beanIndex;
|
||||||
|
|
||||||
|
PartTypeEnum(String code,String name,Integer beanIndex){
|
||||||
|
this.code = code;
|
||||||
|
this.name = name;
|
||||||
|
this.beanIndex = beanIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getBeanIndex() {
|
||||||
|
return beanIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PartTypeEnum getByCode(String code){
|
||||||
|
for(PartTypeEnum value: PartTypeEnum.values()){
|
||||||
|
if(value.getCode().equals(code)){
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PART_TYPE_OTHER;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Order(2)
|
||||||
|
public class PartTypeFixCharHandler implements PartTypeTemplate {
|
||||||
|
@Override
|
||||||
|
public String partHandle(AutocodePartDO sysAutoCodePart) {
|
||||||
|
return sysAutoCodePart.getFixCharacter();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class PartTypeHandler {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
List<PartTypeTemplate> partTypeTemplates;
|
||||||
|
|
||||||
|
public String choiceExecute(AutocodePartDO sysAutoCodePart){
|
||||||
|
String partType = sysAutoCodePart.getPartType();
|
||||||
|
return partTypeTemplates.get(PartTypeEnum.getByCode(partType).getBeanIndex()).partHandle(sysAutoCodePart);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Order(0)
|
||||||
|
public class PartTypeInputCharHandler implements PartTypeTemplate {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String partHandle(AutocodePartDO sysAutoCodePart) {
|
||||||
|
String inputCharacter = sysAutoCodePart.getInputCharacter();
|
||||||
|
Assert.notNull(inputCharacter,"编码规则传入字符不能为空!");
|
||||||
|
Assert.isTrue(inputCharacter.length() == sysAutoCodePart.getPartLength(),"传入字符的长度错误!");
|
||||||
|
return inputCharacter;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Order(1)
|
||||||
|
public class PartTypeNowDateHandler implements PartTypeTemplate {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String partHandle(AutocodePartDO sysAutoCodePart) {
|
||||||
|
String formatDate = sysAutoCodePart.getDatetimeFormat();
|
||||||
|
return DateTimeFormatter.ofPattern(formatDate).format(LocalDateTime.now());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.util;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
|
||||||
|
public interface PartTypeTemplate {
|
||||||
|
/**
|
||||||
|
* 分段的处理规则
|
||||||
|
* @param autocodePartDO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String partHandle(AutocodePartDO autocodePartDO);
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.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 AutocodePartPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", example = "11153")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "分段序号")
|
||||||
|
private Integer partIndex;
|
||||||
|
|
||||||
|
@Schema(description = "分段类型", example = "1")
|
||||||
|
private String partType;
|
||||||
|
|
||||||
|
@Schema(description = "分段编号")
|
||||||
|
private String partCode;
|
||||||
|
|
||||||
|
@Schema(description = "分段名称", example = "芋艿")
|
||||||
|
private String partName;
|
||||||
|
|
||||||
|
@Schema(description = "分段长度")
|
||||||
|
private Integer partLength;
|
||||||
|
|
||||||
|
@Schema(description = "日期时间格式")
|
||||||
|
private String datetimeFormat;
|
||||||
|
|
||||||
|
@Schema(description = "输入字符")
|
||||||
|
private String inputCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "固定字符")
|
||||||
|
private String fixCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "流水号起始值")
|
||||||
|
private Integer seriaStartNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号步长")
|
||||||
|
private Integer seriaStep;
|
||||||
|
|
||||||
|
@Schema(description = "流水号当前值")
|
||||||
|
private Integer seriaNowNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号是否循环")
|
||||||
|
private String cycleFlag;
|
||||||
|
|
||||||
|
@Schema(description = "循环方式")
|
||||||
|
private String cycleMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码规则组成 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class AutocodePartRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19165")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11153")
|
||||||
|
@ExcelProperty("规则ID")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "分段序号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("分段序号")
|
||||||
|
private Integer partIndex;
|
||||||
|
|
||||||
|
@Schema(description = "分段类型", example = "1")
|
||||||
|
@ExcelProperty("分段类型")
|
||||||
|
private String partType;
|
||||||
|
|
||||||
|
@Schema(description = "分段编号")
|
||||||
|
@ExcelProperty("分段编号")
|
||||||
|
private String partCode;
|
||||||
|
|
||||||
|
@Schema(description = "分段名称", example = "芋艿")
|
||||||
|
@ExcelProperty("分段名称")
|
||||||
|
private String partName;
|
||||||
|
|
||||||
|
@Schema(description = "分段长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("分段长度")
|
||||||
|
private Integer partLength;
|
||||||
|
|
||||||
|
@Schema(description = "日期时间格式")
|
||||||
|
@ExcelProperty("日期时间格式")
|
||||||
|
private String datetimeFormat;
|
||||||
|
|
||||||
|
@Schema(description = "输入字符")
|
||||||
|
@ExcelProperty("输入字符")
|
||||||
|
private String inputCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "固定字符")
|
||||||
|
@ExcelProperty("固定字符")
|
||||||
|
private String fixCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "流水号起始值")
|
||||||
|
@ExcelProperty("流水号起始值")
|
||||||
|
private Integer seriaStartNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号步长")
|
||||||
|
@ExcelProperty("流水号步长")
|
||||||
|
private Integer seriaStep;
|
||||||
|
|
||||||
|
@Schema(description = "流水号当前值")
|
||||||
|
@ExcelProperty("流水号当前值")
|
||||||
|
private Integer seriaNowNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号是否循环")
|
||||||
|
@ExcelProperty("流水号是否循环")
|
||||||
|
private String cycleFlag;
|
||||||
|
|
||||||
|
@Schema(description = "循环方式")
|
||||||
|
@ExcelProperty(value = "循环方式", converter = DictConvert.class)
|
||||||
|
@DictFormat("erp__autocode_cyclemethod") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String cycleMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
|
||||||
|
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码规则组成新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class AutocodePartSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19165")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11153")
|
||||||
|
@NotNull(message = "规则ID不能为空")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "分段序号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "分段序号不能为空")
|
||||||
|
private Integer partIndex;
|
||||||
|
|
||||||
|
@Schema(description = "分段类型", example = "1")
|
||||||
|
private String partType;
|
||||||
|
|
||||||
|
@Schema(description = "分段编号")
|
||||||
|
private String partCode;
|
||||||
|
|
||||||
|
@Schema(description = "分段名称", example = "芋艿")
|
||||||
|
private String partName;
|
||||||
|
|
||||||
|
@Schema(description = "分段长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "分段长度不能为空")
|
||||||
|
private Integer partLength;
|
||||||
|
|
||||||
|
@Schema(description = "日期时间格式")
|
||||||
|
private String datetimeFormat;
|
||||||
|
|
||||||
|
@Schema(description = "输入字符")
|
||||||
|
private String inputCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "固定字符")
|
||||||
|
private String fixCharacter;
|
||||||
|
|
||||||
|
@Schema(description = "流水号起始值")
|
||||||
|
private Integer seriaStartNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号步长")
|
||||||
|
private Integer seriaStep;
|
||||||
|
|
||||||
|
@Schema(description = "流水号当前值")
|
||||||
|
private Integer seriaNowNo;
|
||||||
|
|
||||||
|
@Schema(description = "流水号是否循环")
|
||||||
|
private String cycleFlag;
|
||||||
|
|
||||||
|
@Schema(description = "循环方式")
|
||||||
|
private String cycleMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "是否启用不能为空")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.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 AutocodeRecordPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", example = "10883")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "生成日期时间")
|
||||||
|
private String genDate;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的序号")
|
||||||
|
private Integer genIndex;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的值")
|
||||||
|
private String lastResult;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的流水号")
|
||||||
|
private Integer lastSerialNo;
|
||||||
|
|
||||||
|
@Schema(description = "最后传入的参数")
|
||||||
|
private String lastInputChar;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码生成记录 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class AutocodeRecordRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16081")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10883")
|
||||||
|
@ExcelProperty("规则ID")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "生成日期时间")
|
||||||
|
@ExcelProperty("生成日期时间")
|
||||||
|
private String genDate;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的序号")
|
||||||
|
@ExcelProperty("最后产生的序号")
|
||||||
|
private Integer genIndex;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的值")
|
||||||
|
@ExcelProperty("最后产生的值")
|
||||||
|
private String lastResult;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的流水号")
|
||||||
|
@ExcelProperty("最后产生的流水号")
|
||||||
|
private Integer lastSerialNo;
|
||||||
|
|
||||||
|
@Schema(description = "最后传入的参数")
|
||||||
|
@ExcelProperty("最后传入的参数")
|
||||||
|
private String lastInputChar;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
|
||||||
|
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码生成记录新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class AutocodeRecordSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16081")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10883")
|
||||||
|
@NotNull(message = "规则ID不能为空")
|
||||||
|
private Long ruleId;
|
||||||
|
|
||||||
|
@Schema(description = "生成日期时间")
|
||||||
|
private String genDate;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的序号")
|
||||||
|
private Integer genIndex;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的值")
|
||||||
|
private String lastResult;
|
||||||
|
|
||||||
|
@Schema(description = "最后产生的流水号")
|
||||||
|
private Integer lastSerialNo;
|
||||||
|
|
||||||
|
@Schema(description = "最后传入的参数")
|
||||||
|
private String lastInputChar;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.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 AutocodeRulePageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "规则编码")
|
||||||
|
private String ruleCode;
|
||||||
|
|
||||||
|
@Schema(description = "规则名称", example = "张三")
|
||||||
|
private String ruleName;
|
||||||
|
|
||||||
|
@Schema(description = "描述")
|
||||||
|
private String ruleDesc;
|
||||||
|
|
||||||
|
@Schema(description = "最大长度")
|
||||||
|
private Integer maxLength;
|
||||||
|
|
||||||
|
@Schema(description = "是否补齐")
|
||||||
|
private String isPadded;
|
||||||
|
|
||||||
|
@Schema(description = "补齐字符")
|
||||||
|
private String paddedChar;
|
||||||
|
|
||||||
|
@Schema(description = "补齐方式")
|
||||||
|
private String paddedMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码规则 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class AutocodeRuleRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1078")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则编码")
|
||||||
|
@ExcelProperty("规则编码")
|
||||||
|
private String ruleCode;
|
||||||
|
|
||||||
|
@Schema(description = "规则名称", example = "张三")
|
||||||
|
@ExcelProperty("规则名称")
|
||||||
|
private String ruleName;
|
||||||
|
|
||||||
|
@Schema(description = "描述")
|
||||||
|
@ExcelProperty("描述")
|
||||||
|
private String ruleDesc;
|
||||||
|
|
||||||
|
@Schema(description = "最大长度")
|
||||||
|
@ExcelProperty("最大长度")
|
||||||
|
private Integer maxLength;
|
||||||
|
|
||||||
|
@Schema(description = "是否补齐")
|
||||||
|
@ExcelProperty(value = "是否补齐", converter = DictConvert.class)
|
||||||
|
@DictFormat("erp_autocode_is_padding") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String isPadded;
|
||||||
|
|
||||||
|
@Schema(description = "补齐字符")
|
||||||
|
@ExcelProperty("补齐字符")
|
||||||
|
private String paddedChar;
|
||||||
|
|
||||||
|
@Schema(description = "补齐方式")
|
||||||
|
@ExcelProperty(value = "补齐方式", converter = DictConvert.class)
|
||||||
|
@DictFormat("erp_autocode_padding_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String paddedMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
|
||||||
|
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.controller.admin.autocode.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 编码规则新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class AutocodeRuleSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1078")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "规则编码")
|
||||||
|
private String ruleCode;
|
||||||
|
|
||||||
|
@Schema(description = "规则名称", example = "张三")
|
||||||
|
private String ruleName;
|
||||||
|
|
||||||
|
@Schema(description = "描述")
|
||||||
|
private String ruleDesc;
|
||||||
|
|
||||||
|
@Schema(description = "最大长度")
|
||||||
|
private Integer maxLength;
|
||||||
|
|
||||||
|
@Schema(description = "是否补齐")
|
||||||
|
private String isPadded;
|
||||||
|
|
||||||
|
@Schema(description = "补齐字符")
|
||||||
|
private String paddedChar;
|
||||||
|
|
||||||
|
@Schema(description = "补齐方式")
|
||||||
|
private String paddedMethod;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "是否启用不能为空")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "编码规则组成列表")
|
||||||
|
private List<AutocodePartDO> autocodeParts;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,99 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.dataobject.autocode;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则组成 DO
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@TableName("erp_autocode_part")
|
||||||
|
@KeySequence("erp_autocode_part_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AutocodePartDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 规则ID
|
||||||
|
*/
|
||||||
|
private Long ruleId;
|
||||||
|
/**
|
||||||
|
* 分段序号
|
||||||
|
*/
|
||||||
|
private Integer partIndex;
|
||||||
|
/**
|
||||||
|
* 分段类型
|
||||||
|
*/
|
||||||
|
private String partType;
|
||||||
|
/**
|
||||||
|
* 分段编号
|
||||||
|
*/
|
||||||
|
private String partCode;
|
||||||
|
/**
|
||||||
|
* 分段名称
|
||||||
|
*/
|
||||||
|
private String partName;
|
||||||
|
/**
|
||||||
|
* 分段长度
|
||||||
|
*/
|
||||||
|
private Integer partLength;
|
||||||
|
/**
|
||||||
|
* 日期时间格式
|
||||||
|
*/
|
||||||
|
private String datetimeFormat;
|
||||||
|
/**
|
||||||
|
* 输入字符
|
||||||
|
*/
|
||||||
|
private String inputCharacter;
|
||||||
|
/**
|
||||||
|
* 固定字符
|
||||||
|
*/
|
||||||
|
private String fixCharacter;
|
||||||
|
/**
|
||||||
|
* 流水号起始值
|
||||||
|
*/
|
||||||
|
private Integer seriaStartNo;
|
||||||
|
/**
|
||||||
|
* 流水号步长
|
||||||
|
*/
|
||||||
|
private Integer seriaStep;
|
||||||
|
/**
|
||||||
|
* 流水号当前值
|
||||||
|
*/
|
||||||
|
private Integer seriaNowNo;
|
||||||
|
/**
|
||||||
|
* 流水号是否循环
|
||||||
|
*/
|
||||||
|
private String cycleFlag;
|
||||||
|
/**
|
||||||
|
* 循环方式
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO erp__autocode_cyclemethod 对应的类}
|
||||||
|
*/
|
||||||
|
private String cycleMethod;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.dataobject.autocode;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码生成记录 DO
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@TableName("erp_autocode_record")
|
||||||
|
@KeySequence("erp_autocode_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AutocodeRecordDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 规则ID
|
||||||
|
*/
|
||||||
|
private Long ruleId;
|
||||||
|
/**
|
||||||
|
* 生成日期时间
|
||||||
|
*/
|
||||||
|
private String genDate;
|
||||||
|
/**
|
||||||
|
* 最后产生的序号
|
||||||
|
*/
|
||||||
|
private Integer genIndex;
|
||||||
|
/**
|
||||||
|
* 最后产生的值
|
||||||
|
*/
|
||||||
|
private String lastResult;
|
||||||
|
/**
|
||||||
|
* 最后产生的流水号
|
||||||
|
*/
|
||||||
|
private Integer lastSerialNo;
|
||||||
|
/**
|
||||||
|
* 最后传入的参数
|
||||||
|
*/
|
||||||
|
private String lastInputChar;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.dataobject.autocode;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则 DO
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@TableName("erp_autocode_rule")
|
||||||
|
@KeySequence("erp_autocode_rule_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AutocodeRuleDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 规则编码
|
||||||
|
*/
|
||||||
|
private String ruleCode;
|
||||||
|
/**
|
||||||
|
* 规则名称
|
||||||
|
*/
|
||||||
|
private String ruleName;
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String ruleDesc;
|
||||||
|
/**
|
||||||
|
* 最大长度
|
||||||
|
*/
|
||||||
|
private Integer maxLength;
|
||||||
|
/**
|
||||||
|
* 是否补齐
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO erp_autocode_is_padding 对应的类}
|
||||||
|
*/
|
||||||
|
private String isPadded;
|
||||||
|
/**
|
||||||
|
* 补齐字符
|
||||||
|
*/
|
||||||
|
private String paddedChar;
|
||||||
|
/**
|
||||||
|
* 补齐方式
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO erp_autocode_padding_type 对应的类}
|
||||||
|
*/
|
||||||
|
private String paddedMethod;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.mysql.autocode;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则组成 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AutocodePartMapper extends BaseMapperX<AutocodePartDO> {
|
||||||
|
|
||||||
|
default PageResult<AutocodePartDO> selectPage(PageParam reqVO, Long ruleId) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<AutocodePartDO>()
|
||||||
|
.eq(AutocodePartDO::getRuleId, ruleId)
|
||||||
|
.orderByDesc(AutocodePartDO::getId));
|
||||||
|
}
|
||||||
|
default List<AutocodePartDO> selectListByRuleId(Long ruleId) {
|
||||||
|
return selectList(AutocodePartDO::getRuleId, ruleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByRuleId(Long ruleId) {
|
||||||
|
return delete(AutocodePartDO::getRuleId, ruleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.mysql.autocode;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRecordDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码生成记录 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AutocodeRecordMapper extends BaseMapperX<AutocodeRecordDO> {
|
||||||
|
|
||||||
|
default PageResult<AutocodeRecordDO> selectPage(AutocodeRecordPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<AutocodeRecordDO>()
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getRuleId, reqVO.getRuleId())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getGenDate, reqVO.getGenDate())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getGenIndex, reqVO.getGenIndex())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getLastResult, reqVO.getLastResult())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getLastSerialNo, reqVO.getLastSerialNo())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getLastInputChar, reqVO.getLastInputChar())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getRemark, reqVO.getRemark())
|
||||||
|
.betweenIfPresent(AutocodeRecordDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(AutocodeRecordDO::getId));
|
||||||
|
}
|
||||||
|
default List<AutocodeRecordDO> selectListByRuleId(Long ruleId) {
|
||||||
|
return selectList(AutocodeRecordDO::getRuleId, ruleId);
|
||||||
|
}
|
||||||
|
default public List<AutocodeRecordDO> selectRecordList(AutocodeRecordDO reqVO){
|
||||||
|
return selectList(new LambdaQueryWrapperX<AutocodeRecordDO>()
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getRuleId, reqVO.getRuleId())
|
||||||
|
.eqIfPresent(AutocodeRecordDO::getLastInputChar, reqVO.getLastInputChar())
|
||||||
|
.likeRight(reqVO.getGenDate() !=null,AutocodeRecordDO::getGenDate, reqVO.getGenDate())
|
||||||
|
.orderByDesc(AutocodeRecordDO::getGenDate));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.dal.mysql.autocode;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRuleDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AutocodeRuleMapper extends BaseMapperX<AutocodeRuleDO> {
|
||||||
|
|
||||||
|
default PageResult<AutocodeRuleDO> selectPage(AutocodeRulePageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<AutocodeRuleDO>()
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getRuleCode, reqVO.getRuleCode())
|
||||||
|
.likeIfPresent(AutocodeRuleDO::getRuleName, reqVO.getRuleName())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getRuleDesc, reqVO.getRuleDesc())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getMaxLength, reqVO.getMaxLength())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getIsPadded, reqVO.getIsPadded())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getPaddedChar, reqVO.getPaddedChar())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getPaddedMethod, reqVO.getPaddedMethod())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(AutocodeRuleDO::getIsEnable, reqVO.getIsEnable())
|
||||||
|
.betweenIfPresent(AutocodeRuleDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(AutocodeRuleDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则组成 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface AutocodePartService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建编码规则组成
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createAutocodePart(@Valid AutocodePartSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新编码规则组成
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateAutocodePart(@Valid AutocodePartSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除编码规则组成
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteAutocodePart(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码规则组成
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 编码规则组成
|
||||||
|
*/
|
||||||
|
AutocodePartDO getAutocodePart(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码规则组成分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 编码规则组成分页
|
||||||
|
*/
|
||||||
|
PageResult<AutocodePartDO> getAutocodePartPage(AutocodePartPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,75 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.autocode.AutocodePartMapper;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则组成 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class AutocodePartServiceImpl implements AutocodePartService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodePartMapper autocodePartMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createAutocodePart(AutocodePartSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
AutocodePartDO autocodePart = BeanUtils.toBean(createReqVO, AutocodePartDO.class);
|
||||||
|
autocodePartMapper.insert(autocodePart);
|
||||||
|
// 返回
|
||||||
|
return autocodePart.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAutocodePart(AutocodePartSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateAutocodePartExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
AutocodePartDO updateObj = BeanUtils.toBean(updateReqVO, AutocodePartDO.class);
|
||||||
|
autocodePartMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteAutocodePart(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateAutocodePartExists(id);
|
||||||
|
// 删除
|
||||||
|
autocodePartMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateAutocodePartExists(Long id) {
|
||||||
|
if (autocodePartMapper.selectById(id) == null) {
|
||||||
|
throw exception(AUTOCODE_PART_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AutocodePartDO getAutocodePart(Long id) {
|
||||||
|
return autocodePartMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<AutocodePartDO> getAutocodePartPage(AutocodePartPageReqVO pageReqVO) {
|
||||||
|
return autocodePartMapper.selectPage(pageReqVO,pageReqVO.getRuleId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRecordDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码生成记录 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface AutocodeRecordService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建编码生成记录
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createAutocodeRecord(@Valid AutocodeRecordSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新编码生成记录
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateAutocodeRecord(@Valid AutocodeRecordSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除编码生成记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteAutocodeRecord(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码生成记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 编码生成记录
|
||||||
|
*/
|
||||||
|
AutocodeRecordDO getAutocodeRecord(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码生成记录分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 编码生成记录分页
|
||||||
|
*/
|
||||||
|
PageResult<AutocodeRecordDO> getAutocodeRecordPage(AutocodeRecordPageReqVO pageReqVO);
|
||||||
|
List<AutocodeRecordDO> selectListByRuleId(Long ruleId);
|
||||||
|
|
||||||
|
|
||||||
|
List<AutocodeRecordDO> list(AutocodeRecordDO sysAutoCodeResult);
|
||||||
|
}
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRecordDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.autocode.AutocodeRecordMapper;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码生成记录 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class AutocodeRecordServiceImpl implements AutocodeRecordService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRecordMapper autocodeRecordMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createAutocodeRecord(AutocodeRecordSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
AutocodeRecordDO autocodeRecord = BeanUtils.toBean(createReqVO, AutocodeRecordDO.class);
|
||||||
|
autocodeRecordMapper.insert(autocodeRecord);
|
||||||
|
// 返回
|
||||||
|
return autocodeRecord.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAutocodeRecord(AutocodeRecordSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateAutocodeRecordExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
AutocodeRecordDO updateObj = BeanUtils.toBean(updateReqVO, AutocodeRecordDO.class);
|
||||||
|
autocodeRecordMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteAutocodeRecord(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateAutocodeRecordExists(id);
|
||||||
|
// 删除
|
||||||
|
autocodeRecordMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateAutocodeRecordExists(Long id) {
|
||||||
|
if (autocodeRecordMapper.selectById(id) == null) {
|
||||||
|
throw exception(AUTOCODE_RECORD_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AutocodeRecordDO getAutocodeRecord(Long id) {
|
||||||
|
return autocodeRecordMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<AutocodeRecordDO> getAutocodeRecordPage(AutocodeRecordPageReqVO pageReqVO) {
|
||||||
|
return autocodeRecordMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AutocodeRecordDO> selectListByRuleId(Long ruleId) {
|
||||||
|
return autocodeRecordMapper.selectListByRuleId(ruleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AutocodeRecordDO> list(AutocodeRecordDO sysAutoCodeResult) {
|
||||||
|
return autocodeRecordMapper.selectRecordList(sysAutoCodeResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRuleDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码规则 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface AutocodeRuleService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建编码规则
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createAutocodeRule(@Valid AutocodeRuleSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新编码规则
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateAutocodeRule(@Valid AutocodeRuleSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除编码规则
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteAutocodeRule(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码规则
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 编码规则
|
||||||
|
*/
|
||||||
|
AutocodeRuleDO getAutocodeRule(Long id);
|
||||||
|
|
||||||
|
AutocodeRuleDO getAutocodeRuleByRuleCode(String ruleCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码规则分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 编码规则分页
|
||||||
|
*/
|
||||||
|
PageResult<AutocodeRuleDO> getAutocodeRulePage(AutocodeRulePageReqVO pageReqVO);
|
||||||
|
|
||||||
|
// ==================== 子表(编码规则组成) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得编码规则组成列表
|
||||||
|
*
|
||||||
|
* @param ruleId 规则ID
|
||||||
|
* @return 编码规则组成列表
|
||||||
|
*/
|
||||||
|
List<AutocodePartDO> getAutocodePartListByRuleId(Long ruleId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,189 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodePartDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.autocode.AutocodePartMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link AutocodePartServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(AutocodePartServiceImpl.class)
|
||||||
|
public class AutocodePartServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodePartServiceImpl autocodePartService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodePartMapper autocodePartMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateAutocodePart_success() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodePartSaveReqVO createReqVO = randomPojo(AutocodePartSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long autocodePartId = autocodePartService.createAutocodePart(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(autocodePartId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
AutocodePartDO autocodePart = autocodePartMapper.selectById(autocodePartId);
|
||||||
|
assertPojoEquals(createReqVO, autocodePart, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodePart_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodePartDO dbAutocodePart = randomPojo(AutocodePartDO.class);
|
||||||
|
autocodePartMapper.insert(dbAutocodePart);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
AutocodePartSaveReqVO updateReqVO = randomPojo(AutocodePartSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbAutocodePart.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodePartService.updateAutocodePart(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
AutocodePartDO autocodePart = autocodePartMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, autocodePart);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodePart_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodePartSaveReqVO updateReqVO = randomPojo(AutocodePartSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodePartService.updateAutocodePart(updateReqVO), AUTOCODE_PART_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodePart_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodePartDO dbAutocodePart = randomPojo(AutocodePartDO.class);
|
||||||
|
autocodePartMapper.insert(dbAutocodePart);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbAutocodePart.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodePartService.deleteAutocodePart(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(autocodePartMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodePart_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodePartService.deleteAutocodePart(id), AUTOCODE_PART_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetAutocodePartPage() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodePartDO dbAutocodePart = randomPojo(AutocodePartDO.class, o -> { // 等会查询到
|
||||||
|
o.setRuleId(null);
|
||||||
|
o.setPartIndex(null);
|
||||||
|
o.setPartType(null);
|
||||||
|
o.setPartCode(null);
|
||||||
|
o.setPartName(null);
|
||||||
|
o.setPartLength(null);
|
||||||
|
o.setDatetimeFormat(null);
|
||||||
|
o.setInputCharacter(null);
|
||||||
|
o.setFixCharacter(null);
|
||||||
|
o.setSeriaStartNo(null);
|
||||||
|
o.setSeriaStep(null);
|
||||||
|
o.setSeriaNowNo(null);
|
||||||
|
o.setCycleFlag(null);
|
||||||
|
o.setCycleMethod(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
autocodePartMapper.insert(dbAutocodePart);
|
||||||
|
// 测试 ruleId 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setRuleId(null)));
|
||||||
|
// 测试 partIndex 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setPartIndex(null)));
|
||||||
|
// 测试 partType 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setPartType(null)));
|
||||||
|
// 测试 partCode 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setPartCode(null)));
|
||||||
|
// 测试 partName 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setPartName(null)));
|
||||||
|
// 测试 partLength 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setPartLength(null)));
|
||||||
|
// 测试 datetimeFormat 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setDatetimeFormat(null)));
|
||||||
|
// 测试 inputCharacter 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setInputCharacter(null)));
|
||||||
|
// 测试 fixCharacter 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setFixCharacter(null)));
|
||||||
|
// 测试 seriaStartNo 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setSeriaStartNo(null)));
|
||||||
|
// 测试 seriaStep 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setSeriaStep(null)));
|
||||||
|
// 测试 seriaNowNo 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setSeriaNowNo(null)));
|
||||||
|
// 测试 cycleFlag 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setCycleFlag(null)));
|
||||||
|
// 测试 cycleMethod 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setCycleMethod(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setRemark(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
autocodePartMapper.insert(cloneIgnoreId(dbAutocodePart, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
AutocodePartPageReqVO reqVO = new AutocodePartPageReqVO();
|
||||||
|
reqVO.setRuleId(null);
|
||||||
|
reqVO.setPartIndex(null);
|
||||||
|
reqVO.setPartType(null);
|
||||||
|
reqVO.setPartCode(null);
|
||||||
|
reqVO.setPartName(null);
|
||||||
|
reqVO.setPartLength(null);
|
||||||
|
reqVO.setDatetimeFormat(null);
|
||||||
|
reqVO.setInputCharacter(null);
|
||||||
|
reqVO.setFixCharacter(null);
|
||||||
|
reqVO.setSeriaStartNo(null);
|
||||||
|
reqVO.setSeriaStep(null);
|
||||||
|
reqVO.setSeriaNowNo(null);
|
||||||
|
reqVO.setCycleFlag(null);
|
||||||
|
reqVO.setCycleMethod(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<AutocodePartDO> pageResult = autocodePartService.getAutocodePartPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbAutocodePart, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,158 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRecordDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.autocode.AutocodeRecordMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.hutool.core.util.RandomUtil.*;
|
||||||
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link AutocodeRecordServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(AutocodeRecordServiceImpl.class)
|
||||||
|
public class AutocodeRecordServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRecordServiceImpl autocodeRecordService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRecordMapper autocodeRecordMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateAutocodeRecord_success() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRecordSaveReqVO createReqVO = randomPojo(AutocodeRecordSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long autocodeRecordId = autocodeRecordService.createAutocodeRecord(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(autocodeRecordId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
AutocodeRecordDO autocodeRecord = autocodeRecordMapper.selectById(autocodeRecordId);
|
||||||
|
assertPojoEquals(createReqVO, autocodeRecord, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodeRecord_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRecordDO dbAutocodeRecord = randomPojo(AutocodeRecordDO.class);
|
||||||
|
autocodeRecordMapper.insert(dbAutocodeRecord);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRecordSaveReqVO updateReqVO = randomPojo(AutocodeRecordSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbAutocodeRecord.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodeRecordService.updateAutocodeRecord(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
AutocodeRecordDO autocodeRecord = autocodeRecordMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, autocodeRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodeRecord_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRecordSaveReqVO updateReqVO = randomPojo(AutocodeRecordSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodeRecordService.updateAutocodeRecord(updateReqVO), AUTOCODE_RECORD_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodeRecord_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRecordDO dbAutocodeRecord = randomPojo(AutocodeRecordDO.class);
|
||||||
|
autocodeRecordMapper.insert(dbAutocodeRecord);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbAutocodeRecord.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodeRecordService.deleteAutocodeRecord(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(autocodeRecordMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodeRecord_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodeRecordService.deleteAutocodeRecord(id), AUTOCODE_RECORD_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetAutocodeRecordPage() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRecordDO dbAutocodeRecord = randomPojo(AutocodeRecordDO.class, o -> { // 等会查询到
|
||||||
|
o.setRuleId(null);
|
||||||
|
o.setGenDate(null);
|
||||||
|
o.setGenIndex(null);
|
||||||
|
o.setLastResult(null);
|
||||||
|
o.setLastSerialNo(null);
|
||||||
|
o.setLastInputChar(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
autocodeRecordMapper.insert(dbAutocodeRecord);
|
||||||
|
// 测试 ruleId 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setRuleId(null)));
|
||||||
|
// 测试 genDate 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setGenDate(null)));
|
||||||
|
// 测试 genIndex 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setGenIndex(null)));
|
||||||
|
// 测试 lastResult 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setLastResult(null)));
|
||||||
|
// 测试 lastSerialNo 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setLastSerialNo(null)));
|
||||||
|
// 测试 lastInputChar 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setLastInputChar(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setRemark(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
autocodeRecordMapper.insert(cloneIgnoreId(dbAutocodeRecord, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRecordPageReqVO reqVO = new AutocodeRecordPageReqVO();
|
||||||
|
reqVO.setRuleId(null);
|
||||||
|
reqVO.setGenDate(null);
|
||||||
|
reqVO.setGenIndex(null);
|
||||||
|
reqVO.setLastResult(null);
|
||||||
|
reqVO.setLastSerialNo(null);
|
||||||
|
reqVO.setLastInputChar(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<AutocodeRecordDO> pageResult = autocodeRecordService.getAutocodeRecordPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbAutocodeRecord, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,160 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.autocode;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.autocode.AutocodeRuleDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.autocode.AutocodeRuleMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link AutocodeRuleServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(AutocodeRuleServiceImpl.class)
|
||||||
|
public class AutocodeRuleServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRuleServiceImpl autocodeRuleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AutocodeRuleMapper autocodeRuleMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateAutocodeRule_success() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRuleSaveReqVO createReqVO = randomPojo(AutocodeRuleSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long autocodeRuleId = autocodeRuleService.createAutocodeRule(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(autocodeRuleId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
AutocodeRuleDO autocodeRule = autocodeRuleMapper.selectById(autocodeRuleId);
|
||||||
|
assertPojoEquals(createReqVO, autocodeRule, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodeRule_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRuleDO dbAutocodeRule = randomPojo(AutocodeRuleDO.class);
|
||||||
|
autocodeRuleMapper.insert(dbAutocodeRule);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRuleSaveReqVO updateReqVO = randomPojo(AutocodeRuleSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbAutocodeRule.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodeRuleService.updateAutocodeRule(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
AutocodeRuleDO autocodeRule = autocodeRuleMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, autocodeRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateAutocodeRule_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRuleSaveReqVO updateReqVO = randomPojo(AutocodeRuleSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodeRuleService.updateAutocodeRule(updateReqVO), AUTOCODE_RULE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodeRule_success() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRuleDO dbAutocodeRule = randomPojo(AutocodeRuleDO.class);
|
||||||
|
autocodeRuleMapper.insert(dbAutocodeRule);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbAutocodeRule.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
autocodeRuleService.deleteAutocodeRule(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(autocodeRuleMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteAutocodeRule_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> autocodeRuleService.deleteAutocodeRule(id), AUTOCODE_RULE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetAutocodeRulePage() {
|
||||||
|
// mock 数据
|
||||||
|
AutocodeRuleDO dbAutocodeRule = randomPojo(AutocodeRuleDO.class, o -> { // 等会查询到
|
||||||
|
o.setRuleCode(null);
|
||||||
|
o.setRuleName(null);
|
||||||
|
o.setRuleDesc(null);
|
||||||
|
o.setMaxLength(null);
|
||||||
|
o.setIsPadded(null);
|
||||||
|
o.setPaddedChar(null);
|
||||||
|
o.setPaddedMethod(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
autocodeRuleMapper.insert(dbAutocodeRule);
|
||||||
|
// 测试 ruleCode 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setRuleCode(null)));
|
||||||
|
// 测试 ruleName 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setRuleName(null)));
|
||||||
|
// 测试 ruleDesc 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setRuleDesc(null)));
|
||||||
|
// 测试 maxLength 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setMaxLength(null)));
|
||||||
|
// 测试 isPadded 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setIsPadded(null)));
|
||||||
|
// 测试 paddedChar 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setPaddedChar(null)));
|
||||||
|
// 测试 paddedMethod 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setPaddedMethod(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setRemark(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
autocodeRuleMapper.insert(cloneIgnoreId(dbAutocodeRule, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
AutocodeRulePageReqVO reqVO = new AutocodeRulePageReqVO();
|
||||||
|
reqVO.setRuleCode(null);
|
||||||
|
reqVO.setRuleName(null);
|
||||||
|
reqVO.setRuleDesc(null);
|
||||||
|
reqVO.setMaxLength(null);
|
||||||
|
reqVO.setIsPadded(null);
|
||||||
|
reqVO.setPaddedChar(null);
|
||||||
|
reqVO.setPaddedMethod(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<AutocodeRuleDO> pageResult = autocodeRuleService.getAutocodeRulePage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbAutocodeRule, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue