From a4e4d213ef5acc45e09ad19b999f1b357dd2d5b0 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Thu, 20 Nov 2025 16:29:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0[=E4=BD=9C=E4=B8=9A=E6=A7=BD]?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/WorkTankController.java | 138 ++++++++++++++++++ .../basic/excel/gen/WorkTankGenExcel.java | 62 ++++++++ .../basic/mapper/gen/WorkTankGenMapper.java | 40 +++++ .../basic/mapper/gen/WorkTankGenMapper.xml | 22 +++ .../basic/pojo/dto/gen/WorkTankGenDTO.java | 24 +++ .../desk/basic/pojo/entity/WorkTank.java | 75 ++++++++++ .../desk/basic/pojo/vo/gen/WorkTankGenVO.java | 24 +++ .../service/gen/IWorkTankGenService.java | 38 +++++ .../impl/gen/WorkTankGenServiceImpl.java | 40 +++++ .../basic/wrapper/gen/WorkTankGenWrapper.java | 36 +++++ 10 files changed, 499 insertions(+) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/gen/WorkTankGenExcel.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/dto/gen/WorkTankGenDTO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/gen/WorkTankGenVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/gen/IWorkTankGenService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/gen/WorkTankGenServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/gen/WorkTankGenWrapper.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java new file mode 100644 index 0000000..3f6e42b --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java @@ -0,0 +1,138 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.excel.gen.WorkTankGenExcel; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.pojo.vo.gen.WorkTankGenVO; +import org.springblade.desk.basic.service.gen.IWorkTankGenService; +import org.springblade.desk.basic.wrapper.gen.WorkTankGenWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * [作业槽] 控制器 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/WorkTank") +@Tag(name = "[作业槽]", description = "[作业槽]接口") +public class WorkTankController extends BladeController { + + private final IWorkTankGenService workTankGenService; + + /** + * [作业槽] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入WorkTank") + public R detail(WorkTank workTank) { + WorkTank detail = workTankGenService.getOne(Condition.getQueryWrapper(workTank)); + return R.data(WorkTankGenWrapper.build().entityVO(detail)); + } + + /** + * [作业槽] 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入WorkTank") + public R> list(@Parameter(hidden = true) @RequestParam Map workTank, Query query) { + IPage pages = workTankGenService.page(Condition.getPage(query), Condition.getQueryWrapper(workTank, WorkTank.class)); + return R.data(WorkTankGenWrapper.build().pageVO(pages)); + } + + + /** + * [作业槽] 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入WorkTank") + public R> page(WorkTankGenVO workTank, Query query) { + IPage pages = workTankGenService.selectWorkTankPage(Condition.getPage(query), workTank); + return R.data(pages); + } + + /** + * [作业槽] 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入WorkTank") + public R save(@Valid @RequestBody WorkTank workTank) { + return R.status(workTankGenService.save(workTank)); + } + + /** + * [作业槽] 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入WorkTank") + public R update(@Valid @RequestBody WorkTank workTank) { + return R.status(workTankGenService.updateById(workTank)); + } + + /** + * [作业槽] 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入WorkTank") + public R submit(@Valid @RequestBody WorkTank workTank) { + return R.status(workTankGenService.saveOrUpdate(workTank)); + } + + /** + * [作业槽] 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(workTankGenService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-excel") + @ApiOperationSupport(order = 8) + @Operation(summary = "导出数据", description = "传入WorkTank") + public void exportWorkTank(@Parameter(hidden = true) @RequestParam Map workTank, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(workTank, WorkTank.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(WorkTank::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(WorkTankEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = workTankGenService.exportWorkTank(queryWrapper); + ExcelUtil.export(response, "[作业槽]数据" + DateUtil.time(), "[作业槽]数据表", list, WorkTankGenExcel.class); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/gen/WorkTankGenExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/gen/WorkTankGenExcel.java new file mode 100644 index 0000000..f30ae65 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/gen/WorkTankGenExcel.java @@ -0,0 +1,62 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.excel.gen; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * [作业槽] Excel实体类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class WorkTankGenExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码 + */ + @ColumnWidth(20) + @ExcelProperty("编码") + private String code; + /** + * [作业槽]类型 + */ + @ColumnWidth(20) + @ExcelProperty("[作业槽]类型") + private Long workTankType; + /** + * [作业槽]名称 + */ + @ColumnWidth(20) + @ExcelProperty("[作业槽]名称") + private String name; + /** + * 排序 + */ + @ColumnWidth(20) + @ExcelProperty("排序") + private Long sort; + /** + * 备注 + */ + @ColumnWidth(20) + @ExcelProperty("备注") + private String remark; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.java new file mode 100644 index 0000000..19b1e53 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.java @@ -0,0 +1,40 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.mapper.gen; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.basic.excel.gen.WorkTankGenExcel; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.pojo.vo.gen.WorkTankGenVO; + +import java.util.List; + +/** + * [作业槽] Mapper 接口 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +public interface WorkTankGenMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param workTank 查询参数 + * @return List + */ + List selectWorkTankPage(IPage page, WorkTankGenVO workTank); + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportWorkTank(@Param("ew") Wrapper queryWrapper); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.xml new file mode 100644 index 0000000..46cb208 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/gen/WorkTankGenMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/dto/gen/WorkTankGenDTO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/dto/gen/WorkTankGenDTO.java new file mode 100644 index 0000000..6bcce36 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/dto/gen/WorkTankGenDTO.java @@ -0,0 +1,24 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.pojo.dto.gen; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.basic.pojo.entity.WorkTank; + +import java.io.Serial; + +/** + * [作业槽] 数据传输对象实体类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WorkTankGenDTO extends WorkTank { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java new file mode 100644 index 0000000..3bd633d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java @@ -0,0 +1,75 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * [作业槽] 实体类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@Data +@TableName("BA_WORK_TANK") +@Schema(description = "WorkTank Entity对象") +@EqualsAndHashCode(callSuper = true) +public class WorkTank extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码 + */ + public static final String COL_CODE = "CODE"; + /** + * [作业槽]类型 + */ + public static final String COL_WORK_TANK_TYPE = "WORK_TANK_TYPE"; + /** + * [作业槽]名称 + */ + public static final String COL_NAME = "NAME"; + /** + * 排序 + */ + public static final String COL_SORT = "SORT"; + /** + * 备注 + */ + public static final String COL_REMARK = "REMARK"; + + /** + * 编码 + */ + @Schema(description = "编码") + private String code; + /** + * [作业槽]类型 + */ + @Schema(description = "[作业槽]类型") + private Long workTankType; + /** + * [作业槽]名称 + */ + @Schema(description = "[作业槽]名称") + private String name; + /** + * 排序 + */ + @Schema(description = "排序") + private Long sort; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/gen/WorkTankGenVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/gen/WorkTankGenVO.java new file mode 100644 index 0000000..7213453 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/gen/WorkTankGenVO.java @@ -0,0 +1,24 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.pojo.vo.gen; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.basic.pojo.entity.WorkTank; + +import java.io.Serial; + +/** + * [作业槽] 视图实体类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WorkTankGenVO extends WorkTank { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/gen/IWorkTankGenService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/gen/IWorkTankGenService.java new file mode 100644 index 0000000..973bcf5 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/gen/IWorkTankGenService.java @@ -0,0 +1,38 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.service.gen; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.basic.excel.gen.WorkTankGenExcel; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.pojo.vo.gen.WorkTankGenVO; + +import java.util.List; + +/** + * [作业槽] 服务类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +public interface IWorkTankGenService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param workTank 查询参数 + * @return IPage + */ + IPage selectWorkTankPage(IPage page, WorkTankGenVO workTank); + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportWorkTank(Wrapper queryWrapper); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/gen/WorkTankGenServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/gen/WorkTankGenServiceImpl.java new file mode 100644 index 0000000..d70f99a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/gen/WorkTankGenServiceImpl.java @@ -0,0 +1,40 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.service.impl.gen; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.basic.excel.gen.WorkTankGenExcel; +import org.springblade.desk.basic.mapper.gen.WorkTankGenMapper; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.pojo.vo.gen.WorkTankGenVO; +import org.springblade.desk.basic.service.gen.IWorkTankGenService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * [作业槽] 服务实现类 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +@Service +public class WorkTankGenServiceImpl extends BaseServiceImpl implements IWorkTankGenService { + + @Override + public IPage selectWorkTankPage(IPage page, WorkTankGenVO workTank) { + return page.setRecords(baseMapper.selectWorkTankPage(page, workTank)); + } + + @Override + public List exportWorkTank(Wrapper queryWrapper) { + List workTankList = baseMapper.exportWorkTank(queryWrapper); + //workTankList.forEach(workTank -> { + // workTank.setTypeName(DictCache.getValue(DictEnum.YES_NO, WorkTank.getType())); + //}); + return workTankList; + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/gen/WorkTankGenWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/gen/WorkTankGenWrapper.java new file mode 100644 index 0000000..1023f9a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/gen/WorkTankGenWrapper.java @@ -0,0 +1,36 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.wrapper.gen; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.pojo.vo.gen.WorkTankGenVO; + +import java.util.Objects; + +/** + * [作业槽] 包装类,返回视图层所需的字段 + * + * @author Tom Shuo + * @since 2025-11-20 + */ +public class WorkTankGenWrapper extends BaseEntityWrapper { + + public static WorkTankGenWrapper build() { + return new WorkTankGenWrapper(); + } + + @Override + public WorkTankGenVO entityVO(WorkTank workTank) { + WorkTankGenVO workTankVO = Objects.requireNonNull(BeanUtil.copyProperties(workTank, WorkTankGenVO.class)); + + //User createUser = UserCache.getUser(workTank.getCreateUser()); + //User updateUser = UserCache.getUser(workTank.getUpdateUser()); + //workTankVO.setCreateUserName(createUser.getName()); + //workTankVO.setUpdateUserName(updateUser.getName()); + + return workTankVO; + } +}