refactor(inspection-standard): 重构检验标准及相关功能以支持检测方式优化
- 修改常量名称以反映检测方式字典代码更改 - 调整来料检验任务中检测方式相关逻辑,简化AQL规则生成流程 - 删减检验标准项中不再使用的检测方式相关字段 - 新增来料检验任务AQL规则服务接口及实现,支持规则分页查询与批量调整 - 修改数据库映射及实体,替换检验项ID为检验标准ID关联 - 优化检验标准详情填充检测方式、抽样方案、检验水平及AQL相关字段 - 增加检测方式为抽样时校验抽样方案、检验水平、AQL值及类型完整性 - 更新检验标准编辑参数,新增检测方式及相关字段支持 - 新增对应MyBatis XML映射文件和分页查询接口实现 - 提供AQL规则批量调整接口,支持前端调用调整规则数据
This commit is contained in:
parent
357366b84d
commit
02358e6f51
|
|
@ -2,6 +2,7 @@ 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.QmsIncomingInspectionTaskAqlRuleAdjustQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO;
|
||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskAqlRuleService;
|
||||
|
|
@ -30,4 +31,13 @@ public class QmsIncomingInspectionTaskAqlRuleController extends BaseController {
|
|||
public ApiResult<PageData<QmsIncomingInspectionTaskAqlRuleVO>> search(@Valid @RequestBody QmsIncomingInspectionTaskAqlRuleSearchQO request) {
|
||||
return ApiResult.success(incomingInspectionTaskAqlRuleService.search(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量调整AQL规则
|
||||
*/
|
||||
@PostMapping("adjust")
|
||||
public ApiResult<Void> adjust(@Valid @RequestBody QmsIncomingInspectionTaskAqlRuleAdjustQO request) {
|
||||
incomingInspectionTaskAqlRuleService.adjust(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -170,28 +170,18 @@ public class IncomingInspectionTaskControllerService {
|
|||
incomingInspectionTaskService.save(task);
|
||||
|
||||
// 8. 生成来料检验任务AQL方案
|
||||
Long inspectionStandardId = dictionaryItemService.getIdByCode("InspectionStandardSamplingMethod", "Sampling");
|
||||
Long inspectionStandardId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod", "Sampling");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(inspectionStandardId)).throwMessage("检测方式不存在");
|
||||
List<QmsInspectionStandardItem> 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<Long, Short> 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()
|
||||
if (Objects.equals(standard.getTestingMethodDictItemId(), inspectionStandardId)) {
|
||||
Pair<Long, Short> 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())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -200,26 +190,26 @@ public class IncomingInspectionTaskControllerService {
|
|||
return aqls.stream().filter(aql -> Objects.equals(aql.getId(), id)).findFirst().get();
|
||||
}
|
||||
|
||||
private Pair<Long, Short> CalculatedAqlType(QmsIncomingInspectionTask task, QmsInspectionStandardItem item
|
||||
private Pair<Long, Short> CalculatedAqlType(QmsIncomingInspectionTask task, QmsInspectionStandard standard
|
||||
, List<DictionaryItem> 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());
|
||||
log.info("【抽样严格性转移规则计算】检验项严格性为:" + getAql(standard.getAqlTypeDictItemId(), aqls).getName());
|
||||
List<QmsSupplierInspectionStatistics> statistics = supplierInspectionStatisticsService.lambdaQuery()
|
||||
.eq(QmsSupplierInspectionStatistics::getInspectionItemId, item.getId())
|
||||
.eq(QmsSupplierInspectionStatistics::getInspectionStandardId, standard.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);
|
||||
log.info("【抽样严格性转移规则计算】历史检验记录为空,使用检验标准严格性");
|
||||
return Pair.of(standard.getAqlTypeDictItemId(), (short) 0);
|
||||
} else {
|
||||
QmsSupplierInspectionStatistics s1 = statistics.get(0);
|
||||
log.info("【抽样严格性转移规则计算】最新一次检验严格性为:" + getAql(s1.getAqlType(), aqls).getName());
|
||||
LambdaQueryChainWrapper<QmsSamplingStrictnessTransferRule> queryWrapper = samplingStrictnessTransferRuleService.lambdaQuery()
|
||||
.eq(QmsSamplingStrictnessTransferRule::getSamplingPlanId, item.getSamplingPlanId())
|
||||
.eq(QmsSamplingStrictnessTransferRule::getSamplingPlanId, standard.getSamplingPlanId())
|
||||
.eq(QmsSamplingStrictnessTransferRule::getIsEnabled, true);
|
||||
if (Objects.equals(s1.getAqlType(), sqljy.getId())) {
|
||||
log.info("【抽样严格性转移规则计算】检查是否符合 加严 => 正常 规则");
|
||||
|
|
|
|||
|
|
@ -178,6 +178,44 @@ public class QmsInspectionStandardControllerService {
|
|||
detail.setUpdateUserName(standard.getUpdateUserName());
|
||||
detail.setUpdateTime(standard.getUpdateTime());
|
||||
|
||||
// 填充检测方式、抽样方案、检验水平、AQL相关字段
|
||||
detail.setTestingMethodDictItemId(standard.getTestingMethodDictItemId());
|
||||
detail.setSamplingPlanId(standard.getSamplingPlanId());
|
||||
detail.setInspectionLevelDictItemId(standard.getInspectionLevelDictItemId());
|
||||
detail.setAqlPriorityValueId(standard.getAqlPriorityValueId());
|
||||
detail.setAqlTypeDictItemId(standard.getAqlTypeDictItemId());
|
||||
// 填充字典项名称
|
||||
Set<Long> standardDictItemIds = new HashSet<>();
|
||||
if (standard.getTestingMethodDictItemId() != null) standardDictItemIds.add(standard.getTestingMethodDictItemId());
|
||||
if (standard.getInspectionLevelDictItemId() != null) standardDictItemIds.add(standard.getInspectionLevelDictItemId());
|
||||
if (standard.getAqlTypeDictItemId() != null) standardDictItemIds.add(standard.getAqlTypeDictItemId());
|
||||
if (!standardDictItemIds.isEmpty()) {
|
||||
List<DictionaryItem> standardDictItems = dictionaryItemService.lambdaQuery()
|
||||
.in(DictionaryItem::getId, standardDictItemIds)
|
||||
.list();
|
||||
detail.setTestingMethodDictItemName(standardDictItems.stream()
|
||||
.filter(it -> it.getId().equals(standard.getTestingMethodDictItemId()))
|
||||
.findFirst().map(DictionaryItem::getName).orElse(null));
|
||||
detail.setInspectionLevelDictItemName(standardDictItems.stream()
|
||||
.filter(it -> it.getId().equals(standard.getInspectionLevelDictItemId()))
|
||||
.findFirst().map(DictionaryItem::getName).orElse(null));
|
||||
detail.setAqlTypeDictItemName(standardDictItems.stream()
|
||||
.filter(it -> it.getId().equals(standard.getAqlTypeDictItemId()))
|
||||
.findFirst().map(DictionaryItem::getName).orElse(null));
|
||||
}
|
||||
if (standard.getSamplingPlanId() != null) {
|
||||
QmsSamplingPlan plan = samplingPlanService.getById(standard.getSamplingPlanId());
|
||||
if (plan != null) {
|
||||
detail.setSamplingPlanName(plan.getPlanName());
|
||||
}
|
||||
}
|
||||
if (standard.getAqlPriorityValueId() != null) {
|
||||
QmsAqlPriorityValue aql = aqlPriorityValueService.getById(standard.getAqlPriorityValueId());
|
||||
if (aql != null) {
|
||||
detail.setAqlPriorityValue(aql.getPriorityValue());
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 查询检测项列表
|
||||
List<QmsInspectionStandardItem> items = inspectionStandardItemService.lambdaQuery()
|
||||
.eq(QmsInspectionStandardItem::getInspectionStandardId, id)
|
||||
|
|
@ -188,10 +226,7 @@ public class QmsInspectionStandardControllerService {
|
|||
List<QmsInspectionStandardItemVO> itemVOs = new ArrayList<>();
|
||||
Set<Long> dictionaryItemIds = new HashSet<>();
|
||||
items.forEach(item -> {
|
||||
dictionaryItemIds.add(item.getTestingMethodDictItemId());
|
||||
dictionaryItemIds.add(item.getSamplingMethodDictItemId());
|
||||
dictionaryItemIds.add(item.getInspectionLevelDictItemId());
|
||||
dictionaryItemIds.add(item.getAqlTypeDictItemId());
|
||||
});
|
||||
List<DictionaryItem> dictionaryItems = CollectionUtil.isEmpty(dictionaryItemIds)
|
||||
? new ArrayList<>()
|
||||
|
|
@ -227,13 +262,6 @@ public class QmsInspectionStandardControllerService {
|
|||
vo.setId(item.getId());
|
||||
vo.setName(item.getName());
|
||||
vo.setSortNo(item.getSortNo());
|
||||
vo.setTestingMethodDictItemId(item.getTestingMethodDictItemId());
|
||||
vo.setTestingMethodDictItemName(dictionaryItems.stream()
|
||||
.filter(it -> it.getId().equals(item.getTestingMethodDictItemId()))
|
||||
.findFirst()
|
||||
.map(DictionaryItem::getName)
|
||||
.orElse(null)
|
||||
);
|
||||
vo.setSamplingMethodDictItemId(item.getSamplingMethodDictItemId());
|
||||
vo.setSamplingMethodDictItemName(dictionaryItems.stream()
|
||||
.filter(it -> it.getId().equals(item.getSamplingMethodDictItemId()))
|
||||
|
|
@ -241,24 +269,6 @@ public class QmsInspectionStandardControllerService {
|
|||
.map(DictionaryItem::getName)
|
||||
.orElse(null)
|
||||
);
|
||||
vo.setSamplingPlanId(item.getSamplingPlanId());
|
||||
vo.setSamplingPlanName(samplingPlanService.getById(item.getSamplingPlanId()).getPlanName());
|
||||
vo.setInspectionLevelDictItemId(item.getInspectionLevelDictItemId());
|
||||
vo.setInspectionLevelDictItemName(dictionaryItems.stream()
|
||||
.filter(it -> it.getId().equals(item.getInspectionLevelDictItemId()))
|
||||
.findFirst()
|
||||
.map(DictionaryItem::getName)
|
||||
.orElse(null)
|
||||
);
|
||||
vo.setAqlPriorityValueId(item.getAqlPriorityValueId());
|
||||
vo.setAqlPriorityValueName(aqlPriorityValueService.getById(item.getAqlPriorityValueId()).getPriorityValue());
|
||||
vo.setAqlTypeDictItemId(item.getAqlTypeDictItemId());
|
||||
vo.setAqlTypeDictItemName(dictionaryItems.stream()
|
||||
.filter(it -> it.getId().equals(item.getAqlTypeDictItemId()))
|
||||
.findFirst()
|
||||
.map(DictionaryItem::getName)
|
||||
.orElse(null)
|
||||
);
|
||||
vo.setItemType(item.getItemType());
|
||||
vo.setPdfDrawing(item.getPdfDrawing());
|
||||
vo.setCreateUserName(item.getCreateUserName());
|
||||
|
|
@ -398,6 +408,11 @@ public class QmsInspectionStandardControllerService {
|
|||
standard.setInspectionCycle(qo.getInspectionCycle());
|
||||
standard.setVersion(qo.getVersion());
|
||||
standard.setIsEnabled(qo.getIsEnabled());
|
||||
standard.setTestingMethodDictItemId(qo.getTestingMethodDictItemId());
|
||||
standard.setSamplingPlanId(qo.getSamplingPlanId());
|
||||
standard.setInspectionLevelDictItemId(qo.getInspectionLevelDictItemId());
|
||||
standard.setAqlPriorityValueId(qo.getAqlPriorityValueId());
|
||||
standard.setAqlTypeDictItemId(qo.getAqlTypeDictItemId());
|
||||
// 审计字段
|
||||
standard.setUpdateUserId(userId);
|
||||
standard.setUpdateUserName(userName);
|
||||
|
|
@ -438,16 +453,6 @@ public class QmsInspectionStandardControllerService {
|
|||
.findFirst()
|
||||
.orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItem)).throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式不存在");
|
||||
if (StrUtil.equals(dictionaryItem.getCode(), "抽样")) {
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(itemQO.getSamplingPlanId()))
|
||||
.throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式为【抽样】时,抽样方案不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(itemQO.getInspectionLevelDictItemId()))
|
||||
.throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式为【抽样】时,检验水平不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(itemQO.getAqlPriorityValueId()))
|
||||
.throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式为【抽样】时,AQL值不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(itemQO.getAqlTypeDictItemId()))
|
||||
.throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式为【抽样】时,AQL类型不能为空");
|
||||
}
|
||||
QmsInspectionStandardItem item;
|
||||
|
||||
if (itemQO.getId() != null) {
|
||||
|
|
@ -520,6 +525,24 @@ public class QmsInspectionStandardControllerService {
|
|||
.exists()
|
||||
).throwMessage("存在相同版本的检验标准");
|
||||
|
||||
// 检测方式为抽样时校验相关字段
|
||||
if (qo.getTestingMethodDictItemId() != null) {
|
||||
List<DictionaryItem> testingMethodItems = dictionaryItemService.lambdaQuery()
|
||||
.eq(DictionaryItem::getId, qo.getTestingMethodDictItemId())
|
||||
.list();
|
||||
DictionaryItem testingMethod = testingMethodItems.isEmpty() ? null : testingMethodItems.get(0);
|
||||
if (testingMethod != null && StrUtil.equals(testingMethod.getCode(), "抽样")) {
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qo.getSamplingPlanId()))
|
||||
.throwMessage("检测方式为【抽样】时,抽样方案不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qo.getInspectionLevelDictItemId()))
|
||||
.throwMessage("检测方式为【抽样】时,检验水平不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qo.getAqlPriorityValueId()))
|
||||
.throwMessage("检测方式为【抽样】时,AQL值不能为空");
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qo.getAqlTypeDictItemId()))
|
||||
.throwMessage("检测方式为【抽样】时,AQL类型不能为空");
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 更新字段(不修改版本号)
|
||||
standard.setMaterialId(qo.getMaterialId());
|
||||
standard.setDrawingUrl(qo.getDrawingUrl());
|
||||
|
|
@ -527,6 +550,11 @@ public class QmsInspectionStandardControllerService {
|
|||
standard.setInspectionCycle(qo.getInspectionCycle());
|
||||
standard.setVersion(qo.getVersion());
|
||||
standard.setIsEnabled(qo.getIsEnabled());
|
||||
standard.setTestingMethodDictItemId(qo.getTestingMethodDictItemId());
|
||||
standard.setSamplingPlanId(qo.getSamplingPlanId());
|
||||
standard.setInspectionLevelDictItemId(qo.getInspectionLevelDictItemId());
|
||||
standard.setAqlPriorityValueId(qo.getAqlPriorityValueId());
|
||||
standard.setAqlTypeDictItemId(qo.getAqlTypeDictItemId());
|
||||
// 审计字段
|
||||
standard.setUpdateUserId(userId);
|
||||
standard.setUpdateUserName(userName);
|
||||
|
|
@ -535,7 +563,7 @@ public class QmsInspectionStandardControllerService {
|
|||
inspectionStandardService.updateById(standard);
|
||||
|
||||
// 3. 处理检测项列表
|
||||
processItems(dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_INSPECTION_STANDARD_SAMPLING_METHOD),
|
||||
processItems(dictionaryItemService.getListByDictionaryCode(Constant.INSPECTION_STANDARD_TESTING_METHOD),
|
||||
qo.getInspectionStandardId(), qo.getItems(), userId, userName, now);
|
||||
}
|
||||
|
||||
|
|
@ -551,24 +579,9 @@ public class QmsInspectionStandardControllerService {
|
|||
if (qo.getSortNo() != null) {
|
||||
item.setSortNo(qo.getSortNo());
|
||||
}
|
||||
if (qo.getTestingMethodDictItemId() != null) {
|
||||
item.setTestingMethodDictItemId(qo.getTestingMethodDictItemId());
|
||||
}
|
||||
if (qo.getSamplingMethodDictItemId() != null) {
|
||||
item.setSamplingMethodDictItemId(qo.getSamplingMethodDictItemId());
|
||||
}
|
||||
if (qo.getSamplingPlanId() != null) {
|
||||
item.setSamplingPlanId(qo.getSamplingPlanId());
|
||||
}
|
||||
if (qo.getInspectionLevelDictItemId() != null) {
|
||||
item.setInspectionLevelDictItemId(qo.getInspectionLevelDictItemId());
|
||||
}
|
||||
if (qo.getAqlPriorityValueId() != null) {
|
||||
item.setAqlPriorityValueId(qo.getAqlPriorityValueId());
|
||||
}
|
||||
if (qo.getAqlTypeDictItemId() != null) {
|
||||
item.setAqlTypeDictItemId(qo.getAqlTypeDictItemId());
|
||||
}
|
||||
if (qo.getItemType() != null) {
|
||||
item.setItemType(qo.getItemType());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,5 +40,5 @@ public class Constant {
|
|||
|
||||
public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition";
|
||||
|
||||
public static final String DICTIONARY_INSPECTION_STANDARD_SAMPLING_METHOD ="InspectionStandardSamplingMethod";
|
||||
public static final String INSPECTION_STANDARD_TESTING_METHOD ="InspectionStandardTestingMethod";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 来料检验任务AQL规则 - 调整QO
|
||||
*/
|
||||
@Data
|
||||
public class QmsIncomingInspectionTaskAqlRuleAdjustQO {
|
||||
|
||||
/**
|
||||
* 需要调整的AQL规则id列表
|
||||
*/
|
||||
@NotEmpty(message = "AQL规则id列表不能为空")
|
||||
private List<Long> ids;
|
||||
|
||||
/**
|
||||
* 使用的AQL类型,字典项id
|
||||
*/
|
||||
@NotNull(message = "使用的AQL类型不能为空")
|
||||
private Long usedAqlType;
|
||||
}
|
||||
|
|
@ -72,6 +72,16 @@ public class QmsIncomingInspectionTaskSearchQO extends PageQO {
|
|||
*/
|
||||
private LocalDate submitEndDate;
|
||||
|
||||
/**
|
||||
* 检验开始日期开始(检验开始时间)
|
||||
*/
|
||||
private LocalDate inspectionBeginStartDate;
|
||||
|
||||
/**
|
||||
* 检验开始日期结束(检验开始时间)
|
||||
*/
|
||||
private LocalDate inspectionBeginEndDate;
|
||||
|
||||
/**
|
||||
* 检测日期开始(检验完成时间)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -48,4 +48,30 @@ public class QmsInspectionStandardEditQO {
|
|||
* 检验周期
|
||||
*/
|
||||
private Integer inspectionCycle;
|
||||
|
||||
/**
|
||||
* 检测方式,关联字典项id
|
||||
*/
|
||||
@NotNull(message = "检测方式不能为空")
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 检验水平,关联字典项id
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* AQL值,关联AQL优先值预定义表id
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL类型,关联字典项id
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,32 @@ public class QmsInspectionStandardSaveQO {
|
|||
@NotNull
|
||||
private Integer inspectionCycle;
|
||||
|
||||
/**
|
||||
* 检测方式,关联字典项id
|
||||
*/
|
||||
@NotNull(message = "检测方式不能为空")
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 检验水平,关联字典项id
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* AQL值,关联AQL优先值预定义表id
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL类型,关联字典项id
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* 检测项列表
|
||||
*/
|
||||
|
|
@ -94,26 +120,6 @@ public class QmsInspectionStandardSaveQO {
|
|||
@NotNull(message = "抽样方式不能为空")
|
||||
private Long samplingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 检验水平,关联字典项id
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* AQL值,关联AQL优先值预定义表id
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL类型,关联字典项id
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* 检验标准项类型:0-标准检测项,1-尺寸检测项
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.nflg.wms.common.pojo.vo;
|
|||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -66,6 +67,56 @@ public class QmsInspectionStandardDetailVO {
|
|||
*/
|
||||
private Integer inspectionCycle;
|
||||
|
||||
/**
|
||||
* 检测方式字典项ID
|
||||
*/
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 检测方式字典项名称
|
||||
*/
|
||||
private String testingMethodDictItemName;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 抽样方案名称
|
||||
*/
|
||||
private String samplingPlanName;
|
||||
|
||||
/**
|
||||
* 检验水平字典项ID
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* 检验水平字典项名称
|
||||
*/
|
||||
private String inspectionLevelDictItemName;
|
||||
|
||||
/**
|
||||
* AQL值字典项ID
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL值
|
||||
*/
|
||||
private BigDecimal aqlPriorityValue;
|
||||
|
||||
/**
|
||||
* AQL类型字典项ID
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* AQL类型字典项名称
|
||||
*/
|
||||
private String aqlTypeDictItemName;
|
||||
|
||||
/**
|
||||
* 发布状态:0-未发布,1-已发布
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.nflg.wms.common.pojo.vo;
|
|||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -47,46 +46,6 @@ public class QmsInspectionStandardItemVO {
|
|||
*/
|
||||
private String samplingMethodDictItemName;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 抽样方案名称
|
||||
*/
|
||||
private String samplingPlanName;
|
||||
|
||||
/**
|
||||
* 检验水平字典项ID
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* 检验水平字典项名称
|
||||
*/
|
||||
private String inspectionLevelDictItemName;
|
||||
|
||||
/**
|
||||
* AQL值ID
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL值
|
||||
*/
|
||||
private BigDecimal aqlPriorityValueName;
|
||||
|
||||
/**
|
||||
* AQL类型字典项ID
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* AQL类型字典项名称
|
||||
*/
|
||||
private String aqlTypeDictItemName;
|
||||
|
||||
/**
|
||||
* 检验标准项类型:0-标准检测项,1-尺寸检测项
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ public class QmsIncomingInspectionTaskAqlRule implements Serializable {
|
|||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 检测项id,关联检验标准项表
|
||||
* 检验标准ID,关联检验标准表
|
||||
*/
|
||||
private Long inspectionItemId;
|
||||
private Long inspectionStandardId;
|
||||
|
||||
/**
|
||||
* 计算的AQL类型,字典项id
|
||||
|
|
|
|||
|
|
@ -56,6 +56,31 @@ public class QmsInspectionStandard implements Serializable {
|
|||
*/
|
||||
private Integer inspectionCycle;
|
||||
|
||||
/**
|
||||
* 检测方式,关联字典项id(字典编码:InspectionStandardTestingMethod)
|
||||
*/
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 检验水平,关联字典项id(字典编码:SamplingPlanSpecialInspection或SamplingPlanGeneralInspection)
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* AQL值,关联AQL优先值预定义表id
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL类型,关联字典项id(字典编码:InspectionStandardSQLType)
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* 发布状态:0-未发布,1-已发布
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -42,35 +42,10 @@ public class QmsInspectionStandardItem implements Serializable {
|
|||
private Integer sortNo;
|
||||
|
||||
/**
|
||||
* 检测方式,关联字典项id(字典编码:InspectionStandardTestingMethod)
|
||||
*/
|
||||
private Long testingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方式,关联字典项id(字典编码:InspectionStandardSamplingMethod)
|
||||
* 检测类型,关联字典项id(字典编码:InspectionStandardDetectionType)
|
||||
*/
|
||||
private Long samplingMethodDictItemId;
|
||||
|
||||
/**
|
||||
* 抽样方案ID
|
||||
*/
|
||||
private Long samplingPlanId;
|
||||
|
||||
/**
|
||||
* 检验水平,关联字典项id(字典编码:SamplingPlanSpecialInspection或SamplingPlanGeneralInspection)
|
||||
*/
|
||||
private Long inspectionLevelDictItemId;
|
||||
|
||||
/**
|
||||
* AQL值,关联AQL优先值预定义表id
|
||||
*/
|
||||
private Long aqlPriorityValueId;
|
||||
|
||||
/**
|
||||
* AQL类型,关联字典项id(字典编码:InspectionStandardSQLType)
|
||||
*/
|
||||
private Long aqlTypeDictItemId;
|
||||
|
||||
/**
|
||||
* 检验标准项类型:0-标准检测项,1-尺寸检测项
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ public class QmsSupplierInspectionStatistics implements Serializable {
|
|||
private String supplierCode;
|
||||
|
||||
/**
|
||||
* 检测项id
|
||||
* 检验标准ID
|
||||
*/
|
||||
private Long inspectionItemId;
|
||||
private Long inspectionStandardId;
|
||||
|
||||
/**
|
||||
* 是否合格
|
||||
|
|
|
|||
|
|
@ -2,6 +2,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.QmsIncomingInspectionTaskAqlRuleAdjustQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskAqlRule;
|
||||
|
|
@ -15,4 +16,9 @@ public interface IQmsIncomingInspectionTaskAqlRuleService extends IService<QmsIn
|
|||
* 分页查询来料检验任务AQL规则列表
|
||||
*/
|
||||
IPage<QmsIncomingInspectionTaskAqlRuleVO> search(QmsIncomingInspectionTaskAqlRuleSearchQO request);
|
||||
|
||||
/**
|
||||
* 批量调整AQL规则
|
||||
*/
|
||||
void adjust(QmsIncomingInspectionTaskAqlRuleAdjustQO request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,13 +3,17 @@ 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.QmsIncomingInspectionTaskAqlRuleAdjustQO;
|
||||
import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskAqlRuleSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskAqlRuleVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
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;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 来料检验任务AQL规则 服务实现类
|
||||
*/
|
||||
|
|
@ -20,4 +24,20 @@ public class QmsIncomingInspectionTaskAqlRuleServiceImpl extends ServiceImpl<Qms
|
|||
public IPage<QmsIncomingInspectionTaskAqlRuleVO> search(QmsIncomingInspectionTaskAqlRuleSearchQO request) {
|
||||
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adjust(QmsIncomingInspectionTaskAqlRuleAdjustQO request) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
lambdaUpdate()
|
||||
.ne(QmsIncomingInspectionTaskAqlRule::getUsedAqlType, request.getUsedAqlType())
|
||||
.in(QmsIncomingInspectionTaskAqlRule::getId, request.getIds())
|
||||
.set(QmsIncomingInspectionTaskAqlRule::getUsedAqlType, request.getUsedAqlType())
|
||||
.set(QmsIncomingInspectionTaskAqlRule::getTriggerCategory, (short) 2)
|
||||
.set(QmsIncomingInspectionTaskAqlRule::getTriggerTime, now)
|
||||
.set(QmsIncomingInspectionTaskAqlRule::getTriggerUserId, userId)
|
||||
.set(QmsIncomingInspectionTaskAqlRule::getTriggerUserName, userName)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
AND r.inspection_item_id = #{request.inspectionItemId}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY r.id ASC
|
||||
ORDER BY t.id ASC, r.id ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -78,6 +78,12 @@
|
|||
<if test="request.submitEndDate != null">
|
||||
AND t.submit_time < #{request.submitEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionBeginStartDate != null">
|
||||
AND t.inspection_start_time >= #{request.inspectionBeginStartDate}
|
||||
</if>
|
||||
<if test="request.inspectionBeginEndDate != null">
|
||||
AND t.inspection_start_time < #{request.inspectionBeginEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionStartDate != null">
|
||||
AND t.inspection_finish_time >= #{request.inspectionStartDate}
|
||||
</if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue