fix(inspection-task): 优化来料检验任务提交及暂存逻辑
- 优化提交检验接口,增加任务存在性和完成状态校验 - 移除暂存检验结果接口及相关代码,简化业务流程 - 在提交检验时设置和更新检验开始时间及状态 - 校验质检人员时增加空格格式调整,提升代码规范性 - 调整相关请求参数,删除无用字段,只保留检验结果及开始时间校验 - 在提交样本检验时校验任务状态,防止重复完成操作
This commit is contained in:
parent
1a933353a3
commit
6362d6ed7e
|
|
@ -112,14 +112,14 @@ public class QmsIncomingInspectionTaskController extends BaseController {
|
|||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 暂存检验结果
|
||||
*/
|
||||
@PostMapping("pad/staging")
|
||||
public ApiResult<Void> staging(@Valid @RequestBody QmsIncomingInspectionTaskSubmitQO request){
|
||||
incomingInspectionTaskControllerService.staging(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
// /**
|
||||
// * 暂存检验结果
|
||||
// */
|
||||
// @PostMapping("pad/staging")
|
||||
// public ApiResult<Void> staging(@Valid @RequestBody QmsIncomingInspectionTaskSubmitQO request){
|
||||
// incomingInspectionTaskControllerService.staging(request);
|
||||
// return ApiResult.success();
|
||||
// }
|
||||
|
||||
/**
|
||||
* 提交检验结果
|
||||
|
|
|
|||
|
|
@ -560,7 +560,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
// 通过当前登录用户的 userId 查询对应的质检人员记录
|
||||
QmsQualityInspector inspector = qualityInspectorService.lambdaQuery()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.eq(QmsQualityInspector::getInspectionType,1)
|
||||
.eq(QmsQualityInspector::getInspectionType, 1)
|
||||
.last("LIMIT 1")
|
||||
.one();
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(inspector))
|
||||
|
|
@ -577,7 +577,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
// 通过当前登录用户的 userId 查询对应的质检人员记录
|
||||
QmsQualityInspector inspector = qualityInspectorService.lambdaQuery()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.eq(QmsQualityInspector::getInspectionType,1)
|
||||
.eq(QmsQualityInspector::getInspectionType, 1)
|
||||
.last("LIMIT 1")
|
||||
.one();
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(inspector))
|
||||
|
|
@ -759,7 +759,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
VUtil.trueThrowBusinessError(count > task.getDetectionQty()).throwMessage("样本数量不能大于总数量");
|
||||
return new QmsIncomingInspectionTaskCheckDetailVO()
|
||||
.setItems(datas)
|
||||
.setCount(Math.min(task.getDetectionQty() - count,request.getNum()))
|
||||
.setCount(Math.min(task.getDetectionQty() - count, request.getNum()))
|
||||
.setPdfDrawings(
|
||||
inspectionStandardItemService.lambdaQuery()
|
||||
.select(QmsInspectionStandardItem::getPdfDrawing)
|
||||
|
|
@ -806,6 +806,9 @@ public class IncomingInspectionTaskControllerService {
|
|||
|
||||
@Transactional
|
||||
public void submitCheckItem(QmsIncomingInspectionTaskTodoCheckSubmitQO request) {
|
||||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
VUtil.trueThrowBusinessError(task.getInspectionStatus() == 2).throwMessage("该任务已完成");
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
|
|
@ -886,20 +889,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
if (!updateDatas.isEmpty()) {
|
||||
incomingInspectionTaskRecordItemDataService.updateBatchById(updateDatas);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 暂存检验结果
|
||||
* 1. 根据任务ID查询所有样本记录
|
||||
* 2. 计算合格数量和不合格数量
|
||||
* 3. 更新任务的合格数量、不合格数量、检验结果
|
||||
* 4. 如果检验开始时间为空,则更新检验开始时间
|
||||
*/
|
||||
@Transactional
|
||||
public void staging(QmsIncomingInspectionTaskSubmitQO request) {
|
||||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
|
||||
// 查询该任务下所有检验记录
|
||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, request.getTaskId())
|
||||
|
|
@ -909,51 +898,72 @@ public class IncomingInspectionTaskControllerService {
|
|||
int qualifiedQty = records.stream()
|
||||
.map(QmsIncomingInspectionTaskRecord::getQualifiedQty)
|
||||
.reduce(0, Integer::sum);
|
||||
task.setQualifiedQty(qualifiedQty);
|
||||
int unqualifiedQty = records.stream()
|
||||
.map(QmsIncomingInspectionTaskRecord::getUnqualifiedQty)
|
||||
.reduce(0, Integer::sum);
|
||||
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 构建更新对象
|
||||
var updateWrapper = incomingInspectionTaskService.lambdaUpdate()
|
||||
.eq(QmsIncomingInspectionTask::getId, request.getTaskId())
|
||||
.ne(QmsIncomingInspectionTask::getInspectionStatus, 2)
|
||||
.set(QmsIncomingInspectionTask::getQualifiedQty, qualifiedQty)
|
||||
.set(QmsIncomingInspectionTask::getUnqualifiedQty, unqualifiedQty)
|
||||
.set(QmsIncomingInspectionTask::getInspectionResult, request.getQualified())
|
||||
.set(QmsIncomingInspectionTask::getUpdateUserId, userId)
|
||||
.set(QmsIncomingInspectionTask::getUpdateUserName, userName)
|
||||
.set(QmsIncomingInspectionTask::getUpdateTime, now);
|
||||
|
||||
// 如果检验开始时间为空,则更新检验开始时间
|
||||
task.setUnqualifiedQty(unqualifiedQty);
|
||||
if (Objects.isNull(task.getInspectionStartTime())) {
|
||||
updateWrapper.set(QmsIncomingInspectionTask::getInspectionStartTime, request.getInspectionStartTime());
|
||||
updateWrapper.set(QmsIncomingInspectionTask::getInspectionStatus, 1);
|
||||
task.setInspectionStartTime(request.getInspectionStartTime());
|
||||
}
|
||||
|
||||
updateWrapper.update();
|
||||
task.setInspectionStatus((short) 1);
|
||||
incomingInspectionTaskService.updateById(task);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 暂存检验结果
|
||||
// * 1. 根据任务ID查询所有样本记录
|
||||
// * 2. 计算合格数量和不合格数量
|
||||
// * 3. 更新任务的合格数量、不合格数量、检验结果
|
||||
// * 4. 如果检验开始时间为空,则更新检验开始时间
|
||||
// */
|
||||
// @Transactional
|
||||
// public void staging(QmsIncomingInspectionTaskSubmitQO request) {
|
||||
// QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
// VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
//
|
||||
// // 查询该任务下所有检验记录
|
||||
// List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||
// .eq(QmsIncomingInspectionTaskRecord::getTaskId, request.getTaskId())
|
||||
// .list();
|
||||
//
|
||||
// // 计算合格数量和不合格数量
|
||||
// int qualifiedQty = records.stream()
|
||||
// .map(QmsIncomingInspectionTaskRecord::getQualifiedQty)
|
||||
// .reduce(0, Integer::sum);
|
||||
// int unqualifiedQty = records.stream()
|
||||
// .map(QmsIncomingInspectionTaskRecord::getUnqualifiedQty)
|
||||
// .reduce(0, Integer::sum);
|
||||
//
|
||||
// Long userId = UserUtil.getUserId();
|
||||
// String userName = UserUtil.getUserName();
|
||||
// LocalDateTime now = LocalDateTime.now();
|
||||
//
|
||||
// // 构建更新对象
|
||||
// var updateWrapper = incomingInspectionTaskService.lambdaUpdate()
|
||||
// .eq(QmsIncomingInspectionTask::getId, request.getTaskId())
|
||||
// .ne(QmsIncomingInspectionTask::getInspectionStatus, 2)
|
||||
// .set(QmsIncomingInspectionTask::getQualifiedQty, qualifiedQty)
|
||||
// .set(QmsIncomingInspectionTask::getUnqualifiedQty, unqualifiedQty)
|
||||
// .set(QmsIncomingInspectionTask::getInspectionResult, request.getQualified())
|
||||
// .set(QmsIncomingInspectionTask::getUpdateUserId, userId)
|
||||
// .set(QmsIncomingInspectionTask::getUpdateUserName, userName)
|
||||
// .set(QmsIncomingInspectionTask::getUpdateTime, now);
|
||||
//
|
||||
// // 如果检验开始时间为空,则更新检验开始时间
|
||||
// if (Objects.isNull(task.getInspectionStartTime())) {
|
||||
// updateWrapper.set(QmsIncomingInspectionTask::getInspectionStartTime, request.getInspectionStartTime());
|
||||
// updateWrapper.set(QmsIncomingInspectionTask::getInspectionStatus, 1);
|
||||
// }
|
||||
//
|
||||
// updateWrapper.update();
|
||||
// }
|
||||
|
||||
@Transactional
|
||||
public void submit(@Valid QmsIncomingInspectionTaskSubmitQO request) {
|
||||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
|
||||
// 查询该任务下所有检验记录
|
||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, request.getTaskId())
|
||||
.list();
|
||||
|
||||
// 计算合格数量和不合格数量
|
||||
int qualifiedQty = records.stream()
|
||||
.map(QmsIncomingInspectionTaskRecord::getQualifiedQty)
|
||||
.reduce(0, Integer::sum);
|
||||
int unqualifiedQty = records.stream()
|
||||
.map(QmsIncomingInspectionTaskRecord::getUnqualifiedQty)
|
||||
.reduce(0, Integer::sum);
|
||||
VUtil.trueThrowBusinessError(task.getInspectionStatus() == 2).throwMessage("该任务已完成");
|
||||
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
|
|
@ -963,8 +973,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
var updateWrapper = incomingInspectionTaskService.lambdaUpdate()
|
||||
.eq(QmsIncomingInspectionTask::getId, request.getTaskId())
|
||||
.ne(QmsIncomingInspectionTask::getInspectionStatus, 2)
|
||||
.set(QmsIncomingInspectionTask::getQualifiedQty, qualifiedQty)
|
||||
.set(QmsIncomingInspectionTask::getUnqualifiedQty, unqualifiedQty)
|
||||
.set(QmsIncomingInspectionTask::getInspectionResult, request.getQualified())
|
||||
.set(QmsIncomingInspectionTask::getInspectionStatus, 2)
|
||||
.set(QmsIncomingInspectionTask::getInspectionFinishTime, LocalDateTime.now())
|
||||
|
|
@ -972,11 +980,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
.set(QmsIncomingInspectionTask::getUpdateUserName, userName)
|
||||
.set(QmsIncomingInspectionTask::getUpdateTime, now);
|
||||
|
||||
// 如果检验开始时间为空,则更新检验开始时间
|
||||
if (Objects.isNull(task.getInspectionStartTime())) {
|
||||
updateWrapper.set(QmsIncomingInspectionTask::getInspectionStartTime, request.getInspectionStartTime());
|
||||
}
|
||||
|
||||
updateWrapper.update();
|
||||
|
||||
if (task.getInspectionResult()) {
|
||||
|
|
|
|||
|
|
@ -19,10 +19,4 @@ public class QmsIncomingInspectionTaskSubmitQO {
|
|||
*/
|
||||
@NotNull(message = "检验结果不能为空")
|
||||
private Boolean qualified;
|
||||
|
||||
/**
|
||||
* 检验开始时间
|
||||
*/
|
||||
@NotNull(message = "检验开始时间不能为空")
|
||||
private LocalDateTime inspectionStartTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotEmpty;
|
|||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
|
@ -24,6 +25,12 @@ public class QmsIncomingInspectionTaskTodoCheckSubmitQO {
|
|||
@NotNull(message = "物料唯一编号不能为空")
|
||||
private String materialUniqueNo;
|
||||
|
||||
/**
|
||||
* 检验开始时间
|
||||
*/
|
||||
@NotNull(message = "检验开始时间不能为空")
|
||||
private LocalDateTime inspectionStartTime;
|
||||
|
||||
/**
|
||||
* 样本数量
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue