From cbf034db3e2441d3a5a06127f3e031720141a3cf 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 09:58:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms-incoming-inspection-task):=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=9D=A5=E6=96=99=E6=A3=80=E6=B5=8B=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增来料检测任务 Controller 服务,实现申请、查询、转办等功能 - 实现自动选择质检人员逻辑,支持物料绑定、物料类别递归绑定及转办人替换 - 支持来料检验申请,完成时间自动计算并生成检测单号 - 实现基于历史数据的抽样严格性转移规则计算逻辑 - 提供分页查询、待检任务查询及当前用户任务数量统计接口 - 实现任务转办功能,限制已检任务转办,校验代办人有效性 - 编写对应接口 Controller,提供 REST API 支持前端调用 - 新增数据访问层接口及 MyBatis Mapper,实现数据库操作支持 - 配置 Maven POM 文件,统一管理项目依赖及模块结构 --- ...comingInspectionTaskAqlRuleController.java | 33 ++ .../QmsIncomingInspectionTaskController.java | 9 + ...comingInspectionTaskControllerService.java | 157 ++++++++++ ...comingInspectionTaskTodoSearchApiTest.java | 292 ++++++++++++++++++ ...IncomingInspectionTaskAqlRuleSearchQO.java | 32 ++ ...QmsIncomingInspectionTaskTodoSearchQO.java | 37 +++ .../QmsIncomingInspectionTaskAqlRuleVO.java | 87 ++++++ .../QmsIncomingInspectionTaskAqlRule.java | 68 ++++ .../QmsSupplierInspectionStatistics.java | 50 +++ ...msIncomingInspectionTaskAqlRuleMapper.java | 19 ++ .../QmsIncomingInspectionTaskMapper.java | 3 + ...QmsSupplierInspectionStatisticsMapper.java | 10 + ...sIncomingInspectionTaskAqlRuleService.java | 18 ++ .../IQmsIncomingInspectionTaskService.java | 10 + ...msSupplierInspectionStatisticsService.java | 10 + ...omingInspectionTaskAqlRuleServiceImpl.java | 23 ++ .../QmsIncomingInspectionTaskServiceImpl.java | 13 +- ...pplierInspectionStatisticsServiceImpl.java | 15 + ...QmsIncomingInspectionTaskAqlRuleMapper.xml | 48 +++ .../QmsIncomingInspectionTaskMapper.xml | 61 ++++ pom.xml | 2 +- 21 files changed, 989 insertions(+), 8 deletions(-) create mode 100644 nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskAqlRuleController.java create mode 100644 nflg-qms-admin/src/test/java/com/nflg/qms/admin/QmsIncomingInspectionTaskTodoSearchApiTest.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskAqlRuleSearchQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskAqlRuleVO.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskAqlRule.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierInspectionStatistics.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskAqlRuleMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierInspectionStatisticsMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskAqlRuleService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierInspectionStatisticsService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskAqlRuleServiceImpl.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierInspectionStatisticsServiceImpl.java create mode 100644 nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskAqlRuleMapper.xml diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskAqlRuleController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskAqlRuleController.java new file mode 100644 index 00000000..ed22ace4 --- /dev/null +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskAqlRuleController.java @@ -0,0 +1,33 @@ +package com.nflg.qms.admin.controller; + +import com.nflg.wms.common.pojo.ApiResult; +import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO; +import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO; +import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskAqlRuleService; +import com.nflg.wms.starter.BaseController; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +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.RestController; + +/** + * 来料检验任务AQL规则 + */ +@RestController +@RequestMapping("/incoming-inspection-task-aql-rule") +public class QmsIncomingInspectionTaskAqlRuleController extends BaseController { + + @Resource + private IQmsIncomingInspectionTaskAqlRuleService incomingInspectionTaskAqlRuleService; + + /** + * 分页查询来料检验任务AQL规则列表 + */ + @PostMapping("search") + public ApiResult> search(@Valid @RequestBody QmsIncomingInspectionTaskAqlRuleSearchQO request) { + return ApiResult.success(incomingInspectionTaskAqlRuleService.search(request)); + } +} 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 a414611b..28dbc6bb 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 @@ -4,6 +4,7 @@ import com.nflg.qms.admin.service.IncomingInspectionTaskControllerService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; @@ -43,6 +44,14 @@ public class QmsIncomingInspectionTaskController extends BaseController { return ApiResult.success(); } + /** + * 查询当前登录用户的待检验任务列表 + */ + @PostMapping("todo-search") + public ApiResult> todoSearch(@Valid @RequestBody QmsIncomingInspectionTaskTodoSearchQO request) { + return ApiResult.success(incomingInspectionTaskControllerService.todoSearch(request)); + } + /** * 查询当前登录用户的任务数量(待检验数量、检验中数量、已延期数量) */ 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 060a0b65..075b8430 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 @@ -1,10 +1,14 @@ package com.nflg.qms.admin.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; 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.QmsIncomingInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; @@ -14,6 +18,7 @@ import com.nflg.wms.repository.entity.*; import com.nflg.wms.repository.service.*; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -31,6 +36,9 @@ public class IncomingInspectionTaskControllerService { @Resource private IQmsIncomingInspectionTaskService incomingInspectionTaskService; + @Resource + private IQmsInspectionStandardItemService inspectionStandardItemService; + @Resource private IQmsQualityInspectorService qualityInspectorService; @@ -58,6 +66,15 @@ public class IncomingInspectionTaskControllerService { @Resource private IDictionaryItemService dictionaryItemService; + @Resource + private IQmsIncomingInspectionTaskAqlRuleService incomingInspectionTaskAqlRuleService; + + @Resource + private IQmsSupplierInspectionStatisticsService supplierInspectionStatisticsService; + + @Resource + private IQmsSamplingStrictnessTransferRuleService samplingStrictnessTransferRuleService; + /** * 来料检验申请(对外接口) * 业务规则: @@ -157,6 +174,128 @@ public class IncomingInspectionTaskControllerService { .setRequiredFinishTime(requiredFinishTime); incomingInspectionTaskService.save(task); + + // 8. 生成来料检验任务AQL方案 + Long inspectionStandardId = dictionaryItemService.getIdByCode("InspectionStandardSamplingMethod", "Sampling"); + VUtil.trueThrowBusinessError(Objects.isNull(inspectionStandardId)).throwMessage("检测方式不存在"); + List inspectionStandardItems = inspectionStandardItemService.lambdaQuery() + .eq(QmsInspectionStandardItem::getInspectionStandardId, standard.getId()) + .eq(QmsInspectionStandardItem::getTestingMethodDictItemId, inspectionStandardId) + .orderByAsc(QmsInspectionStandardItem::getSortNo) + .list(); + if (!inspectionStandardItems.isEmpty()) { + incomingInspectionTaskAqlRuleService.saveBatch( + inspectionStandardItems.stream() + .map(item -> { + Pair aqlType = CalculatedAqlType(task, item + , dictionaryItemService.getListByDictionaryCode("InspectionStandardSQLType")); + return new QmsIncomingInspectionTaskAqlRule() + .setTaskId(task.getId()) + .setInspectionItemId(item.getId()) + .setCalculatedAqlType(aqlType.getLeft()) + .setUsedAqlType(aqlType.getLeft()) + .setTriggerCategory(aqlType.getRight()) + .setTriggerTime(LocalDateTime.now()); + }) + .toList() + ); + } + } + + private DictionaryItem getAql(Long id, List aqls) { + return aqls.stream().filter(aql -> Objects.equals(aql.getId(), id)).findFirst().get(); + } + + private Pair CalculatedAqlType(QmsIncomingInspectionTask task, QmsInspectionStandardItem item + , List aqls) { + DictionaryItem sqlzc = aqls.stream().filter(aql -> StrUtil.equals(aql.getCode(), "正常")).findFirst().get(); + DictionaryItem sqljy = aqls.stream().filter(aql -> StrUtil.equals(aql.getCode(), "加严")).findFirst().get(); + DictionaryItem sqlfw = aqls.stream().filter(aql -> StrUtil.equals(aql.getCode(), "放宽")).findFirst().get(); + log.info("【抽样严格性转移规则计算】检验项严格性为:" + getAql(item.getAqlTypeDictItemId(), aqls).getName()); + List statistics = supplierInspectionStatisticsService.lambdaQuery() + .eq(QmsSupplierInspectionStatistics::getInspectionItemId, item.getId()) + .eq(QmsSupplierInspectionStatistics::getSupplierCode, task.getSupplierCode()) + .orderByDesc(QmsSupplierInspectionStatistics::getId) + .last("LIMIT 20") + .list(); + if (statistics.isEmpty()) { + log.info("【抽样严格性转移规则计算】历史检验记录为空,使用检验项严格性"); + return Pair.of(item.getAqlTypeDictItemId(), (short) 0); + } else { + QmsSupplierInspectionStatistics s1 = statistics.get(0); + log.info("【抽样严格性转移规则计算】最新一次检验严格性为:" + getAql(s1.getAqlType(), aqls).getName()); + LambdaQueryChainWrapper queryWrapper = samplingStrictnessTransferRuleService.lambdaQuery() + .eq(QmsSamplingStrictnessTransferRule::getSamplingPlanId, item.getSamplingPlanId()) + .eq(QmsSamplingStrictnessTransferRule::getIsEnabled, true); + if (Objects.equals(s1.getAqlType(), sqljy.getId())) { + log.info("【抽样严格性转移规则计算】检查是否符合 加严 => 正常 规则"); + QmsSamplingStrictnessTransferRule rule = queryWrapper.eq(QmsSamplingStrictnessTransferRule::getRuleType, 3).one(); + if (Objects.isNull(rule)) { + log.info("【抽样严格性转移规则计算】加严 => 正常 规则不存在,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } else if (statistics.stream().limit(rule.getContinuousBatchCount()).allMatch(QmsSupplierInspectionStatistics::getQualified)) { + log.info("【抽样严格性转移规则计算】符合 加严 => 正常 规则,使用正常严格性"); + return Pair.of(sqlzc.getId(), (short) 1); + } else { + log.info("【抽样严格性转移规则计算】不符合 加严 => 正常 规则,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } + } else if (Objects.equals(s1.getAqlType(), sqlfw.getId())) { + log.info("【抽样严格性转移规则计算】检查是否符合 放宽 => 正常 规则"); + QmsSamplingStrictnessTransferRule rule = queryWrapper.eq(QmsSamplingStrictnessTransferRule::getRuleType, 1).one(); + if (Objects.isNull(rule)) { + log.info("【抽样严格性转移规则计算】放宽 => 正常 规则不存在,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } else if (statistics.stream() + .limit(rule.getContinuousBatchCount()) + .filter(stat -> !stat.getQualified()) + .count() >= rule.getUnqualifiedBatchCount() + ) { + log.info("【抽样严格性转移规则计算】符合 放宽 => 正常 规则,使用正常严格性"); + return Pair.of(sqlzc.getId(), (short) 1); + } else { + log.info("【抽样严格性转移规则计算】不符合 放宽 => 正常 规则,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } + } else if (Objects.equals(s1.getAqlType(), sqlzc.getId())) { + List rules = queryWrapper.in(QmsSamplingStrictnessTransferRule::getRuleType, 0, 2).list(); + if (CollectionUtil.isEmpty(rules)) { + log.info("【抽样严格性转移规则计算】正常 => 加严 和 正常 => 加严 规则都不存在,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } + for (QmsSamplingStrictnessTransferRule rule : rules) { + if (rule.getRuleType() == 0) { + log.info("【抽样严格性转移规则计算】检查是否符合 正常 => 加严 规则"); + if (statistics.stream() + .limit(rule.getContinuousBatchCount()) + .filter(stat -> !stat.getQualified()) + .count() >= rule.getUnqualifiedBatchCount() + ) { + log.info("【抽样严格性转移规则计算】符合 正常 => 加严 规则,使用加严严格性"); + return Pair.of(sqljy.getId(), (short) 1); + } else { + log.info("【抽样严格性转移规则计算】不符合 正常 => 加严 规则,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } + } else if (rule.getRuleType() == 2) { + log.info("【抽样严格性转移规则计算】检查是否符合 正常 => 放宽 规则"); + if (statistics.stream() + .limit(rule.getContinuousBatchCount()) + .allMatch(QmsSupplierInspectionStatistics::getQualified) + ) { + log.info("【抽样严格性转移规则计算】符合 正常 => 放宽 规则,使用放宽严格性"); + return Pair.of(sqlfw.getId(), (short) 1); + } else { + log.info("【抽样严格性转移规则计算】不符合 正常 => 放宽 规则,使用最新一次检验严格性"); + return Pair.of(s1.getAqlType(), (short) 0); + } + } + } + throw new NflgException(STATE.BusinessError, "无效的AQL类型"); + } else { + throw new NflgException(STATE.BusinessError, "无效的AQL类型"); + } + } } /** @@ -243,6 +382,24 @@ public class IncomingInspectionTaskControllerService { return incomingInspectionTaskService.search(request); } + /** + * 查询当前登录用户的待检验任务列表 + * 只查询待检验(0)和检验中(1)的任务 + * 只查询检验人或代办人为当前用户的数据 + * 按要求完成时间正序排序 + */ + public IPage todoSearch(QmsIncomingInspectionTaskTodoSearchQO request) { + Long userId = UserUtil.getUserId(); + // 通过当前登录用户的 userId 查询对应的质检人员记录 + QmsQualityInspector inspector = qualityInspectorService.lambdaQuery() + .eq(QmsQualityInspector::getUserId, userId) + .last("LIMIT 1") + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(inspector)) + .throwMessage("当前用户不是质检人员,无法查询待检验任务"); + return incomingInspectionTaskService.todoSearch(request, inspector.getId()); + } + /** * 查询当前登录用户的任务数量统计 * 待检验:检验状态=0;检验中:检验状态=1;已延期:是否超期=true diff --git a/nflg-qms-admin/src/test/java/com/nflg/qms/admin/QmsIncomingInspectionTaskTodoSearchApiTest.java b/nflg-qms-admin/src/test/java/com/nflg/qms/admin/QmsIncomingInspectionTaskTodoSearchApiTest.java new file mode 100644 index 00000000..e2067a14 --- /dev/null +++ b/nflg-qms-admin/src/test/java/com/nflg/qms/admin/QmsIncomingInspectionTaskTodoSearchApiTest.java @@ -0,0 +1,292 @@ +package com.nflg.qms.admin; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.lang.TypeReference; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.json.JSONUtil; +import com.nflg.wms.common.pojo.ApiResult; +import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; +import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; + +/** + * 待检验任务查询接口测试 + *

+ * 测试前提: + * 1. qms-admin 服务已启动(默认 http://localhost:8105) + * 2. 测试账号已登录,将有效的 token 填入 TOKEN 常量 + * 3. 数据库中存在检验状态为待检(0)或检验中(1)且检验人或代办人为当前登录用户的任务 + * 4. 根据实际情况修改下方搜索常量(SEARCH_MATERIAL_NO 等)为数据库中真实存在的值 + *

+ */ +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +public class QmsIncomingInspectionTaskTodoSearchApiTest { + + // ===================== 配置区 ===================== + /** 服务地址 */ + private static final String BASE_URL = "http://localhost:8105"; + /** 当前登录用户的 token */ + private static final String TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOjEsInJuU3RyIjoiWjlpczhQa0I3YjNlMEtMa0JMQkRudFlhSkJGWUY0YW8iLCJuYW1lIjoi6LaF57qn566h55CG5ZGYIiwiY29kZSI6ImFkbWluIiwicm9sZXMiOlsiU3VwZXJBZG1pbiJdLCJ0eXBlIjoxfQ.SepkxVP75CbPm-7ImN2sn0fiskVbKZj7axikvAHijko"; + + /** 用于搜索的物料编号(需根据实际情况修改) */ + private static final String SEARCH_MATERIAL_NO = "2200052100"; + /** 用于搜索的物料图号(需根据实际情况修改) */ + private static final String SEARCH_DRAWING_NO = "DWG"; + /** 用于搜索的检测单号前缀(需根据实际情况修改) */ + private static final String SEARCH_TASK_NO_PREFIX = "IC"; + /** 用于搜索的供应商编号(需根据实际情况修改) */ + private static final String SEARCH_SUPPLIER_CODE = "SUP"; + /** 用于搜索的供应商名称(需根据实际情况修改) */ + private static final String SEARCH_SUPPLIER_NAME = "供应商"; + // ===================== 配置区结束 ===================== + + // ==================== HTTP 工具方法 ==================== + + private static ApiResult post(String path, Object body, TypeReference> typeRef) { + String url = BASE_URL + path; + String reqBody = body == null ? "" : JSONUtil.toJsonStr(body); + String raw; + try (HttpResponse resp = HttpRequest.post(url) + .header("authorization", TOKEN) + .header("Content-Type", "application/json") + .body(reqBody) + .execute()) { + raw = resp.body(); + } + System.out.println("[POST] " + path); + System.out.println(" 请求: " + reqBody); + System.out.println(" 响应: " + raw); + return JSONUtil.toBean(raw, typeRef, false); + } + + private static void assertSuccess(ApiResult result, String msg) { + Assert.isTrue(result != null && result.getCode() == 200, + () -> new RuntimeException(msg + " => " + JSONUtil.toJsonStr(result))); + } + + private static void assertFailed(ApiResult result, String msg) { + Assert.isTrue(result != null && result.getCode() != 200, + () -> new RuntimeException(msg + " => 预期失败但实际成功")); + } + + // ==================== 待检验任务查询接口测试 ==================== + + /** + * 【待检验任务查询】正常查询 + * 验证点: + * 1. 接口返回成功 + * 2. 返回分页数据结构正确 + * 3. 返回的数据中检验状态只包含待检(0)或检验中(1) + * 4. 数据按要求完成时间正序排列 + */ + @Test + @Order(1) + public void test01_todoSearch_Success() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "待检验任务查询失败"); + + PageData pageData = result.getResult(); + Assert.notNull(pageData, "分页数据不应为空"); + Assert.isTrue(pageData.getPage() == 1, "当前页码应为1"); + Assert.isTrue(pageData.getPageSize() == 10, "每页数量应为10"); + + // 验证返回的数据状态只包含 0 或 1 + if (pageData.getItems() != null && !pageData.getItems().isEmpty()) { + for (QmsIncomingInspectionTaskVO item : pageData.getItems()) { + Short status = item.getInspectionStatus(); + Assert.isTrue(status != null && (status == 0 || status == 1), + () -> new RuntimeException("返回了非待检/检验中的任务,状态=" + status)); + } + // 验证按要求完成时间正序排列 + for (int i = 1; i < pageData.getItems().size(); i++) { + var prev = pageData.getItems().get(i - 1).getRequiredFinishTime(); + var curr = pageData.getItems().get(i).getRequiredFinishTime(); + if (prev != null && curr != null) { + Assert.isTrue(!prev.isAfter(curr), + () -> new RuntimeException("数据未按要求完成时间正序排列")); + } + } + } + + System.out.println(" ✅ 待检验任务查询成功,总数: " + pageData.getTotal()); + } + + /** + * 【待检验任务查询】按物料编号模糊搜索 + * 验证点:返回的物料编号包含搜索关键词 + */ + @Test + @Order(2) + public void test02_todoSearch_ByMaterialNo() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setMaterialNo(SEARCH_MATERIAL_NO); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "按物料编号搜索失败"); + + PageData pageData = result.getResult(); + if (pageData.getItems() != null && !pageData.getItems().isEmpty()) { + for (QmsIncomingInspectionTaskVO item : pageData.getItems()) { + Assert.isTrue(item.getMaterialNo() != null && item.getMaterialNo().contains(SEARCH_MATERIAL_NO), + () -> new RuntimeException("返回的物料编号不匹配: " + item.getMaterialNo())); + } + } + System.out.println(" ✅ 按物料编号搜索成功,匹配数: " + pageData.getTotal()); + } + + /** + * 【待检验任务查询】按物料图号模糊搜索 + * 验证点:返回匹配的数据 + */ + @Test + @Order(3) + public void test03_todoSearch_ByDrawingNo() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setDrawingNo(SEARCH_DRAWING_NO); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "按物料图号搜索失败"); + System.out.println(" ✅ 按物料图号搜索成功,匹配数: " + result.getResult().getTotal()); + } + + /** + * 【待检验任务查询】按检测单号模糊搜索 + * 验证点:返回的检测单号包含搜索关键词 + */ + @Test + @Order(4) + public void test04_todoSearch_ByTaskNo() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setTaskNo(SEARCH_TASK_NO_PREFIX); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "按检测单号搜索失败"); + + PageData pageData = result.getResult(); + if (pageData.getItems() != null && !pageData.getItems().isEmpty()) { + for (QmsIncomingInspectionTaskVO item : pageData.getItems()) { + Assert.isTrue(item.getTaskNo() != null && item.getTaskNo().contains(SEARCH_TASK_NO_PREFIX), + () -> new RuntimeException("返回的检测单号不匹配: " + item.getTaskNo())); + } + } + System.out.println(" ✅ 按检测单号搜索成功,匹配数: " + pageData.getTotal()); + } + + /** + * 【待检验任务查询】按供应商编号模糊搜索 + * 验证点:返回匹配的数据 + */ + @Test + @Order(5) + public void test05_todoSearch_BySupplierCode() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setSupplierCode(SEARCH_SUPPLIER_CODE); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "按供应商编号搜索失败"); + System.out.println(" ✅ 按供应商编号搜索成功,匹配数: " + result.getResult().getTotal()); + } + + /** + * 【待检验任务查询】按供应商名称模糊搜索 + * 验证点:返回匹配的数据 + */ + @Test + @Order(6) + public void test06_todoSearch_BySupplierName() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setSupplierName(SEARCH_SUPPLIER_NAME); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "按供应商名称搜索失败"); + System.out.println(" ✅ 按供应商名称搜索成功,匹配数: " + result.getResult().getTotal()); + } + + /** + * 【待检验任务查询】组合条件搜索 + * 验证点:多个条件同时生效,返回同时满足的数据 + */ + @Test + @Order(7) + public void test07_todoSearch_CombinedConditions() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setMaterialNo(SEARCH_MATERIAL_NO); + request.setSupplierName(SEARCH_SUPPLIER_NAME); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "组合条件搜索失败"); + System.out.println(" ✅ 组合条件搜索成功,匹配数: " + result.getResult().getTotal()); + } + + /** + * 【待检验任务查询】分页参数验证 + * 验证点:第二页返回正确的分页信息 + */ + @Test + @Order(8) + public void test08_todoSearch_Pagination() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(2); + request.setPageSize(5); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "分页查询失败"); + + PageData pageData = result.getResult(); + Assert.notNull(pageData, "分页数据不应为空"); + Assert.isTrue(pageData.getPage() == 2, "当前页码应为2"); + Assert.isTrue(pageData.getPageSize() == 5, "每页数量应为5"); + + // 如果有数据,验证返回条数不超过 pageSize + if (pageData.getItems() != null) { + Assert.isTrue(pageData.getItems().size() <= 5, + () -> new RuntimeException("返回数据条数超过每页限制")); + } + + System.out.println(" ✅ 分页查询成功,当前页: " + pageData.getPage() + ", 返回条数: " + pageData.getItems().size()); + } + + /** + * 【待检验任务查询】无匹配结果 + * 验证点:使用不可能存在的条件搜索,返回空列表但接口成功 + */ + @Test + @Order(9) + public void test09_todoSearch_NoResult() { + QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); + request.setPage(1); + request.setPageSize(10); + request.setTaskNo("NOT_EXIST_TASK_NO_999999"); + + ApiResult> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); + assertSuccess(result, "无结果查询失败"); + + PageData pageData = result.getResult(); + Assert.notNull(pageData, "分页数据不应为空"); + Assert.isTrue(pageData.getTotal() == 0, "总数应为0"); + Assert.isTrue(pageData.getItems() == null || pageData.getItems().isEmpty(), "列表应为空"); + + System.out.println(" ✅ 无结果查询成功,返回空列表"); + } +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskAqlRuleSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskAqlRuleSearchQO.java new file mode 100644 index 00000000..4fa3bed9 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskAqlRuleSearchQO.java @@ -0,0 +1,32 @@ +package com.nflg.wms.common.pojo.qo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 来料检验任务AQL规则 - 分页查询QO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class QmsIncomingInspectionTaskAqlRuleSearchQO extends PageQO { + + /** + * 供应商编号(模糊匹配) + */ + private String supplierCode; + + /** + * 供应商名称(模糊匹配) + */ + private String supplierName; + + /** + * 物料编码(模糊匹配) + */ + private String materialNo; + + /** + * 检测项id(精确匹配) + */ + private Long inspectionItemId; +} 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 new file mode 100644 index 00000000..48263a41 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskTodoSearchQO.java @@ -0,0 +1,37 @@ +package com.nflg.wms.common.pojo.qo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 待检验任务查询条件 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class QmsIncomingInspectionTaskTodoSearchQO extends PageQO { + + /** + * 物料编码(模糊匹配) + */ + private String materialNo; + + /** + * 物料图号(模糊匹配) + */ + private String drawingNo; + + /** + * 检测单号(模糊匹配) + */ + private String taskNo; + + /** + * 供应商编号(模糊匹配) + */ + private String supplierCode; + + /** + * 供应商名称(模糊匹配) + */ + private String supplierName; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskAqlRuleVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskAqlRuleVO.java new file mode 100644 index 00000000..3a406162 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskAqlRuleVO.java @@ -0,0 +1,87 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 来料检验任务AQL规则 - 查询返回VO + */ +@Data +public class QmsIncomingInspectionTaskAqlRuleVO { + + /** + * 检测任务编号 + */ + private String taskNo; + + /** + * 供应商编号 + */ + private String supplierCode; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * 物料编号 + */ + private String materialNo; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 物料描述 + */ + private String materialDesc; + + /** + * 检测项id,关联检验标准项表 + */ + private Long inspectionItemId; + + /** + * 检测项名称 + */ + private String inspectionItemName; + + /** + * 计算的AQL类型(字典项id) + */ + private Long calculatedAqlType; + + /** + * 使用的AQL类型(字典项id) + */ + private Long usedAqlType; + + /** + * 触发类别:0=默认状态,1=触发规则,2=手动调整 + */ + private Short triggerCategory; + + /** + * 触发类别名称 + */ + private String triggerCategoryName; + + /** + * 触发时间 + */ + private LocalDateTime triggerTime; + + /** + * 触发人id + */ + private Long triggerUserId; + + /** + * 触发人姓名 + */ + private String triggerUserName; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskAqlRule.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskAqlRule.java new file mode 100644 index 00000000..6679a96d --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskAqlRule.java @@ -0,0 +1,68 @@ +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; + +/** + * 来料检验任务AQL规则 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_incoming_inspection_task_aql_rule") +public class QmsIncomingInspectionTaskAqlRule 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 inspectionItemId; + + /** + * 计算的AQL类型,字典项id + */ + private Long calculatedAqlType; + + /** + * 使用的AQL类型,字典项id + */ + private Long usedAqlType; + + /** + * 触发类别:0=默认状态,1=触发规则,2=手动调整 + */ + private Short triggerCategory; + + /** + * 触发时间 + */ + private LocalDateTime triggerTime; + + /** + * 触发人id + */ + private Long triggerUserId; + + /** + * 触发人姓名 + */ + private String triggerUserName; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierInspectionStatistics.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierInspectionStatistics.java new file mode 100644 index 00000000..f391ffc8 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierInspectionStatistics.java @@ -0,0 +1,50 @@ +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; + +/** + * 供应商检验统计 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_supplier_inspection_statistics") +public class QmsSupplierInspectionStatistics implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 供应商编号 + */ + private String supplierCode; + + /** + * 检测项id + */ + private Long inspectionItemId; + + /** + * 是否合格 + */ + private Boolean qualified; + + /** + * AQL类型,字典项id + */ + private Long aqlType; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskAqlRuleMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskAqlRuleMapper.java new file mode 100644 index 00000000..5aa38818 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIncomingInspectionTaskAqlRuleMapper.java @@ -0,0 +1,19 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO; +import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskAqlRule; + +/** + * 来料检验任务AQL规则 Mapper + */ +public interface QmsIncomingInspectionTaskAqlRuleMapper extends BaseMapper { + + /** + * 分页查询来料检验任务AQL规则列表 + */ + IPage search(QmsIncomingInspectionTaskAqlRuleSearchQO request, Page page); +} 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 a805fdea..c5c79ef0 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; import com.nflg.wms.repository.entity.QmsIncomingInspectionTask; @@ -13,4 +14,6 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTask; public interface QmsIncomingInspectionTaskMapper extends BaseMapper { IPage search(QmsIncomingInspectionTaskSearchQO request, Page page); + + IPage todoSearch(QmsIncomingInspectionTaskTodoSearchQO request, Page page, Long inspectorId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierInspectionStatisticsMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierInspectionStatisticsMapper.java new file mode 100644 index 00000000..4cc3644c --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierInspectionStatisticsMapper.java @@ -0,0 +1,10 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsSupplierInspectionStatistics; + +/** + * 供应商检验统计 Mapper + */ +public interface QmsSupplierInspectionStatisticsMapper extends BaseMapper { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskAqlRuleService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskAqlRuleService.java new file mode 100644 index 00000000..567e13f9 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIncomingInspectionTaskAqlRuleService.java @@ -0,0 +1,18 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO; +import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskAqlRule; + +/** + * 来料检验任务AQL规则 服务类 + */ +public interface IQmsIncomingInspectionTaskAqlRuleService extends IService { + + /** + * 分页查询来料检验任务AQL规则列表 + */ + IPage search(QmsIncomingInspectionTaskAqlRuleSearchQO request); +} 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 757a8f7d..fa777d74 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 @@ -3,6 +3,7 @@ package com.nflg.wms.repository.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; @@ -18,6 +19,15 @@ public interface IQmsIncomingInspectionTaskService extends IService search(QmsIncomingInspectionTaskSearchQO request); + /** + * 查询当前登录用户的待检验任务列表 + * + * @param request 查询条件 + * @param inspectorId 质检人员id + * @return 分页结果 + */ + IPage todoSearch(QmsIncomingInspectionTaskTodoSearchQO request, Long inspectorId); + /** * 转办 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierInspectionStatisticsService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierInspectionStatisticsService.java new file mode 100644 index 00000000..b04c9bf3 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierInspectionStatisticsService.java @@ -0,0 +1,10 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsSupplierInspectionStatistics; + +/** + * 供应商检验统计 服务类 + */ +public interface IQmsSupplierInspectionStatisticsService extends IService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskAqlRuleServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskAqlRuleServiceImpl.java new file mode 100644 index 00000000..3ca6c14e --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIncomingInspectionTaskAqlRuleServiceImpl.java @@ -0,0 +1,23 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO; +import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskAqlRule; +import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskAqlRuleMapper; +import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskAqlRuleService; +import org.springframework.stereotype.Service; + +/** + * 来料检验任务AQL规则 服务实现类 + */ +@Service +public class QmsIncomingInspectionTaskAqlRuleServiceImpl extends ServiceImpl implements IQmsIncomingInspectionTaskAqlRuleService { + + @Override + public IPage search(QmsIncomingInspectionTaskAqlRuleSearchQO request) { + return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); + } +} 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 42cc5aef..9db146b2 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 @@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; import com.nflg.wms.repository.entity.QmsIncomingInspectionTask; import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskMapper; import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService; -import com.nflg.wms.repository.service.IWmsSrmOrderItemService; import org.springframework.stereotype.Service; import java.util.List; @@ -21,17 +21,16 @@ import java.util.List; @Service public class QmsIncomingInspectionTaskServiceImpl extends ServiceImpl implements IQmsIncomingInspectionTaskService { - private final IWmsSrmOrderItemService iWmsSrmOrderItemService; - - public QmsIncomingInspectionTaskServiceImpl(IWmsSrmOrderItemService iWmsSrmOrderItemService) { - this.iWmsSrmOrderItemService = iWmsSrmOrderItemService; - } - @Override public IPage search(QmsIncomingInspectionTaskSearchQO request) { return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); } + @Override + public IPage todoSearch(QmsIncomingInspectionTaskTodoSearchQO request, Long inspectorId) { + return baseMapper.todoSearch(request, new Page<>(request.getPage(), request.getPageSize()), inspectorId); + } + @Override public void transfer(QmsIncomingInspectionTaskTransferQO request) { // 转办逻辑由 ControllerService 处理,此处留空 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierInspectionStatisticsServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierInspectionStatisticsServiceImpl.java new file mode 100644 index 00000000..70392fdf --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierInspectionStatisticsServiceImpl.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.QmsSupplierInspectionStatistics; +import com.nflg.wms.repository.mapper.QmsSupplierInspectionStatisticsMapper; +import com.nflg.wms.repository.service.IQmsSupplierInspectionStatisticsService; +import org.springframework.stereotype.Service; + +/** + * 供应商检验统计 服务实现类 + */ +@Service +public class QmsSupplierInspectionStatisticsServiceImpl extends ServiceImpl + implements IQmsSupplierInspectionStatisticsService { +} diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskAqlRuleMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskAqlRuleMapper.xml new file mode 100644 index 00000000..eed9ea8d --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskAqlRuleMapper.xml @@ -0,0 +1,48 @@ + + + + + + + diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml index 505c7172..7a522a99 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml @@ -88,4 +88,65 @@ ORDER BY t.id DESC + + diff --git a/pom.xml b/pom.xml index d6231896..eb7c429f 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ 1.18.38 2023.0.1 2023.0.1.0 - 5.8.36 + 5.8.40 1.42.0 3.5.12