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 f0d50a67..6ef31068 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 @@ -157,6 +157,11 @@ public class IncomingInspectionTaskControllerService { } private void applyReturnSingle(ExternalReturnInspectionApplyQO request) { + boolean exists = returnInspectionTaskService.lambdaQuery() + .eq(QmsReturnInspectionTask::getRequestNo, request.getRequestNo()) + .exists(); + VUtil.trueThrowBusinessError(exists).throwMessage("请勿重复发起任务"); + QmsQcMaterial material = qcMaterialService.lambdaQuery() .eq(QmsQcMaterial::getMaterialNo, request.getMaterialNo()) .orderByDesc(QmsQcMaterial::getId) @@ -173,9 +178,19 @@ public class IncomingInspectionTaskControllerService { .last("LIMIT 1") .one(); + String materialCategoryCode = material.getMaterialCategoryCode(); + VUtil.trueThrowBusinessError(StrUtil.isBlank(materialCategoryCode)) + .throwMessage("物料未配置物料类别,无法发起退料检测任务"); + QmsQcMaterialCategory materialCategory = qcMaterialCategoryService.lambdaQuery() + .eq(QmsQcMaterialCategory::getCategoryCode, materialCategoryCode) + .last("LIMIT 1") + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(materialCategory)) + .throwMessage("物料类别不存在,无法发起退料检测任务"); + Long materialCategoryId = materialCategory.getId(); QmsQualityInspector inspector = Objects.nonNull(standard) ? resolveInspector(material) - : resolveInspectorByMaterialCategoryId(request.getMaterialCategoryId()); + : resolveInspectorByMaterialCategoryId(materialCategoryId); User inspectorUser = userService.getById(inspector.getUserId()); VUtil.trueThrowBusinessError(Objects.isNull(inspectorUser)).throwMessage("检测人对应用户不存在"); @@ -198,7 +213,7 @@ public class IncomingInspectionTaskControllerService { .setInspectionStandardId(Objects.nonNull(standard) ? standard.getId() : null) .setTestingMethodDictItemId(RETURN_INSPECTION_FULL_TESTING_METHOD_ID) .setMaterialId(material.getId()) - .setMaterialCategoryId(request.getMaterialCategoryId()) + .setMaterialCategoryId(materialCategoryId) .setInspectionQty(request.getInspectionQty()) .setQualifiedQty(0) .setUnqualifiedQty(0) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReturnInspectionTaskControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReturnInspectionTaskControllerService.java index 6d55958b..223fdada 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReturnInspectionTaskControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsReturnInspectionTaskControllerService.java @@ -399,7 +399,7 @@ public class QmsReturnInspectionTaskControllerService { for (QmsReturnInspectionTaskResultQO request : taskRequests) { validateDetails(task, request, submit); - QmsReturnInspectionTaskRecord oldRecord = getOldRecord(request.getTaskId(), request.getMaterialUniqueNo()); + QmsReturnInspectionTaskRecord oldRecord = getOldRecord(request.getTaskId(), request.getMaterialUniqueNo(), request.getBatchNo()); replaceRecord(task, oldRecord, request); } @@ -421,7 +421,11 @@ public class QmsReturnInspectionTaskControllerService { private void validateDuplicateRequests(List requests) { Set keys = new HashSet<>(); for (QmsReturnInspectionTaskResultQO request : requests) { - String key = request.getTaskId() + "#" + StrUtil.blankToDefault(request.getMaterialUniqueNo(), "__NULL__"); + String key = request.getTaskId() + + "#" + + StrUtil.blankToDefault(request.getMaterialUniqueNo(), "__NULL__") + + "#" + + StrUtil.blankToDefault(request.getBatchNo(), "__NULL__"); VUtil.trueThrowBusinessError(!keys.add(key)).throwMessage("Duplicate material result exists in the same task"); } } @@ -493,7 +497,7 @@ public class QmsReturnInspectionTaskControllerService { } } - private QmsReturnInspectionTaskRecord getOldRecord(Long taskId, String materialUniqueNo) { + private QmsReturnInspectionTaskRecord getOldRecord(Long taskId, String materialUniqueNo, String batchNo) { return returnInspectionTaskRecordService.lambdaQuery() .eq(QmsReturnInspectionTaskRecord::getTaskId, taskId) .and(wrapper -> { @@ -503,6 +507,13 @@ public class QmsReturnInspectionTaskControllerService { wrapper.eq(QmsReturnInspectionTaskRecord::getMaterialUniqueNo, materialUniqueNo); } }) + .and(wrapper -> { + if (StrUtil.isBlank(batchNo)) { + wrapper.isNull(QmsReturnInspectionTaskRecord::getBatchNo); + } else { + wrapper.eq(QmsReturnInspectionTaskRecord::getBatchNo, batchNo); + } + }) .last("LIMIT 1") .one(); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsReturnInspectionTaskRecordDetails.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsReturnInspectionTaskRecordDetails.java new file mode 100644 index 00000000..fa39734d --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsReturnInspectionTaskRecordDetails.java @@ -0,0 +1,31 @@ +package com.nflg.wms.repository.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_return_inspection_task_record_details") +public class QmsReturnInspectionTaskRecordDetails implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + private Long recordId; + private Long inspectionStandardItemContentId; + private String remark; + private BigDecimal measuredValue; + private Boolean qualified; + private String imageIds; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskMapper.java new file mode 100644 index 00000000..028939ac --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskMapper.java @@ -0,0 +1,20 @@ +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.QmsReturnInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO; +import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO; +import com.nflg.wms.repository.entity.QmsReturnInspectionTask; +import org.apache.ibatis.annotations.Param; + +public interface QmsReturnInspectionTaskMapper extends BaseMapper { + + IPage search(@Param("request") QmsReturnInspectionTaskSearchQO request, Page page); + + IPage todoSearch(@Param("request") QmsReturnInspectionTaskTodoSearchQO request, + Page page, + @Param("inspectorId") Long inspectorId, + @Param("userId") Long userId); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordDetailsMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordDetailsMapper.java new file mode 100644 index 00000000..64d2cad1 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordDetailsMapper.java @@ -0,0 +1,7 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails; + +public interface QmsReturnInspectionTaskRecordDetailsMapper extends BaseMapper { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordMapper.java new file mode 100644 index 00000000..3270c624 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsReturnInspectionTaskRecordMapper.java @@ -0,0 +1,7 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord; + +public interface QmsReturnInspectionTaskRecordMapper extends BaseMapper { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordDetailsService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordDetailsService.java new file mode 100644 index 00000000..f66917c8 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordDetailsService.java @@ -0,0 +1,7 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails; + +public interface IQmsReturnInspectionTaskRecordDetailsService extends IService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordService.java new file mode 100644 index 00000000..bac66bcb --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskRecordService.java @@ -0,0 +1,7 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord; + +public interface IQmsReturnInspectionTaskRecordService extends IService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskService.java new file mode 100644 index 00000000..aae41d0d --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsReturnInspectionTaskService.java @@ -0,0 +1,15 @@ +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.QmsReturnInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO; +import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO; +import com.nflg.wms.repository.entity.QmsReturnInspectionTask; + +public interface IQmsReturnInspectionTaskService extends IService { + + IPage search(QmsReturnInspectionTaskSearchQO request); + + IPage todoSearch(QmsReturnInspectionTaskTodoSearchQO request, Long inspectorId, Long userId); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java index 3c213aaf..33f90b31 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.wms.repository.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordDetailsServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordDetailsServiceImpl.java new file mode 100644 index 00000000..938b7709 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordDetailsServiceImpl.java @@ -0,0 +1,12 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails; +import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskRecordDetailsMapper; +import com.nflg.wms.repository.service.IQmsReturnInspectionTaskRecordDetailsService; +import org.springframework.stereotype.Service; + +@Service +public class QmsReturnInspectionTaskRecordDetailsServiceImpl extends ServiceImpl + implements IQmsReturnInspectionTaskRecordDetailsService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordServiceImpl.java new file mode 100644 index 00000000..8991ffb6 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskRecordServiceImpl.java @@ -0,0 +1,12 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord; +import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskRecordMapper; +import com.nflg.wms.repository.service.IQmsReturnInspectionTaskRecordService; +import org.springframework.stereotype.Service; + +@Service +public class QmsReturnInspectionTaskRecordServiceImpl extends ServiceImpl + implements IQmsReturnInspectionTaskRecordService { +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskServiceImpl.java new file mode 100644 index 00000000..e05fea68 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsReturnInspectionTaskServiceImpl.java @@ -0,0 +1,27 @@ +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.QmsReturnInspectionTaskSearchQO; +import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO; +import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO; +import com.nflg.wms.repository.entity.QmsReturnInspectionTask; +import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskMapper; +import com.nflg.wms.repository.service.IQmsReturnInspectionTaskService; +import org.springframework.stereotype.Service; + +@Service +public class QmsReturnInspectionTaskServiceImpl extends ServiceImpl + implements IQmsReturnInspectionTaskService { + + @Override + public IPage search(QmsReturnInspectionTaskSearchQO request) { + return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); + } + + @Override + public IPage todoSearch(QmsReturnInspectionTaskTodoSearchQO request, Long inspectorId, Long userId) { + return baseMapper.todoSearch(request, new Page<>(request.getPage(), request.getPageSize()), inspectorId, userId); + } +}