feat(qc): 新增检查任务时复制检查项详细信息

- 引入WmsCheckItemMapper依赖以查询检查项详情
- 在新增检查任务时,根据检查项ID查询并复制目标值、标准值等字段
-优化检查任务项插入逻辑,确保检查项数据完整性- 使用Map结构提高检查项查找效率
-保持原有异常处理机制,确保数据插入失败时能及时抛出异常
This commit is contained in:
2025-10-17 11:44:14 +08:00
parent 03b98b33d2
commit 6a406c05a4

View File

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.mes.qc.domain.WmsCheckItem;
import com.klp.mes.qc.domain.WmsCheckTaskItem;
import com.klp.mes.qc.domain.vo.WmsCheckItemVo;
import com.klp.mes.qc.mapper.WmsCheckItemMapper;
@@ -21,10 +22,7 @@ import com.klp.mes.qc.mapper.WmsCheckTaskMapper;
import com.klp.mes.qc.service.IWmsCheckTaskService;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
/**
* 检查任务Service业务层处理
@@ -37,6 +35,7 @@ import java.util.Collection;
public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService {
private final WmsCheckTaskMapper baseMapper;
private final WmsCheckItemMapper wmsCheckItemMapper;
private final WmsCheckTaskItemMapper wmsCheckTaskItemMapper;
/**
@@ -133,17 +132,43 @@ public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService {
validEntityBeforeSave(add);
boolean mainFlag = baseMapper.insert(add) > 0;
int count = 0;
for (Long itemId : bo.getItemId()) {
WmsCheckTaskItem wmsCheckTaskItem = new WmsCheckTaskItem();
wmsCheckTaskItem.setCheckTaskId(add.getTaskId());
wmsCheckTaskItem.setCheckItemId(itemId);
int insertCount = wmsCheckTaskItemMapper.insert(wmsCheckTaskItem);
if (insertCount <= 0) {
throw new RuntimeException("新增检查任务失败检查项ID" + itemId);
} else {
count++;
// 查询检查项的详细信息
List<Long> itemIds = bo.getItemId();
if (itemIds != null && !itemIds.isEmpty()) {
// 查询检查项的详细信息
List<WmsCheckItem> checkItems = wmsCheckItemMapper.selectBatchIds(itemIds);
Map<Long, WmsCheckItem> itemMap = new HashMap<>();
for (WmsCheckItem item : checkItems) {
itemMap.put(item.getItemId(), item);
}
// 插入检查任务项
for (Long itemId : itemIds) {
WmsCheckTaskItem wmsCheckTaskItem = new WmsCheckTaskItem();
wmsCheckTaskItem.setCheckTaskId(add.getTaskId());
wmsCheckTaskItem.setCheckItemId(itemId);
// 复制检查项的五个字段值
WmsCheckItem checkItem = itemMap.get(itemId);
if (checkItem != null) {
wmsCheckTaskItem.setTargetUpper(checkItem.getTargetUpper());
wmsCheckTaskItem.setTargetLower(checkItem.getTargetLower());
wmsCheckTaskItem.setStandardTarget(checkItem.getStandardTarget());
wmsCheckTaskItem.setUnit(checkItem.getUnit());
wmsCheckTaskItem.setQualitativeQuantitative(checkItem.getQualitativeQuantitative());
}
int insertCount = wmsCheckTaskItemMapper.insert(wmsCheckTaskItem);
if (insertCount <= 0) {
throw new RuntimeException("新增检查任务失败检查项ID" + itemId);
} else {
count++;
}
}
}
if (mainFlag) {
bo.setTaskId(add.getTaskId());
}