From d7bfd457d0ebba2ed3d28233b5b9befc24db36a8 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 10 十月 2024 17:57:43 +0800 Subject: [PATCH] 检查类型 (准备人数 + 是否需要领用) 配置 --- jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java | 54 +++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java | 95 +++++++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java | 72 ++++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java | 39 +++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java | 30 ++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java | 47 ++++++ jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml | 12 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java | 34 ++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java | 25 +++ 10 files changed, 410 insertions(+), 0 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java index d51744f..8292a65 100644 --- a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java +++ b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java @@ -45,4 +45,6 @@ ErrorCode JOB_RECORD_NOT_EXISTS = new ErrorCode(1_010_007_000, "宸ヤ綔璁板綍涓嶅瓨鍦�"); ErrorCode CALL_NOT_EXISTS = new ErrorCode(1_010_008_000, "鍙彿涓嶅瓨鍦�"); + + ErrorCode CHECK_TYPE_NOT_EXISTS = new ErrorCode(1_010_009_000, "妫�鏌ョ被鍨嬩笉瀛樺湪"); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java new file mode 100644 index 0000000..97dbbbe --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java @@ -0,0 +1,95 @@ +package cn.lihu.jh.module.ecg.controller.admin.checktype; + +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.lihu.jh.framework.common.pojo.PageParam; +import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.framework.common.pojo.CommonResult; +import cn.lihu.jh.framework.common.util.object.BeanUtils; +import static cn.lihu.jh.framework.common.pojo.CommonResult.success; + +import cn.lihu.jh.framework.excel.core.util.ExcelUtils; + +import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; +import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*; +import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; +import cn.lihu.jh.module.ecg.service.checktype.CheckTypeService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +@Tag(name = "绠$悊鍚庡彴 - 妫�鏌ョ被鍨�") +@RestController +@RequestMapping("/ecg/check-type") +@Validated +public class CheckTypeController { + + @Resource + private CheckTypeService checkTypeService; + + @PostMapping("/create") + @Operation(summary = "鍒涘缓妫�鏌ョ被鍨�") + @PreAuthorize("@ss.hasPermission('ecg:check-type:create')") + public CommonResult<Integer> createCheckType(@Valid @RequestBody CheckTypeSaveReqVO createReqVO) { + return success(checkTypeService.createCheckType(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "鏇存柊妫�鏌ョ被鍨�") + @PreAuthorize("@ss.hasPermission('ecg:check-type:update')") + public CommonResult<Boolean> updateCheckType(@Valid @RequestBody CheckTypeSaveReqVO updateReqVO) { + checkTypeService.updateCheckType(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "鍒犻櫎妫�鏌ョ被鍨�") + @Parameter(name = "id", description = "缂栧彿", required = true) + @PreAuthorize("@ss.hasPermission('ecg:check-type:delete')") + public CommonResult<Boolean> deleteCheckType(@RequestParam("id") Integer id) { + checkTypeService.deleteCheckType(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "鑾峰緱妫�鏌ョ被鍨�") + @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('ecg:check-type:query')") + public CommonResult<CheckTypeRespVO> getCheckType(@RequestParam("id") Integer id) { + CheckTypeDO checkType = checkTypeService.getCheckType(id); + return success(BeanUtils.toBean(checkType, CheckTypeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "鑾峰緱妫�鏌ョ被鍨嬪垎椤�") + @PreAuthorize("@ss.hasPermission('ecg:check-type:query')") + public CommonResult<PageResult<CheckTypeRespVO>> getCheckTypePage(@Valid CheckTypePageReqVO pageReqVO) { + PageResult<CheckTypeDO> pageResult = checkTypeService.getCheckTypePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, CheckTypeRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "瀵煎嚭妫�鏌ョ被鍨� Excel") + @PreAuthorize("@ss.hasPermission('ecg:check-type:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportCheckTypeExcel(@Valid CheckTypePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List<CheckTypeDO> list = checkTypeService.getCheckTypePage(pageReqVO).getList(); + // 瀵煎嚭 Excel + ExcelUtils.write(response, "妫�鏌ョ被鍨�.xls", "鏁版嵁", CheckTypeRespVO.class, + BeanUtils.toBean(list, CheckTypeRespVO.class)); + } + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java new file mode 100644 index 0000000..99dac31 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java @@ -0,0 +1,34 @@ +package cn.lihu.jh.module.ecg.controller.admin.checktype.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.lihu.jh.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.lihu.jh.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 CheckTypePageReqVO extends PageParam { + + @Schema(description = "妫�鏌ョ被鍨嬪悕", example = "鑺嬭壙") + private String name; + + @Schema(description = "妫�鏌ョ被鍨嬪��") + private Integer value; + + @Schema(description = "鍏佽鍑嗗涓汉鏁�") + private Integer readyNum; + + @Schema(description = "鍒涘缓鏃堕棿") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "闇�瑕佽澶囬鐢�") + private Integer needDevReady; + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java new file mode 100644 index 0000000..ddc4692 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java @@ -0,0 +1,39 @@ +package cn.lihu.jh.module.ecg.controller.admin.checktype.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "绠$悊鍚庡彴 - 妫�鏌ョ被鍨� Response VO") +@Data +@ExcelIgnoreUnannotated +public class CheckTypeRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "800") + @ExcelProperty("id") + private Integer id; + + @Schema(description = "妫�鏌ョ被鍨嬪悕", example = "鑺嬭壙") + @ExcelProperty("妫�鏌ョ被鍨嬪悕") + private String name; + + @Schema(description = "妫�鏌ョ被鍨嬪��") + @ExcelProperty("妫�鏌ョ被鍨嬪��") + private Integer value; + + @Schema(description = "鍏佽鍑嗗涓汉鏁�") + @ExcelProperty("鍏佽鍑嗗涓汉鏁�") + private Integer readyNum; + + @Schema(description = "鍒涘缓鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("鍒涘缓鏃堕棿") + private LocalDateTime createTime; + + @Schema(description = "闇�瑕佽澶囬鐢�") + @ExcelProperty("闇�瑕佽澶囬鐢�") + private Integer needDevReady; + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java new file mode 100644 index 0000000..c433f41 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.lihu.jh.module.ecg.controller.admin.checktype.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "绠$悊鍚庡彴 - 妫�鏌ョ被鍨嬫柊澧�/淇敼 Request VO") +@Data +public class CheckTypeSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "800") + private Integer id; + + @Schema(description = "妫�鏌ョ被鍨嬪悕", example = "鑺嬭壙") + private String name; + + @Schema(description = "妫�鏌ョ被鍨嬪��") + private Integer value; + + @Schema(description = "鍏佽鍑嗗涓汉鏁�") + private Integer readyNum; + + @Schema(description = "闇�瑕佽澶囬鐢�") + private Integer needDevReady; + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java new file mode 100644 index 0000000..8d3f810 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java @@ -0,0 +1,47 @@ +package cn.lihu.jh.module.ecg.dal.dataobject.checktype; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; + +/** + * 妫�鏌ョ被鍨� DO + * + * @author majianbo + */ +@TableName("check_type") +@KeySequence("check_type_seq") // 鐢ㄤ簬 Oracle銆丳ostgreSQL銆並ingbase銆丏B2銆丠2 鏁版嵁搴撶殑涓婚敭鑷銆傚鏋滄槸 MySQL 绛夋暟鎹簱锛屽彲涓嶅啓銆� +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CheckTypeDO extends BaseDO { + + /** + * id + */ + @TableId + private Integer id; + /** + * 妫�鏌ョ被鍨嬪悕 + */ + private String name; + /** + * 妫�鏌ョ被鍨嬪�� + */ + private Integer value; + /** + * 鍏佽鍑嗗涓汉鏁� + */ + private Integer readyNum; + /** + * 闇�瑕佽澶囬鐢� + */ + private Integer needDevReady; + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java new file mode 100644 index 0000000..7eede30 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java @@ -0,0 +1,30 @@ +package cn.lihu.jh.module.ecg.dal.mysql.checktype; + +import java.util.*; + +import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; +import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; +import org.apache.ibatis.annotations.Mapper; +import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*; + +/** + * 妫�鏌ョ被鍨� Mapper + * + * @author majianbo + */ +@Mapper +public interface CheckTypeMapper extends BaseMapperX<CheckTypeDO> { + + default PageResult<CheckTypeDO> selectPage(CheckTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<CheckTypeDO>() + .likeIfPresent(CheckTypeDO::getName, reqVO.getName()) + .eqIfPresent(CheckTypeDO::getValue, reqVO.getValue()) + .eqIfPresent(CheckTypeDO::getReadyNum, reqVO.getReadyNum()) + .betweenIfPresent(CheckTypeDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(CheckTypeDO::getNeedDevReady, reqVO.getNeedDevReady()) + .orderByDesc(CheckTypeDO::getId)); + } + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java new file mode 100644 index 0000000..2bc1e94 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java @@ -0,0 +1,54 @@ +package cn.lihu.jh.module.ecg.service.checktype; + +import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*; +import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; +import cn.lihu.jh.framework.common.pojo.PageResult; + +import javax.validation.Valid; + +/** + * 妫�鏌ョ被鍨� Service 鎺ュ彛 + * + * @author majianbo + */ +public interface CheckTypeService { + + /** + * 鍒涘缓妫�鏌ョ被鍨� + * + * @param createReqVO 鍒涘缓淇℃伅 + * @return 缂栧彿 + */ + Integer createCheckType(@Valid CheckTypeSaveReqVO createReqVO); + + /** + * 鏇存柊妫�鏌ョ被鍨� + * + * @param updateReqVO 鏇存柊淇℃伅 + */ + void updateCheckType(@Valid CheckTypeSaveReqVO updateReqVO); + + /** + * 鍒犻櫎妫�鏌ョ被鍨� + * + * @param id 缂栧彿 + */ + void deleteCheckType(Integer id); + + /** + * 鑾峰緱妫�鏌ョ被鍨� + * + * @param id 缂栧彿 + * @return 妫�鏌ョ被鍨� + */ + CheckTypeDO getCheckType(Integer id); + + /** + * 鑾峰緱妫�鏌ョ被鍨嬪垎椤� + * + * @param pageReqVO 鍒嗛〉鏌ヨ + * @return 妫�鏌ョ被鍨嬪垎椤� + */ + PageResult<CheckTypeDO> getCheckTypePage(CheckTypePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java new file mode 100644 index 0000000..c0254f0 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java @@ -0,0 +1,72 @@ +package cn.lihu.jh.module.ecg.service.checktype; + +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*; +import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; +import cn.lihu.jh.framework.common.pojo.PageResult; +import cn.lihu.jh.framework.common.util.object.BeanUtils; + +import cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper; + +import javax.annotation.Resource; + +import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; + +/** + * 妫�鏌ョ被鍨� Service 瀹炵幇绫� + * + * @author majianbo + */ +@Service +@Validated +public class CheckTypeServiceImpl implements CheckTypeService { + + @Resource + private CheckTypeMapper checkTypeMapper; + + @Override + public Integer createCheckType(CheckTypeSaveReqVO createReqVO) { + // 鎻掑叆 + CheckTypeDO checkType = BeanUtils.toBean(createReqVO, CheckTypeDO.class); + checkTypeMapper.insert(checkType); + // 杩斿洖 + return checkType.getId(); + } + + @Override + public void updateCheckType(CheckTypeSaveReqVO updateReqVO) { + // 鏍¢獙瀛樺湪 + validateCheckTypeExists(updateReqVO.getId()); + // 鏇存柊 + CheckTypeDO updateObj = BeanUtils.toBean(updateReqVO, CheckTypeDO.class); + checkTypeMapper.updateById(updateObj); + } + + @Override + public void deleteCheckType(Integer id) { + // 鏍¢獙瀛樺湪 + validateCheckTypeExists(id); + // 鍒犻櫎 + checkTypeMapper.deleteById(id); + } + + private void validateCheckTypeExists(Integer id) { + if (checkTypeMapper.selectById(id) == null) { + throw exception(CHECK_TYPE_NOT_EXISTS); + } + } + + @Override + public CheckTypeDO getCheckType(Integer id) { + return checkTypeMapper.selectById(id); + } + + @Override + public PageResult<CheckTypeDO> getCheckTypePage(CheckTypePageReqVO pageReqVO) { + return checkTypeMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml b/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml new file mode 100644 index 0000000..52ba987 --- /dev/null +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper"> + + <!-- + 涓�鑸儏鍐典笅锛屽敖鍙兘浣跨敤 Mapper 杩涜 CRUD 澧炲垹鏀规煡鍗冲彲銆� + 鏃犳硶婊¤冻鐨勫満鏅紝渚嬪璇村琛ㄥ叧鑱旀煡璇紝鎵嶄娇鐢� XML 缂栧啓 SQL銆� + 浠g爜鐢熸垚鍣ㄦ殏鏃跺彧鐢熸垚 Mapper XML 鏂囦欢鏈韩锛屾洿澶氭帹鑽� MybatisX 蹇�熷紑鍙戞彃浠舵潵鐢熸垚鏌ヨ銆� + 鏂囨。鍙锛歨ttps://www.iocoder.cn/MyBatis/x-plugins/ + --> + +</mapper> \ No newline at end of file -- Gitblit v1.9.3