Merge remote-tracking branch 'origin/qms/develop' into qms/develop
This commit is contained in:
commit
8d45b6beb5
|
|
@ -2,10 +2,12 @@ package com.nflg.qms.admin.service;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.pojo.PageData;
|
||||
import com.nflg.wms.common.pojo.dto.QmsInspectionStandardDetailDTO;
|
||||
|
|
@ -72,6 +74,15 @@ public class QmsInspectionStandardControllerService {
|
|||
@Resource
|
||||
private RegionFilterService regionFilterService;
|
||||
|
||||
@Resource
|
||||
private IQmsInspectionItemService inspectionItemService;
|
||||
|
||||
@Resource
|
||||
private IQmsInspectionItemDetailsService inspectionItemDetailsService;
|
||||
|
||||
@Resource
|
||||
private IQmsQcMaterialCategoryService materialCategoryService;
|
||||
|
||||
/**
|
||||
* 分页查询检验标准
|
||||
*/
|
||||
|
|
@ -123,7 +134,7 @@ public class QmsInspectionStandardControllerService {
|
|||
|
||||
// 2. 已发布的标准不允许删除
|
||||
if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError,
|
||||
throw new NflgException(STATE.BusinessError,
|
||||
"已发布的检验标准不允许删除,ID: " + id);
|
||||
}
|
||||
|
||||
|
|
@ -162,7 +173,7 @@ public class QmsInspectionStandardControllerService {
|
|||
// 1. 查询检验标准基本信息
|
||||
QmsInspectionStandard standard = inspectionStandardService.getById(id);
|
||||
if (standard == null) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
|
||||
throw new NflgException(STATE.BusinessError, "检验标准不存在");
|
||||
}
|
||||
|
||||
// 2. 查询检验标准详情(关联物料等信息)
|
||||
|
|
@ -322,6 +333,9 @@ public class QmsInspectionStandardControllerService {
|
|||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long add(QmsInspectionStandardAddQO qo) {
|
||||
QmsQcMaterial qmsQcMaterial = qmsQcMaterialService.getById(qo.getMaterialId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qmsQcMaterial)).throwMessage("物料不存在");
|
||||
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
|
@ -348,6 +362,59 @@ public class QmsInspectionStandardControllerService {
|
|||
|
||||
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());
|
||||
inspectionStandardItem.setCreateUserId(userId);
|
||||
inspectionStandardItem.setCreateUserName(userName);
|
||||
inspectionStandardItem.setCreateTime(now);
|
||||
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()
|
||||
.set(QmsQcMaterial::getIsStandardMaintained, true)
|
||||
.eq(QmsQcMaterial::getId, qo.getMaterialId())
|
||||
|
|
@ -357,6 +424,19 @@ public class QmsInspectionStandardControllerService {
|
|||
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
|
||||
// * @param materialId 物料ID
|
||||
|
|
@ -395,12 +475,12 @@ public class QmsInspectionStandardControllerService {
|
|||
// 1. 校验检验标准是否存在
|
||||
QmsInspectionStandard standard = inspectionStandardService.getById(qo.getId());
|
||||
if (standard == null) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
|
||||
throw new NflgException(STATE.BusinessError, "检验标准不存在");
|
||||
}
|
||||
|
||||
// 2. 已发布的标准不允许修改
|
||||
if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "已发布的检验标准不允许修改");
|
||||
throw new NflgException(STATE.BusinessError, "已发布的检验标准不允许修改");
|
||||
}
|
||||
VUtil.trueThrowBusinessError(
|
||||
inspectionStandardService.lambdaQuery()
|
||||
|
|
@ -472,7 +552,7 @@ public class QmsInspectionStandardControllerService {
|
|||
// 更新现有检测项
|
||||
item = inspectionStandardItemService.getById(itemQO.getId());
|
||||
if (item == null) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检测项不存在:" + itemQO.getId());
|
||||
throw new NflgException(STATE.BusinessError, "检测项不存在:" + itemQO.getId());
|
||||
}
|
||||
|
||||
// 更新字段
|
||||
|
|
@ -517,7 +597,7 @@ public class QmsInspectionStandardControllerService {
|
|||
// 1. 校验检验标准是否存在
|
||||
QmsInspectionStandard standard = inspectionStandardService.getById(qo.getInspectionStandardId());
|
||||
if (standard == null) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检验标准不存在");
|
||||
throw new NflgException(STATE.BusinessError, "检验标准不存在");
|
||||
}
|
||||
|
||||
Long userId = UserUtil.getUserId();
|
||||
|
|
@ -712,7 +792,7 @@ public class QmsInspectionStandardControllerService {
|
|||
// 更新现有内容
|
||||
content = inspectionStandardItemContentService.getById(contentQO.getId());
|
||||
if (content == null) {
|
||||
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "检测项内容不存在:" + contentQO.getId());
|
||||
throw new NflgException(STATE.BusinessError, "检测项内容不存在:" + contentQO.getId());
|
||||
}
|
||||
|
||||
updateContentFields(content, contentQO, userId, userName, now);
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setMaterialNo(SEARCH_MATERIAL_NO);
|
||||
request.setKey(SEARCH_MATERIAL_NO);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "按物料编号搜索失败");
|
||||
|
|
@ -155,7 +155,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setDrawingNo(SEARCH_DRAWING_NO);
|
||||
request.setKey(SEARCH_DRAWING_NO);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "按物料图号搜索失败");
|
||||
|
|
@ -172,7 +172,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setTaskNo(SEARCH_TASK_NO_PREFIX);
|
||||
request.setKey(SEARCH_TASK_NO_PREFIX);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "按检测单号搜索失败");
|
||||
|
|
@ -197,7 +197,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setSupplierCode(SEARCH_SUPPLIER_CODE);
|
||||
request.setKey(SEARCH_SUPPLIER_CODE);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "按供应商编号搜索失败");
|
||||
|
|
@ -214,7 +214,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setSupplierName(SEARCH_SUPPLIER_NAME);
|
||||
request.setKey(SEARCH_SUPPLIER_NAME);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "按供应商名称搜索失败");
|
||||
|
|
@ -231,8 +231,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setMaterialNo(SEARCH_MATERIAL_NO);
|
||||
request.setSupplierName(SEARCH_SUPPLIER_NAME);
|
||||
request.setKey(SEARCH_MATERIAL_NO);
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "组合条件搜索失败");
|
||||
|
|
@ -277,7 +276,7 @@ public class QmsIncomingInspectionTaskTodoSearchApiTest {
|
|||
QmsIncomingInspectionTaskTodoSearchQO request = new QmsIncomingInspectionTaskTodoSearchQO();
|
||||
request.setPage(1);
|
||||
request.setPageSize(10);
|
||||
request.setTaskNo("NOT_EXIST_TASK_NO_999999");
|
||||
request.setKey("NOT_EXIST_TASK_NO_999999");
|
||||
|
||||
ApiResult<PageData<QmsIncomingInspectionTaskVO>> result = post("/incoming-inspection-task/todo-search", request, new TypeReference<>() {});
|
||||
assertSuccess(result, "无结果查询失败");
|
||||
|
|
|
|||
|
|
@ -11,32 +11,13 @@ import lombok.EqualsAndHashCode;
|
|||
public class QmsIncomingInspectionTaskTodoSearchQO extends PageQO {
|
||||
|
||||
/**
|
||||
* 物料编码(模糊匹配)
|
||||
* 关键字
|
||||
*/
|
||||
private String materialNo;
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 物料图号(模糊匹配)
|
||||
*/
|
||||
private String drawingNo;
|
||||
|
||||
/**
|
||||
* 检测单号(模糊匹配)
|
||||
*/
|
||||
private String taskNo;
|
||||
|
||||
/**
|
||||
* 供应商编号(模糊匹配)
|
||||
*/
|
||||
private String supplierCode;
|
||||
|
||||
/**
|
||||
* 供应商名称(模糊匹配)
|
||||
*/
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 检验状态:0=待检,1=检验中,2=已检(不传则默认查 0 和 1)
|
||||
* 检验状态,不传则默认查 0 和 1
|
||||
* 0=待检,1=检验中,2=已检
|
||||
*/
|
||||
private Short inspectionStatus;
|
||||
|
||||
|
|
|
|||
|
|
@ -149,6 +149,9 @@
|
|||
LEFT JOIN qms_incoming_inspection_task t2 ON t.related_task_id = t2.id
|
||||
<where>
|
||||
<choose>
|
||||
<when test="request.isOverdue != null">
|
||||
t.is_overdue = #{request.isOverdue}
|
||||
</when>
|
||||
<when test="request.inspectionStatus != null">
|
||||
t.inspection_status = #{request.inspectionStatus}
|
||||
</when>
|
||||
|
|
@ -157,23 +160,14 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
AND (t.inspector_id = #{inspectorId} OR t.agent_id = #{inspectorId})
|
||||
<if test="request.isOverdue != null">
|
||||
AND t.is_overdue = #{request.isOverdue}
|
||||
</if>
|
||||
<if test="request.materialNo != null and request.materialNo != ''">
|
||||
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
|
||||
</if>
|
||||
<if test="request.drawingNo != null and request.drawingNo != ''">
|
||||
AND m.drawing_no ilike concat('%', #{request.drawingNo}, '%')
|
||||
</if>
|
||||
<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 test="request.key != null and request.key != ''">
|
||||
AND (m.material_no ilike concat('%', #{request.key}, '%')
|
||||
or m.material_desc ilike concat('%', #{request.key}, '%')
|
||||
or m.drawing_no ilike concat('%', #{request.key}, '%')
|
||||
or t.task_no ilike concat('%', #{request.key}, '%')
|
||||
or t.supplier_code ilike concat('%', #{request.key}, '%')
|
||||
or t.supplier_name ilike concat('%', #{request.key}, '%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY t.required_finish_time ASC
|
||||
|
|
|
|||
Loading…
Reference in New Issue