From cdef7d18ade589b92b5a98e2a1737fa84616c5f4 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Thu, 27 Nov 2025 15:17:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E8=AF=95=E9=AA=8C=20=E7=9B=B8=E5=85=B3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/LauncherConstant.java | 2 +- .../controller/BsPlatingController.java | 195 +++--- .../controller/CycleTestController.java | 4 +- .../controller/CycleTestTaskController.java | 18 +- .../quality/mapper/gen/CycleTestGenMapper.xml | 1 + .../mapper/gen/CycleTestTaskGenMapper.xml | 12 + .../desk/quality/pojo/entity/CycleTest.java | 5 + .../quality/pojo/entity/CycleTestTask.java | 29 +- .../quality/pojo/vo/gen/CycleTestGenVO.java | 9 + .../pojo/vo/gen/CycleTestTaskGenVO.java | 42 +- .../quality/service/CycleTestService.java | 31 +- .../quality/service/CycleTestTaskService.java | 97 ++- .../impl/gen/CycleTestTaskGenServiceImpl.java | 4 +- .../wrapper/gen/CycleTestTaskGenWrapper.java | 1 - .../system/controller/UserController.java | 603 +++++++++--------- .../system/service/IUserExtService.java | 27 + .../service/impl/UserExtServiceImpl.java | 46 ++ 17 files changed, 710 insertions(+), 416 deletions(-) create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/IUserExtService.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserExtServiceImpl.java diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 987e101..1b6ba9d 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -37,7 +37,7 @@ public interface LauncherConstant { /** * nacos 命名空间 */ - String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; + String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; // String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java index b2fe9ba..30d6f07 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java @@ -50,8 +50,10 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.tool.constant.BladeConstant; + import java.util.Map; import java.util.List; + import jakarta.servlet.http.HttpServletResponse; /** @@ -66,96 +68,107 @@ import jakarta.servlet.http.HttpServletResponse; @Tag(name = "镀种信息表", description = "镀种信息表接口") public class BsPlatingController extends BladeController { - private final IBsPlatingService bsPlatingService; - - /** - * 镀种信息表 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 1) - @Operation(summary = "详情", description = "传入bsPlating") - public R detail(BsPlatingEntity bsPlating) { - BsPlatingEntity detail = bsPlatingService.getOne(Condition.getQueryWrapper(bsPlating)); - return R.data(BsPlatingWrapper.build().entityVO(detail)); - } - /** - * 镀种信息表 分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 2) - @Operation(summary = "分页", description = "传入bsPlating") - public R> list(@Parameter(hidden = true) @RequestParam Map bsPlating, Query query) { - IPage pages = bsPlatingService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class)); - return R.data(BsPlatingWrapper.build().pageVO(pages)); - } - - /** - * 镀种信息表 自定义分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 3) - @Operation(summary = "分页", description = "传入bsPlating") - public R> page(BsPlatingVO bsPlating, Query query) { - IPage pages = bsPlatingService.selectBsPlatingPage(Condition.getPage(query), bsPlating); - return R.data(pages); - } - - /** - * 镀种信息表 新增 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 4) - @Operation(summary = "新增", description = "传入bsPlating") - public R save(@Valid @RequestBody BsPlatingEntity bsPlating) { - return R.status(bsPlatingService.save(bsPlating)); - } - - /** - * 镀种信息表 修改 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 5) - @Operation(summary = "修改", description = "传入bsPlating") - public R update(@Valid @RequestBody BsPlatingEntity bsPlating) { - return R.status(bsPlatingService.updateById(bsPlating)); - } - - /** - * 镀种信息表 新增或修改 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 6) - @Operation(summary = "新增或修改", description = "传入bsPlating") - public R submit(@Valid @RequestBody BsPlatingEntity bsPlating) { - return R.status(bsPlatingService.saveOrUpdate(bsPlating)); - } - - /** - * 镀种信息表 删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 7) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(bsPlatingService.deleteLogic(Func.toLongList(ids))); - } - - - /** - * 导出数据 - */ - @IsAdmin - @GetMapping("/export-bsPlating") - @ApiOperationSupport(order = 9) - @Operation(summary = "导出数据", description = "传入bsPlating") - public void exportBsPlating(@Parameter(hidden = true) @RequestParam Map bsPlating, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(BsPlating::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(BsPlatingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = bsPlatingService.exportBsPlating(queryWrapper); - ExcelUtil.export(response, "镀种信息表数据" + DateUtil.time(), "镀种信息表数据表", list, BsPlatingExcel.class); - } + private final IBsPlatingService bsPlatingService; + + /** + * 镀种信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入bsPlating") + public R detail(BsPlatingEntity bsPlating) { + BsPlatingEntity detail = bsPlatingService.getOne(Condition.getQueryWrapper(bsPlating)); + return R.data(BsPlatingWrapper.build().entityVO(detail)); + } + + /** + * 镀种信息表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入bsPlating") + public R> list(@Parameter(hidden = true) @RequestParam Map bsPlating, Query query) { + IPage pages = bsPlatingService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class)); + return R.data(BsPlatingWrapper.build().pageVO(pages)); + } + + /** + * 镀种信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入bsPlating") + public R> page(BsPlatingVO bsPlating, Query query) { + IPage pages = bsPlatingService.selectBsPlatingPage(Condition.getPage(query), bsPlating); + return R.data(pages); + } + + /** + * 镀种信息表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入bsPlating") + public R save(@Valid @RequestBody BsPlatingEntity bsPlating) { + return R.status(bsPlatingService.save(bsPlating)); + } + + /** + * 镀种信息表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入bsPlating") + public R update(@Valid @RequestBody BsPlatingEntity bsPlating) { + return R.status(bsPlatingService.updateById(bsPlating)); + } + + /** + * 镀种信息表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入bsPlating") + public R submit(@Valid @RequestBody BsPlatingEntity bsPlating) { + return R.status(bsPlatingService.saveOrUpdate(bsPlating)); + } + + /** + * 镀种信息表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(bsPlatingService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-bsPlating") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入bsPlating") + public void exportBsPlating(@Parameter(hidden = true) @RequestParam Map bsPlating, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(BsPlating::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(BsPlatingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = bsPlatingService.exportBsPlating(queryWrapper); + ExcelUtil.export(response, "镀种信息表数据" + DateUtil.time(), "镀种信息表数据表", list, BsPlatingExcel.class); + } + /** + * [镀种]所有下拉选择 + */ + @GetMapping("/listForSelect") + @ApiOperationSupport(order = 2) + @Operation(summary = "[镀种]所有下拉选择", description = "") + public R> listForSelect() { + List list = bsPlatingService.list(); + return R.data(BsPlatingWrapper.build().listVO(list)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java index 951d0f7..0b13f12 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java @@ -67,7 +67,9 @@ public class CycleTestController extends BladeController { @Operation(summary = "详情", description = "传入cycleTest") public R detail(CycleTest cycleTest) { CycleTest detail = genService.getOne(Condition.getQueryWrapper(cycleTest)); - return R.data(CycleTestGenWrapper.build().entityVO(detail)); + CycleTestGenVO vo = CycleTestGenWrapper.build().entityVO(detail); + service.setVoValue(vo); + return R.data(vo); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java index c028b3b..96c3268 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java @@ -31,8 +31,10 @@ import org.springblade.desk.quality.pojo.vo.gen.CycleTestTaskGenVO; import org.springblade.desk.quality.service.CycleTestTaskService; import org.springblade.desk.quality.service.gen.ICycleTestTaskGenService; import org.springblade.desk.quality.wrapper.gen.CycleTestTaskGenWrapper; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -76,11 +78,7 @@ public class CycleTestTaskController extends BladeController { @Operation(summary = "list分页", description = "传入cycleTestTask") public R> list(@Parameter(hidden = true) @RequestParam Map cycleTestTask, Query query) { - IPage pages = cycleTestTaskGenService.page( - Condition.getPage(query), - Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class) - ); - return R.data(CycleTestTaskGenWrapper.build().pageVO(pages)); + return service.list(cycleTestTask, query); } @@ -90,9 +88,8 @@ public class CycleTestTaskController extends BladeController { @GetMapping("/page") @ApiOperationSupport(order = 3) @Operation(summary = "page分页", description = "传入cycleTestTask") - public R> page(CycleTestTaskGenVO cycleTestTask, Query query) { - IPage pages = cycleTestTaskGenService.selectCycleTestTaskPage(Condition.getPage(query), cycleTestTask); - return R.data(pages); + public R> page(CycleTestTaskGenVO cycleTestTask, Query query) { + return service.page(cycleTestTask, query); } /** @@ -175,7 +172,8 @@ public class CycleTestTaskController extends BladeController { @Operation(summary = "手动生成", description = "") public R generateManual(@Parameter(description = "[周期试验]主键", required = true) @RequestParam Long cycleTestId, @Parameter(description = "工艺员[用户]id", required = true) @RequestParam Long processUserId, - @Parameter(description = "一次性下发时间", required = true) @RequestParam LocalDateTime oneTimeGenDate) { + @Parameter(description = "一次性下发时间", required = true) + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate oneTimeGenDate) { return service.generateManual(cycleTestId, processUserId, oneTimeGenDate); } @@ -190,7 +188,7 @@ public class CycleTestTaskController extends BladeController { @ApiOperationSupport(order = 12) @Operation(summary = "填报", description = "") public R fill(@Parameter(description = "主键", required = true) @RequestParam Long id, - @Parameter(description = "试验时间", required = true) @RequestParam @JsonFormat(pattern = "yyyy-MM-dd") LocalDateTime testDate, + @Parameter(description = "试验时间", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate testDate, @Parameter(description = "试验结果", required = true) @RequestParam Long testAttachId) { return service.fill(id, testDate, testAttachId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestGenMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestGenMapper.xml index 2a1dfad..1ea826d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestGenMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestGenMapper.xml @@ -33,6 +33,7 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java index d671e89..857b063 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java @@ -281,4 +281,9 @@ public class CycleTest extends BaseEntity { */ @Schema(description = "临期提醒 json config") private String jsonConfigRemind; + /** + * 是否顺延-[1]:是;[0]:否; + */ + @Schema(description = "是否顺延-[1]:是;[0]:否;") + private Integer isPutOff; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java index 5e762e9..56bd804 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java @@ -11,10 +11,13 @@ import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import java.io.Serial; +import java.time.LocalDate; import java.time.LocalDateTime; /** * [周期试验任务] 实体类 + *

+ * 任务生成时间 createTime * * @author Tom Shuo * @since 2025-11-25 @@ -121,6 +124,11 @@ public class CycleTestTask extends BaseEntity { */ public static final String COL_ONE_TIME_GEN_DATE = "ONE_TIME_GEN_DATE"; + public static final String COL_ISSUE_DATE = "ISSUE_DATE"; + + public static final String COL_ACCEPT_DATE = "ACCEPT_DATE"; + + public static final String COL_FINISH_DATE = "FINISH_DATE"; /** * [周期试验任务]编码 @@ -232,11 +240,26 @@ public class CycleTestTask extends BaseEntity { */ @Schema(description = "试验时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime testDate; + private LocalDate testDate; /** * 一次性任务生成日期 */ @Schema(description = "一次性任务生成日期") - // @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime oneTimeGenDate; + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate oneTimeGenDate; + /** + * 下发时间 + */ + @Schema(description = "下发时间") + public LocalDateTime issueDate; + /** + * 接收时间 + */ + @Schema(description = "接收时间") + public LocalDateTime acceptDate; + /** + * 完成时间 + */ + @Schema(description = "完成时间") + public LocalDateTime finishDate; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java index 96ba04d..0a7696b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java @@ -58,4 +58,13 @@ public class CycleTestGenVO extends CycleTest { */ @Schema(description = "试验技术员[用户]姓名") private String testUserName; + /** + * 更新[用户]姓名 + */ + @Schema(description = "更新[用户]姓名") + private String updateUserName; + /** + * 试验件类型 名称 + */ + private String testTypeName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java index 8ea6faf..bfcc8f4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java @@ -3,11 +3,14 @@ */ package org.springblade.desk.quality.pojo.vo.gen; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.CycleTestTask; import java.io.Serial; +import java.time.LocalDate; +import java.time.LocalDateTime; /** * [周期试验任务] 视图实体类 @@ -18,7 +21,42 @@ import java.io.Serial; @Data @EqualsAndHashCode(callSuper = true) public class CycleTestTaskGenVO extends CycleTestTask { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; + /** + * [周期试验项目]名称 + */ + @Schema(description = "[周期试验项目]名称") + private String cycleTestItemName; + /** + * [周期试验项目]试验条件 + */ + @Schema(description = "[周期试验项目]试验条件") + private String cycleTestItemCondition; + /** + * [周期试验项目]试验标准 + */ + @Schema(description = "[周期试验项目]试验标准") + private String cycleTestItemStandard; + /** + * 工艺员[用户]姓名 + */ + @Schema(description = "工艺员[用户]姓名") + private String processUserName; + /** + * 任务生成时间 + */ + @Schema(description = "任务生成时间") + private LocalDateTime genDatetime; + /** + * 试验件类型名称 + */ + @Schema(description = "试验件类型名称") + private String testTypeName; + /** + * 状态名称 + */ + @Schema(description = "状态名称") + private String statusName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java index ddfb0a4..d85b3d4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java @@ -9,6 +9,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.dashboard.service.IBsPlatingService; import org.springblade.desk.quality.constant.BaseCol; import org.springblade.desk.quality.mapper.gen.CycleTestGenMapper; import org.springblade.desk.quality.pojo.entity.CycleTest; @@ -17,6 +18,7 @@ import org.springblade.desk.quality.pojo.vo.gen.CycleTestGenVO; import org.springblade.desk.quality.service.gen.ICycleTestGenService; import org.springblade.desk.quality.service.gen.ICycleTestItemGenService; import org.springblade.desk.quality.wrapper.gen.CycleTestGenWrapper; +import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.UserInfo; import org.springframework.stereotype.Service; @@ -39,8 +41,11 @@ public class CycleTestService { @Resource private ICycleTestItemGenService itemGenService; @Resource + private IBsPlatingService bsPlatingService; + @Resource private IUserClient userClient; - + @Resource + private IDictClient dictClient; public R updateProcessUserBat(String ids, Long processUserId) { List list = Func.toLongList(ids); @@ -99,11 +104,19 @@ public class CycleTestService { * * @param vo */ - private void setVoValue(CycleTestGenVO vo) { + public void setVoValue(CycleTestGenVO vo) { + { + R ui = userClient.userInfo(vo.getUpdateUser()); + if (!Objects.isNull(ui)) { + vo.setUpdateUserName(ui.getData().getUser().getName()); + } + } CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId()); - vo.setCycleTestItemName(item.getName()); - vo.setCycleTestItemCondition(item.getCondition()); - vo.setCycleTestItemStandard(item.getStandard()); + if (!Objects.isNull(item)) { + vo.setCycleTestItemName(item.getName()); + vo.setCycleTestItemCondition(item.getCondition()); + vo.setCycleTestItemStandard(item.getStandard()); + } vo.setCycleTestItemTestAttach(item.getTestAttachId() + ""); { R ui = userClient.userInfo(vo.getProcessUserId()); @@ -111,11 +124,9 @@ public class CycleTestService { vo.setProcessUserName(ui.getData().getUser().getName()); } } - { - R ui = userClient.userInfo(vo.getTestUserId()); - if (!Objects.isNull(ui)) { - vo.setTestUserName(ui.getData().getUser().getName()); - } + if (vo.getPlateId() != null && vo.getPlateId() != 0L) { + vo.setPlateName(bsPlatingService.getById(vo.getPlateId()).getPlate()); } + vo.setTestTypeName(dictClient.getValue("testPiece", "" + vo.getTestType()).getData()); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java index 9ca67f4..1a5c088 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java @@ -1,19 +1,39 @@ package org.springblade.desk.quality.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Parameter; import jakarta.annotation.Resource; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.quality.constant.BaseCol; import org.springblade.desk.quality.constant.CycleTestTaskConst; import org.springblade.desk.quality.mapper.gen.CycleTestGenMapper; import org.springblade.desk.quality.mapper.gen.CycleTestTaskGenMapper; import org.springblade.desk.quality.pojo.entity.CycleTest; +import org.springblade.desk.quality.pojo.entity.CycleTestItem; import org.springblade.desk.quality.pojo.entity.CycleTestTask; +import org.springblade.desk.quality.pojo.vo.gen.CycleTestTaskGenVO; +import org.springblade.desk.quality.service.gen.ICycleTestItemGenService; +import org.springblade.desk.quality.service.gen.ICycleTestTaskGenService; +import org.springblade.desk.quality.wrapper.gen.CycleTestTaskGenWrapper; +import org.springblade.system.feign.IDictClient; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.UserInfo; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestParam; +import java.time.Instant; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; /** * @@ -31,6 +51,56 @@ public class CycleTestTaskService { private CycleTestTaskGenMapper genMapper; @Resource private CycleTestGenMapper cycleTestGenMapper; + @Resource + private ICycleTestItemGenService itemGenService; + @Resource + private ICycleTestTaskGenService genService; + @Resource + private IUserClient userClient; + @Resource + private IDictClient dictClient; + + /** + * list + * + * @param cycleTestTask + * @param query + * @return + */ + public R> list(@Parameter(hidden = true) @RequestParam Map cycleTestTask, + Query query) { + IPage pages = genService.page( + Condition.getPage(query), + Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class) + .orderByAsc(BaseCol.ID) + ); + IPage pagesVO = CycleTestTaskGenWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(this::setVoValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + /** + * search + * + * @param cycleTest + * @param query + * @return + */ + public R> page(CycleTestTaskGenVO cycleTest, Query query) { + IPage pages = genService.selectCycleTestTaskPage( + Condition.getPage(query), + cycleTest + ); + IPage pagesVO = CycleTestTaskGenWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(this::setVoValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } /** * 定时任务 生成任务 @@ -65,7 +135,7 @@ public class CycleTestTaskService { * @param oneTimeGenDate * @return */ - public R generateManual(Long cycleTestId, Long processUserId, LocalDateTime oneTimeGenDate) { + public R generateManual(Long cycleTestId, Long processUserId, LocalDate oneTimeGenDate) { CycleTest ct = cycleTestGenMapper.selectById(cycleTestId); CycleTestTask task = new CycleTestTask(); // set value. @@ -133,6 +203,7 @@ public class CycleTestTaskService { CycleTestTask task = genMapper.selectById(id); task.setProcessUserId(processUserId); task.setStatus(CycleTestTaskConst.STATE_PENDING_ACCEPT); + task.setIssueDate(LocalDateTime.now()); genMapper.updateById(task); } return R.success("下发成功"); @@ -148,6 +219,7 @@ public class CycleTestTaskService { // 获取当前接收用户 CycleTestTask task = genMapper.selectById(id); task.setStatus(CycleTestTaskConst.STATE_PENDING_TEST); + task.setAcceptDate(LocalDateTime.now()); return R.success("接受任务成功"); } @@ -159,11 +231,32 @@ public class CycleTestTaskService { * @param testAttachId * @return */ - public R fill(Long id, LocalDateTime testDate, Long testAttachId) { + public R fill(Long id, LocalDate testDate, Long testAttachId) { CycleTestTask task = genMapper.selectById(id); task.setTestDate(testDate); task.setTestAttachId(testAttachId); task.setStatus(CycleTestTaskConst.STATE_FINISH_OK); + task.setFinishDate(LocalDateTime.now()); return R.success(); } + + private void setVoValue(CycleTestTaskGenVO vo) { + CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId()); + vo.setCycleTestItemName(item.getName()); + vo.setCycleTestItemCondition(item.getCondition()); + vo.setCycleTestItemStandard(item.getStandard()); + { + R ui = userClient.userInfo(vo.getProcessUserId()); + if (!Objects.isNull(ui)) { + vo.setProcessUserName(ui.getData().getUser().getName()); + } + } + { + Instant instant = vo.getCreateTime().toInstant(); + LocalDateTime ldt = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + vo.setGenDatetime(ldt); + } + vo.setTestTypeName(dictClient.getValue("testPiece", "" + vo.getTestType()).getData()); + vo.setStatusName(dictClient.getValue("CycleTestTask-Status", "" + vo.getStatus()).getData()); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestTaskGenServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestTaskGenServiceImpl.java index f2ba3b0..7e0b579 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestTaskGenServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestTaskGenServiceImpl.java @@ -26,8 +26,8 @@ public class CycleTestTaskGenServiceImpl extends BaseServiceImpl selectCycleTestTaskPage(IPage page, CycleTestTaskGenVO cycleTestTask) { - return page.setRecords(baseMapper.selectCycleTestTaskPage(page, cycleTestTask)); + public IPage selectCycleTestTaskPage(IPage page, CycleTestTaskGenVO q) { + return page.setRecords(baseMapper.selectCycleTestTaskPage(page, q)); } @Override diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestTaskGenWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestTaskGenWrapper.java index 7847f8d..0759f6a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestTaskGenWrapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestTaskGenWrapper.java @@ -33,5 +33,4 @@ public class CycleTestTaskGenWrapper extends BaseEntityWrapper detail(User user) { - User detail = userService.getOne(Condition.getQueryWrapper(user)); - return R.data(UserWrapper.build().entityVO(detail)); - } - - /** - * 查询单条 - */ - @ApiOperationSupport(order = 2) - @Operation(summary = "查看详情", description = "传入id") - @GetMapping("/info") - public R info(BladeUser user) { - User detail = userService.getById(user.getUserId()); - return R.data(UserWrapper.build().entityVO(detail)); - } - - /** - * 用户列表 - */ - @IsAdmin - @GetMapping("/list") - @Parameters({ - @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) - }) - @ApiOperationSupport(order = 3) - @Operation(summary = "列表", description = "传入account和realName") - public R> list(@Parameter(hidden = true) @RequestParam Map user, Query query, BladeUser bladeUser) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); - IPage pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); - return R.data(UserWrapper.build().pageVO(pages)); - } - - /** - * 自定义用户列表 - */ - @IsAdmin - @GetMapping("/page") - @Parameters({ - @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) - }) - @ApiOperationSupport(order = 3) - @Operation(summary = "列表", description = "传入account和realName") - public R> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) { - IPage pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId())); - return R.data(UserWrapper.build().pageVO(pages)); - } - - /** - * 新增或修改 - */ - @IsAdmin - @PostMapping("/submit") - @ApiOperationSupport(order = 4) - @Operation(summary = "新增或修改", description = "传入User") - public R submit(@Valid @RequestBody User user) { - return R.status(userService.submit(user)); - } - - /** - * 修改 - */ - @IsAdmin - @PostMapping("/update") - @ApiOperationSupport(order = 5) - @Operation(summary = "修改", description = "传入User") - public R update(@Valid @RequestBody User user) { - return R.status(userService.updateUser(user)); - } - - /** - * 删除 - */ - @IsAdmin - @PostMapping("/remove") - @ApiOperationSupport(order = 6) - @Operation(summary = "删除", description = "传入id集合") - public R remove(@RequestParam String ids) { - return R.status(userService.removeUser(ids)); - } - - /** - * 设置菜单权限 - */ - @IsAdmin - @PostMapping("/grant") - @ApiOperationSupport(order = 7) - @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合") - public R grant(@Parameter(description = "userId集合", required = true) @RequestParam String userIds, - @Parameter(description = "roleId集合", required = true) @RequestParam String roleIds) { - boolean temp = userService.grant(userIds, roleIds); - return R.status(temp); - } - - /** - * 密码重制 - */ - @IsAdmin - @PostMapping("/reset-password") - @ApiOperationSupport(order = 8) - @Operation(summary = "初始化密码", description = "传入userId集合") - public R resetPassword(@Parameter(description = "userId集合", required = true) @RequestParam String userIds) { - boolean temp = userService.resetPassword(userIds); - return R.status(temp); - } - - /** - * 修改密码 - */ - @PostMapping("/update-password") - @ApiOperationSupport(order = 9) - @Operation(summary = "修改密码", description = "传入密码") - public R updatePassword(BladeUser user, @Parameter(description = "旧密码", required = true) @RequestParam String oldPassword, - @Parameter(description = "新密码", required = true) @RequestParam String newPassword, - @Parameter(description = "新密码", required = true) @RequestParam String newPassword1) { - boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1); - return R.status(temp); - } - - /** - * 修改基本信息 - */ - @PostMapping("/update-info") - @ApiOperationSupport(order = 10) - @Operation(summary = "修改基本信息", description = "传入User") - public R updateInfo(@Valid @RequestBody User user) { - return R.status(userService.updateUserInfo(user)); - } - - /** - * 用户列表 - */ - @GetMapping("/user-list") - @ApiOperationSupport(order = 11) - @Operation(summary = "用户列表", description = "传入user") - public R> userList(User user, BladeUser bladeUser) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(user); - List list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); - return R.data(UserWrapper.build().listVO(list)); - } - - /** - * 导入用户 - */ - @IsAdmin - @PostMapping("import-user") - @ApiOperationSupport(order = 12) - @Operation(summary = "导入用户", description = "传入excel") - public R importUser(MultipartFile file, Integer isCovered) { - UserImporter userImporter = new UserImporter(userService, isCovered == 1); - ExcelUtil.save(file, userImporter, UserExcel.class); - return R.success("操作成功"); - } - - /** - * 导出用户 - */ - @IsAdmin - @GetMapping("export-user") - @ApiOperationSupport(order = 13) - @Operation(summary = "导出用户", description = "传入user") - public void exportUser(@Parameter(hidden = true) @RequestParam Map user, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); - if (!AuthUtil.isAdministrator()) { - queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()); - } - queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = userService.exportUser(queryWrapper); - ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class); - } - - /** - * 导出模板 - */ - @GetMapping("export-template") - @ApiOperationSupport(order = 14) - @Operation(summary = "导出模板") - public void exportUser(HttpServletResponse response) { - List list = new ArrayList<>(); - ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class); - } - - - /** - * 第三方注册用户 - */ - @PostMapping("/register-guest") - @ApiOperationSupport(order = 15) - @Operation(summary = "第三方注册用户", description = "传入user") - public R registerGuest(User user, Long oauthId) { - return R.status(userService.registerGuest(user, oauthId)); - } - - - /** - * 配置用户平台信息 - */ - @PostMapping("/update-platform") - @ApiOperationSupport(order = 16) - @Operation(summary = "配置用户平台信息", description = "传入user") - public R updatePlatform(Long userId, Integer userType, String userExt) { - return R.status(userService.updatePlatform(userId, userType, userExt)); - } - - /** - * 查看平台详情 - */ - @IsAdmin - @ApiOperationSupport(order = 17) - @Operation(summary = "查看平台详情", description = "传入id") - @GetMapping("/platform-detail") - public R platformDetail(User user) { - return R.data(userService.platformDetail(user)); - } - - /** - * 用户解锁 - */ - @IsAdmin - @PostMapping("/unlock") - @ApiOperationSupport(order = 18) - @Operation(summary = "账号解锁", description = "传入id集合") - public R unlock(String userIds) { - return R.status(userService.unlock(userIds)); - } - - /** - * 审核通过 - */ - @IsAdmin - @PostMapping("/audit-pass") - @ApiOperationSupport(order = 19) - @Operation(summary = "审核通过", description = "传入id集合") - public R auditPass(String userIds) { - return R.status(userService.auditPass(userIds)); - } - - /** - * 审核拒绝 - */ - @IsAdmin - @PostMapping("/audit-refuse") - @ApiOperationSupport(order = 20) - @Operation(summary = "审核拒绝", description = "传入id集合") - public R auditRefuse(String userIds) { - return R.status(userService.auditRefuse(userIds)); - } - - /** - * 设置用户为主管 - */ - @IsAdmin - @PostMapping("/set-leader") - @ApiOperationSupport(order = 21) - @Operation(summary = "设置用户为主管", description = "传入userId") - public R setLeader(@Parameter(description = "userId", required = true) @RequestParam Long userId) { - return R.status(userService.setLeader(userId)); - } - - /** - * 获取用户的主管信息 - */ - @IsAdmin - @GetMapping("/leader-info") - @ApiOperationSupport(order = 22) - @Operation(summary = "获取用户的主管信息", description = "传入userId") - public R> leaderInfo(@Parameter(description = "userId", required = true) @RequestParam Long userId) { - List list = userService.leaderInfo(userId); - return R.data(list); - } - - /** - * 获取主管列表 - */ - @IsAdmin - @GetMapping("/leader-list") - @ApiOperationSupport(order = 23) - @Operation(summary = "获取主管列表", description = "获取所有主管用户列表") - public R> leaderList(@Parameter(description = "租户编号") String tenantId, @Parameter(description = "用户姓名") String realName) { - List list = userService.leaderList(tenantId, realName); - return R.data(list); - } - + private final IUserService userService; + private final IUserExtService userExtService; + + /** + * 查询单条 + */ + @IsAdmin + @ApiOperationSupport(order = 1) + @Operation(summary = "查看详情", description = "传入id") + @GetMapping("/detail") + public R detail(User user) { + User detail = userService.getOne(Condition.getQueryWrapper(user)); + return R.data(UserWrapper.build().entityVO(detail)); + } + + /** + * 查询单条 + */ + @ApiOperationSupport(order = 2) + @Operation(summary = "查看详情", description = "传入id") + @GetMapping("/info") + public R info(BladeUser user) { + User detail = userService.getById(user.getUserId()); + return R.data(UserWrapper.build().entityVO(detail)); + } + + /** + * 用户列表 + */ + @IsAdmin + @GetMapping("/list") + @Parameters({ + @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入account和realName") + public R> list(@Parameter(hidden = true) @RequestParam Map user, Query query, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); + IPage pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(UserWrapper.build().pageVO(pages)); + } + + /** + * 自定义用户列表 + */ + @IsAdmin + @GetMapping("/page") + @Parameters({ + @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入account和realName") + public R> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) { + IPage pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId())); + return R.data(UserWrapper.build().pageVO(pages)); + } + + /** + * 新增或修改 + */ + @IsAdmin + @PostMapping("/submit") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增或修改", description = "传入User") + public R submit(@Valid @RequestBody User user) { + return R.status(userService.submit(user)); + } + + /** + * 修改 + */ + @IsAdmin + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入User") + public R update(@Valid @RequestBody User user) { + return R.status(userService.updateUser(user)); + } + + /** + * 删除 + */ + @IsAdmin + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除", description = "传入id集合") + public R remove(@RequestParam String ids) { + return R.status(userService.removeUser(ids)); + } + + /** + * 设置菜单权限 + */ + @IsAdmin + @PostMapping("/grant") + @ApiOperationSupport(order = 7) + @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合") + public R grant(@Parameter(description = "userId集合", required = true) @RequestParam String userIds, + @Parameter(description = "roleId集合", required = true) @RequestParam String roleIds) { + boolean temp = userService.grant(userIds, roleIds); + return R.status(temp); + } + + /** + * 密码重制 + */ + @IsAdmin + @PostMapping("/reset-password") + @ApiOperationSupport(order = 8) + @Operation(summary = "初始化密码", description = "传入userId集合") + public R resetPassword(@Parameter(description = "userId集合", required = true) @RequestParam String userIds) { + boolean temp = userService.resetPassword(userIds); + return R.status(temp); + } + + /** + * 修改密码 + */ + @PostMapping("/update-password") + @ApiOperationSupport(order = 9) + @Operation(summary = "修改密码", description = "传入密码") + public R updatePassword(BladeUser user, @Parameter(description = "旧密码", required = true) @RequestParam String oldPassword, + @Parameter(description = "新密码", required = true) @RequestParam String newPassword, + @Parameter(description = "新密码", required = true) @RequestParam String newPassword1) { + boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1); + return R.status(temp); + } + + /** + * 修改基本信息 + */ + @PostMapping("/update-info") + @ApiOperationSupport(order = 10) + @Operation(summary = "修改基本信息", description = "传入User") + public R updateInfo(@Valid @RequestBody User user) { + return R.status(userService.updateUserInfo(user)); + } + + /** + * 用户列表 + */ + @GetMapping("/user-list") + @ApiOperationSupport(order = 11) + @Operation(summary = "用户列表", description = "传入user") + public R> userList(User user, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(user); + List list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(UserWrapper.build().listVO(list)); + } + + /** + * 导入用户 + */ + @IsAdmin + @PostMapping("import-user") + @ApiOperationSupport(order = 12) + @Operation(summary = "导入用户", description = "传入excel") + public R importUser(MultipartFile file, Integer isCovered) { + UserImporter userImporter = new UserImporter(userService, isCovered == 1); + ExcelUtil.save(file, userImporter, UserExcel.class); + return R.success("操作成功"); + } + + /** + * 导出用户 + */ + @IsAdmin + @GetMapping("export-user") + @ApiOperationSupport(order = 13) + @Operation(summary = "导出用户", description = "传入user") + public void exportUser(@Parameter(hidden = true) @RequestParam Map user, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); + if (!AuthUtil.isAdministrator()) { + queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()); + } + queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = userService.exportUser(queryWrapper); + ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class); + } + + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 14) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class); + } + + + /** + * 第三方注册用户 + */ + @PostMapping("/register-guest") + @ApiOperationSupport(order = 15) + @Operation(summary = "第三方注册用户", description = "传入user") + public R registerGuest(User user, Long oauthId) { + return R.status(userService.registerGuest(user, oauthId)); + } + + + /** + * 配置用户平台信息 + */ + @PostMapping("/update-platform") + @ApiOperationSupport(order = 16) + @Operation(summary = "配置用户平台信息", description = "传入user") + public R updatePlatform(Long userId, Integer userType, String userExt) { + return R.status(userService.updatePlatform(userId, userType, userExt)); + } + + /** + * 查看平台详情 + */ + @IsAdmin + @ApiOperationSupport(order = 17) + @Operation(summary = "查看平台详情", description = "传入id") + @GetMapping("/platform-detail") + public R platformDetail(User user) { + return R.data(userService.platformDetail(user)); + } + + /** + * 用户解锁 + */ + @IsAdmin + @PostMapping("/unlock") + @ApiOperationSupport(order = 18) + @Operation(summary = "账号解锁", description = "传入id集合") + public R unlock(String userIds) { + return R.status(userService.unlock(userIds)); + } + + /** + * 审核通过 + */ + @IsAdmin + @PostMapping("/audit-pass") + @ApiOperationSupport(order = 19) + @Operation(summary = "审核通过", description = "传入id集合") + public R auditPass(String userIds) { + return R.status(userService.auditPass(userIds)); + } + + /** + * 审核拒绝 + */ + @IsAdmin + @PostMapping("/audit-refuse") + @ApiOperationSupport(order = 20) + @Operation(summary = "审核拒绝", description = "传入id集合") + public R auditRefuse(String userIds) { + return R.status(userService.auditRefuse(userIds)); + } + + /** + * 设置用户为主管 + */ + @IsAdmin + @PostMapping("/set-leader") + @ApiOperationSupport(order = 21) + @Operation(summary = "设置用户为主管", description = "传入userId") + public R setLeader(@Parameter(description = "userId", required = true) @RequestParam Long userId) { + return R.status(userService.setLeader(userId)); + } + + /** + * 获取用户的主管信息 + */ + @IsAdmin + @GetMapping("/leader-info") + @ApiOperationSupport(order = 22) + @Operation(summary = "获取用户的主管信息", description = "传入userId") + public R> leaderInfo(@Parameter(description = "userId", required = true) @RequestParam Long userId) { + List list = userService.leaderInfo(userId); + return R.data(list); + } + + /** + * 获取主管列表 + */ + @IsAdmin + @GetMapping("/leader-list") + @ApiOperationSupport(order = 23) + @Operation(summary = "获取主管列表", description = "获取所有主管用户列表") + public R> leaderList(@Parameter(description = "租户编号") String tenantId, @Parameter(description = "用户姓名") String realName) { + List list = userService.leaderList(tenantId, realName); + return R.data(list); + } + + @GetMapping("/list-all-by-role-alias") + @ApiOperationSupport(order = 24) + @Operation(summary = "根据角色别名查询所有用户", description = "传入roleAlias") + public R> listAllByRole(@Parameter(description = "角色别名") String roleAlias) { + List list = userExtService.listAllByRole(roleAlias); + return R.data(UserWrapper.build().listVO(list)); + } + + @GetMapping("/list-all-by-role-ids") + @ApiOperationSupport(order = 25) + @Operation(summary = "根据角色ids查询所有用户", description = "传入ids") + public R> listAllByRoleIds(@Parameter(description = "ids") String ids) { + List list = userExtService.listAllByRoleIds(ids); + return R.data(UserWrapper.build().listVO(list)); + } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserExtService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserExtService.java new file mode 100644 index 0000000..b8d2d6f --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserExtService.java @@ -0,0 +1,27 @@ +package org.springblade.system.service; + +import org.springblade.system.pojo.entity.User; + +import java.util.List; + +/** + * + */ +public interface IUserExtService { + + /** + * 根据角色别名查询所有用户 + * + * @param roleAlias 角色别名 + * @return + */ + public List listAllByRole(String roleAlias); + + /** + * 根据角色ids查询所有用户 + * + * @param roleIds 角色ids + * @return + */ + public List listAllByRoleIds(String roleIds); +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserExtServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserExtServiceImpl.java new file mode 100644 index 0000000..ab6a743 --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserExtServiceImpl.java @@ -0,0 +1,46 @@ +package org.springblade.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import jakarta.annotation.Resource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.pojo.entity.Role; +import org.springblade.system.pojo.entity.User; +import org.springblade.system.service.IRoleService; +import org.springblade.system.service.IUserExtService; +import org.springblade.system.service.IUserSearchService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Data +@Slf4j +public class UserExtServiceImpl implements IUserExtService { + + @Resource + private IRoleService roleService; + @Resource + private IUserSearchService userSearchService; + + @Override + public List listAllByRole(String roleAlias) { + if (StringUtils.isBlank(roleAlias)) { + return null; + } + QueryWrapper qw = new QueryWrapper().eq("ROLE_ALIAS", roleAlias); + Role role = roleService.getOne(qw); + if (role == null) { + return null; + } + return userSearchService.listByRole(List.of(role.getId())); + } + + @Override + public List listAllByRoleIds(String roleIds) { + return userSearchService.listByRole(Func.toLongList(roleIds)); + } +}