修改 周期试验 相关。

develop-QA
Tom Li 3 weeks ago
parent 6418ed3173
commit cdef7d18ad
  1. 2
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 195
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java
  3. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java
  4. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java
  5. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestGenMapper.xml
  6. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestTaskGenMapper.xml
  7. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java
  8. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java
  9. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java
  10. 42
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java
  11. 31
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java
  12. 97
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java
  13. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestTaskGenServiceImpl.java
  14. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestTaskGenWrapper.java
  15. 603
      blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java
  16. 27
      blade-service/blade-system/src/main/java/org/springblade/system/service/IUserExtService.java
  17. 46
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserExtServiceImpl.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";
/**

@ -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<BsPlatingVO> 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<IPage<BsPlatingVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> bsPlating, Query query) {
IPage<BsPlatingEntity> 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<IPage<BsPlatingVO>> page(BsPlatingVO bsPlating, Query query) {
IPage<BsPlatingVO> 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<String, Object> bsPlating, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<BsPlatingEntity> 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<BsPlatingExcel> 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<BsPlatingVO> 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<IPage<BsPlatingVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> bsPlating, Query query) {
IPage<BsPlatingEntity> 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<IPage<BsPlatingVO>> page(BsPlatingVO bsPlating, Query query) {
IPage<BsPlatingVO> 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<String, Object> bsPlating, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<BsPlatingEntity> 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<BsPlatingExcel> list = bsPlatingService.exportBsPlating(queryWrapper);
ExcelUtil.export(response, "镀种信息表数据" + DateUtil.time(), "镀种信息表数据表", list, BsPlatingExcel.class);
}
/**
* [镀种]所有下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 2)
@Operation(summary = "[镀种]所有下拉选择", description = "")
public R<List<BsPlatingVO>> listForSelect() {
List<BsPlatingEntity> list = bsPlatingService.list();
return R.data(BsPlatingWrapper.build().listVO(list));
}
}

@ -67,7 +67,9 @@ public class CycleTestController extends BladeController {
@Operation(summary = "详情", description = "传入cycleTest")
public R<CycleTestGenVO> 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);
}
/**

@ -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<IPage<CycleTestTaskGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestTask,
Query query) {
IPage<CycleTestTask> 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<IPage<CycleTestTask>> page(CycleTestTaskGenVO cycleTestTask, Query query) {
IPage<CycleTestTask> pages = cycleTestTaskGenService.selectCycleTestTaskPage(Condition.getPage(query), cycleTestTask);
return R.data(pages);
public R<IPage<CycleTestTaskGenVO>> 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);
}

@ -33,6 +33,7 @@
<result column="JOB_TYPE_CUSTOM_VALUE" property="jobTypeCustomValue"/>
<result column="JSON_CONFIG_GEN_TASK" property="jsonConfigGenTask"/>
<result column="JSON_CONFIG_REMIND" property="jsonConfigRemind"/>
<result column="IS_PUT_OFF" property="isPutOff"/>
</resultMap>
<select id="selectCycleTestPage" resultMap="cycleTestResultMap">

@ -35,6 +35,18 @@
SELECT *
FROM QA_CYCLE_TEST_TASK
WHERE is_deleted = 0
<if test="q.code != null and q.code != ''">
AND CODE LIKE '%' || #{q.code} || '%'
</if>
<if test="q.cycleTestTaskType != null and q.cycleTestTaskType != 0">
AND CYCLE_TEST_TASK_TYPE = #{q.cycleTestTaskType}
</if>
<if test="q.cycleTestItemId != null and cycleTestItemId != 0">
AND CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId}
</if>
<if test="q.status != null and q.status !=0">
AND STATUS = #{q.status}
</if>
ORDER BY ID ASC
</select>

@ -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;
}

@ -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;
/**
* [周期试验任务] 实体类
* <p>
* 任务生成时间 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;
}

@ -58,4 +58,13 @@ public class CycleTestGenVO extends CycleTest {
*/
@Schema(description = "试验技术员[用户]姓名")
private String testUserName;
/**
* 更新[用户]姓名
*/
@Schema(description = "更新[用户]姓名")
private String updateUserName;
/**
* 试验件类型 名称
*/
private String testTypeName;
}

@ -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;
}

@ -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<Long> list = Func.toLongList(ids);
@ -99,11 +104,19 @@ public class CycleTestService {
*
* @param vo
*/
private void setVoValue(CycleTestGenVO vo) {
public void setVoValue(CycleTestGenVO vo) {
{
R<UserInfo> 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<UserInfo> ui = userClient.userInfo(vo.getProcessUserId());
@ -111,11 +124,9 @@ public class CycleTestService {
vo.setProcessUserName(ui.getData().getUser().getName());
}
}
{
R<UserInfo> 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());
}
}

@ -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<IPage<CycleTestTaskGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestTask,
Query query) {
IPage<CycleTestTask> pages = genService.page(
Condition.getPage(query),
Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class)
.orderByAsc(BaseCol.ID)
);
IPage<CycleTestTaskGenVO> 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<IPage<CycleTestTaskGenVO>> page(CycleTestTaskGenVO cycleTest, Query query) {
IPage<CycleTestTask> pages = genService.selectCycleTestTaskPage(
Condition.getPage(query),
cycleTest
);
IPage<CycleTestTaskGenVO> 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<Boolean> fill(Long id, LocalDateTime testDate, Long testAttachId) {
public R<Boolean> 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<UserInfo> 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());
}
}

@ -26,8 +26,8 @@ public class CycleTestTaskGenServiceImpl extends BaseServiceImpl<CycleTestTaskGe
implements ICycleTestTaskGenService {
@Override
public IPage<CycleTestTask> selectCycleTestTaskPage(IPage<CycleTestTask> page, CycleTestTaskGenVO cycleTestTask) {
return page.setRecords(baseMapper.selectCycleTestTaskPage(page, cycleTestTask));
public IPage<CycleTestTask> selectCycleTestTaskPage(IPage<CycleTestTask> page, CycleTestTaskGenVO q) {
return page.setRecords(baseMapper.selectCycleTestTaskPage(page, q));
}
@Override

@ -33,5 +33,4 @@ public class CycleTestTaskGenWrapper extends BaseEntityWrapper<CycleTestTask, Cy
return cycleTestTaskVO;
}
}

@ -53,6 +53,7 @@ import org.springblade.system.excel.UserExcel;
import org.springblade.system.excel.UserImporter;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.vo.UserVO;
import org.springblade.system.service.IUserExtService;
import org.springblade.system.service.IUserService;
import org.springblade.system.wrapper.UserWrapper;
import org.springframework.web.bind.annotation.*;
@ -74,297 +75,313 @@ import java.util.Map;
@AllArgsConstructor
public class UserController {
private final IUserService userService;
/**
* 查询单条
*/
@IsAdmin
@ApiOperationSupport(order = 1)
@Operation(summary = "查看详情", description = "传入id")
@GetMapping("/detail")
public R<UserVO> 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<UserVO> 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<IPage<UserVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> user, Query query, BladeUser bladeUser) {
QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
IPage<User> 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<IPage<UserVO>> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) {
IPage<User> 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<List<UserVO>> userList(User user, BladeUser bladeUser) {
QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
List<User> 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<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<User> 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<UserExcel> 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<UserExcel> 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<UserVO> 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<List<UserVO>> leaderInfo(@Parameter(description = "userId", required = true) @RequestParam Long userId) {
List<UserVO> list = userService.leaderInfo(userId);
return R.data(list);
}
/**
* 获取主管列表
*/
@IsAdmin
@GetMapping("/leader-list")
@ApiOperationSupport(order = 23)
@Operation(summary = "获取主管列表", description = "获取所有主管用户列表")
public R<List<UserVO>> leaderList(@Parameter(description = "租户编号") String tenantId, @Parameter(description = "用户姓名") String realName) {
List<UserVO> 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<UserVO> 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<UserVO> 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<IPage<UserVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> user, Query query, BladeUser bladeUser) {
QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
IPage<User> 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<IPage<UserVO>> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) {
IPage<User> 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<List<UserVO>> userList(User user, BladeUser bladeUser) {
QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
List<User> 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<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<User> 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<UserExcel> 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<UserExcel> 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<UserVO> 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<List<UserVO>> leaderInfo(@Parameter(description = "userId", required = true) @RequestParam Long userId) {
List<UserVO> list = userService.leaderInfo(userId);
return R.data(list);
}
/**
* 获取主管列表
*/
@IsAdmin
@GetMapping("/leader-list")
@ApiOperationSupport(order = 23)
@Operation(summary = "获取主管列表", description = "获取所有主管用户列表")
public R<List<UserVO>> leaderList(@Parameter(description = "租户编号") String tenantId, @Parameter(description = "用户姓名") String realName) {
List<UserVO> list = userService.leaderList(tenantId, realName);
return R.data(list);
}
@GetMapping("/list-all-by-role-alias")
@ApiOperationSupport(order = 24)
@Operation(summary = "根据角色别名查询所有用户", description = "传入roleAlias")
public R<List<UserVO>> listAllByRole(@Parameter(description = "角色别名") String roleAlias) {
List<User> 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<List<UserVO>> listAllByRoleIds(@Parameter(description = "ids") String ids) {
List<User> list = userExtService.listAllByRoleIds(ids);
return R.data(UserWrapper.build().listVO(list));
}
}

@ -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<User> listAllByRole(String roleAlias);
/**
* 根据角色ids查询所有用户
*
* @param roleIds 角色ids
* @return
*/
public List<User> listAllByRoleIds(String roleIds);
}

@ -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<User> listAllByRole(String roleAlias) {
if (StringUtils.isBlank(roleAlias)) {
return null;
}
QueryWrapper<Role> qw = new QueryWrapper<Role>().eq("ROLE_ALIAS", roleAlias);
Role role = roleService.getOne(qw);
if (role == null) {
return null;
}
return userSearchService.listByRole(List.of(role.getId()));
}
@Override
public List<User> listAllByRoleIds(String roleIds) {
return userSearchService.listByRole(Func.toLongList(roleIds));
}
}
Loading…
Cancel
Save