修改槽液任务相关。

develop-QA
Tom Li 4 weeks ago
parent f308acce00
commit 1b247edcc3
  1. 2
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/InspectionTaskTimeoutProcessor.java
  2. 4
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/LquidTankTaskGenerateProcessor.java
  3. 4
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/LquidTankTaskTimeoutProcessor.java
  4. 1
      blade-ops/blade-job/src/main/resources/application-dev.yml
  5. 77
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/JobInfoConst.java
  6. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/LiquidTankTaskConst.java
  7. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/QARoleConst.java
  8. 186
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskController.java
  9. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/TestController.java
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/LiquidTankTaskClient.java
  11. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTank.java
  12. 435
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java
  13. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/LiquidTankTaskAccept.java
  14. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/LiquidTankTaskFillData.java
  15. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/LiquidTankTaskFinishForce.java
  16. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/LiquidTankTaskGenManual.java
  17. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/LiquidTankTaskIssue.java
  18. 315
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService.java
  19. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/MsgService.java
  20. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/QAStartService.java
  21. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/TestService.java
  22. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/UserExService.java
  23. 28
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/LiquidTankTaskGenServiceImpl.java
  24. 53
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/IdUtil.java
  25. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/RoleUtil.java

@ -7,6 +7,7 @@ import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
@Component
@Data
@ -17,6 +18,7 @@ public class InspectionTaskTimeoutProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger log = context.getOmsLogger();
String idString = context.getJobParams();
Long id = Long.parseLong(idString);
client.timeout(id);

@ -21,10 +21,8 @@ public class LquidTankTaskGenerateProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger omsLogger = context.getOmsLogger();
omsLogger.info("LquidTankTaskGenerateProcessor start");
OmsLogger log = context.getOmsLogger();
List<LiquidTankTask> list = lquidTankTaskClient.generate();
omsLogger.info("LquidTankTaskGenerateProcessor end");
return new ProcessResult(true);
}
}

@ -23,10 +23,8 @@ public class LquidTankTaskTimeoutProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger omsLogger = context.getOmsLogger();
omsLogger.info("LquidTankTaskTimeoutProcessor start");
OmsLogger log = context.getOmsLogger();
List<LiquidTankTask> list = lquidTankTaskClient.timeout();
omsLogger.info("LquidTankTaskGenerateProcessor end");
return new ProcessResult(true);
}
}

@ -9,6 +9,7 @@ powerjob:
port: 27777
server-address: 127.0.0.1:7700
#数据源配置
spring:
datasource:

@ -0,0 +1,77 @@
package org.springblade.desk.quality.constant;
public interface JobInfoConst {
/**
* API
*/
Integer TIME_EXPRESSION_TYPE_API = 1;
/**
* CRON
*/
Integer TIME_EXPRESSION_TYPE_CRON = 2;
/**
* 固定频率(毫秒)
*/
Integer TIME_EXPRESSION_TYPE_3 = 3;
/**
* 固定延迟(毫秒)
*/
Integer TIME_EXPRESSION_TYPE_4 = 4;
/**
* 工作流
*/
Integer TIME_EXPRESSION_TYPE_5 = 5;
/**
* 单机执行
*/
Integer EXECUTE_TYPE_1 = 1;
/**
* 广播执行
*/
Integer EXECUTE_TYPE_2 = 2;
/**
* MapReduce执行
*/
Integer EXECUTE_MAP_REDUCE = 3;
/**
* Map执行
*/
Integer EXECUTE_TYPE_4 = 4;
/**
* 内建
*/
Integer PROCESSOR_TYPE_1 = 1;
/**
* 外置(动态加载)
*/
Integer PROCESSOR_TYPE_4 = 4;
/**
* HEALTH_FIRST 健康第一
*/
Integer DISPATCH_STRATEGY_1 = 1;
/**
* RANDOM 随机
*/
Integer DISPATCH_STRATEGY_RANDOM = 2;
/**
* SPECIFY
*/
Integer DISPATCH_STRATEGY_SPECIFY = 11;
/**
* ENABLE
*/
Integer STATUS_ENABLE = 1;
/**
* DISABLE
*/
Integer STATUS_DISABLE = 2;
/**
*
*/
Integer LOG_TYPE_1 = 1;
/**
*
*/
Integer LOG_TYPE_2 = 2;
}

@ -1,19 +1,17 @@
package org.springblade.desk.quality.constant;
public interface LiquidTankTaskConst {
/**
* 来源类型-手动
* 来源类型-[1]:[1]:手动;
*/
Integer FROM_TYPE_MANUAL = 1;
/**
* 来源类型-定时任务周期性
* 来源类型-[2]:周期自动生成;
*/
Integer FROM_TYPE_PERIODIC = 2;
/**
* 来源类型-生产计算
* 来源类型-[3]:计算自动生成;
*/
Integer FROM_TYPE_CAL = 3;
@ -21,59 +19,49 @@ public interface LiquidTankTaskConst {
* 状态-初始化
*/
Integer STATE_INIT = 0;
/**
* 状态-程序生成 试验化验班长手动:待接收
* 状态-已经生成待接收-程序生成 试验化验班长手动
* 班组已处理 todo:
*/
Integer STATE_PENDING_OPEN = 1;
Integer STATE_PENDING_ACCEPT = 1;
/**
* 状态-待检测
* 状态-已经接收待检测
*/
Integer STATE_PENDING_TEST = 2;
/**
* 状态-检测员:填报
* 状态-已填报待自动计算加药量-检测员填报
*/
Integer STATE_REC = 3;
Integer STATE_FILL_DATA_FIRST = 3;
/**
* 状态-已自动计算加药量
* 状态-已自动计算加药量待人工编辑加药量-程序计算加药量
*/
Integer STATE_AFTER_CAL = 4;
Integer STATE_PENDING_EDIT_DRUG = 4;
/**
* 状态-检测员:加药量待审核
* 状态-提交审核加药量待审核加药量-检测员提交
*/
Integer STATE_PENDING_REVIEW = 5;
/**
* 状态-工艺员:待发放药已经通过加药量审核
* 状态-:已经通过加药量审核待发药-工艺员同意
*/
Integer STATE_PENDING_SEND = 6;
Integer STATE_PENDING_SEND_DRUG = 6;
/**
* 状态-
* 状态-已经发药待收药-药房人员
*/
Integer STATE_7 = 7;
Integer STATE_PENDING_RECEIVE_DRUG = 7;
/**
* 状态-已经收药待复检-检测员
*/
Integer STATE_PENDING_FILL_DATA_SECOND = 9;
/**
* 状态-待下发没有分派至检测员
*/
Integer STATE_NO_TESTER = 11;
Integer STATE_NOT_READY = 11;
/**
* 状态-已完成异常结束
*/
Integer STATE_FINISH_FAILED = 21;
/**
* 状态-已完成正常结束
*/
Integer STATE_FINISH_OK = 22;
/**
* 班组已处理 todo:
*/
Integer STATUS_HANDLED = 10;
}

@ -0,0 +1,6 @@
package org.springblade.desk.quality.constant;
public interface QARoleConst {
String QA_ROLE_ADMIN = "admin";
}

@ -9,9 +9,12 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
@ -23,7 +26,9 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.quality.excel.gen.LiquidTankTaskGenExcel;
import org.springblade.desk.quality.pojo.entity.LiquidTankTask;
import org.springblade.desk.quality.pojo.request.LiquidTankTaskGenManual;
import org.springblade.desk.quality.pojo.vo.gen.LiquidTankTaskGenVO;
import org.springblade.desk.quality.service.LiquidTankTaskService;
import org.springblade.desk.quality.service.gen.ILiquidTankTaskGenService;
import org.springblade.desk.quality.wrapper.gen.LiquidTankTaskGenWrapper;
import org.springframework.web.bind.annotation.*;
@ -38,102 +43,115 @@ import java.util.Map;
* @since 2025-11-14
*/
@RestController
@Data
@AllArgsConstructor
@RequestMapping("/qa/liquidTankTask")
@EqualsAndHashCode(callSuper = true)
@RequestMapping("/QA/LiquidTankTask")
@Tag(name = "[槽液检测任务]", description = "[槽液检测任务]接口")
public class LiquidTankTaskController extends BladeController {
private final ILiquidTankTaskGenService liquidTankTaskGenService;
@Resource
private ILiquidTankTaskGenService liquidTankTaskGenService;
@Resource
private LiquidTankTaskService service;
/**
* [槽液检测任务] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入liquidTankTask")
public R<LiquidTankTaskGenVO> detail(LiquidTankTask liquidTankTask) {
LiquidTankTask detail = liquidTankTaskGenService.getOne(Condition.getQueryWrapper(liquidTankTask));
return R.data(LiquidTankTaskGenWrapper.build().entityVO(detail));
}
/**
* [槽液检测任务] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入liquidTankTask")
public R<LiquidTankTaskGenVO> detail(LiquidTankTask liquidTankTask) {
LiquidTankTask detail = liquidTankTaskGenService.getOne(Condition.getQueryWrapper(liquidTankTask));
return R.data(LiquidTankTaskGenWrapper.build().entityVO(detail));
}
/**
* [槽液检测任务] 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入liquidTankTask")
public R<IPage<LiquidTankTaskGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> liquidTankTask, Query query) {
IPage<LiquidTankTask> pages = liquidTankTaskGenService.page(Condition.getPage(query), Condition.getQueryWrapper(liquidTankTask, LiquidTankTask.class));
return R.data(LiquidTankTaskGenWrapper.build().pageVO(pages));
}
/**
* [槽液检测任务] 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入liquidTankTask")
public R<IPage<LiquidTankTaskGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> liquidTankTask, Query query) {
IPage<LiquidTankTask> pages = liquidTankTaskGenService.page(Condition.getPage(query), Condition.getQueryWrapper(liquidTankTask, LiquidTankTask.class));
return R.data(LiquidTankTaskGenWrapper.build().pageVO(pages));
}
/**
* [槽液检测任务] 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入liquidTankTask")
public R<IPage<LiquidTankTaskGenVO>> page(LiquidTankTaskGenVO liquidTankTask, Query query) {
IPage<LiquidTankTaskGenVO> pages = liquidTankTaskGenService.selectLiquidTankTaskPage(Condition.getPage(query), liquidTankTask);
return R.data(pages);
}
/**
* [槽液检测任务] 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入liquidTankTask")
public R<IPage<LiquidTankTaskGenVO>> page(LiquidTankTaskGenVO liquidTankTask, Query query) {
IPage<LiquidTankTaskGenVO> pages = liquidTankTaskGenService.selectLiquidTankTaskPage(Condition.getPage(query), liquidTankTask);
return R.data(pages);
}
/**
* [槽液检测任务] 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入liquidTankTask")
public R save(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.save(liquidTankTask));
}
/**
* [槽液检测任务] 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入liquidTankTask")
public R save(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.save(liquidTankTask));
}
/**
* [槽液检测任务] 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入liquidTankTask")
public R update(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.updateById(liquidTankTask));
}
/**
* [槽液检测任务] 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入liquidTankTask")
public R update(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.updateById(liquidTankTask));
}
/**
* [槽液检测任务] 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入liquidTankTask")
public R submit(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.saveOrUpdate(liquidTankTask));
}
/**
* [槽液检测任务] 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入liquidTankTask")
public R submit(@Valid @RequestBody LiquidTankTask liquidTankTask) {
return R.status(liquidTankTaskGenService.saveOrUpdate(liquidTankTask));
}
/**
* [槽液检测任务] 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(liquidTankTaskGenService.deleteLogic(Func.toLongList(ids)));
}
/**
* [槽液检测任务] 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(liquidTankTaskGenService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-liquidTankTask")
@ApiOperationSupport(order = 8)
@Operation(summary = "导出数据", description = "传入liquidTankTask")
public void exportLiquidTankTask(@Parameter(hidden = true) @RequestParam Map<String, Object> liquidTankTask, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<LiquidTankTask> queryWrapper = Condition.getQueryWrapper(liquidTankTask, LiquidTankTask.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(LiquidTankTask::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(LiquidTankTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<LiquidTankTaskGenExcel> list = liquidTankTaskGenService.exportLiquidTankTask(queryWrapper);
ExcelUtil.export(response, "[槽液检测任务]数据" + DateUtil.time(), "[槽液检测任务]数据表", list, LiquidTankTaskGenExcel.class);
}
/**
* 导出数据
*/
@GetMapping("/export-excel")
@ApiOperationSupport(order = 8)
@Operation(summary = "导出数据", description = "传入liquidTankTask")
public void exportLiquidTankTask(@Parameter(hidden = true) @RequestParam Map<String, Object> liquidTankTask, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<LiquidTankTask> queryWrapper = Condition.getQueryWrapper(liquidTankTask, LiquidTankTask.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(LiquidTankTask::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(LiquidTankTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<LiquidTankTaskGenExcel> list = liquidTankTaskGenService.exportLiquidTankTask(queryWrapper);
ExcelUtil.export(response, "[槽液检测任务]数据" + DateUtil.time(), "[槽液检测任务]数据表", list, LiquidTankTaskGenExcel.class);
}
/**
* [槽液检测任务] 手动生成新增
*/
@PostMapping("/generateManual")
@ApiOperationSupport(order = 4)
@Operation(summary = "手动生成新增", description = "")
public R<LiquidTankTask> generateManual(@Valid @RequestBody LiquidTankTaskGenManual req) {
return service.generateManual(req);
}
}

@ -32,4 +32,10 @@ public class TestController extends BladeController {
public R<User> detail(@RequestParam Long userId) {
return service.getOneUser(userId);
}
@GetMapping("/test1")
@ApiOperationSupport(order = 2)
public R<Boolean> test1() {
return service.test1();
}
}

@ -17,7 +17,7 @@ public class LiquidTankTaskClient implements ILquidTankTaskClient {
@Override
public List<LiquidTankTask> generate() {
return service.generate();
return service.generateAuto();
}
@Override

@ -160,7 +160,7 @@ public class LiquidTank extends BaseEntity {
*/
@ExcelProperty(value = "[作业中心]id", index = 1)
@Schema(description = "[作业中心]id")
private BigDecimal workCenterId;
private Long workCenterId;
/**
* 槽液编码/槽号
*/
@ -181,7 +181,7 @@ public class LiquidTank extends BaseEntity {
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private BigDecimal drugMaterialId;
private Long drugMaterialId;
/**
* 药品[物料]编码
*/
@ -201,7 +201,7 @@ public class LiquidTank extends BaseEntity {
* 目标值
*/
@Schema(description = "目标值")
private BigDecimal targetValue;
private Long targetValue;
/**
* 目标上下限
*/
@ -211,12 +211,12 @@ public class LiquidTank extends BaseEntity {
* 添加点
*/
@Schema(description = "添加点")
private BigDecimal fillingLocation;
private Long fillingLocation;
/**
* 体积
*/
@Schema(description = "体积")
private BigDecimal volume;
private Long volume;
/**
* 单位
*/
@ -248,10 +248,10 @@ public class LiquidTank extends BaseEntity {
@Schema(description = "化验人[用户]id")
private Long testUserId;
/**
* 工艺主管[用户]id
* 工艺主管工艺员[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private BigDecimal processUserId;
@Schema(description = "工艺主管工艺员[用户]id")
private Long processUserId;
/**
* 温度范围
*/
@ -301,6 +301,5 @@ public class LiquidTank extends BaseEntity {
* [计量单位]id
*/
@Schema(description = "[计量单位]id")
private BigDecimal unitId;
private Long unitId;
}

@ -25,223 +25,222 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = true)
public class LiquidTankTask extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private Long liquidTankId;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private Long workCenterId;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private Long drugMaterialId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 待测成分
*/
@Schema(description = "待测成分")
private String testElement;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private String processContent;
/**
* 目标值
*/
@Schema(description = "目标值")
private Long targetValue;
/**
* 目标上下限
*/
@Schema(description = "目标上下限")
private String bound;
/**
* 排序
*/
@Schema(description = "排序")
private Long sort;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 添加点
*/
@Schema(description = "添加点")
private BigDecimal fillingLocation;
/**
* 电导率测量值
*/
@Schema(description = "电导率测量值")
private BigDecimal conductivityTestValue;
/**
* 体积
*/
@Schema(description = "体积")
private BigDecimal volume;
/**
* 单位
*/
@Schema(description = "单位")
private BigDecimal unit;
/**
* [计量单位]id
*/
@Schema(description = "[计量单位]id")
private BigDecimal unitId;
/**
* 加药量单位
*/
@Schema(description = "加药量单位")
private String addUnit;
/**
* 加药量[计量单位]id
*/
@Schema(description = "加药量[计量单位]id")
private BigDecimal addUnitId;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 有效期
*/
@Schema(description = "有效期")
private LocalDateTime validDate;
/**
* 上次化验日期
*/
@Schema(description = "上次化验日期")
private LocalDateTime lastTest;
/**
* 槽液到期日期
*/
@Schema(description = "槽液到期日期")
private LocalDateTime expiryDate;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private BigDecimal testUserId;
/**
* 工艺主管[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private BigDecimal processUserId;
/**
* 测量值
*/
@Schema(description = "测量值")
private BigDecimal testValue;
/**
* 需添加量
*/
@Schema(description = "需添加量")
private BigDecimal needAddValue;
/**
* 实际添加量
*/
@Schema(description = "实际添加量")
private BigDecimal actualAddValue;
/**
* 加药后含量
*/
@Schema(description = "加药后含量")
private BigDecimal afterAddValue;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamId;
/**
* 参数录入时间
*/
@Schema(description = "参数录入时间")
private LocalDateTime entryDate;
/**
* 确认时间
*/
@Schema(description = "确认时间")
private LocalDateTime confirmDate;
/**
* 送出[用户]id
*/
@Schema(description = "送出[用户]id")
private Long sendUserId;
/**
* 送出时间
*/
@Schema(description = "送出时间")
private LocalDateTime sendDate;
/**
* 接收[用户]id
*/
@Schema(description = "接收[用户]id")
private Long receiveUserId;
/**
* 接收时间
*/
@Schema(description = "接收时间")
private LocalDateTime receiveDate;
/**
* 处理[用户]id
*/
@Schema(description = "处理[用户]id")
private BigDecimal handleUserId;
/**
* 处理时间
*/
@Schema(description = "处理时间")
private LocalDateTime handleDate;
/**
* 来源类型
*/
@Schema(description = "来源类型")
private Long fromType;
@Serial
private static final long serialVersionUID = 1L;
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private Long liquidTankId;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private Long workCenterId;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private Long drugMaterialId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 待测成分
*/
@Schema(description = "待测成分")
private String testElement;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private String processContent;
/**
* 目标值
*/
@Schema(description = "目标值")
private Long targetValue;
/**
* 目标上下限
*/
@Schema(description = "目标上下限")
private String bound;
/**
* 排序
*/
@Schema(description = "排序")
private Long sort;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 添加点
*/
@Schema(description = "添加点")
private BigDecimal fillingLocation;
/**
* 电导率测量值
*/
@Schema(description = "电导率测量值")
private BigDecimal conductivityTestValue;
/**
* 体积
*/
@Schema(description = "体积")
private BigDecimal volume;
/**
* 单位
*/
@Schema(description = "单位")
private BigDecimal unit;
/**
* [计量单位]id
*/
@Schema(description = "[计量单位]id")
private BigDecimal unitId;
/**
* 加药量单位
*/
@Schema(description = "加药量单位")
private String addUnit;
/**
* 加药量[计量单位]id
*/
@Schema(description = "加药量[计量单位]id")
private BigDecimal addUnitId;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 有效期
*/
@Schema(description = "有效期")
private LocalDateTime validDate;
/**
* 上次化验日期
*/
@Schema(description = "上次化验日期")
private LocalDateTime lastTest;
/**
* 槽液到期日期
*/
@Schema(description = "槽液到期日期")
private LocalDateTime expiryDate;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private Long testUserId;
/**
* 工艺主管工艺员[用户]id
*/
@Schema(description = "工艺主管工艺员[用户]id")
private Long processUserId;
/**
* 测量值
*/
@Schema(description = "测量值")
private BigDecimal testValue;
/**
* 需添加量
*/
@Schema(description = "需添加量")
private BigDecimal needAddValue;
/**
* 实际添加量
*/
@Schema(description = "实际添加量")
private BigDecimal actualAddValue;
/**
* 加药后含量
*/
@Schema(description = "加药后含量")
private BigDecimal afterAddValue;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamId;
/**
* 参数录入时间
*/
@Schema(description = "参数录入时间")
private LocalDateTime entryDate;
/**
* 确认时间
*/
@Schema(description = "确认时间")
private LocalDateTime confirmDate;
/**
* 送出[用户]id
*/
@Schema(description = "送出[用户]id")
private Long sendUserId;
/**
* 送出时间
*/
@Schema(description = "送出时间")
private LocalDateTime sendDate;
/**
* 接收[用户]id
*/
@Schema(description = "接收[用户]id")
private Long receiveUserId;
/**
* 接收时间
*/
@Schema(description = "接收时间")
private LocalDateTime receiveDate;
/**
* 处理[用户]id
*/
@Schema(description = "处理[用户]id")
private Long handleUserId;
/**
* 处理时间
*/
@Schema(description = "处理时间")
private LocalDateTime handleDate;
/**
* 来源类型:[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
@Schema(description = "来源类型:[1]:手动;[2]:周期自动生成;[3]:计算自动生成;")
private Integer fromType;
}

@ -0,0 +1,12 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
@Data
public class LiquidTankTaskAccept {
/**
* [槽液检测任务]id
*/
Long id;
}

@ -0,0 +1,12 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
@Data
public class LiquidTankTaskFillData {
/**
* [槽液检测任务]id
*/
Long id;
}

@ -0,0 +1,16 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
@Data
public class LiquidTankTaskFinishForce {
/**
* [槽液检测任务]id
*/
Long id;
/**
* 结束原因
*/
String finishReason;
}

@ -0,0 +1,27 @@
package org.springblade.desk.quality.pojo.request;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Date;
@Data
public class LiquidTankTaskGenManual {
/**
* [槽液]id
*/
Long liquidTankId;
/**
* 检测员id
*/
Long testUserId;
/**
* 工艺员
*/
Long processUserId;
/**
* 检测日期
*/
Date testDate;
}

@ -0,0 +1,26 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import java.util.Date;
@Data
public class LiquidTankTaskIssue {
/**
* [槽液检测任务]id
*/
Long id;
/**
* 检测员[用户]id
*/
Long testUserId;
/**
* 工艺员[用户]id
*/
Long processUserId;
/**
* 检测日期
*/
Date testDate;
}

@ -4,7 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.flowable.task.service.delegate.TaskListener;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.ColBase;
import org.springblade.desk.quality.constant.ColValue;
import org.springblade.desk.quality.constant.LiquidTankTaskConst;
@ -12,13 +13,23 @@ import org.springblade.desk.quality.mapper.gen.LiquidTankGenMapper;
import org.springblade.desk.quality.mapper.gen.LiquidTankTaskGenMapper;
import org.springblade.desk.quality.pojo.entity.LiquidTank;
import org.springblade.desk.quality.pojo.entity.LiquidTankTask;
import org.springblade.desk.quality.pojo.request.LiquidTankTaskAccept;
import org.springblade.desk.quality.pojo.request.LiquidTankTaskFinishForce;
import org.springblade.desk.quality.pojo.request.LiquidTankTaskGenManual;
import org.springblade.desk.quality.pojo.request.LiquidTankTaskIssue;
import org.springblade.desk.quality.util.IdUtil;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* [槽液检测任务]
*/
@Service
@Slf4j
@Data
@ -29,13 +40,20 @@ public class LiquidTankTaskService {
@Resource
private LiquidTankTaskGenMapper genMapper;
@Resource
private MsgService msgService;
@Resource
private IUserClient userClient;
/**
* 定时运行:每天00:00
* 生成槽液任务
* 周期性自动生成槽液任务
*
* @return
* @return 所有生成的任务
*/
public List<LiquidTankTask> generate() {
public List<LiquidTankTask> generateAuto() {
log.info("========generate========start");
// 如果是节假日,则跳过生成。
if (false) {
@ -49,26 +67,39 @@ public class LiquidTankTaskService {
);
// 遍历插入槽液任务。
List<LiquidTankTask> rList = new ArrayList<>();
for (LiquidTank tank : tankList) {
for (LiquidTank lt : tankList) {
// 如果有未处理任务,则跳过不生成新任务。
Long count = genMapper.selectCount(
new QueryWrapper<LiquidTankTask>()
.eq("LIQUID_TANK_ID", tank.getId())
.eq(ColBase.STATUS, LiquidTankTaskConst.STATUS_HANDLED)
.eq("LIQUID_TANK_ID", lt.getId())
.eq(ColBase.STATUS, LiquidTankTaskConst.STATE_PENDING_ACCEPT)
);
if (count >= 1) {
log.info("槽液{}存在未处理的槽液任务", tank.getId());
log.info("槽液{}存在未处理的槽液任务", lt.getId());
continue;
}
LiquidTankTask task = new LiquidTankTask();
task.setLiquidTankId(tank.getId());
task.setLiquidTankId(lt.getId());
task.setName("name");
task.setCode("code");
task.setSort(0L);
task.setCreateTime(new Date());
task.setRemark("remark");
task.setCode("");
task.setRemark("");
task.setTeamId(0L);
task.setReceiveUserId(0L);
// 设置人员相关
// 设置检测员
task.setTestUserId(lt.getTestUserId());
// 设置工艺员
task.setProcessUserId(lt.getProcessUserId());
//
task.setSendUserId(IdUtil.DEFAULT_ID);
task.setReceiveUserId(IdUtil.DEFAULT_ID);
// from type
task.setFromType(LiquidTankTaskConst.FROM_TYPE_PERIODIC);
// status
task.setStatus(LiquidTankTaskConst.STATE_PENDING_ACCEPT);
// 通用字段
task.setCreateUser(AuthUtil.getUserId());
task.setCreateTime(new Date());
task.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
genMapper.insert(task);
rList.add(task);
}
@ -80,13 +111,13 @@ public class LiquidTankTaskService {
* 定时运行:每天09:30
* 槽液任务超时提醒
*
* @return
* @return 被提醒的任务列表
*/
public List<LiquidTankTask> timeout() {
log.info("========timeout========start");
// 查询出所有未处理的槽液任务
List<LiquidTankTask> list = genMapper.selectList(new QueryWrapper<LiquidTankTask>()
.eq(ColBase.STATUS, LiquidTankTaskConst.STATUS_HANDLED)
.eq(ColBase.STATUS, LiquidTankTaskConst.STATE_PENDING_ACCEPT)
.orderByAsc(ColBase.ID)
);
for (LiquidTankTask task : list) {
@ -94,9 +125,259 @@ public class LiquidTankTaskService {
// todo:对监测员进行提醒。
// 按天运行,可以一直重复提醒。
String msg = "槽液 " + tank.getCode() + ",未及时检验!请及时处理。";
Long userId = tank.getTestUserId();
Long testUserId = tank.getTestUserId();
msgService.sendMsg(testUserId, msg);
}
log.info("========timeout========end");
return list;
}
/**
* [槽液检测任务] 手动生成新增
*
* @param req
* @return
*/
public R<LiquidTankTask> generateManual(LiquidTankTaskGenManual req) {
LiquidTank lt = liquidTankGenMapper.selectById(req.getLiquidTankId());
if (Objects.isNull(lt)) {
R.fail("对应槽液信息为空。");
}
// todo:检查当前角色
UserInfo userInfo = userClient.userInfo(req.getTestUserId()).getData();
// todo:检查角色
// todo:日期检查
LiquidTankTask task = new LiquidTankTask();
// 指定槽液
task.setLiquidTankId(req.getLiquidTankId());
// 指定人员
if (IdUtil.isValid(req.getTestUserId())) {
task.setTestUserId(req.getTestUserId());
} else {
task.setTestUserId(lt.getTestUserId());
}
if (IdUtil.isValid(req.getProcessUserId())) {
task.setProcessUserId(req.getProcessUserId());
} else {
task.setProcessUserId(lt.getProcessUserId());
}
// from type
task.setFromType(LiquidTankTaskConst.FROM_TYPE_MANUAL);
// status
task.setStatus(LiquidTankTaskConst.STATE_PENDING_ACCEPT);
// 通用字段
task.setCreateUser(AuthUtil.getUserId());
task.setCreateTime(new Date());
task.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
// 插入
genMapper.insert(task);
// final R
R<LiquidTankTask> r = new R<>();
r.setData(task);
r.setSuccess(true);
r.setMsg("手动生成槽液任务成功");
return r;
}
/**
* [槽液检测任务] 手动下发
*
* @param req
* @return
*/
public R<LiquidTankTask> issue(LiquidTankTaskIssue req) {
// todo:检查当前角色
if (IdUtil.isAnyInvalid(new Long[]{req.getId(), req.getTestUserId(), req.getProcessUserId()})) {
return R.fail("id错误");
}
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_NOT_READY.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
// status
task.setStatus(LiquidTankTaskConst.STATE_PENDING_ACCEPT);
// 通用字段
task.setUpdateUser(AuthUtil.getUserId());
task.setUpdateTime(new Date());
R<LiquidTankTask> r = new R<>();
r.setData(task);
r.setSuccess(true);
r.setMsg("手动下发槽液任务成功");
return r;
}
/**
* [槽液检测任务] 接收任务
*
* @param req
* @return
*/
public R<LiquidTankTask> accept(LiquidTankTaskAccept req) {
if (IdUtil.isInvalid(req.getId())) {
return R.fail("id错误");
}
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_PENDING_ACCEPT.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
// check status
// status
task.setStatus(LiquidTankTaskConst.STATE_PENDING_TEST);
R<LiquidTankTask> r = new R<>();
r.setData(task);
r.setSuccess(true);
r.setMsg("接收任务成功");
return r;
}
/**
* [槽液检测任务] 首次填报数据
*
* @param req
* @return
*/
public R<LiquidTankTask> fillDataFirst(LiquidTankTaskAccept req) {
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_FILL_DATA_FIRST.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(task);
r.setSuccess(true);
r.setMsg("填报数据成功");
return r;
}
/**
* [槽液检测任务] 编辑加药量
*
* @param req
* @return
*/
public R<LiquidTankTask> editDrugQuantity(LiquidTankTaskAccept req) {
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_FILL_DATA_FIRST.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(task);
r.setSuccess(true);
r.setMsg("编辑加药量成功");
return r;
}
/**
* [槽液检测任务] 提交加药量审核
*
* @param req
* @return
*/
public R<LiquidTankTask> submitDrugQuantity(LiquidTankTaskAccept req) {
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_PENDING_EDIT_DRUG.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(null);
r.setSuccess(true);
r.setMsg("提交加药量审核成功");
return r;
}
/**
* [槽液检测任务] 同意提交加药量
*
* @param req
* @return
*/
public R<LiquidTankTask> agreeDrugQuantity(LiquidTankTaskAccept req) {
LiquidTankTask task = genMapper.selectById(req.getId());
if (!LiquidTankTaskConst.STATE_PENDING_REVIEW.equals(task.getStatus())) {
return R.fail("任务状态不对应");
}
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(null);
r.setSuccess(true);
r.setMsg("同意提交加药量成功");
return r;
}
/**
* [槽液检测任务] 驳回提交加药量
*
* @param req
* @return
*/
public R<LiquidTankTask> disagreeDrugQuantity(LiquidTankTaskAccept req) {
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(null);
r.setSuccess(true);
r.setMsg("驳回提交加药量成功");
return r;
}
/**
* [槽液检测任务] 药品发放确认
*
* @param req
* @return
*/
public R<LiquidTankTask> sendDrug(LiquidTankTaskAccept req) {
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(null);
r.setSuccess(true);
r.setMsg("药品发放确认成功");
return r;
}
/**
* [槽液检测任务] 药品接收确认
*
* @param req
* @return
*/
public R<LiquidTankTask> receiveDrug(LiquidTankTaskAccept req) {
R<LiquidTankTask> r = new R<>();
// todo: 自动计算加药量
r.setData(null);
r.setSuccess(true);
r.setMsg("药品接收确认成功");
return r;
}
public R<LiquidTankTask> finishForce(LiquidTankTaskFinishForce req) {
LiquidTankTask task = genMapper.selectById(req.getId());
R<LiquidTankTask> r = new R<>();
r.setData(task);
r.setSuccess(true);
r.setMsg("强制结束槽液任务成功");
return r;
}
/**
* 计算加药量
* 根据历史填报 or 药品规格自动修正加药量
*/
public void calDrug() {
}
/**
* 生产需求计算
*/
public void calProductNeed() {
}
}

@ -0,0 +1,16 @@
package org.springblade.desk.quality.service;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
@Data
public class MsgService {
public void sendMsg(Long userId, String msg) {
//
log.info("userId = {},sendMsg = {}", userId, msg);
}
}

@ -0,0 +1,26 @@
package org.springblade.desk.quality.service;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.job.feign.IJobExtClient;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
@Service
@Data
@Slf4j
public class QAStartService {
@Resource
private IJobExtClient jobExtClient;
/**
* 应用启动后执行
*/
@EventListener(ApplicationReadyEvent.class)
public void start() {
log.info("====QA模块启动成功!====");
}
}

@ -4,6 +4,9 @@ import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.JobInfoConst;
import org.springblade.job.feign.IJobExtClient;
import org.springblade.job.pojo.entity.JobInfo;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
@ -16,7 +19,27 @@ public class TestService {
@Resource
private IUserClient userClient;
@Resource
private IJobExtClient jobExtClient;
public R<User> getOneUser(Long userId) {
return userClient.userInfoById(userId);
}
public R<Boolean> test1() {
// Boolean b = jobExtClient.sync();
// JobInfo j = new JobInfo();
// j.setJobId(null);
// j.setJobName("job-test-" + System.currentTimeMillis());
// j.setTimeExpressionType(JobInfoConst.TIME_EXPRESSION_TYPE_CRON);
// j.setTimeExpression("*/5 * * * * ?");
// j.setExecuteType(JobInfoConst.EXECUTE_TYPE_1);
// j.setProcessorType(JobInfoConst.PROCESSOR_TYPE_1);
// j.setDispatchStrategy(JobInfoConst.DISPATCH_STRATEGY_1);
// j.setProcessorInfo("org.springblade.job.processor.ProcessorDemo");
// jobExtClient.submitAndSync(j);
// 最后同步。
jobExtClient.sync();
return R.data(Boolean.TRUE);
}
}

@ -0,0 +1,25 @@
package org.springblade.desk.quality.service;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
@Service
@Slf4j
@Data
public class UserExService {
@Resource
private IUserClient userClient;
public R test(Long userId) {
R<User> rUser = userClient.userInfoById(userId);
if (rUser.isSuccess() && rUser.getData() != null) {
return R.data(rUser.getData());
}
}
}

@ -22,20 +22,22 @@ import java.util.List;
* @since 2025-11-14
*/
@Service
public class LiquidTankTaskGenServiceImpl extends BaseServiceImpl<LiquidTankTaskGenMapper, LiquidTankTask> implements ILiquidTankTaskGenService {
public class LiquidTankTaskGenServiceImpl extends BaseServiceImpl<LiquidTankTaskGenMapper, LiquidTankTask>
implements ILiquidTankTaskGenService {
@Override
public IPage<LiquidTankTaskGenVO> selectLiquidTankTaskPage(IPage<LiquidTankTaskGenVO> page, LiquidTankTaskGenVO liquidTankTask) {
return page.setRecords(baseMapper.selectLiquidTankTaskPage(page, liquidTankTask));
}
@Override
public IPage<LiquidTankTaskGenVO> selectLiquidTankTaskPage(IPage<LiquidTankTaskGenVO> page,
LiquidTankTaskGenVO liquidTankTask) {
return page.setRecords(baseMapper.selectLiquidTankTaskPage(page, liquidTankTask));
}
@Override
public List<LiquidTankTaskGenExcel> exportLiquidTankTask(Wrapper<LiquidTankTask> queryWrapper) {
List<LiquidTankTaskGenExcel> liquidTankTaskList = baseMapper.exportLiquidTankTask(queryWrapper);
//liquidTankTaskList.forEach(liquidTankTask -> {
// liquidTankTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, LiquidTankTask.getType()));
//});
return liquidTankTaskList;
}
@Override
public List<LiquidTankTaskGenExcel> exportLiquidTankTask(Wrapper<LiquidTankTask> queryWrapper) {
List<LiquidTankTaskGenExcel> liquidTankTaskList = baseMapper.exportLiquidTankTask(queryWrapper);
//liquidTankTaskList.forEach(liquidTankTask -> {
// liquidTankTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, LiquidTankTask.getType()));
//});
return liquidTankTaskList;
}
}

@ -0,0 +1,53 @@
package org.springblade.desk.quality.util;
import org.apache.commons.lang3.StringUtils;
/**
* 雪花 long id工具类
*/
public class IdUtil {
/**
* eg: 1123598821738675203
*/
public static final int ID_LENGTH = 19;
public static final Long DEFAULT_ID = 0L;
/**
* id有效
*
* @param id
* @return
*/
public static Boolean isValid(Long id) {
return !isInvalid(id);
}
/**
* id无效
*
* @param id
* @return
*/
public static Boolean isInvalid(Long id) {
//
if (id == null || id == 0L || id < 0L || String.valueOf(id).length() != ID_LENGTH) {
return Boolean.TRUE;
} else {
return Boolean.FALSE;
}
}
public static Boolean isAllValid(Long[] ids) {
for (Long id : ids) {
if (isInvalid(id)) {
return Boolean.FALSE;
}
}
return Boolean.TRUE;
}
public static Boolean isAnyInvalid(Long[] ids) {
return isAllValid(ids);
}
}

@ -0,0 +1,21 @@
package org.springblade.desk.quality.util;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.secure.utils.AuthUtil;
public class RoleUtil {
/**
* API权限
* todo:
* @param roleAlias
* @return
*/
public static Boolean hasRole(String roleAlias) {
if (StringUtils.isBlank(roleAlias)) {
throw new IllegalArgumentException("roleAlias参数错误");
}
return false;
}
}
Loading…
Cancel
Save