Compare commits

..

No commits in common. "d0fb34dc71e32946ed86729ba797a6f96f5654a6" and "3adf1d11cd8d352c9434eaeebade7301084b68a8" have entirely different histories.

4 changed files with 52 additions and 103 deletions

View File

@ -2,12 +2,10 @@ package com.nflg.qms.admin.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.qms.admin.pojo.qo.QmsPdfExtractRegionQO; import com.nflg.qms.admin.pojo.qo.QmsPdfExtractRegionQO;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.dto.QmsInspectionStandardDetailDTO; import com.nflg.wms.common.pojo.dto.QmsInspectionStandardDetailDTO;
@ -74,15 +72,6 @@ public class QmsInspectionStandardControllerService {
@Resource @Resource
private RegionFilterService regionFilterService; private RegionFilterService regionFilterService;
@Resource
private IQmsInspectionItemService inspectionItemService;
@Resource
private IQmsInspectionItemDetailsService inspectionItemDetailsService;
@Resource
private IQmsQcMaterialCategoryService materialCategoryService;
/** /**
* 分页查询检验标准 * 分页查询检验标准
*/ */
@ -134,7 +123,7 @@ public class QmsInspectionStandardControllerService {
// 2. 已发布的标准不允许删除 // 2. 已发布的标准不允许删除
if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) { if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) {
throw new NflgException(STATE.BusinessError, throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError,
"已发布的检验标准不允许删除ID: " + id); "已发布的检验标准不允许删除ID: " + id);
} }
@ -173,7 +162,7 @@ public class QmsInspectionStandardControllerService {
// 1. 查询检验标准基本信息 // 1. 查询检验标准基本信息
QmsInspectionStandard standard = inspectionStandardService.getById(id); QmsInspectionStandard standard = inspectionStandardService.getById(id);
if (standard == null) { if (standard == null) {
throw new NflgException(STATE.BusinessError, "检验标准不存在"); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
} }
// 2. 查询检验标准详情关联物料等信息 // 2. 查询检验标准详情关联物料等信息
@ -333,9 +322,6 @@ public class QmsInspectionStandardControllerService {
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long add(QmsInspectionStandardAddQO qo) { public Long add(QmsInspectionStandardAddQO qo) {
QmsQcMaterial qmsQcMaterial = qmsQcMaterialService.getById(qo.getMaterialId());
VUtil.trueThrowBusinessError(Objects.isNull(qmsQcMaterial)).throwMessage("物料不存在");
Long userId = UserUtil.getUserId(); Long userId = UserUtil.getUserId();
String userName = UserUtil.getUserName(); String userName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
@ -362,56 +348,6 @@ public class QmsInspectionStandardControllerService {
inspectionStandardService.save(standard); inspectionStandardService.save(standard);
String materialCategoryCode = qmsQcMaterial.getMaterialCategoryCode();
if (StrUtil.isNotBlank(materialCategoryCode)) {
QmsQcMaterialCategory category = materialCategoryService.lambdaQuery()
.eq(QmsQcMaterialCategory::getCategoryCode, materialCategoryCode)
.one();
if (Objects.nonNull(category)) {
Pair<QmsInspectionItem, List<QmsInspectionItemDetails>> data = getInspectionItemDetails(category);
if (Objects.isNull(data)) {
category = materialCategoryService.lambdaQuery()
.eq(QmsQcMaterialCategory::getId, category.getParentCategoryRowId())
.one();
if (Objects.nonNull(category)) {
data = getInspectionItemDetails(category);
}
}
if (Objects.nonNull(data)) {
QmsInspectionStandardItem inspectionStandardItem = new QmsInspectionStandardItem();
inspectionStandardItem.setInspectionStandardId(standard.getId());
inspectionStandardItem.setItemType((short) 0);
Long detectionTypeDictItemId = switch (data.getKey().getDetectionType()) {
case 0 -> dictionaryItemService.getIdByCode("InspectionStandardDetectionType", "定性");
case 1 -> dictionaryItemService.getIdByCode("InspectionStandardDetectionType", "定量");
default -> 0L;
};
VUtil.trueThrowBusinessError(detectionTypeDictItemId == 0).throwMessage("检测类型字典项不存在");
inspectionStandardItem.setDetectionTypeDictItemId(detectionTypeDictItemId);
inspectionStandardItem.setSortNo(0);
inspectionStandardItem.setName(data.getKey().getInspectionItemName());
inspectionStandardItemService.save(inspectionStandardItem);
inspectionStandardItemContentService.saveBatch(
data.getValue()
.stream()
.map(content -> {
QmsInspectionStandardItemContent itemContent = new QmsInspectionStandardItemContent();
itemContent.setInspectionStandardItemId(inspectionStandardItem.getId());
itemContent.setSortNo(content.getSortNo());
itemContent.setTestStandard(content.getTestStandard());
itemContent.setLegend(content.getLegend());
itemContent.setJudgmentType(content.getDeterminationType());
itemContent.setCreateUserId(userId);
itemContent.setCreateUserName(userName);
itemContent.setCreateTime(now);
return itemContent;
})
.toList()
);
}
}
}
qmsQcMaterialService.lambdaUpdate() qmsQcMaterialService.lambdaUpdate()
.set(QmsQcMaterial::getIsStandardMaintained, true) .set(QmsQcMaterial::getIsStandardMaintained, true)
.eq(QmsQcMaterial::getId, qo.getMaterialId()) .eq(QmsQcMaterial::getId, qo.getMaterialId())
@ -421,19 +357,6 @@ public class QmsInspectionStandardControllerService {
return standard.getId(); return standard.getId();
} }
private Pair<QmsInspectionItem, List<QmsInspectionItemDetails>> getInspectionItemDetails(QmsQcMaterialCategory category) {
QmsInspectionItem inspectionItem = inspectionItemService.lambdaQuery()
.eq(QmsInspectionItem::getMaterialTypeId, category.getId())
.one();
if (Objects.isNull(inspectionItem)) {
return null;
}
return Pair.of(inspectionItem, inspectionItemDetailsService.lambdaQuery()
.eq(QmsInspectionItemDetails::getInspectionItemId, inspectionItem.getId())
.list()
);
}
// /** // /**
// * 生成版本号查询该物料已发布的最大版本号如果存在则加1否则默认为1 // * 生成版本号查询该物料已发布的最大版本号如果存在则加1否则默认为1
// * @param materialId 物料ID // * @param materialId 物料ID
@ -472,12 +395,12 @@ public class QmsInspectionStandardControllerService {
// 1. 校验检验标准是否存在 // 1. 校验检验标准是否存在
QmsInspectionStandard standard = inspectionStandardService.getById(qo.getId()); QmsInspectionStandard standard = inspectionStandardService.getById(qo.getId());
if (standard == null) { if (standard == null) {
throw new NflgException(STATE.BusinessError, "检验标准不存在"); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
} }
// 2. 已发布的标准不允许修改 // 2. 已发布的标准不允许修改
if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) { if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) {
throw new NflgException(STATE.BusinessError, "已发布的检验标准不允许修改"); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "已发布的检验标准不允许修改");
} }
VUtil.trueThrowBusinessError( VUtil.trueThrowBusinessError(
inspectionStandardService.lambdaQuery() inspectionStandardService.lambdaQuery()
@ -549,7 +472,7 @@ public class QmsInspectionStandardControllerService {
// 更新现有检测项 // 更新现有检测项
item = inspectionStandardItemService.getById(itemQO.getId()); item = inspectionStandardItemService.getById(itemQO.getId());
if (item == null) { if (item == null) {
throw new NflgException(STATE.BusinessError, "检测项不存在:" + itemQO.getId()); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检测项不存在:" + itemQO.getId());
} }
// 更新字段 // 更新字段
@ -594,7 +517,7 @@ public class QmsInspectionStandardControllerService {
// 1. 校验检验标准是否存在 // 1. 校验检验标准是否存在
QmsInspectionStandard standard = inspectionStandardService.getById(qo.getInspectionStandardId()); QmsInspectionStandard standard = inspectionStandardService.getById(qo.getInspectionStandardId());
if (standard == null) { if (standard == null) {
throw new NflgException(STATE.BusinessError, "检验标准不存在"); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
} }
Long userId = UserUtil.getUserId(); Long userId = UserUtil.getUserId();
@ -789,7 +712,7 @@ public class QmsInspectionStandardControllerService {
// 更新现有内容 // 更新现有内容
content = inspectionStandardItemContentService.getById(contentQO.getId()); content = inspectionStandardItemContentService.getById(contentQO.getId());
if (content == null) { if (content == null) {
throw new NflgException(STATE.BusinessError, "检测项内容不存在:" + contentQO.getId()); throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检测项内容不存在:" + contentQO.getId());
} }
updateContentFields(content, contentQO, userId, userName, now); updateContentFields(content, contentQO, userId, userName, now);

View File

@ -130,7 +130,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_MATERIAL_NO); request.setMaterialNo(SEARCH_MATERIAL_NO);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "按物料编号搜索失败"); assertSuccess(result, "按物料编号搜索失败");
@ -155,7 +155,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_DRAWING_NO); request.setDrawingNo(SEARCH_DRAWING_NO);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "按物料图号搜索失败"); assertSuccess(result, "按物料图号搜索失败");
@ -172,7 +172,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_TASK_NO_PREFIX); request.setTaskNo(SEARCH_TASK_NO_PREFIX);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "按检测单号搜索失败"); assertSuccess(result, "按检测单号搜索失败");
@ -197,7 +197,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_SUPPLIER_CODE); request.setSupplierCode(SEARCH_SUPPLIER_CODE);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "按供应商编号搜索失败"); assertSuccess(result, "按供应商编号搜索失败");
@ -214,7 +214,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_SUPPLIER_NAME); request.setSupplierName(SEARCH_SUPPLIER_NAME);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "按供应商名称搜索失败"); assertSuccess(result, "按供应商名称搜索失败");
@ -231,7 +231,8 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey(SEARCH_MATERIAL_NO); request.setMaterialNo(SEARCH_MATERIAL_NO);
request.setSupplierName(SEARCH_SUPPLIER_NAME);
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "组合条件搜索失败"); assertSuccess(result, "组合条件搜索失败");
@ -276,7 +277,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO(); QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
request.setPage(1); request.setPage(1);
request.setPageSize(10); request.setPageSize(10);
request.setKey("NOT_EXIST_TASK_NO_999999"); request.setTaskNo("NOT_EXIST_TASK_NO_999999");
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {}); ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
assertSuccess(result, "无结果查询失败"); assertSuccess(result, "无结果查询失败");

View File

@ -11,13 +11,32 @@ import lombok.EqualsAndHashCode;
public class QmsIncomingInspectionTaskTodoSearchQO extends PageQO { public class QmsIncomingInspectionTaskTodoSearchQO extends PageQO {
/** /**
* 关键字 * 物料编码模糊匹配
*/ */
private String key; private String materialNo;
/** /**
* 检验状态不传则默认查 0 1 * 物料图号模糊匹配
* 0=待检1=检验中2=已检 */
private String drawingNo;
/**
* 检测单号模糊匹配
*/
private String taskNo;
/**
* 供应商编号模糊匹配
*/
private String supplierCode;
/**
* 供应商名称模糊匹配
*/
private String supplierName;
/**
* 检验状态0=待检1=检验中2=已检不传则默认查 0 1
*/ */
private Short inspectionStatus; private Short inspectionStatus;

View File

@ -160,14 +160,20 @@
<if test="request.isOverdue != null"> <if test="request.isOverdue != null">
AND t.is_overdue = #{request.isOverdue} AND t.is_overdue = #{request.isOverdue}
</if> </if>
<if test="request.key != null and request.key != ''"> <if test="request.materialNo != null and request.materialNo != ''">
AND (m.material_no ilike concat('%', #{request.key}, '%') AND m.material_no ilike concat('%', #{request.materialNo}, '%')
or m.material_desc ilike concat('%', #{request.key}, '%') </if>
or m.drawing_no ilike concat('%', #{request.key}, '%') <if test="request.drawingNo != null and request.drawingNo != ''">
or t.task_no ilike concat('%', #{request.key}, '%') AND m.drawing_no ilike concat('%', #{request.drawingNo}, '%')
or t.supplier_code ilike concat('%', #{request.key}, '%') </if>
or t.supplier_name ilike concat('%', #{request.key}, '%') <if test="request.taskNo != null and request.taskNo != ''">
) AND t.task_no ilike concat('%', #{request.taskNo}, '%')
</if>
<if test="request.supplierCode != null and request.supplierCode != ''">
AND t.supplier_code ilike concat('%', #{request.supplierCode}, '%')
</if>
<if test="request.supplierName != null and request.supplierName != ''">
AND t.supplier_name ilike concat('%', #{request.supplierName}, '%')
</if> </if>
</where> </where>
ORDER BY t.required_finish_time ASC ORDER BY t.required_finish_time ASC