修改多对多关系新增的问题以及查询的问题

This commit is contained in:
2025-07-25 14:49:15 +08:00
parent 9216b1741f
commit a331b93ab1
6 changed files with 42 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.List;
/**
@@ -21,7 +22,8 @@ public class WmsCheckTaskBo extends BaseEntity {
* 主键
*/
private Long taskId;
//检查项id
private List<Long> itemId;
/**
* 任务名称
*/

View File

@@ -37,5 +37,9 @@ public class WmsCheckTaskVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 检查项列表
*/
private java.util.List<WmsCheckItemVo> itemList;
}

View File

@@ -1,5 +1,7 @@
package com.klp.mes.qc.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.mes.qc.domain.WmsCheckTask;
import com.klp.mes.qc.domain.vo.WmsCheckTaskVo;
import com.klp.common.core.mapper.BaseMapperPlus;
@@ -12,4 +14,5 @@ import com.klp.common.core.mapper.BaseMapperPlus;
*/
public interface WmsCheckTaskMapper extends BaseMapperPlus<WmsCheckTaskMapper, WmsCheckTask, WmsCheckTaskVo> {
Page<WmsCheckTaskVo> selectVoPagePlus(Page<Object> build, LambdaQueryWrapper<WmsCheckTask> lqw);
}

View File

@@ -35,7 +35,7 @@ public interface IWmsCheckTaskService {
/**
* 新增检查任务
*/
Boolean insertByBo(WmsCheckTaskBo bo);
int insertByBo(WmsCheckTaskBo bo);
/**
* 修改检查任务

View File

@@ -7,6 +7,8 @@ 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.WmsCheckTaskItem;
import com.klp.mes.qc.mapper.WmsCheckTaskItemMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.mes.qc.domain.bo.WmsCheckTaskBo;
@@ -14,6 +16,7 @@ import com.klp.mes.qc.domain.vo.WmsCheckTaskVo;
import com.klp.mes.qc.domain.WmsCheckTask;
import com.klp.mes.qc.mapper.WmsCheckTaskMapper;
import com.klp.mes.qc.service.IWmsCheckTaskService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@@ -30,6 +33,7 @@ import java.util.Collection;
public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService {
private final WmsCheckTaskMapper baseMapper;
private final WmsCheckTaskItemMapper wmsCheckTaskItemMapper;
/**
* 查询检查任务
@@ -45,7 +49,7 @@ public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService {
@Override
public TableDataInfo<WmsCheckTaskVo> queryPageList(WmsCheckTaskBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsCheckTask> lqw = buildQueryWrapper(bo);
Page<WmsCheckTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<WmsCheckTaskVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@@ -68,15 +72,28 @@ public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService {
/**
* 新增检查任务
*/
@Transactional()
@Override
public Boolean insertByBo(WmsCheckTaskBo bo) {
public int insertByBo(WmsCheckTaskBo bo) {
WmsCheckTask add = BeanUtil.toBean(bo, WmsCheckTask.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
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++;
}
}
if (mainFlag) {
bo.setTaskId(add.getTaskId());
}
return flag;
return count;
}
/**

View File

@@ -14,6 +14,15 @@
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.klp.mes.qc.domain.vo.WmsCheckTaskVo">
SELECT t.*, GROUP_CONCAT(i.item_name) AS itemNames, GROUP_CONCAT(i.item_id) AS itemIds
FROM wms_check_task t
LEFT JOIN wms_check_task_item ti ON t.task_id = ti.check_task_id AND ti.del_flag = 0
LEFT JOIN wms_check_item i ON ti.check_item_id = i.item_id AND i.del_flag = 0
WHERE t.del_flag = 0
${ew.customSqlSegment}
GROUP BY t.task_id
</select>
</mapper>