forked from sfms3.0/sfms3.0
15 changed files with 577 additions and 1 deletions
@ -0,0 +1,99 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber; |
||||
|
|
||||
|
import com.win.framework.common.pojo.CommonResult; |
||||
|
import com.win.framework.common.pojo.PageResult; |
||||
|
import com.win.framework.excel.core.util.ExcelUtils; |
||||
|
import com.win.framework.operatelog.core.annotations.OperateLog; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.*; |
||||
|
import com.win.module.system.convert.serialnumber.SerialNumberConvert; |
||||
|
import com.win.module.system.dal.dataobject.serialnumber.SerialNumberDO; |
||||
|
import com.win.module.system.service.serialnumber.SerialNumberService; |
||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||
|
import io.swagger.v3.oas.annotations.Parameter; |
||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||
|
import org.springframework.security.access.prepost.PreAuthorize; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import javax.servlet.http.HttpServletResponse; |
||||
|
import javax.validation.Valid; |
||||
|
import java.io.IOException; |
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import static com.win.framework.common.pojo.CommonResult.success; |
||||
|
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; |
||||
|
|
||||
|
@Tag(name = "管理后台 - 流水号规则") |
||||
|
@RestController |
||||
|
@RequestMapping("/system/serial-number") |
||||
|
@Validated |
||||
|
public class SerialNumberController { |
||||
|
|
||||
|
@Resource |
||||
|
private SerialNumberService serialNumberService; |
||||
|
|
||||
|
@PostMapping("/create") |
||||
|
@Operation(summary = "创建流水号规则") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:create')") |
||||
|
public CommonResult<Long> createSerialNumber(@Valid @RequestBody SerialNumberCreateReqVO createReqVO) { |
||||
|
return success(serialNumberService.createSerialNumber(createReqVO)); |
||||
|
} |
||||
|
|
||||
|
@PutMapping("/update") |
||||
|
@Operation(summary = "更新流水号规则") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:update')") |
||||
|
public CommonResult<Boolean> updateSerialNumber(@Valid @RequestBody SerialNumberUpdateReqVO updateReqVO) { |
||||
|
serialNumberService.updateSerialNumber(updateReqVO); |
||||
|
return success(true); |
||||
|
} |
||||
|
|
||||
|
@DeleteMapping("/delete") |
||||
|
@Operation(summary = "删除流水号规则") |
||||
|
@Parameter(name = "id", description = "编号", required = true) |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:delete')") |
||||
|
public CommonResult<Boolean> deleteSerialNumber(@RequestParam("id") Long id) { |
||||
|
serialNumberService.deleteSerialNumber(id); |
||||
|
return success(true); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("/get") |
||||
|
@Operation(summary = "获得流水号规则") |
||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:query')") |
||||
|
public CommonResult<SerialNumberRespVO> getSerialNumber(@RequestParam("id") Long id) { |
||||
|
SerialNumberDO serialNumber = serialNumberService.getSerialNumber(id); |
||||
|
return success(SerialNumberConvert.INSTANCE.convert(serialNumber)); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("/list") |
||||
|
@Operation(summary = "获得流水号规则列表") |
||||
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:query')") |
||||
|
public CommonResult<List<SerialNumberRespVO>> getSerialNumberList(@RequestParam("ids") Collection<Long> ids) { |
||||
|
List<SerialNumberDO> list = serialNumberService.getSerialNumberList(ids); |
||||
|
return success(SerialNumberConvert.INSTANCE.convertList(list)); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("/page") |
||||
|
@Operation(summary = "获得流水号规则分页") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:query')") |
||||
|
public CommonResult<PageResult<SerialNumberRespVO>> getSerialNumberPage(@Valid SerialNumberPageReqVO pageVO) { |
||||
|
PageResult<SerialNumberDO> pageResult = serialNumberService.getSerialNumberPage(pageVO); |
||||
|
return success(SerialNumberConvert.INSTANCE.convertPage(pageResult)); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("/export-excel") |
||||
|
@Operation(summary = "导出流水号规则 Excel") |
||||
|
@PreAuthorize("@ss.hasPermission('system:serial-number:export')") |
||||
|
@OperateLog(type = EXPORT) |
||||
|
public void exportSerialNumberExcel(@Valid SerialNumberExportReqVO exportReqVO, |
||||
|
HttpServletResponse response) throws IOException { |
||||
|
List<SerialNumberDO> list = serialNumberService.getSerialNumberList(exportReqVO); |
||||
|
// 导出 Excel
|
||||
|
List<SerialNumberExcelVO> datas = SerialNumberConvert.INSTANCE.convertList02(list); |
||||
|
ExcelUtils.write(response, "流水号规则.xls", "数据", SerialNumberExcelVO.class, datas); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,44 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.vo; |
||||
|
|
||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||
|
import lombok.*; |
||||
|
import java.util.*; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.time.LocalDateTime; |
||||
|
import javax.validation.constraints.*; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Base VO,提供给添加、修改、详细的子 VO 使用 |
||||
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class SerialNumberBaseVO { |
||||
|
|
||||
|
@Schema(description = "规则编码", requiredMode = Schema.RequiredMode.REQUIRED) |
||||
|
@NotNull(message = "规则编码不能为空") |
||||
|
private String ruleCode; |
||||
|
|
||||
|
@Schema(description = "规则名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") |
||||
|
@NotNull(message = "规则名称不能为空") |
||||
|
private String ruleName; |
||||
|
|
||||
|
@Schema(description = "编码前缀", requiredMode = Schema.RequiredMode.REQUIRED) |
||||
|
@NotNull(message = "编码前缀不能为空") |
||||
|
private String prefix; |
||||
|
|
||||
|
@Schema(description = "单据格式", requiredMode = Schema.RequiredMode.REQUIRED) |
||||
|
@NotNull(message = "单据格式不能为空") |
||||
|
private String pattern; |
||||
|
|
||||
|
@Schema(description = "单据流水长度", requiredMode = Schema.RequiredMode.REQUIRED) |
||||
|
@NotNull(message = "单据流水长度不能为空") |
||||
|
private Byte length; |
||||
|
|
||||
|
@Schema(description = "单据分隔符", requiredMode = Schema.RequiredMode.REQUIRED) |
||||
|
@NotNull(message = "单据分隔符不能为空") |
||||
|
private String separator; |
||||
|
|
||||
|
@Schema(description = "备注", example = "你说的对") |
||||
|
private String remark; |
||||
|
|
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.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 SerialNumberCreateReqVO extends SerialNumberBaseVO { |
||||
|
|
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.vo; |
||||
|
|
||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||
|
import lombok.*; |
||||
|
import java.util.*; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.time.LocalDateTime; |
||||
|
|
||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Excel VO |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class SerialNumberExcelVO { |
||||
|
|
||||
|
@ExcelProperty("主键") |
||||
|
private Long id; |
||||
|
|
||||
|
@ExcelProperty("规则编码") |
||||
|
private String ruleCode; |
||||
|
|
||||
|
@ExcelProperty("规则名称") |
||||
|
private String ruleName; |
||||
|
|
||||
|
@ExcelProperty("编码前缀") |
||||
|
private String prefix; |
||||
|
|
||||
|
@ExcelProperty("单据格式") |
||||
|
private String pattern; |
||||
|
|
||||
|
@ExcelProperty("单据流水长度") |
||||
|
private Byte length; |
||||
|
|
||||
|
@ExcelProperty("单据分隔符") |
||||
|
private String separator; |
||||
|
|
||||
|
@ExcelProperty("备注") |
||||
|
private String remark; |
||||
|
|
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.vo; |
||||
|
|
||||
|
import lombok.*; |
||||
|
import java.util.*; |
||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||
|
import com.win.framework.common.pojo.PageParam; |
||||
|
|
||||
|
@Schema(description = "管理后台 - 流水号规则 Excel 导出 Request VO,参数和 SerialNumberPageReqVO 是一致的") |
||||
|
@Data |
||||
|
public class SerialNumberExportReqVO { |
||||
|
|
||||
|
@Schema(description = "规则编码") |
||||
|
private String ruleCode; |
||||
|
|
||||
|
@Schema(description = "规则名称", example = "王五") |
||||
|
private String ruleName; |
||||
|
|
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.vo; |
||||
|
|
||||
|
import lombok.*; |
||||
|
import java.util.*; |
||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||
|
import com.win.framework.common.pojo.PageParam; |
||||
|
|
||||
|
@Schema(description = "管理后台 - 流水号规则分页 Request VO") |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@ToString(callSuper = true) |
||||
|
public class SerialNumberPageReqVO extends PageParam { |
||||
|
|
||||
|
@Schema(description = "规则编码") |
||||
|
private String ruleCode; |
||||
|
|
||||
|
@Schema(description = "规则名称", example = "王五") |
||||
|
private String ruleName; |
||||
|
|
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.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 SerialNumberRespVO extends SerialNumberBaseVO { |
||||
|
|
||||
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "19961") |
||||
|
private Long id; |
||||
|
|
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
package com.win.module.system.controller.admin.serialnumber.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 SerialNumberUpdateReqVO extends SerialNumberBaseVO { |
||||
|
|
||||
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "19961") |
||||
|
@NotNull(message = "主键不能为空") |
||||
|
private Long id; |
||||
|
|
||||
|
} |
@ -0,0 +1,34 @@ |
|||||
|
package com.win.module.system.convert.serialnumber; |
||||
|
|
||||
|
import java.util.*; |
||||
|
|
||||
|
import com.win.framework.common.pojo.PageResult; |
||||
|
|
||||
|
import org.mapstruct.Mapper; |
||||
|
import org.mapstruct.factory.Mappers; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.*; |
||||
|
import com.win.module.system.dal.dataobject.serialnumber.SerialNumberDO; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Convert |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface SerialNumberConvert { |
||||
|
|
||||
|
SerialNumberConvert INSTANCE = Mappers.getMapper(SerialNumberConvert.class); |
||||
|
|
||||
|
SerialNumberDO convert(SerialNumberCreateReqVO bean); |
||||
|
|
||||
|
SerialNumberDO convert(SerialNumberUpdateReqVO bean); |
||||
|
|
||||
|
SerialNumberRespVO convert(SerialNumberDO bean); |
||||
|
|
||||
|
List<SerialNumberRespVO> convertList(List<SerialNumberDO> list); |
||||
|
|
||||
|
PageResult<SerialNumberRespVO> convertPage(PageResult<SerialNumberDO> page); |
||||
|
|
||||
|
List<SerialNumberExcelVO> convertList02(List<SerialNumberDO> list); |
||||
|
|
||||
|
} |
@ -1 +0,0 @@ |
|||||
<http://www.iocoder.cn/Spring-Boot/MapStruct/?win> |
|
@ -0,0 +1,59 @@ |
|||||
|
package com.win.module.system.dal.dataobject.serialnumber; |
||||
|
|
||||
|
import lombok.*; |
||||
|
import java.util.*; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.time.LocalDateTime; |
||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||
|
import com.win.framework.mybatis.core.dataobject.BaseDO; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 DO |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
@TableName("system_serial_number") |
||||
|
@KeySequence("system_serial_number_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@ToString(callSuper = true) |
||||
|
@Builder |
||||
|
@NoArgsConstructor |
||||
|
@AllArgsConstructor |
||||
|
public class SerialNumberDO extends BaseDO { |
||||
|
|
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
@TableId |
||||
|
private Long id; |
||||
|
/** |
||||
|
* 规则编码 |
||||
|
*/ |
||||
|
private String ruleCode; |
||||
|
/** |
||||
|
* 规则名称 |
||||
|
*/ |
||||
|
private String ruleName; |
||||
|
/** |
||||
|
* 编码前缀 |
||||
|
*/ |
||||
|
private String prefix; |
||||
|
/** |
||||
|
* 单据格式 |
||||
|
*/ |
||||
|
private String pattern; |
||||
|
/** |
||||
|
* 单据流水长度 |
||||
|
*/ |
||||
|
private Byte length; |
||||
|
/** |
||||
|
* 单据分隔符 |
||||
|
*/ |
||||
|
private String separator; |
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
private String remark; |
||||
|
|
||||
|
} |
@ -0,0 +1,35 @@ |
|||||
|
package com.win.module.system.dal.mysql.serialnumber; |
||||
|
|
||||
|
import com.win.framework.common.pojo.PageResult; |
||||
|
import com.win.framework.mybatis.core.mapper.BaseMapperX; |
||||
|
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberExportReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberPageReqVO; |
||||
|
import com.win.module.system.dal.dataobject.serialnumber.SerialNumberDO; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Mapper |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface SerialNumberMapper extends BaseMapperX<SerialNumberDO> { |
||||
|
|
||||
|
default PageResult<SerialNumberDO> selectPage(SerialNumberPageReqVO reqVO) { |
||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<SerialNumberDO>() |
||||
|
.eqIfPresent(SerialNumberDO::getRuleCode, reqVO.getRuleCode()) |
||||
|
.likeIfPresent(SerialNumberDO::getRuleName, reqVO.getRuleName()) |
||||
|
.orderByDesc(SerialNumberDO::getId)); |
||||
|
} |
||||
|
|
||||
|
default List<SerialNumberDO> selectList(SerialNumberExportReqVO reqVO) { |
||||
|
return selectList(new LambdaQueryWrapperX<SerialNumberDO>() |
||||
|
.eqIfPresent(SerialNumberDO::getRuleCode, reqVO.getRuleCode()) |
||||
|
.likeIfPresent(SerialNumberDO::getRuleName, reqVO.getRuleName()) |
||||
|
.orderByDesc(SerialNumberDO::getId)); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,75 @@ |
|||||
|
package com.win.module.system.service.serialnumber; |
||||
|
|
||||
|
import com.win.framework.common.pojo.PageResult; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberCreateReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberExportReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberPageReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberUpdateReqVO; |
||||
|
import com.win.module.system.dal.dataobject.serialnumber.SerialNumberDO; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Service 接口 |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
public interface SerialNumberService { |
||||
|
|
||||
|
/** |
||||
|
* 创建流水号规则 |
||||
|
* |
||||
|
* @param createReqVO 创建信息 |
||||
|
* @return 编号 |
||||
|
*/ |
||||
|
Long createSerialNumber(@Valid SerialNumberCreateReqVO createReqVO); |
||||
|
|
||||
|
/** |
||||
|
* 更新流水号规则 |
||||
|
* |
||||
|
* @param updateReqVO 更新信息 |
||||
|
*/ |
||||
|
void updateSerialNumber(@Valid SerialNumberUpdateReqVO updateReqVO); |
||||
|
|
||||
|
/** |
||||
|
* 删除流水号规则 |
||||
|
* |
||||
|
* @param id 编号 |
||||
|
*/ |
||||
|
void deleteSerialNumber(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 获得流水号规则 |
||||
|
* |
||||
|
* @param id 编号 |
||||
|
* @return 流水号规则 |
||||
|
*/ |
||||
|
SerialNumberDO getSerialNumber(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 获得流水号规则列表 |
||||
|
* |
||||
|
* @param ids 编号 |
||||
|
* @return 流水号规则列表 |
||||
|
*/ |
||||
|
List<SerialNumberDO> getSerialNumberList(Collection<Long> ids); |
||||
|
|
||||
|
/** |
||||
|
* 获得流水号规则分页 |
||||
|
* |
||||
|
* @param pageReqVO 分页查询 |
||||
|
* @return 流水号规则分页 |
||||
|
*/ |
||||
|
PageResult<SerialNumberDO> getSerialNumberPage(SerialNumberPageReqVO pageReqVO); |
||||
|
|
||||
|
/** |
||||
|
* 获得流水号规则列表, 用于 Excel 导出 |
||||
|
* |
||||
|
* @param exportReqVO 查询条件 |
||||
|
* @return 流水号规则列表 |
||||
|
*/ |
||||
|
List<SerialNumberDO> getSerialNumberList(SerialNumberExportReqVO exportReqVO); |
||||
|
|
||||
|
} |
@ -0,0 +1,98 @@ |
|||||
|
package com.win.module.system.service.serialnumber; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.win.framework.common.pojo.PageResult; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberCreateReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberExportReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberPageReqVO; |
||||
|
import com.win.module.system.controller.admin.serialnumber.vo.SerialNumberUpdateReqVO; |
||||
|
import com.win.module.system.convert.serialnumber.SerialNumberConvert; |
||||
|
import com.win.module.system.dal.dataobject.serialnumber.SerialNumberDO; |
||||
|
import com.win.module.system.dal.mysql.serialnumber.SerialNumberMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
||||
|
import static com.win.module.system.enums.ErrorCodeConstants.SERIAL_NUMBER_EXISTS; |
||||
|
import static com.win.module.system.enums.ErrorCodeConstants.SERIAL_NUMBER_NOT_EXISTS; |
||||
|
|
||||
|
/** |
||||
|
* 流水号规则 Service 实现类 |
||||
|
* |
||||
|
* @author 超级管理员 |
||||
|
*/ |
||||
|
@Service |
||||
|
@Validated |
||||
|
public class SerialNumberServiceImpl implements SerialNumberService { |
||||
|
|
||||
|
@Resource |
||||
|
private SerialNumberMapper serialNumberMapper; |
||||
|
|
||||
|
@Override |
||||
|
public Long createSerialNumber(SerialNumberCreateReqVO createReqVO) { |
||||
|
// 校验存在
|
||||
|
validateSerialNumberNotExists(createReqVO.getRuleCode()); |
||||
|
// 插入
|
||||
|
SerialNumberDO serialNumber = SerialNumberConvert.INSTANCE.convert(createReqVO); |
||||
|
serialNumberMapper.insert(serialNumber); |
||||
|
// 返回
|
||||
|
return serialNumber.getId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void updateSerialNumber(SerialNumberUpdateReqVO updateReqVO) { |
||||
|
// 校验存在
|
||||
|
validateSerialNumberExists(updateReqVO.getId()); |
||||
|
// 更新
|
||||
|
SerialNumberDO updateObj = SerialNumberConvert.INSTANCE.convert(updateReqVO); |
||||
|
serialNumberMapper.updateById(updateObj); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void deleteSerialNumber(Long id) { |
||||
|
// 校验存在
|
||||
|
validateSerialNumberExists(id); |
||||
|
// 删除
|
||||
|
serialNumberMapper.deleteById(id); |
||||
|
} |
||||
|
|
||||
|
private void validateSerialNumberExists(Long id) { |
||||
|
if (serialNumberMapper.selectById(id) == null) { |
||||
|
throw exception(SERIAL_NUMBER_NOT_EXISTS); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void validateSerialNumberNotExists(String ruleCode) { |
||||
|
QueryWrapper<SerialNumberDO> queryWrapper = new QueryWrapper<>(); |
||||
|
queryWrapper.eq("deleted", Boolean.FALSE); |
||||
|
queryWrapper.eq("rule_code", ruleCode); |
||||
|
if (serialNumberMapper.selectCount() != 0) { |
||||
|
throw exception(SERIAL_NUMBER_EXISTS); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SerialNumberDO getSerialNumber(Long id) { |
||||
|
return serialNumberMapper.selectById(id); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<SerialNumberDO> getSerialNumberList(Collection<Long> ids) { |
||||
|
return serialNumberMapper.selectBatchIds(ids); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public PageResult<SerialNumberDO> getSerialNumberPage(SerialNumberPageReqVO pageReqVO) { |
||||
|
return serialNumberMapper.selectPage(pageReqVO); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<SerialNumberDO> getSerialNumberList(SerialNumberExportReqVO exportReqVO) { |
||||
|
return serialNumberMapper.selectList(exportReqVO); |
||||
|
} |
||||
|
|
||||
|
} |
Loading…
Reference in new issue