package org.dromara.qa.qm.service.impl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.dromara.qa.qm.domain.bo.QmBatchBo; import org.dromara.qa.qm.domain.vo.QmBatchVo; import org.dromara.qa.qm.domain.QmBatch; import org.dromara.qa.qm.mapper.QmBatchMapper; import org.dromara.qa.qm.service.IQmBatchService; import java.util.List; import java.util.Map; import java.util.Collection; /** * 检验批次Service业务层处理 * * @author zhuguifei * @date 2026-03-02 */ @Slf4j @RequiredArgsConstructor @Service public class QmBatchServiceImpl implements IQmBatchService { private final QmBatchMapper baseMapper; /** * 查询检验批次 * * @param id 主键 * @return 检验批次 */ @Override public QmBatchVo queryById(String id){ return baseMapper.selectVoById(id); } /** * 分页查询检验批次列表 * * @param bo 查询条件 * @param pageQuery 分页参数 * @return 检验批次分页列表 */ @Override public TableDataInfo queryPageList(QmBatchBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } /** * 查询符合条件的检验批次列表 * * @param bo 查询条件 * @return 检验批次列表 */ @Override public List queryList(QmBatchBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } private LambdaQueryWrapper buildQueryWrapper(QmBatchBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(QmBatch::getId); lqw.like(StringUtils.isNotBlank(bo.getBatchCode()), QmBatch::getBatchCode, bo.getBatchCode()); lqw.eq(StringUtils.isNotBlank(bo.getTyp()), QmBatch::getTyp, bo.getTyp()); lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), QmBatch::getEqpCode, bo.getEqpCode()); lqw.eq(StringUtils.isNotBlank(bo.getMatCode()), QmBatch::getMatCode, bo.getMatCode()); lqw.eq(bo.getBatchDate() != null, QmBatch::getBatchDate, bo.getBatchDate()); lqw.eq(StringUtils.isNotBlank(bo.getFlag()), QmBatch::getFlag, bo.getFlag()); lqw.between(params.get("beginToMesDate") != null && params.get("endToMesDate") != null, QmBatch::getToMesDate ,params.get("beginToMesDate"), params.get("endToMesDate")); lqw.between(params.get("beginFromMesDate") != null && params.get("endFromMesDate") != null, QmBatch::getFromMesDate ,params.get("beginFromMesDate"), params.get("endFromMesDate")); lqw.eq(bo.getDeleted() != null, QmBatch::getDeleted, bo.getDeleted()); lqw.eq(StringUtils.isNotBlank(bo.getCategory()), QmBatch::getCategory, bo.getCategory()); lqw.eq(StringUtils.isNotBlank(bo.getState()), QmBatch::getState, bo.getState()); return lqw; } /** * 新增检验批次 * * @param bo 检验批次 * @return 是否新增成功 */ @Override public Boolean insertByBo(QmBatchBo bo) { QmBatch add = MapstructUtils.convert(bo, QmBatch.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); } return flag; } /** * 修改检验批次 * * @param bo 检验批次 * @return 是否修改成功 */ @Override public Boolean updateByBo(QmBatchBo bo) { QmBatch update = MapstructUtils.convert(bo, QmBatch.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ private void validEntityBeforeSave(QmBatch entity){ //TODO 做一些数据校验,如唯一约束 } /** * 校验并批量删除检验批次信息 * * @param ids 待删除的主键集合 * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } }