From a330999d472f18c84c41b2e546b9547c8bcfd1fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 23 Apr 2026 17:51:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms):=20=E5=AE=9E=E7=8E=B0=E6=9D=A5?= =?UTF-8?q?=E6=96=99=E4=B8=8E=E5=BA=93=E5=AD=98=E6=A3=80=E9=AA=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增外部接口支持来料检验申请和库存检测申请 - 创建来料检验任务实体及相关服务接口 - 实现质检物料验证及最新有效检验标准关联校验 - 自动分配质检人员,支持人员转办机制 - 自动生成检测单号并计算任务要求完成时间 - 提供任务列表分页查询、详情查询和当前用户待检验任务查询 - 实现任务转办功能,禁止已检任务转办 - 完善检验任务AQL方案自动生成逻辑 - 增加请求参数校验,确保数据完整性和合法性 - 管理库存检测申请中特殊字段:仓库、储位及存储时长的填写与存储 --- .../QmsIncomingInspectionTaskController.java | 14 +- ...ernalIncomingInspectionTaskController.java | 22 +++- ...comingInspectionTaskControllerService.java | 124 +++++++++++++++++- .../qo/ExternalIncomingInspectionApplyQO.java | 22 ++-- .../ExternalInventoryInspectionApplyQO.java | 51 +++++++ ...QmsIncomingInspectionTaskTodoSearchQO.java | 10 ++ .../entity/QmsIncomingInspectionTask.java | 22 +++- .../QmsIncomingInspectionTaskRecord.java | 93 +++++++++++++ .../QmsIncomingInspectionTaskRecordItem.java | 58 ++++++++ .../QmsIncomingInspectionTaskMapper.java | 5 + ...ncomingInspectionTaskRecordItemMapper.java | 16 +++ ...QmsIncomingInspectionTaskRecordMapper.java | 11 ++ ...comingInspectionTaskRecordItemService.java | 16 +++ ...msIncomingInspectionTaskRecordService.java | 11 ++ .../IQmsIncomingInspectionTaskService.java | 8 ++ ...ngInspectionTaskRecordItemServiceImpl.java | 20 +++ ...comingInspectionTaskRecordServiceImpl.java | 15 +++ .../QmsIncomingInspectionTaskServiceImpl.java | 5 + .../QmsIncomingInspectionTaskMapper.xml | 54 +++++++- ...IncomingInspectionTaskRecordItemMapper.xml | 5 + .../QmsIncomingInspectionTaskRecordMapper.xml | 5 + 21 files changed, 570 insertions(+), 17 deletions(-) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecordItem.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordItemMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordItemService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskRecordItemServiceImpl.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskRecordServiceImpl.java create mode 100644 nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordItemMapper.xml create mode 100644 nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordMapper.xml diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java index 28dbc6bb..c14a3793 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** @@ -35,6 +36,14 @@ public class QmsIncomingInspectionTaskController extends BaseController { return ApiResult.success(incomingInspectionTaskControllerService.search(request)); } + /** + * 根据id查询任务详情 + */ + @GetMapping("detail") + public ApiResult detail(@RequestParam Long id) { + return ApiResult.success(incomingInspectionTaskControllerService.getDetail(id)); + } + /** * 转办 */ @@ -47,7 +56,7 @@ public class QmsIncomingInspectionTaskController extends BaseController { /** * 查询当前登录用户的待检验任务列表 */ - @PostMapping("todo-search") + @PostMapping("pad/todo-search") public ApiResult> todoSearch(@Valid @RequestBody QmsIncomingInspectionTaskTodoSearchQO request) { return ApiResult.success(incomingInspectionTaskControllerService.todoSearch(request)); } @@ -55,8 +64,9 @@ public class QmsIncomingInspectionTaskController extends BaseController { /** * 查询当前登录用户的任务数量(待检验数量、检验中数量、已延期数量) */ - @GetMapping("count") + @GetMapping("pad/count") public ApiResult count() { return ApiResult.success(incomingInspectionTaskControllerService.countByCurrentUser()); } + } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/ExternalIncomingInspectionTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/ExternalIncomingInspectionTaskController.java index dabb2979..9cb60b43 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/ExternalIncomingInspectionTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/ExternalIncomingInspectionTaskController.java @@ -3,6 +3,7 @@ package com.nflg.qms.admin.controller.external; import com.nflg.qms.admin.service.IncomingInspectionTaskControllerService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.qo.ExternalIncomingInspectionApplyQO; +import com.nflg.wms.common.pojo.qo.ExternalInventoryInspectionApplyQO; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; @@ -29,9 +30,24 @@ public class ExternalIncomingInspectionTaskController extends BaseController { * - 如果该物料id不存在对应的检验标准,则返回错误 * - 要求完成时间 = 当前时间 + 检验标准中的检验周期(天) */ - @PostMapping("apply") - public ApiResult apply(@Valid @RequestBody ExternalIncomingInspectionApplyQO request) { - incomingInspectionTaskControllerService.apply(request); + @PostMapping("incoming-apply") + public ApiResult IncomingApply(@Valid @RequestBody ExternalIncomingInspectionApplyQO request) { + incomingInspectionTaskControllerService.IncomingApply(request); + return ApiResult.success(); + } + + /** + * 库存检测申请 + * - 每次只能申请一个物料 + * - 物料编号必须在质检物料表存在,物料id取该物料的最新版本 + * - 如果该物料id不存在对应的检验标准,则返回错误 + * - 要求完成时间 = 当前时间 + 检验标准中的检验周期(天) + * - 无需供应商信息、送货单号、采购单号 + * - 额外必填所属仓库、所属储位、存储时长 + */ + @PostMapping("inventory-apply") + public ApiResult inventoryApply(@Valid @RequestBody ExternalInventoryInspectionApplyQO request) { + incomingInspectionTaskControllerService.inventoryApply(request); return ApiResult.success(); } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java index a4268500..028873f8 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.qo.ExternalIncomingInspectionApplyQO; +import com.nflg.wms.common.pojo.qo.ExternalInventoryInspectionApplyQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; @@ -89,7 +90,7 @@ public class IncomingInspectionTaskControllerService { * - 若质检人员设置了转办人,则使用转办人代替 */ @Transactional - public void apply(ExternalIncomingInspectionApplyQO request) { + public void IncomingApply(ExternalIncomingInspectionApplyQO request) { // 1. 查询质检物料,取该物料编号下 id 最大的记录(最新版本) QmsQcMaterial material = qcMaterialService.lambdaQuery() .eq(QmsQcMaterial::getMaterialNo, request.getMaterialNo()) @@ -159,7 +160,8 @@ public class IncomingInspectionTaskControllerService { .setPurchaseOrderNo(request.getPurchaseOrderNo()) .setPurchaseOrderLine(request.getPurchaseOrderLine()) .setFactory(request.getFactory()) - .setInspectionType(request.getType()) + .setInspectionType(request.getInspectionType()) + .setDataType(0) .setInspectionQty(request.getInspectionQty()) .setInspectionStatus((short) 0) .setInspectorId(inspectorId) @@ -186,6 +188,115 @@ public class IncomingInspectionTaskControllerService { } } + /** + * 库存检测申请(对外接口) + * 业务规则: + * 1. 每次只能申请一个物料 + * 2. 物料编号必须在质检物料表存在,物料id取质检物料表中该物料的最新版本(id最大) + * 3. 如果该物料id不存在对应的已发布检验标准,则返回错误 + * 4. 要求完成时间 = 当前时间 + 检验标准中的检验周期(单位:天) + * 5. 检测单号通过序列号服务自动生成 + * 6. 无需供应商信息、送货单号、采购单号 + * 7. 额外记录所属仓库、所属储位、存储时长 + * 8. 检验人从质检人员表获取(质检类型=1,IQE): + * - 优先取物料直接绑定的质检人员 + * - 其次递归向上查物料类别绑定的质检人员 + * - 若质检人员设置了转办人,则使用转办人代替 + */ + @Transactional + public void inventoryApply(ExternalInventoryInspectionApplyQO request) { + // 1. 查询质检物料,取该物料编号下 id 最大的记录(最新版本) + QmsQcMaterial material = qcMaterialService.lambdaQuery() + .eq(QmsQcMaterial::getMaterialNo, request.getMaterialNo()) + .orderByDesc(QmsQcMaterial::getId) + .last("LIMIT 1") + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(material)) + .throwMessage("物料编号不存在于质检物料表中"); + + // 2. 查询该物料对应的已发布检验标准 + QmsInspectionStandard standard = inspectionStandardService.lambdaQuery() + .eq(QmsInspectionStandard::getMaterialId, material.getId()) + .eq(QmsInspectionStandard::getPublishStatus, 1) + .eq(QmsInspectionStandard::getIsEnabled, true) + .orderByDesc(QmsInspectionStandard::getId) + .last("LIMIT 1") + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(standard)) + .throwMessage("该物料不存在对应的检验标准"); + + // 3. 查找负责该物料的质检人员(IQE,inspectionType=1) + QmsQualityInspector inspector = resolveInspector(material); + + // 4. 若质检人员设置了转办人,则使用转办人代替 + Long inspectorId; + String inspectorName; + if (Objects.nonNull(inspector.getChangeUserId())) { + QmsQualityInspector agentInspector = qualityInspectorService.lambdaQuery() + .eq(QmsQualityInspector::getUserId, inspector.getChangeUserId()) + .eq(QmsQualityInspector::getInspectionType, 1) + .eq(QmsQualityInspector::getEnable, true) + .last("LIMIT 1") + .one(); + if (Objects.nonNull(agentInspector)) { + inspectorId = agentInspector.getId(); + User agentUser = userService.getById(agentInspector.getUserId()); + inspectorName = Objects.nonNull(agentUser) ? agentUser.getUserName() : null; + } else { + inspectorId = inspector.getId(); + User inspectorUser = userService.getById(inspector.getUserId()); + inspectorName = Objects.nonNull(inspectorUser) ? inspectorUser.getUserName() : null; + } + } else { + inspectorId = inspector.getId(); + User inspectorUser = userService.getById(inspector.getUserId()); + inspectorName = Objects.nonNull(inspectorUser) ? inspectorUser.getUserName() : null; + } + + // 5. 生成检测单号 + String taskNo = basdeSerialNumberControllerService.generateSerialNumber(35); + + // 6. 计算要求完成时间:当前时间 + 检验周期(天) + LocalDateTime now = LocalDateTime.now(); + LocalDateTime requiredFinishTime = now.plusDays(standard.getInspectionCycle()); + + // 7. 构建并保存库存检测任务(存入来料检测任务表,dataType=1) + QmsIncomingInspectionTask task = new QmsIncomingInspectionTask() + .setTaskNo(taskNo) + .setMaterialId(material.getId()) + .setInspectionStandardId(standard.getId()) + .setFactory(request.getFactory()) + .setInspectionType(1) + .setInspectionQty(request.getInspectionQty()) + .setWarehouse(request.getWarehouse()) + .setStorageLocation(request.getStorageLocation()) + .setStorageDays(request.getStorageDays()) + .setDataType(1) + .setInspectionStatus((short) 0) + .setInspectorId(inspectorId) + .setInspectorName(inspectorName) + .setSubmitTime(now) + .setRequiredFinishTime(requiredFinishTime); + + incomingInspectionTaskService.save(task); + + // 8. 生成检验任务AQL方案 + Long inspectionStandardId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod", "Sampling"); + VUtil.trueThrowBusinessError(Objects.isNull(inspectionStandardId)).throwMessage("检测方式不存在"); + if (Objects.equals(standard.getTestingMethodDictItemId(), inspectionStandardId)) { + Pair aqlType = CalculatedAqlType(task, standard + , dictionaryItemService.getListByDictionaryCode("InspectionStandardSQLType")); + incomingInspectionTaskAqlRuleService.save(new QmsIncomingInspectionTaskAqlRule() + .setTaskId(task.getId()) + .setInspectionStandardId(standard.getId()) + .setCalculatedAqlType(aqlType.getLeft()) + .setUsedAqlType(aqlType.getLeft()) + .setTriggerCategory(aqlType.getRight()) + .setTriggerTime(LocalDateTime.now()) + ); + } + } + private DictionaryItem getAql(Long id, List aqls) { return aqls.stream().filter(aql -> Objects.equals(aql.getId(), id)).findFirst().get(); } @@ -366,6 +477,15 @@ public class IncomingInspectionTaskControllerService { return incomingInspectionTaskService.search(request); } + /** + * 根据id查询任务详情 + */ + public QmsIncomingInspectionTaskVO getDetail(Long id) { + QmsIncomingInspectionTaskVO detail = incomingInspectionTaskService.getDetail(id); + VUtil.trueThrowBusinessError(Objects.isNull(detail)).throwMessage("任务不存在"); + return detail; + } + /** * 查询当前登录用户的待检验任务列表 * 只查询待检验(0)和检验中(1)的任务 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalIncomingInspectionApplyQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalIncomingInspectionApplyQO.java index 1c2f33aa..0570ef4c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalIncomingInspectionApplyQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalIncomingInspectionApplyQO.java @@ -18,39 +18,45 @@ public class ExternalIncomingInspectionApplyQO { private String materialNo; /** - * 检验类型,0:来料检测;1:盘库检测 + * 检验类型,0:来料检测; */ @NotNull(message = "检验类型不能为空") - private Integer type; + private Integer inspectionType; /** - * 供应商编号(可选) + * 供应商编号 */ + @NotBlank(message = "供应商编号不能为空") private String supplierCode; /** - * 供应商名称(可选) + * 供应商名称 */ + @NotBlank(message = "供应商名称不能为空") private String supplierName; /** - * 送货单号(可选) + * 送货单号 */ + @NotBlank(message = "送货单号不能为空") private String deliveryOrderNo; /** - * 送货单行号(可选) + * 送货单行号 */ + @NotBlank(message = "送货单行号不能为空") private String deliveryOrderLine; /** - * 采购单号(可选) + * 采购单号 */ + @NotBlank(message = "采购单号不能为空") private String purchaseOrderNo; /** - * 采购单行号(可选) + * 采购单行号 */ + @NotBlank(message = "采购单行号不能为空") private String purchaseOrderLine; /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java new file mode 100644 index 00000000..672a609c --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java @@ -0,0 +1,51 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 对外接口-库存检测申请 QO + */ +@Data +public class ExternalInventoryInspectionApplyQO { + + /** + * 物料编号(必填) + */ + @NotBlank(message = "物料编号不能为空") + private String materialNo; + + /** + * 所属工厂(必填) + */ + @NotBlank(message = "所属工厂不能为空") + private String factory; + + /** + * 检验数量(必填),即送检数量 + */ + @NotNull(message = "检验数量不能为空") + @Min(value = 1, message = "检验数量必须大于0") + private Integer inspectionQty; + + /** + * 所属仓库(必填) + */ + @NotBlank(message = "所属仓库不能为空") + private String warehouse; + + /** + * 所属储位(必填) + */ + @NotBlank(message = "所属储位不能为空") + private String storageLocation; + + /** + * 存储时长(必填,单位:天) + */ + @NotNull(message = "存储时长不能为空") + @Min(value = 1, message = "存储时长必须大于0") + private Integer storageDays; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java index 48263a41..2aae7d34 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java @@ -34,4 +34,14 @@ public class QmsIncomingInspectionTaskTodoSearchQO extends PageQO { * 供应商名称(模糊匹配) */ private String supplierName; + + /** + * 检验状态:0=待检,1=检验中,2=已检(不传则默认查 0 和 1) + */ + private Short inspectionStatus; + + /** + * 是否已延期:true=已延期,false=未延期 + */ + private Boolean isOverdue; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java index aa81a41d..b5c680ab 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java @@ -82,7 +82,7 @@ public class QmsIncomingInspectionTask implements Serializable { private String factory; /** - * 检测类型,0:来料检测;1:盘库检测 + * 检测类型,0:来料检测;1:库存检测 */ private Integer inspectionType; @@ -161,6 +161,26 @@ public class QmsIncomingInspectionTask implements Serializable { */ private Long relatedTaskId; + /** + * 数据分类,0:来料;1:库存 + */ + private Integer dataType; + + /** + * 所属仓库(库存检测申请时填写) + */ + private String warehouse; + + /** + * 所属储位(库存检测申请时填写) + */ + private String storageLocation; + + /** + * 存储时长(单位:天,库存检测申请时填写) + */ + private Integer storageDays; + /** * 最近更新人id */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java new file mode 100644 index 00000000..5bd55837 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java @@ -0,0 +1,93 @@ +package com.nflg.wms.repository.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 来料检验任务检验记录 + *

+ * + * @author 代码生成器生成 + * @since 2026 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_incoming_inspection_task_record") +public class QmsIncomingInspectionTaskRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 来料检测任务id + */ + private Long taskId; + + /** + * 检验标准id,关联检验标准表 + */ + private Long inspectionStandardId; + + /** + * 检验标准项ID + */ + private Long inspectionStandardItemId; + + /** + * 检验标准项内容ID + */ + private Long inspectionStandardItemContentId; + + /** + * 物料唯一码 + */ + private String materialUniqueNo; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人ID + */ + private Long createUserId; + + /** + * 创建人姓名 + */ + private String createUserName; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新人ID + */ + private Long updateUserId; + + /** + * 更新人姓名 + */ + private String updateUserName; + + /** + * 更新时间 + */ + private LocalDateTime updateTime; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecordItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecordItem.java new file mode 100644 index 00000000..923b6989 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecordItem.java @@ -0,0 +1,58 @@ +package com.nflg.wms.repository.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 来料检验任务检验记录子项 + *

+ * + * @author 代码生成器生成 + * @since 2026 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_incoming_inspection_task_record_item") +public class QmsIncomingInspectionTaskRecordItem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 来料检测任务id + */ + private Long taskId; + + /** + * 来料检测任务记录id + */ + private Long recordId; + + /** + * 测量值 + */ + private BigDecimal measuredValue; + + /** + * 是否合格 + */ + private Boolean qualified; + + /** + * 图片列表,多个逗号分隔 + */ + private String images; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskMapper.java index c5c79ef0..7d302ce2 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskMapper.java @@ -16,4 +16,9 @@ public interface QmsIncomingInspectionTaskMapper extends BaseMapper search(QmsIncomingInspectionTaskSearchQO request, Page page); IPage todoSearch(QmsIncomingInspectionTaskTodoSearchQO request, Page page, Long inspectorId); + + /** + * 根据id查询任务详情 + */ + QmsIncomingInspectionTaskVO getDetail(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordItemMapper.java new file mode 100644 index 00000000..43bc055f --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordItemMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem; + +/** + *

+ * 来料检验任务检验记录子项 Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2026 + */ +public interface QmsIncomingInspectionTaskRecordItemMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordMapper.java new file mode 100644 index 00000000..d71be1db --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskRecordMapper.java @@ -0,0 +1,11 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord; + +/** + * 来料检验任务检验记录 Mapper + */ +public interface QmsIncomingInspectionTaskRecordMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordItemService.java new file mode 100644 index 00000000..dc3f5f18 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordItemService.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem; + +/** + *

+ * 来料检验任务检验记录子项 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2026 + */ +public interface IQmsIncomingInspectionTaskRecordItemService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordService.java new file mode 100644 index 00000000..22d4f0d8 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskRecordService.java @@ -0,0 +1,11 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord; + +/** + * 来料检验任务检验记录 服务类 + */ +public interface IQmsIncomingInspectionTaskRecordService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskService.java index fa777d74..8894c185 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskService.java @@ -40,4 +40,12 @@ public interface IQmsIncomingInspectionTaskService extends IService + * 来料检验任务检验记录子项 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2026 + */ +@Service +public class QmsIncomingInspectionTaskRecordItemServiceImpl extends ServiceImpl + implements IQmsIncomingInspectionTaskRecordItemService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskRecordServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskRecordServiceImpl.java new file mode 100644 index 00000000..c92ed1ae --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskRecordServiceImpl.java @@ -0,0 +1,15 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord; +import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordMapper; +import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordService; +import org.springframework.stereotype.Service; + +/** + * 来料检验任务检验记录 服务实现类 + */ +@Service +public class QmsIncomingInspectionTaskRecordServiceImpl extends ServiceImpl implements IQmsIncomingInspectionTaskRecordService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskServiceImpl.java index 9db146b2..3c117504 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskServiceImpl.java @@ -59,4 +59,9 @@ public class QmsIncomingInspectionTaskServiceImpl extends ServiceImpl - t.inspection_status IN (0, 1) + + + t.inspection_status = #{request.inspectionStatus} + + + t.inspection_status IN (0, 1) + + AND (t.inspector_id = #{inspectorId} OR t.agent_id = #{inspectorId}) + + AND t.is_overdue = #{request.isOverdue} + AND m.material_no ilike concat('%', #{request.materialNo}, '%') @@ -155,4 +165,46 @@ ORDER BY t.required_finish_time ASC + + diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordItemMapper.xml new file mode 100644 index 00000000..aaed078b --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordItemMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordMapper.xml new file mode 100644 index 00000000..adfd11e5 --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskRecordMapper.xml @@ -0,0 +1,5 @@ + + + + +