From 2ec97a38d61790dd2eb79d6dcf8077cfb86910fa Mon Sep 17 00:00:00 2001 From: Tom Li Date: Mon, 12 Jan 2026 18:51:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E6=A3=80=E6=A8=A1=E5=9D=97=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/quality/pojo/entity/IotHardness.java | 11 +- .../desk/quality/pojo/entity/ReviewSheet.java | 2 +- .../pojo/request/ReviewSheetInitSearch.java | 15 + .../quality/pojo/vo/InspectionItemVO.java | 3 + .../pojo/vo/InspectionTaskDetailVO.java | 7 + .../quality/pojo/vo/InspectionTaskListVO.java | 16 +- .../pojo/vo/InspectionTaskSubPartVO.java | 35 ++ .../pojo/vo/ReviewSheetInitListVO.java | 39 ++ .../desk/quality/pojo/vo/WorkPlanItemVO.java | 10 +- .../controller/InspectionTaskController.java | 25 +- .../controller/IotHardnessController.java | 362 ++++++++++-------- .../controller/IotThicknessController.java | 336 ++++++++-------- .../controller/ReviewSheetController.java | 89 +++++ .../quality/mapper/InspectionTaskMapper.xml | 2 +- .../desk/quality/mapper/IotHardnessMapper.xml | 1 + .../service/IInspectionTaskService.java | 7 + .../impl/InspectionTaskServiceImpl.java | 63 ++- .../service/impl/WorkPlanItemServiceImpl.java | 16 +- 18 files changed, 697 insertions(+), 342 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotHardness.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotHardness.java index c362d0e7..f8b745e2 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotHardness.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotHardness.java @@ -68,6 +68,10 @@ public class IotHardness extends BaseEntity { * [设备]id */ public static final String COL_EQUIPMENT_ID = "EQUIPMENT_ID"; + /** + * IP + */ + public static final String COL_IP = "IP"; /** * 编码 @@ -118,5 +122,10 @@ public class IotHardness extends BaseEntity { * [设备]id */ @Schema(description = "[设备]id") - private BigDecimal equipmentId; + private Long equipmentId; + /** + * [设备]id + */ + @Schema(description = "ip") + private String ip; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java index 79725ec0..55dcd471 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java @@ -229,7 +229,7 @@ public class ReviewSheet extends BaseEntity { * 不合格数量 */ @Schema(description = "不合格数量") - private Short unqualifiedQty; + private Double unqualifiedQty; /** * 上级编号 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java new file mode 100644 index 00000000..0694dd29 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java @@ -0,0 +1,15 @@ +package org.springblade.desk.quality.pojo.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode() +public class ReviewSheetInitSearch { + + + + + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionItemVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionItemVO.java index f20a25aa..7dea2621 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionItemVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionItemVO.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.InspectionItem; @@ -21,4 +22,6 @@ public class InspectionItemVO extends InspectionItem { @Serial private static final long serialVersionUID = 1L; + @Schema(description = "检验类型 名称") + private String itemTypeName = "检验类型A"; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java index 3adf5db3..ac62b12b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.InspectionTask; @@ -27,6 +28,12 @@ public class InspectionTaskDetailVO extends InspectionTask { @Serial private static final long serialVersionUID = 1L; + /** + * todo: + */ + @Schema(description = "工序名称") + private String processName = "工序名称A"; + private InspectionTaskListVO orderInfo; private List remindMsgList; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskListVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskListVO.java index 59c82e74..20f2164b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskListVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskListVO.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.pojo.vo; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -56,10 +57,14 @@ public class InspectionTaskListVO extends InspectionTask { private String batchNo = "XXXX12345"; @Schema(description = "分批号") private String poBatchNo = "XXXX12345"; - @Schema(description = "当前工序") + @Schema(description = "当前[工序]名称") private String currentProcessName = "XXXX12345"; - @Schema(description = "下个工序") + @Schema(description = "当前[工序]id") + private Long currentProcessId = 100L; + @Schema(description = "下个[工序]名称") private String nextProcessName = "XXXX12345"; + @Schema(description = "下个[工序]id") + private Long nextProcessId = 100L; @Schema(description = "面积") private Double area = 100.10; @Schema(description = "总面积") @@ -69,6 +74,7 @@ public class InspectionTaskListVO extends InspectionTask { @Schema(description = "接收时间") private LocalDateTime receiveDate = LocalDateTime.now(); + @Schema(description = "订单-产品号") private String prodCode = "XXXX12345"; @Schema(description = "订单-产品型号") @@ -95,4 +101,10 @@ public class InspectionTaskListVO extends InspectionTask { private String remark; @Schema(description = "订单-提醒内容") private String remindContent; + // todo: + @Schema(description = "同槽编号/同炉编号") + private String sameNo = "tank-1001"; + // todo: + @Schema(description = "材料") + private String material = "铜"; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java new file mode 100644 index 00000000..94541e7c --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java @@ -0,0 +1,35 @@ +package org.springblade.desk.quality.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode() +public class InspectionTaskSubPartVO { + + @Schema(description = "子件号") + private String subPartCode; + @Schema(description = "子件名称") + private String subPartName; + @Schema(description = "数量") + private String qty; + @Schema(description = "产品型号") + private String prodTypeName; + @Schema(description = "子件类型") + private String subPartTypeName; + @Schema(description = "镀种") + private String plateName; + @Schema(description = "材料") + private String material; + @Schema(description = "面积") + private String area; + @Schema(description = "总面积") + private String totalArea; + @Schema(description = "镀层代码") + private String matCode; + @Schema(description = "镀层厚度") + private String thickness; + @Schema(description = "备注") + private String remark; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java new file mode 100644 index 00000000..aec54ca5 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java @@ -0,0 +1,39 @@ +package org.springblade.desk.quality.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.desk.basic.pojo.vo.BaseEntityVO; +import org.springblade.desk.quality.pojo.entity.ReviewSheet; + +public class ReviewSheetInitListVO extends ReviewSheet { + + @Schema(description = "BaseEntityVO") + private BaseEntityVO base; + @Schema(description = "单据编号") + private String docCode; + @Schema(description = "车间订单号") + private String woCode; + @Schema(description = "产品编号") + private String prodCode; + @Schema(description = "产品名称") + private String prodName; + @Schema(description = "产品型号名称") + private String prodTypeName; + @Schema(description = "生产标识") + private String prodIdent; + @Schema(description = "批次号") + private String batchNo; + @Schema(description = "流程卡号") + private String cardNo; + @Schema(description = "生产数量") + private Double poQty; + @Schema(description = "不合格数量") + private Short unqualifiedQty; + @Schema(description = "[生产处置单]模式 名称") + private String reviewOrderModeName; + @Schema(description = "打回[用户]真名") + private String backUserRealName; + @Schema(description = "审理状态 名称") + private String reviewStatusName; + @Schema(description = "审理[用户]真名") + private String reviewUserRealName; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java index 05732ce1..6d07bd7c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.InspectionItem; @@ -25,9 +26,14 @@ public class WorkPlanItemVO extends WorkPlanItem { @Serial private static final long serialVersionUID = 1L; + @Schema(description = "检验员 真名") + private String checkUserRealName; + @Schema(description = "检验项目 Obj") private InspectionItemVO item; - + @Schema(description = "检验标准 Obj") private StandardVO standard; - +// @Schema(description = "工序对象 Obj") +// private DsProcessEntity process; + @Schema(description = "wp详情 List") private List wpItemDetailList; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java index 323f6203..069c09ad 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java @@ -170,22 +170,23 @@ public class InspectionTaskController extends BladeController { } /** - * [检验任务] 同槽 检验结果应用 + * [检验任务] 查询同槽/同炉 */ - @GetMapping("/sameTankResultCopy") - @ApiOperationSupport(order = 101) - @Operation(summary = "同槽结果应用", description = "传入inspectionTask id") - public R sameTankResultCopy(@Parameter(hidden = true) @RequestParam Long id) { - return null; + @GetMapping("/getSameList") + @ApiOperationSupport(order = 7) + @Operation(summary = "查询同槽/同炉", description = "id") + public R getSameList(@Parameter(description = "主键", required = true) @RequestParam Long id) { + return service.getSamePlace(id); } /** - * [检验任务] 同炉 检验结果应用 + * [检验任务] 同槽 检验结果应用 */ - @GetMapping("/sameFurnaceResultCopy") - @ApiOperationSupport(order = 102) - @Operation(summary = "同槽结果应用", description = "传入inspectionTask id") - public R sameFurnaceResultCopy(@Parameter(hidden = true) @RequestParam Long id) { - return null; + @GetMapping("/sameResultCopy") + @ApiOperationSupport(order = 101) + @Operation(summary = "同槽/同炉结果应用", description = "传入inspectionTask id") + public R sameResultCopy(@Parameter(hidden = true) @RequestParam Long sourceId, + @Parameter(hidden = true) @RequestParam Long targetId) { + return service.sameResultCopy(sourceId, targetId); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotHardnessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotHardnessController.java index 50e4d17a..fb67c29c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotHardnessController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotHardnessController.java @@ -10,6 +10,7 @@ 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.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.AllArgsConstructor; @@ -21,6 +22,7 @@ import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; @@ -31,6 +33,8 @@ import org.springblade.desk.quality.pojo.entity.IotHardness; import org.springblade.desk.quality.pojo.vo.IotHardnessVO; import org.springblade.desk.quality.service.IIotHardnessService; import org.springblade.desk.quality.wrapper.IotHardnessWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.UserInfo; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -55,184 +59,228 @@ import java.util.stream.Collectors; public class IotHardnessController extends BladeController { @Resource - private IIotHardnessService service; - - /** - * [IOT硬度] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 10) - @Operation(summary = "详情", description = "传入IotHardness Obj") - public R detail(IotHardness iotHardness) { - QueryWrapper qw = Condition.getQueryWrapper(iotHardness); - IotHardness detail = service.getOne(qw); - IotHardnessVO detailVO = IotHardnessWrapper.build().entityVO(detail); - service.setVOValue(detailVO); - return R.data(detailVO); - } - - /** - * [IOT硬度] list分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 20) - @Operation(summary = "list分页", description = "传入IotHardness Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map iotHardness, - Query query) { + private IIotHardnessService service; + + @Resource + private IUserClient iUserClient; + + /** + * [IOT硬度] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 10) + @Operation(summary = "详情", description = "传入IotHardness Obj") + public R detail(IotHardness iotHardness) { + QueryWrapper qw = Condition.getQueryWrapper(iotHardness); + IotHardness detail = service.getOne(qw); + IotHardnessVO detailVO = IotHardnessWrapper.build().entityVO(detail); + service.setVOValue(detailVO); + return R.data(detailVO); + } + + /** + * [IOT硬度] list分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 20) + @Operation(summary = "list分页", description = "传入IotHardness Obj") + public R> list(@Parameter(hidden = true) @RequestParam Map iotHardness, + Query query) { QueryWrapper qw = Condition.getQueryWrapper(iotHardness, IotHardness.class); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = IotHardnessWrapper.build().pageVO(pages); - pagesVO.getRecords() - .stream() - .peek(service::setVOValue) - .collect(Collectors.toList()); - return R.data(pagesVO); - } - - - /** - * [IOT硬度] page分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 21) - @Operation(summary = "page分页", description = "传入IotHardness Obj") - public R> page(IotHardnessVO iotHardness, Query query) { - IPage pagesVO = service.selectIotHardnessPage( - Condition.getPage(query), iotHardness - ); - return R.data(pagesVO); - } - - /** + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = IotHardnessWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + + @GetMapping("/getDataFirst") + @ApiOperationSupport(order = 20) + @Operation(summary = "获取硬度检测值 getData", description = "传入IotHardness Obj") + public R> getDataFirst(HttpServletRequest request, + @Parameter(hidden = true) @RequestParam Map map) { + // 根据ip关联查询 + + // todo: + +// BladeUser loginUser = AuthUtil.getUser(); +// Long userId = loginUser.getUserId(); +// R rUI = iUserClient.userInfo(userId); +// if (rUI.isSuccess() && rUI.getData() != null) { +// +// } + QueryWrapper qw = Condition.getQueryWrapper(map, IotHardness.class); + List list = service.list(qw); + return R.data(list); + } + + @GetMapping("/getDataRefresh") + @ApiOperationSupport(order = 20) + @Operation(summary = "获取硬度检测值 getData", description = "传入IotHardness Obj") + public R> getDataRefresh(HttpServletRequest request, + @Parameter(hidden = true) @RequestParam Map map) { + // 根据ip关联查询 + + // todo: + +// BladeUser loginUser = AuthUtil.getUser(); +// Long userId = loginUser.getUserId(); +// R rUI = iUserClient.userInfo(userId); +// if (rUI.isSuccess() && rUI.getData() != null) { +// +// } + QueryWrapper qw = Condition.getQueryWrapper(map, IotHardness.class); + List list = service.list(qw); + return R.data(list); + } + + + /** + * [IOT硬度] page分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 21) + @Operation(summary = "page分页", description = "传入IotHardness Obj") + public R> page(IotHardnessVO iotHardness, Query query) { + IPage pagesVO = service.selectIotHardnessPage( + Condition.getPage(query), iotHardness + ); + return R.data(pagesVO); + } + + /** * [IOT硬度] list下拉选择 */ @GetMapping("/listForSelect") @ApiOperationSupport(order = 22) - @Operation(summary = "list下拉选择", description = "") + @Operation(summary = "list下拉选择", description = "") public R> listForSelect() { - List list = service.list(); - List listVO = IotHardnessWrapper.build().listVO(list); - return R.data(listVO); - } - - /** - * [IOT硬度] 新增一条 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 30) - @Operation(summary = "新增一条", description = "传入IotHardness Obj") - public R save(@Valid @RequestBody IotHardness addOne) { - addOne.setId(null); - return R.status(service.save(addOne)); - } - - /** + List list = service.list(); + List listVO = IotHardnessWrapper.build().listVO(list); + return R.data(listVO); + } + + /** + * [IOT硬度] 新增一条 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 30) + @Operation(summary = "新增一条", description = "传入IotHardness Obj") + public R save(@Valid @RequestBody IotHardness addOne) { + addOne.setId(null); + return R.status(service.save(addOne)); + } + + /** * [IOT硬度] 新增批量 */ - @PostMapping("/saveBat") - @ApiOperationSupport(order = 31) - @Operation(summary = "新增批量", description = "传入IotHardness List") - public R saveBat(@Valid @RequestBody List addList) { - addList.forEach(one -> { - one.setId(null); - }); - return R.status(service.saveBatch(addList)); - } - - /** - * [IOT硬度] 修改一条 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 40) - @Operation(summary = "修改一条", description = "传入IotHardness Obj") - public R update(@Valid @RequestBody IotHardness updateOne) { - return R.status(service.updateById(updateOne)); - } + @PostMapping("/saveBat") + @ApiOperationSupport(order = 31) + @Operation(summary = "新增批量", description = "传入IotHardness List") + public R saveBat(@Valid @RequestBody List addList) { + addList.forEach(one -> { + one.setId(null); + }); + return R.status(service.saveBatch(addList)); + } + + /** + * [IOT硬度] 修改一条 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 40) + @Operation(summary = "修改一条", description = "传入IotHardness Obj") + public R update(@Valid @RequestBody IotHardness updateOne) { + return R.status(service.updateById(updateOne)); + } /** * [IOT硬度] 修改批量 */ @PostMapping("/updateBat") @ApiOperationSupport(order = 41) - @Operation(summary = "修改批量", description = "传入IotHardness List") + @Operation(summary = "修改批量", description = "传入IotHardness List") public R updateBat(@Valid @RequestBody List updateList) { return R.status(service.updateBatchById(updateList)); } - /** - * [IOT硬度] 新增或修改一条 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 50) - @Operation(summary = "新增或修改一条", description = "传入IotHardness Obj") - public R submit(@Valid @RequestBody IotHardness mergeOne) { - return R.status(service.saveOrUpdate(mergeOne)); - } + /** + * [IOT硬度] 新增或修改一条 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 50) + @Operation(summary = "新增或修改一条", description = "传入IotHardness Obj") + public R submit(@Valid @RequestBody IotHardness mergeOne) { + return R.status(service.saveOrUpdate(mergeOne)); + } - /** + /** * [IOT硬度] 新增或修改批量 */ - @PostMapping("/submitBat") - @ApiOperationSupport(order = 51) - @Operation(summary = "新增或修改批量", description = "传入IotHardness List") - public R submitBat(@Valid @RequestBody List mergeList) { - return R.status(service.saveOrUpdateBatch(mergeList)); - } - - /** - * [IOT硬度] 逻辑删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 61) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * [IOT硬度] 导出Excel - */ - @GetMapping("/exportExcel") - @ApiOperationSupport(order = 70) - @Operation(summary = "导出Excel", description = "传入IotHardness") - public void exportExcel(@Parameter(hidden = true) @RequestParam Map iotHardness, - BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper qw = Condition.getQueryWrapper(iotHardness, IotHardness.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(IotHardness::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(IotHardnessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportIotHardness(qw); - ExcelUtil.export(response, "[IOT硬度]数据" + DateUtil.time(), - "[IOT硬度]数据表", list, IotHardnessExcel.class); - } - - /** + @PostMapping("/submitBat") + @ApiOperationSupport(order = 51) + @Operation(summary = "新增或修改批量", description = "传入IotHardness List") + public R submitBat(@Valid @RequestBody List mergeList) { + return R.status(service.saveOrUpdateBatch(mergeList)); + } + + /** + * [IOT硬度] 逻辑删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 61) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(service.deleteLogic(Func.toLongList(ids))); + } + + /** + * [IOT硬度] 导出Excel + */ + @GetMapping("/exportExcel") + @ApiOperationSupport(order = 70) + @Operation(summary = "导出Excel", description = "传入IotHardness") + public void exportExcel(@Parameter(hidden = true) @RequestParam Map iotHardness, + BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper qw = Condition.getQueryWrapper(iotHardness, IotHardness.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(IotHardness::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(IotHardnessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = service.exportIotHardness(qw); + ExcelUtil.export(response, "[IOT硬度]数据" + DateUtil.time(), + "[IOT硬度]数据表", list, IotHardnessExcel.class); + } + + /** * [IOT硬度] 下载Excel模板 */ - @GetMapping("/downloadExcelTemplate") - @ApiOperationSupport(order = 71) - @Operation(summary = "下载Excel模板", description = "") - public ResponseEntity downloadExcelTemplate() { - return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/ImportTemplate-CycleTestItem.xls", - "导入模版-周期试验项目.xls"); - } - - /** - * [IOT硬度] 导入Excel - */ - @PostMapping("/importExcel") - @ApiOperationSupport(order = 72) - @Operation(summary = "导入Excel", description = "MultipartFile") - public R importExcel(@RequestParam("file") MultipartFile file) { - R checkR = ExcelExtUtil.importExcelCheck(file); - if (checkR != null) { - return checkR; - } - List importList = ExcelUtil.read( - file, 0, 1, IotHardness.class - ); - return R.status(service.saveBatch(importList)); - } + @GetMapping("/downloadExcelTemplate") + @ApiOperationSupport(order = 71) + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate( + "Excel/QA/ImportTemplate-CycleTestItem.xls", + "导入模版-周期试验项目.xls"); + } + + /** + * [IOT硬度] 导入Excel + */ + @PostMapping("/importExcel") + @ApiOperationSupport(order = 72) + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read( + file, 0, 1, IotHardness.class + ); + return R.status(service.saveBatch(importList)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java index a8958773..9b7a7a9c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java @@ -3,13 +3,16 @@ */ package org.springblade.desk.quality.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.AllArgsConstructor; @@ -21,12 +24,15 @@ import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; 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.IotThicknessExcel; +import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.IotHardness; import org.springblade.desk.quality.pojo.entity.IotThickness; import org.springblade.desk.quality.pojo.vo.IotThicknessVO; import org.springblade.desk.quality.service.IIotThicknessService; @@ -55,184 +61,202 @@ import java.util.stream.Collectors; public class IotThicknessController extends BladeController { @Resource - private IIotThicknessService service; - - /** - * [IOT厚度] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 10) - @Operation(summary = "详情", description = "传入IotThickness Obj") - public R detail(IotThickness iotThickness) { - QueryWrapper qw = Condition.getQueryWrapper(iotThickness); - IotThickness detail = service.getOne(qw); - IotThicknessVO detailVO = IotThicknessWrapper.build().entityVO(detail); - service.setVOValue(detailVO); - return R.data(detailVO); - } - - /** - * [IOT厚度] list分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 20) - @Operation(summary = "list分页", description = "传入IotThickness Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map iotThickness, - Query query) { + private IIotThicknessService service; + + /** + * [IOT厚度] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 10) + @Operation(summary = "详情", description = "传入IotThickness Obj") + public R detail(IotThickness iotThickness) { + QueryWrapper qw = Condition.getQueryWrapper(iotThickness); + IotThickness detail = service.getOne(qw); + IotThicknessVO detailVO = IotThicknessWrapper.build().entityVO(detail); + service.setVOValue(detailVO); + return R.data(detailVO); + } + + /** + * [IOT厚度] list分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 20) + @Operation(summary = "list分页", description = "传入IotThickness Obj") + public R> list(@Parameter(hidden = true) @RequestParam Map iotThickness, + Query query) { QueryWrapper qw = Condition.getQueryWrapper(iotThickness, IotThickness.class); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = IotThicknessWrapper.build().pageVO(pages); - pagesVO.getRecords() - .stream() - .peek(service::setVOValue) - .collect(Collectors.toList()); - return R.data(pagesVO); - } - - - /** - * [IOT厚度] page分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 21) - @Operation(summary = "page分页", description = "传入IotThickness Obj") - public R> page(IotThicknessVO iotThickness, Query query) { - IPage pagesVO = service.selectIotThicknessPage( - Condition.getPage(query), iotThickness - ); - return R.data(pagesVO); - } - - /** + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = IotThicknessWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + @GetMapping("/getData") + @ApiOperationSupport(order = 20) + @Operation(summary = "获取厚度检测值 getData", description = "传入IotHardness Obj") + public R> getData(HttpServletRequest request, + @Parameter(hidden = true) @RequestParam Map map) { + // 根据ip关联查询 + +// BladeUser loginUser = AuthUtil.getUser(); +// Long userId = loginUser.getUserId(); +// R rUI = iUserClient.userInfo(userId); +// if (rUI.isSuccess() && rUI.getData() != null) { +// +// } + QueryWrapper qw = Condition.getQueryWrapper(map, IotThickness.class); + List list = service.list(qw); + return R.data(list); + } + + + /** + * [IOT厚度] page分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 21) + @Operation(summary = "page分页", description = "传入IotThickness Obj") + public R> page(IotThicknessVO iotThickness, Query query) { + IPage pagesVO = service.selectIotThicknessPage( + Condition.getPage(query), iotThickness + ); + return R.data(pagesVO); + } + + /** * [IOT厚度] list下拉选择 */ @GetMapping("/listForSelect") @ApiOperationSupport(order = 22) - @Operation(summary = "list下拉选择", description = "") + @Operation(summary = "list下拉选择", description = "") public R> listForSelect() { - List list = service.list(); - List listVO = IotThicknessWrapper.build().listVO(list); - return R.data(listVO); + List list = service.list(); + List listVO = IotThicknessWrapper.build().listVO(list); + return R.data(listVO); + } + + /** + * [IOT厚度] 新增一条 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 30) + @Operation(summary = "新增一条", description = "传入IotThickness Obj") + public R save(@Valid @RequestBody IotThickness addOne) { + addOne.setId(null); + return R.status(service.save(addOne)); } - /** - * [IOT厚度] 新增一条 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 30) - @Operation(summary = "新增一条", description = "传入IotThickness Obj") - public R save(@Valid @RequestBody IotThickness addOne) { - addOne.setId(null); - return R.status(service.save(addOne)); - } - - /** + /** * [IOT厚度] 新增批量 */ - @PostMapping("/saveBat") - @ApiOperationSupport(order = 31) - @Operation(summary = "新增批量", description = "传入IotThickness List") - public R saveBat(@Valid @RequestBody List addList) { - addList.forEach(one -> { - one.setId(null); - }); - return R.status(service.saveBatch(addList)); - } - - /** - * [IOT厚度] 修改一条 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 40) - @Operation(summary = "修改一条", description = "传入IotThickness Obj") - public R update(@Valid @RequestBody IotThickness updateOne) { - return R.status(service.updateById(updateOne)); - } + @PostMapping("/saveBat") + @ApiOperationSupport(order = 31) + @Operation(summary = "新增批量", description = "传入IotThickness List") + public R saveBat(@Valid @RequestBody List addList) { + addList.forEach(one -> { + one.setId(null); + }); + return R.status(service.saveBatch(addList)); + } + + /** + * [IOT厚度] 修改一条 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 40) + @Operation(summary = "修改一条", description = "传入IotThickness Obj") + public R update(@Valid @RequestBody IotThickness updateOne) { + return R.status(service.updateById(updateOne)); + } /** * [IOT厚度] 修改批量 */ @PostMapping("/updateBat") @ApiOperationSupport(order = 41) - @Operation(summary = "修改批量", description = "传入IotThickness List") + @Operation(summary = "修改批量", description = "传入IotThickness List") public R updateBat(@Valid @RequestBody List updateList) { return R.status(service.updateBatchById(updateList)); } - /** - * [IOT厚度] 新增或修改一条 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 50) - @Operation(summary = "新增或修改一条", description = "传入IotThickness Obj") - public R submit(@Valid @RequestBody IotThickness mergeOne) { - return R.status(service.saveOrUpdate(mergeOne)); - } - - /** + /** + * [IOT厚度] 新增或修改一条 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 50) + @Operation(summary = "新增或修改一条", description = "传入IotThickness Obj") + public R submit(@Valid @RequestBody IotThickness mergeOne) { + return R.status(service.saveOrUpdate(mergeOne)); + } + + /** * [IOT厚度] 新增或修改批量 */ - @PostMapping("/submitBat") - @ApiOperationSupport(order = 51) - @Operation(summary = "新增或修改批量", description = "传入IotThickness List") - public R submitBat(@Valid @RequestBody List mergeList) { - return R.status(service.saveOrUpdateBatch(mergeList)); - } - - /** - * [IOT厚度] 逻辑删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 61) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * [IOT厚度] 导出Excel - */ - @GetMapping("/exportExcel") - @ApiOperationSupport(order = 70) - @Operation(summary = "导出Excel", description = "传入IotThickness") - public void exportExcel(@Parameter(hidden = true) @RequestParam Map iotThickness, - BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper qw = Condition.getQueryWrapper(iotThickness, IotThickness.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(IotThickness::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(IotThicknessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportIotThickness(qw); - ExcelUtil.export(response, "[IOT厚度]数据" + DateUtil.time(), - "[IOT厚度]数据表", list, IotThicknessExcel.class); - } - - /** + @PostMapping("/submitBat") + @ApiOperationSupport(order = 51) + @Operation(summary = "新增或修改批量", description = "传入IotThickness List") + public R submitBat(@Valid @RequestBody List mergeList) { + return R.status(service.saveOrUpdateBatch(mergeList)); + } + + /** + * [IOT厚度] 逻辑删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 61) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(service.deleteLogic(Func.toLongList(ids))); + } + + /** + * [IOT厚度] 导出Excel + */ + @GetMapping("/exportExcel") + @ApiOperationSupport(order = 70) + @Operation(summary = "导出Excel", description = "传入IotThickness") + public void exportExcel(@Parameter(hidden = true) @RequestParam Map iotThickness, + BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper qw = Condition.getQueryWrapper(iotThickness, IotThickness.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(IotThickness::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(IotThicknessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = service.exportIotThickness(qw); + ExcelUtil.export(response, "[IOT厚度]数据" + DateUtil.time(), + "[IOT厚度]数据表", list, IotThicknessExcel.class); + } + + /** * [IOT厚度] 下载Excel模板 */ - @GetMapping("/downloadExcelTemplate") - @ApiOperationSupport(order = 71) - @Operation(summary = "下载Excel模板", description = "") - public ResponseEntity downloadExcelTemplate() { - return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/ImportTemplate-CycleTestItem.xls", - "导入模版-周期试验项目.xls"); - } - - /** - * [IOT厚度] 导入Excel - */ - @PostMapping("/importExcel") - @ApiOperationSupport(order = 72) - @Operation(summary = "导入Excel", description = "MultipartFile") - public R importExcel(@RequestParam("file") MultipartFile file) { - R checkR = ExcelExtUtil.importExcelCheck(file); - if (checkR != null) { - return checkR; - } - List importList = ExcelUtil.read( - file, 0, 1, IotThickness.class - ); - return R.status(service.saveBatch(importList)); - } + @GetMapping("/downloadExcelTemplate") + @ApiOperationSupport(order = 71) + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate( + "Excel/QA/ImportTemplate-CycleTestItem.xls", + "导入模版-周期试验项目.xls"); + } + + /** + * [IOT厚度] 导入Excel + */ + @PostMapping("/importExcel") + @ApiOperationSupport(order = 72) + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read( + file, 0, 1, IotThickness.class + ); + return R.status(service.saveBatch(importList)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java index a85f811f..7a0571f7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java @@ -102,6 +102,95 @@ public class ReviewSheetController extends BladeController { return R.data(pagesVO); } + /** + * [生产处置单] list分页 + */ + @GetMapping("/listInit") + @ApiOperationSupport(order = 20) + @Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj") + public R> listInit(@Parameter(hidden = true) @RequestParam Map reviewSheet, + Query query) { + QueryWrapper qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ReviewSheetWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + /** + * [生产处置单] list分页 + */ + @GetMapping("/listRedo") + @ApiOperationSupport(order = 20) + @Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj") + public R> listRedo(@Parameter(hidden = true) @RequestParam Map reviewSheet, + Query query) { + QueryWrapper qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ReviewSheetWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + /** + * [生产处置单] list分页 + */ + @GetMapping("/listScrap") + @ApiOperationSupport(order = 20) + @Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj") + public R> listScrap(@Parameter(hidden = true) @RequestParam Map reviewSheet, + Query query) { + QueryWrapper qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ReviewSheetWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + /** + * [生产处置单] list分页 + */ + @GetMapping("/listInternal") + @ApiOperationSupport(order = 20) + @Operation(summary = "内部list分页", description = "传入ReviewSheet Obj") + public R> listInternal(@Parameter(hidden = true) @RequestParam Map reviewSheet, + Query query) { + QueryWrapper qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ReviewSheetWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + /** + * [生产处置单] list分页 + */ + @GetMapping("/listErp") + @ApiOperationSupport(order = 20) + @Operation(summary = "ERPlist分页", description = "传入ReviewSheet Obj") + public R> listErp(@Parameter(hidden = true) @RequestParam Map reviewSheet, + Query query) { + QueryWrapper qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ReviewSheetWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } /** * [生产处置单] page分页 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml index c482a35f..652be1f4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml @@ -90,6 +90,6 @@ AND task.FROM_TYPE = #{q.fromType} - ORDER BY ID DESC + ORDER BY task.ID DESC diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.xml index 1f11d0dc..0449c836 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.xml @@ -16,6 +16,7 @@ +