From e3a9cba3fb4479ab37441cda644f16c5d6ab7ff4 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Fri, 14 Nov 2025 14:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E4=B8=A2=E5=A4=B1=E7=9A=84In?= =?UTF-8?q?spectionTaskService=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/InspectionTaskController.java | 187 ++++++++++-------- .../quality/pojo/entity/InspectionTask.java | 6 +- .../pojo/request/InspectionTaskStart.java | 28 +++ .../service/InspectionTaskService.java | 60 ++++++ 4 files changed, 194 insertions(+), 87 deletions(-) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/InspectionTaskStart.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/InspectionTaskService.java 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 02f1fe62..07423c32 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 @@ -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.InspectionTaskGenExcel; import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.request.InspectionTaskStart; import org.springblade.desk.quality.pojo.vo.gen.InspectionTaskGenVO; +import org.springblade.desk.quality.service.InspectionTaskService; import org.springblade.desk.quality.service.gen.IInspectionTaskGenService; import org.springblade.desk.quality.wrapper.gen.InspectionTaskGenWrapper; import org.springframework.web.bind.annotation.*; @@ -38,102 +43,116 @@ import java.util.Map; * @since 2025-11-14 */ @RestController -@AllArgsConstructor +@Data +@EqualsAndHashCode(callSuper = true) @RequestMapping("/inspectionTask") @Tag(name = "[检验任务]", description = "[检验任务]接口") public class InspectionTaskController extends BladeController { - private final IInspectionTaskGenService inspectionTaskGenService; + @Resource + private IInspectionTaskGenService inspectionTaskGenService; + @Resource + private InspectionTaskService service; - /** - * [检验任务] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 1) - @Operation(summary = "详情", description = "传入inspectionTask") - public R detail(InspectionTask inspectionTask) { - InspectionTask detail = inspectionTaskGenService.getOne(Condition.getQueryWrapper(inspectionTask)); - return R.data(InspectionTaskGenWrapper.build().entityVO(detail)); - } + /** + * [检验任务] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入inspectionTask") + public R detail(InspectionTask inspectionTask) { + InspectionTask detail = inspectionTaskGenService.getOne(Condition.getQueryWrapper(inspectionTask)); + return R.data(InspectionTaskGenWrapper.build().entityVO(detail)); + } - /** - * [检验任务] 分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 2) - @Operation(summary = "分页", description = "传入inspectionTask") - public R> list(@Parameter(hidden = true) @RequestParam Map inspectionTask, Query query) { - IPage pages = inspectionTaskGenService.page(Condition.getPage(query), Condition.getQueryWrapper(inspectionTask, InspectionTask.class)); - return R.data(InspectionTaskGenWrapper.build().pageVO(pages)); - } + /** + * [检验任务] 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入inspectionTask") + public R> list(@Parameter(hidden = true) @RequestParam Map inspectionTask, Query query) { + IPage pages = inspectionTaskGenService.page(Condition.getPage(query), Condition.getQueryWrapper(inspectionTask, InspectionTask.class)); + return R.data(InspectionTaskGenWrapper.build().pageVO(pages)); + } - /** - * [检验任务] 自定义分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 3) - @Operation(summary = "分页", description = "传入inspectionTask") - public R> page(InspectionTaskGenVO inspectionTask, Query query) { - IPage pages = inspectionTaskGenService.selectInspectionTaskPage(Condition.getPage(query), inspectionTask); - return R.data(pages); - } + /** + * [检验任务] 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入inspectionTask") + public R> page(InspectionTaskGenVO inspectionTask, Query query) { + IPage pages = inspectionTaskGenService.selectInspectionTaskPage(Condition.getPage(query), inspectionTask); + return R.data(pages); + } - /** - * [检验任务] 新增 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 4) - @Operation(summary = "新增", description = "传入inspectionTask") - public R save(@Valid @RequestBody InspectionTask inspectionTask) { - return R.status(inspectionTaskGenService.save(inspectionTask)); - } + /** + * [检验任务] 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入inspectionTask") + public R save(@Valid @RequestBody InspectionTask inspectionTask) { + return R.status(inspectionTaskGenService.save(inspectionTask)); + } - /** - * [检验任务] 修改 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 5) - @Operation(summary = "修改", description = "传入inspectionTask") - public R update(@Valid @RequestBody InspectionTask inspectionTask) { - return R.status(inspectionTaskGenService.updateById(inspectionTask)); - } + /** + * [检验任务] 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入inspectionTask") + public R update(@Valid @RequestBody InspectionTask inspectionTask) { + return R.status(inspectionTaskGenService.updateById(inspectionTask)); + } - /** - * [检验任务] 新增或修改 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 6) - @Operation(summary = "新增或修改", description = "传入inspectionTask") - public R submit(@Valid @RequestBody InspectionTask inspectionTask) { - return R.status(inspectionTaskGenService.saveOrUpdate(inspectionTask)); - } + /** + * [检验任务] 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入inspectionTask") + public R submit(@Valid @RequestBody InspectionTask inspectionTask) { + return R.status(inspectionTaskGenService.saveOrUpdate(inspectionTask)); + } - /** - * [检验任务] 删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 7) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(inspectionTaskGenService.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(inspectionTaskGenService.deleteLogic(Func.toLongList(ids))); + } - /** - * 导出数据 - */ - @IsAdmin - @GetMapping("/export-inspectionTask") - @ApiOperationSupport(order = 8) - @Operation(summary = "导出数据", description = "传入inspectionTask") - public void exportInspectionTask(@Parameter(hidden = true) @RequestParam Map inspectionTask, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(inspectionTask, InspectionTask.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(InspectionTask::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(InspectionTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = inspectionTaskGenService.exportInspectionTask(queryWrapper); - ExcelUtil.export(response, "[检验任务]数据" + DateUtil.time(), "[检验任务]数据表", list, InspectionTaskGenExcel.class); - } + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-inspectionTask") + @ApiOperationSupport(order = 8) + @Operation(summary = "导出数据", description = "传入inspectionTask") + public void exportInspectionTask(@Parameter(hidden = true) @RequestParam Map inspectionTask, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(inspectionTask, InspectionTask.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(InspectionTask::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(InspectionTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = inspectionTaskGenService.exportInspectionTask(queryWrapper); + ExcelUtil.export(response, "[检验任务]数据" + DateUtil.time(), "[检验任务]数据表", list, InspectionTaskGenExcel.class); + } + /** + * todo:调用时机待定。 + * 工序开始,新增[检验任务] + */ + @PostMapping("/start") + @ApiOperationSupport(order = 4) + @Operation(summary = "", description = "传入inspectionTask") + public R save(@Valid @RequestBody InspectionTaskStart start) { + return service.start(start); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java index 07b5078c..99a6b80a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java @@ -47,17 +47,17 @@ public class InspectionTask extends BaseEntity { * [工单]id */ @Schema(description = "[工单]id") - private BigDecimal workOrderId; + private Long workOrderId; /** * [制品]id */ @Schema(description = "[制品]id") - private BigDecimal productId; + private Long productId; /** * [工序]id */ @Schema(description = "[工序]id") - private BigDecimal processId; + private Long processId; /** * 质检员[用户]id */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/InspectionTaskStart.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/InspectionTaskStart.java new file mode 100644 index 00000000..e9da25c3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/InspectionTaskStart.java @@ -0,0 +1,28 @@ +package org.springblade.desk.quality.pojo.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class InspectionTaskStart { + + /** + * [工单]id + */ + @Schema(description = "[工单]id") + private BigDecimal workOrderId; + + /** + * [工序]id + */ + @Schema(description = "[工序]id") + private BigDecimal processId; + + /** + * [制品]id + */ + @Schema(description = "[制品]id") + private BigDecimal productId; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/InspectionTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/InspectionTaskService.java new file mode 100644 index 00000000..60ad2f98 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/InspectionTaskService.java @@ -0,0 +1,60 @@ +package org.springblade.desk.quality.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import jakarta.annotation.Resource; +import lombok.Data; +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.mapper.gen.InspectionItemGenMapper; +import org.springblade.desk.quality.mapper.gen.InspectionResultGenMapper; +import org.springblade.desk.quality.mapper.gen.InspectionTaskGenMapper; +import org.springblade.desk.quality.pojo.entity.InspectionItem; +import org.springblade.desk.quality.pojo.entity.InspectionResult; +import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.request.InspectionTaskStart; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Data +public class InspectionTaskService { + + @Resource + private InspectionTaskGenMapper genMapper; + @Resource + private InspectionItemGenMapper itemGenMapper; + @Resource + private InspectionResultGenMapper resultGenMapper; + + public R start(InspectionTaskStart start) { + // todo:check工单有效性 + + // todo:check工序有效性 + + // todo:check制品有效性 + InspectionTask taskNew = new InspectionTask(); + genMapper.insert(taskNew); + // 查询工艺用到的,所有启用的检验项目。 + List itemList = itemGenMapper.selectList( + new QueryWrapper() + .eq(ColBase.STATUS, ColValue.STATE_ENABLE) + .eq("PROCESS_ID", start.getProcessId()) + ); + if (itemList.isEmpty()) { + return R.fail("没有关联的检测项目!"); + } + // 创建关联的检验结果集合。 + for (InspectionItem item : itemList) { + InspectionResult result = new InspectionResult(); + result.setInspectionTaskId(taskNew.getId()); + result.setInspectionItemId(item.getId()); + resultGenMapper.insert(result); + } + // 最终返回R + R rFinal = R.success("成功生成检测任务!"); + rFinal.setData(taskNew); + return rFinal; + } +}