质量模块相关。

develop-QA
Tom Li 3 months ago
parent 407e58ccef
commit b90ad7f9c4
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/IotThicknessDTO.java
  2. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotThickness.java
  4. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  5. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java
  6. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/IotThicknessVO.java
  7. 38
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/StatusCountMap.java
  8. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/InspectionItemConst.java
  9. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java
  10. 34
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java
  11. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTemplateController.java
  12. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java
  13. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewDutyController.java
  14. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewFaultController.java
  15. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  16. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/TestController.java
  17. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/WorkPlanItemController.java
  18. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/WorkPlanItemDetailController.java
  19. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/IotHardnessClient.java
  20. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.java
  21. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml
  22. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.java
  23. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotThicknessMapper.java
  24. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  25. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java
  26. 42
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IIotHardnessService.java
  27. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IIotHardnessSubService.java
  28. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IIotThicknessService.java
  29. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  30. 62
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IotHardnessService2.java
  31. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IotHardnessSubService2.java
  32. 74
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  33. 100
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/IotHardnessServiceImpl.java
  34. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/IotHardnessSubServiceImpl.java
  35. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/IotThicknessServiceImpl.java
  36. 50
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java
  37. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/IotThicknessWrapper.java

@ -10,7 +10,7 @@ import org.springblade.desk.quality.pojo.entity.IotThickness;
import java.io.Serial;
/**
* [IOT] 数据传输对象实体类
* [IOT] 数据传输对象实体类
*
* @author Tom Shuo
* @since 2025-12-23

@ -100,7 +100,7 @@ public class InspectionTask extends BaseEntity {
*/
public static final String COL_SIMPLE_COUNT = "SIMPLE_COUNT";
/**
* 检验结果-[1]:合格;[2]:不合格;[-1]:NA
* 检验结果-[0]:未检验;[1]:合格;[2]:不合格;[-1]:NA
*/
public static final String COL_CHECK_RESULT = "CHECK_RESULT";
/**
@ -151,6 +151,10 @@ public class InspectionTask extends BaseEntity {
* [作业计划]id
*/
public static final String COL_WP_ID = "WP_ID";
/**
* 来源类型
*/
public static final String COL_FROM_TYPE = "FROM_TYPE";
/**
* [检验任务]编码
@ -245,7 +249,7 @@ public class InspectionTask extends BaseEntity {
/**
* 检验结果-[1]:合格;[2]:不合格;[3]:NA
*/
@Schema(description = "检验结果-[1]:合格;[2]:不合格;[-1]:NA")
@Schema(description = "检验结果-[0]:未检验;[1]:合格;[2]:不合格;[-1]:NA")
private Integer checkResult;
/**
* 检验数量
@ -307,4 +311,9 @@ public class InspectionTask extends BaseEntity {
*/
@Schema(description = "[作业计划]id")
private Long wpId;
/**
* 来源类型
*/
@Schema(description = "来源类型")
private Integer fromType;
}

@ -14,7 +14,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* [IOT] 实体类
* [IOT] 实体类
*
* @author Tom Shuo
* @since 2025-12-23

@ -158,7 +158,7 @@ public class ReviewSheet extends BaseEntity {
/**
* 总数量
*/
public static final String COL_NUM = "NUM";
public static final String COL_TOTAL_NUM = "TOTAL_NUM";
/**
* 返修数量
*/
@ -340,7 +340,7 @@ public class ReviewSheet extends BaseEntity {
* 总数量
*/
@Schema(description = "总数量")
private Short num;
private Short totalNum;
/**
* 返修数量
*/

@ -68,7 +68,7 @@ public class WorkPlanItem extends BaseEntity {
*/
public static final String COL_CHECK_DATE = "CHECK_DATE";
/**
* 检验结果-[1]:合格;[2]:不合格;[-1]:NA
* 检验结果-[0]:未检验;[1]:合格;[2]:不合格;[-1]:NA
*/
public static final String COL_CHECK_RESULT = "CHECK_RESULT";
/**
@ -149,8 +149,8 @@ public class WorkPlanItem extends BaseEntity {
/**
* 检验结果-[1]:合格;[2]:不合格;[-1]:NA
*/
@Schema(description = "检验结果-[1]:合格;[2]:不合格;[-1]:NA")
private Short checkResult;
@Schema(description = "检验结果-[0]:未检验;[1]:合格;[2]:不合格;[-1]:NA")
private Integer checkResult;
/**
* 工时定额
*/

@ -10,7 +10,7 @@ import org.springblade.desk.quality.pojo.entity.IotThickness;
import java.io.Serial;
/**
* [IOT] 视图实体类
* [IOT] 视图实体类
*
* @author Tom Shuo
* @since 2025-12-23

@ -0,0 +1,38 @@
package org.springblade.desk.basic.util;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
/**
*
*/
@Getter
public class StatusCountMap {
private Map<Integer, Integer> map = new HashMap<>();
private static final Integer COUNT_DEFAULT = 0;
/**
* 状态加一
*
* @param status
* @return
*/
public int add1(Integer status) {
int newCount = map.getOrDefault(status, 0);
newCount = newCount + 1;
map.put(status, newCount);
return map.get(status);
}
public void clear(Integer status) {
map.put(status, 0);
}
public int get(Integer status) {
return map.getOrDefault(status, 0);
}
}

@ -0,0 +1,14 @@
package org.springblade.desk.quality.constant;
public interface InspectionItemConst {
/**
* 测厚
*/
Long ITEM_CEHOU_ID = 1L;
/**
* 测硬
*/
Long ITEM_CEYING_ID = 2L;
}

@ -15,7 +15,11 @@ public interface InspectionTaskConst {
/**
* 未检验
*/
Integer CHECK_RESULT_NOT = -1;
Integer CHECK_RESULT_TODO = 0;
/**
* NA
*/
Integer CHECK_RESULT_NA = -1;
/**
* 合格
*/
@ -24,4 +28,6 @@ public interface InspectionTaskConst {
* 不合格
*/
Integer CHECK_RESULT_NO = 2;
}

@ -40,6 +40,7 @@ import java.util.Map;
/**
* [检验任务] 控制器
* 工序级的检验任务
* mes v1: rb_pr_work_check
*
* @author Tom Shuo
@ -71,17 +72,15 @@ public class InspectionTaskController extends BladeController {
/**
* [检验任务] 分页
*/
@PostMapping("/listTask")
@PostMapping("/listSearch")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入inspectionTask")
public R<IPage<InspectionTaskListVO>> listTask(
@Parameter(hidden = true) @RequestParam InspectionTaskSearch search, Query query) {
IPage<InspectionTask> pages = service.listTask(Condition.getPage(query), qw);
????
return R.data(InspectionTaskWrapper.build().pageVO(pages));
public R<IPage<InspectionTaskListVO>> listSearch(
@Parameter(hidden = true) @RequestParam(required = false) InspectionTaskSearch search, Query query) {
IPage<InspectionTaskListVO> pagesVO = service.listSearch(Condition.getPage(query), search);
return R.data(pagesVO);
}
/**
* [检验任务] 自定义分页
*/
@ -136,7 +135,6 @@ public class InspectionTaskController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-inspectionTask")
@ApiOperationSupport(order = 8)
@Operation(summary = "导出数据", description = "传入inspectionTask")
@ -161,4 +159,24 @@ public class InspectionTaskController extends BladeController {
public R save(@Valid @RequestBody InspectionTaskStartNew start) {
return service2.startNew(start);
}
/**
* [检验任务] 同槽 检验结果应用
*/
@GetMapping("/sameTankResultCopy")
@ApiOperationSupport(order = 101)
@Operation(summary = "同槽结果应用", description = "传入inspectionTask id")
public R sameTankResultCopy(@Parameter(hidden = true) @RequestParam Long id) {
return null;
}
/**
* [检验任务] 同炉 检验结果应用
*/
@GetMapping("/sameFurnaceResultCopy")
@ApiOperationSupport(order = 102)
@Operation(summary = "同槽结果应用", description = "传入inspectionTask id")
public R sameFurnaceResultCopy(@Parameter(hidden = true) @RequestParam Long id) {
return null;
}
}

@ -113,6 +113,7 @@ public class InspectionTemplateController extends BladeController {
if (map.containsKey(BaseRequest.UPDATE_USER_REAL_NAME)) {
search.setUpdateUserRealName((String) map.get(BaseRequest.UPDATE_USER_REAL_NAME));
}
// todo:
// if (map.containsKey(BaseRequest.UP_TIME_START) && map.containsKey(BaseRequest.UP_TIME_END)) {
Date upStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.UPDATE_TIME_START);
Date upEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.UPDATE_TIME_END);

@ -40,7 +40,7 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
* [IOT] 控制器
* [IOT] 控制器
*
* @author Tom Shuo
* @since 2025-12-23
@ -51,14 +51,14 @@ import java.util.stream.Collectors;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Tag(name = "[IOT度]", description = "[IOT度]接口")
@Tag(name = "[IOT度]", description = "[IOT度]接口")
public class IotThicknessController extends BladeController {
@Resource
private IIotThicknessService service;
/**
* [IOT] 详情
* [IOT] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@ -72,7 +72,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] list分页
* [IOT] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@ -91,7 +91,7 @@ public class IotThicknessController extends BladeController {
/**
* [IOT] page分页
* [IOT] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@ -104,7 +104,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] list下拉选择
* [IOT] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@ -116,7 +116,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 新增一条
* [IOT] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@ -127,7 +127,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 新增批量
* [IOT] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@ -140,7 +140,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 修改一条
* [IOT] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@ -150,7 +150,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 修改批量
* [IOT] 修改批量
*/
@PostMapping("/updateBat")
@ApiOperationSupport(order = 41)
@ -160,7 +160,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 新增或修改一条
* [IOT] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@ -170,7 +170,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 新增或修改批量
* [IOT] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@ -180,7 +180,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 逻辑删除
* [IOT] 逻辑删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 61)
@ -190,7 +190,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 导出Excel
* [IOT] 导出Excel
*/
@GetMapping("/exportExcel")
@ApiOperationSupport(order = 70)
@ -203,12 +203,12 @@ public class IotThicknessController extends BladeController {
//}
//queryWrapper.lambda().eq(IotThicknessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<IotThicknessExcel> list = service.exportIotThickness(qw);
ExcelUtil.export(response, "[IOT度]数据" + DateUtil.time(),
"[IOT度]数据表", list, IotThicknessExcel.class);
ExcelUtil.export(response, "[IOT度]数据" + DateUtil.time(),
"[IOT度]数据表", list, IotThicknessExcel.class);
}
/**
* [IOT] 下载Excel模板
* [IOT] 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@ -220,7 +220,7 @@ public class IotThicknessController extends BladeController {
}
/**
* [IOT] 导入Excel
* [IOT] 导入Excel
*/
@PostMapping("/importExcel")
@ApiOperationSupport(order = 72)

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.ReviewDutyExcel;
import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.vo.ReviewDutyVO;
@ -45,7 +46,7 @@ import java.util.stream.Collectors;
* @since 2026-01-06
*/
@RestController
@RequestMapping("/ReviewDuty")
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/ReviewDuty")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.ReviewFaultExcel;
import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.vo.ReviewFaultVO;
@ -45,7 +46,7 @@ import java.util.stream.Collectors;
* @since 2026-01-06
*/
@RestController
@RequestMapping("/ReviewFault")
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/ReviewFault")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetVO;
@ -45,7 +46,7 @@ import java.util.stream.Collectors;
* @since 2026-01-06
*/
@RestController
@RequestMapping("/ReviewSheet")
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/ReviewSheet")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

@ -10,6 +10,7 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.service.CycleTestTaskService2;
import org.springblade.desk.quality.service.IIotHardnessService;
import org.springblade.desk.quality.service.TestService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -27,6 +28,8 @@ public class TestController extends BladeController {
private TestService service;
@Resource
private CycleTestTaskService2 taskService2;
@Resource
private IIotHardnessService iIotHardnessService;
// /**
// * [] 详情
@ -65,4 +68,11 @@ public class TestController extends BladeController {
service.test1();
return R.success();
}
@GetMapping("/test5")
@ApiOperationSupport(order = 5)
public R<Boolean> test5() {
iIotHardnessService.testDeleteDemo();
return R.success();
}
}

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.WorkPlanItemExcel;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO;
@ -45,7 +46,7 @@ import java.util.stream.Collectors;
* @since 2026-01-06
*/
@RestController
@RequestMapping("/WorkPlanItem")
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/WorkPlanItem")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.WorkPlanItemDetailExcel;
import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO;
@ -45,7 +46,7 @@ import java.util.stream.Collectors;
* @since 2026-01-06
*/
@RestController
@RequestMapping("/WorkPlanItemDetail")
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/WorkPlanItemDetail")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)

@ -2,7 +2,7 @@ package org.springblade.desk.quality.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.quality.service.IotHardnessService2;
import org.springblade.desk.quality.service.IIotHardnessService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
public class IotHardnessClient implements IIotHardnessClient {
@Resource
private IotHardnessService2 service;
private IIotHardnessService service;
@Override
public Integer deleteHistory() {

@ -9,7 +9,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.quality.excel.InspectionTaskExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.request.InspectionTemplateSearch;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import java.util.List;
@ -21,20 +24,23 @@ import java.util.List;
*/
public interface InspectionTaskMapper extends BaseMapper<InspectionTask> {
/**
* 自定义分页
*
* @param page 分页参数
* @param inspectionTask 查询参数
* @return List<InspectionTaskVO>
*/
List<InspectionTaskDetailVO> selectInspectionTaskPage(IPage page, InspectionTaskDetailVO inspectionTask);
/**
* 自定义分页
*
* @param page 分页参数
* @param inspectionTask 查询参数
* @return List<InspectionTaskVO>
*/
List<InspectionTaskDetailVO> selectInspectionTaskPage(IPage page, InspectionTaskDetailVO inspectionTask);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<InspectionTaskExcel>
*/
List<InspectionTaskExcel> exportInspectionTask(@Param("ew") Wrapper<InspectionTask> queryWrapper);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<InspectionTaskExcel>
*/
List<InspectionTaskExcel> exportInspectionTask(@Param("ew") Wrapper<InspectionTask> queryWrapper);
List<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, @Param("q") InspectionTaskSearch search);
}

@ -8,6 +8,7 @@
type="org.springblade.desk.quality.pojo.entity.InspectionTask">
<result column="CODE" property="code"/>
<result column="INSPECTION_TASK_TYPE" property="inspectionTaskType"/>
<result column="STATUS" property="status"/>
<result column="NAME" property="name"/>
<result column="WORK_ORDER_ID" property="workOrderId"/>
<result column="PRODUCT_ID" property="productId"/>
@ -18,6 +19,12 @@
<result column="BATCH_NUMBER" property="batchNumber"/>
<result column="WORK_ORDER_CODE" property="workOrderCode"/>
<result column="PROCESS_CODE" property="processCode"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="REMARK" property="remark"/>
<result column="PLANNED_START_DATE" property="plannedStartDate"/>
<result column="PLANNED_END_DATE" property="plannedEndDate"/>
@ -37,6 +44,7 @@
<result column="CHECK_MEMO" property="checkMemo"/>
<result column="REWORK_QTY" property="reworkQty"/>
<result column="WP_ID" property="wpId"/>
<result column="FROM_TYPE" property="fromType"/>
</resultMap>
<select id="selectInspectionTaskPage" resultMap="inspectionTaskResultMap">
@ -50,4 +58,31 @@
SELECT *
FROM QA_INSPECTION_TASK ${ew.customSqlSegment}
</select>
<select id="listSearch"
resultType="org.springblade.desk.quality.pojo.vo.InspectionTaskListVO">
SELECT task.*
FROM QA_INSPECTION_TASK task
-- LEFT JOIN RB_PR_WORK_PLAN wp ON task.WP_ID = wp.ID
-- LEFT JOIN PR_WORK_ORDER wo ON wp.WO_ID = wo.ID
-- LEFT JOIN BA_TEAM_SET ts ON wp.MAKE_TEAM = ts.ID
-- LEFT JOIN BA_OEM oem ON wp.OC_ID = oem.ID
-- LEFT JOIN BS_PROCEDURE_SET ON wp.
LEFT JOIN BLADE_DEPT bl_dept on task.CREATE_DEPT = bl_dept.ID
WHERE (
task.IS_DELETED = 0
AND wp.IS_DELETED = 0
AND wo.IS_DELETED = 0
AND bl_dept.IS_DELETED = 0
)
<if test="q.wpId != null">
AND task.WP_ID = #{q.wpId}
</if>
<if test="q.status != null">
AND task.STATUS = #{q.status}
</if>
<if test="q.fromType != null">
AND task.FROM_TYPE = #{q.fromType}
</if>
</select>
</mapper>

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.basic.mapper.en.EnBaseMapper;
import org.springblade.desk.quality.excel.IotHardnessExcel;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.pojo.vo.IotHardnessVO;
@ -19,7 +20,7 @@ import java.util.List;
* @author Tom Shuo
* @since 2025-12-23
*/
public interface IotHardnessMapper extends BaseMapper<IotHardness> {
public interface IotHardnessMapper extends EnBaseMapper<IotHardness> {
/**
* 自定义分页

@ -14,7 +14,7 @@ import org.springblade.desk.quality.pojo.vo.IotThicknessVO;
import java.util.List;
/**
* [IOT] Mapper 接口
* [IOT] Mapper 接口
*
* @author Tom Shuo
* @since 2025-12-23

@ -38,7 +38,7 @@
<result column="WO_ID" property="woId"/>
<result column="WO_CODE" property="woCode"/>
<result column="WP_ID" property="wpId"/>
<result column="NUM" property="num"/>
<result column="TOTAL_NUM" property="totalNum"/>
<result column="RE_DO_NUM" property="reDoNum"/>
<result column="RE_DO_REASON" property="reDoReason"/>
<result column="RE_DO_SUGGEST" property="reDoSuggest"/>

@ -6,8 +6,10 @@ package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.support.Query;
import org.springblade.desk.quality.excel.InspectionTaskExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.InspectionTemplate;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
@ -28,7 +30,8 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
* @param inspectionTask 查询参数
* @return IPage<InspectionTaskVO>
*/
IPage<InspectionTaskDetailVO> selectInspectionTaskPage(IPage<InspectionTaskDetailVO> page, InspectionTaskDetailVO inspectionTask);
IPage<InspectionTaskDetailVO> selectInspectionTaskPage(IPage<InspectionTaskDetailVO> page,
InspectionTaskDetailVO inspectionTask);
/**
* 导出数据
@ -45,5 +48,7 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
*/
void setVOValue(InspectionTaskDetailVO vo);
List<InspectionTaskListVO> listTask(InspectionTaskSearch search);
IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search);
Integer refreshStatusAndQty(Long id);
}

@ -19,26 +19,34 @@ import java.util.List;
* @since 2025-12-23
*/
public interface IIotHardnessService extends BaseService<IotHardness> {
/**
* 自定义分页
*
* @param page 分页参数
* @param iotHardness 查询参数
* @return IPage<IotHardnessVO>
*/
IPage<IotHardnessVO> selectIotHardnessPage(IPage<IotHardnessVO> page, IotHardnessVO iotHardness);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<IotHardnessExcel>
*/
List<IotHardnessExcel> exportIotHardness(Wrapper<IotHardness> queryWrapper);
/**
* 自定义分页
*
* @param page 分页参数
* @param iotHardness 查询参数
* @return IPage<IotHardnessVO>
*/
IPage<IotHardnessVO> selectIotHardnessPage(IPage<IotHardnessVO> page, IotHardnessVO iotHardness);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<IotHardnessExcel>
*/
List<IotHardnessExcel> exportIotHardness(Wrapper<IotHardness> queryWrapper);
/**
* VO
*
* @param vo
*/
void setVOValue(IotHardnessVO vo);
void setVOValue(IotHardnessVO vo);
Integer deleteHistory();
Integer deleteHistoryOneBatch(List<Long> ids);
void testDeleteDemo();
}

@ -0,0 +1,24 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.quality.excel.IotHardnessExcel;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.pojo.vo.IotHardnessVO;
import java.util.List;
/**
* [IOT硬度] 服务类
*
* @author Tom Shuo
* @since 2025-12-23
*/
public interface IIotHardnessSubService extends BaseService<IotHardness> {
Integer deleteHistoryOneBatch(List<Long> ids);
}

@ -13,7 +13,7 @@ import org.springblade.desk.quality.pojo.vo.IotThicknessVO;
import java.util.List;
/**
* [IOT] 服务类
* [IOT] 服务类
*
* @author Tom Shuo
* @since 2025-12-23

@ -41,4 +41,8 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
* @param vo
*/
void setVOValue(WorkPlanItemVO vo);
List<WorkPlanItem> listByTaskId(Long taskId);
List<WorkPlanItem> listByWorkPlanId(Long workPlanId);
}

@ -1,62 +0,0 @@
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.quality.mapper.IotHardnessMapper;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
@Service
@Data
@Slf4j
public class IotHardnessService2 {
public static final Integer BATCH_SIZE = 1000;
@Resource
private IotHardnessMapper genMapper;
@Resource
private IotHardnessSubService2 deleteService;
/**
* 物理删除历史数据
*
* @return
*/
public Integer deleteHistory() {
LocalDateTime day7ago = LocalDateTime.now().minusDays(7);
QueryWrapper<IotHardness> qw = new QueryWrapper<>();
qw.lt(BaseCol.CREATE_TIME, day7ago);
qw.select(BaseCol.ID);
List<IotHardness> list = genMapper.selectList(qw);
if (list.isEmpty()) {
log.info("没有超过七天的删除数据。");
return 0;
}
int totalDeleted = 0;
int currentPage = 1;
while (true) {
IPage<IotHardness> page = new Page<>(currentPage, BATCH_SIZE);
IPage<IotHardness> resultPage = genMapper.selectPage(page, qw);
List<IotHardness> currentBatch = resultPage.getRecords();
if (currentBatch.isEmpty()) {
break;
}
List<Long> ids = list.stream()
.map(IotHardness::getId)
.toList();
int deletedCount = deleteService.deleteHistoryOneBatch(ids);
totalDeleted = totalDeleted + deletedCount;
currentPage = currentPage + 1;
}
return totalDeleted;
}
}

@ -1,30 +0,0 @@
package org.springblade.desk.quality.service;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.quality.mapper.IotHardnessMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Data
@Slf4j
public class IotHardnessSubService2 {
@Resource
private IotHardnessMapper genMapper;
/**
* 分批独立事务
*
* @param ids
* @return
*/
@Transactional(rollbackFor = Exception.class)
public Integer deleteHistoryOneBatch(List<Long> ids) {
return genMapper.deleteByIds(ids);
}
}

@ -11,18 +11,25 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.basic.util.StatusCountMap;
import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.excel.InspectionTaskExcel;
import org.springblade.desk.quality.mapper.InspectionTaskMapper;
import org.springblade.desk.quality.pojo.entity.InspectionItem;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.IWorkPlanItemService;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* [检验任务] 服务实现类
@ -35,34 +42,69 @@ import java.util.List;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMapper, InspectionTask> implements IInspectionTaskService {
public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMapper, InspectionTask>
implements IInspectionTaskService {
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Resource
private IWorkPlanItemService workPlanItemService;
@Override
public IPage<InspectionTaskDetailVO> selectInspectionTaskPage(IPage<InspectionTaskDetailVO> page, InspectionTaskDetailVO inspectionTask) {
return page.setRecords(baseMapper.selectInspectionTaskPage(page, inspectionTask));
}
@Override
public IPage<InspectionTaskDetailVO> selectInspectionTaskPage(IPage<InspectionTaskDetailVO> page, InspectionTaskDetailVO inspectionTask) {
return page.setRecords(baseMapper.selectInspectionTaskPage(page, inspectionTask));
}
@Override
public List<InspectionTaskExcel> exportInspectionTask(Wrapper<InspectionTask> queryWrapper) {
List<InspectionTaskExcel> inspectionTaskList = baseMapper.exportInspectionTask(queryWrapper);
//inspectionTaskList.forEach(inspectionTask -> {
// inspectionTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, InspectionTask.getType()));
//});
return inspectionTaskList;
}
@Override
public List<InspectionTaskExcel> exportInspectionTask(Wrapper<InspectionTask> queryWrapper) {
List<InspectionTaskExcel> inspectionTaskList = baseMapper.exportInspectionTask(queryWrapper);
//inspectionTaskList.forEach(inspectionTask -> {
// inspectionTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, InspectionTask.getType()));
//});
return inspectionTaskList;
}
@Override
@Override
public void setVOValue(InspectionTaskDetailVO vo) {
}
@Override
public List<InspectionTaskListVO> listTask(InspectionTaskSearch search) {
return List.of();
public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) {
return page.setRecords(baseMapper.listSearch(page, search));
}
@Override
public Integer refreshStatusAndQty(Long id) {
InspectionTask task = getById(id);
if (null == task) {
throw new IllegalArgumentException("error id!");
}
List<WorkPlanItem> itemList = workPlanItemService.listByTaskId(id);
StatusCountMap map = new StatusCountMap();
int taskStatus = InspectionTaskConst.CHECK_RESULT_TODO;
for (WorkPlanItem item : itemList) {
map.add1(item.getStatus());
}
int countToDo = map.getMap().get(InspectionTaskConst.CHECK_RESULT_TODO);
int countNA = map.getMap().get(InspectionTaskConst.CHECK_RESULT_NA);
int countOK = map.getMap().get(InspectionTaskConst.CHECK_RESULT_OK);
int countNO = map.getMap().get(InspectionTaskConst.CHECK_RESULT_NO);
// taskStatus 处理
if (countToDo == 0) { // 未检验为0
if (countOK == itemList.size()) { // 全部item 合格
taskStatus = InspectionTaskConst.CHECK_RESULT_OK;
} else if (countNA == itemList.size()) { // 全部item NA
taskStatus = InspectionTaskConst.CHECK_RESULT_NA;
} else {
taskStatus = InspectionTaskConst.CHECK_RESULT_NO;
}
}
task.setStatus(taskStatus);
// 保存最新状态
save(task);
return taskStatus;
}
}

@ -4,13 +4,16 @@
package org.springblade.desk.quality.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.quality.excel.IotHardnessExcel;
import org.springblade.desk.quality.mapper.IotHardnessMapper;
import org.springblade.desk.quality.pojo.entity.IotHardness;
@ -18,8 +21,11 @@ import org.springblade.desk.quality.pojo.vo.IotHardnessVO;
import org.springblade.desk.quality.service.IIotHardnessService;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -33,29 +39,91 @@ import java.util.List;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class IotHardnessServiceImpl extends BaseServiceImpl<IotHardnessMapper, IotHardness> implements IIotHardnessService {
public class IotHardnessServiceImpl extends BaseServiceImpl<IotHardnessMapper, IotHardness>
implements IIotHardnessService {
@Resource
private IotHardnessMapper mapper;
// @Lazy
// @Resource
// private IIotHardnessService self;
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Override
public IPage<IotHardnessVO> selectIotHardnessPage(IPage<IotHardnessVO> page, IotHardnessVO iotHardness) {
return page.setRecords(baseMapper.selectIotHardnessPage(page, iotHardness));
}
@Override
public List<IotHardnessExcel> exportIotHardness(Wrapper<IotHardness> queryWrapper) {
List<IotHardnessExcel> iotHardnessList = baseMapper.exportIotHardness(queryWrapper);
//iotHardnessList.forEach(iotHardness -> {
// iotHardness.setTypeName(DictCache.getValue(DictEnum.YES_NO, IotHardness.getType()));
//});
return iotHardnessList;
}
@Override
@Override
public IPage<IotHardnessVO> selectIotHardnessPage(IPage<IotHardnessVO> page, IotHardnessVO iotHardness) {
return page.setRecords(mapper.selectIotHardnessPage(page, iotHardness));
}
@Override
public List<IotHardnessExcel> exportIotHardness(Wrapper<IotHardness> queryWrapper) {
List<IotHardnessExcel> iotHardnessList = mapper.exportIotHardness(queryWrapper);
//iotHardnessList.forEach(iotHardness -> {
// iotHardness.setTypeName(DictCache.getValue(DictEnum.YES_NO, IotHardness.getType()));
//});
return iotHardnessList;
}
@Override
public void setVOValue(IotHardnessVO vo) {
}
public static final Integer BATCH_SIZE = 1000;
/**
* 物理删除历史数据
*
* @return
*/
@Override
public Integer deleteHistory() {
LocalDateTime day7ago = LocalDateTime.now().minusDays(7);
QueryWrapper<IotHardness> qw = new QueryWrapper<>();
qw.lt(BaseCol.CREATE_TIME, day7ago);
qw.select(BaseCol.ID);
List<IotHardness> list = mapper.selectList(qw);
if (list.isEmpty()) {
log.info("没有超过七天的删除数据。");
return 0;
}
int totalDeleted = 0;
int currentPage = 1;
while (true) {
IPage<IotHardness> page = new Page<>(currentPage, BATCH_SIZE);
IPage<IotHardness> resultPage = mapper.selectPage(page, qw);
List<IotHardness> currentBatch = resultPage.getRecords();
if (currentBatch.isEmpty()) {
break;
}
List<Long> ids = list.stream()
.map(IotHardness::getId)
.toList();
// int deletedCount = self.deleteHistoryOneBatch(ids);
// totalDeleted = totalDeleted + deletedCount;
// currentPage = currentPage + 1;
}
return totalDeleted;
}
/**
* 分批独立事务
*
* @param ids
* @return
*/
@Transactional(rollbackFor = Exception.class)
public Integer deleteHistoryOneBatch(List<Long> ids) {
return mapper.deleteByIds(ids);
}
@Override
public void testDeleteDemo() {
mapper.deleteAbsoluteById(1L);
}
}

@ -0,0 +1,17 @@
package org.springblade.desk.quality.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.quality.mapper.IotHardnessMapper;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.service.IIotHardnessSubService;
import java.util.List;
public class IotHardnessSubServiceImpl extends BaseServiceImpl<IotHardnessMapper, IotHardness>
implements IIotHardnessSubService {
@Override
public Integer deleteHistoryOneBatch(List<Long> ids) {
return 0;
}
}

@ -23,7 +23,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* [IOT] 服务实现类
* [IOT] 服务实现类
*
* @author Tom Shuo
* @since 2025-12-23

@ -4,13 +4,16 @@
package org.springblade.desk.quality.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.desk.quality.excel.WorkPlanItemExcel;
import org.springblade.desk.quality.mapper.WorkPlanItemMapper;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
@ -33,29 +36,44 @@ import java.util.List;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper, WorkPlanItem> implements IWorkPlanItemService {
public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper, WorkPlanItem>
implements IWorkPlanItemService {
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Override
public IPage<WorkPlanItemVO> selectWorkPlanItemPage(IPage<WorkPlanItemVO> page, WorkPlanItemVO workPlanItem) {
return page.setRecords(baseMapper.selectWorkPlanItemPage(page, workPlanItem));
}
@Override
public List<WorkPlanItemExcel> exportWorkPlanItem(Wrapper<WorkPlanItem> queryWrapper) {
List<WorkPlanItemExcel> workPlanItemList = baseMapper.exportWorkPlanItem(queryWrapper);
//workPlanItemList.forEach(workPlanItem -> {
// workPlanItem.setTypeName(DictCache.getValue(DictEnum.YES_NO, WorkPlanItem.getType()));
//});
return workPlanItemList;
}
@Override
@Override
public IPage<WorkPlanItemVO> selectWorkPlanItemPage(IPage<WorkPlanItemVO> page, WorkPlanItemVO workPlanItem) {
return page.setRecords(baseMapper.selectWorkPlanItemPage(page, workPlanItem));
}
@Override
public List<WorkPlanItemExcel> exportWorkPlanItem(Wrapper<WorkPlanItem> queryWrapper) {
List<WorkPlanItemExcel> workPlanItemList = baseMapper.exportWorkPlanItem(queryWrapper);
//workPlanItemList.forEach(workPlanItem -> {
// workPlanItem.setTypeName(DictCache.getValue(DictEnum.YES_NO, WorkPlanItem.getType()));
//});
return workPlanItemList;
}
@Override
public void setVOValue(WorkPlanItemVO vo) {
}
@Override
public List<WorkPlanItem> listByTaskId(Long taskId) {
LambdaQueryWrapper<WorkPlanItem> qw = Wrappers.lambdaQuery();
qw.eq(WorkPlanItem::getTaskId, taskId);
return list(qw);
}
@Override
public List<WorkPlanItem> listByWorkPlanId(Long wpId) {
LambdaQueryWrapper<WorkPlanItem> qw = Wrappers.lambdaQuery();
qw.eq(WorkPlanItem::getWpId, wpId);
return list(qw);
}
}

@ -11,7 +11,7 @@ import org.springblade.desk.quality.pojo.vo.IotThicknessVO;
import java.util.Objects;
/**
* [IOT] 包装类,返回视图层所需的字段
* [IOT] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2025-12-23

Loading…
Cancel
Save