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