package cn.iocoder.yudao.module.pms.dal.mysql.qhse.jsa;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.pms.controller.admin.qhse.jsa.vo.QhseJsaPageReqVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.jsa.QhseJsaDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Set;

/**
 * QHSE_JSA工作安全分析 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface QhseJsaMapper extends BaseMapperX<QhseJsaDO> {

    default PageResult<QhseJsaDO> selectPage(QhseJsaPageReqVO reqVO, Set<Long> ids) {
        return selectPage(reqVO, new LambdaQueryWrapperX<QhseJsaDO>()
                .eqIfPresent(QhseJsaDO::getJsaNo, reqVO.getJsaNo())
                .betweenIfPresent(QhseJsaDO::getJsaTime, reqVO.getJsaTime())
                .eqIfPresent(QhseJsaDO::getJsaXh, reqVO.getJsaXh())
                .eqIfPresent(QhseJsaDO::getJobTask, reqVO.getJobTask())
                .eqIfPresent(QhseJsaDO::getJobAddress, reqVO.getJobAddress())
                .eqIfPresent(QhseJsaDO::getJsaFile, reqVO.getJsaFile())
                .eqIfPresent(QhseJsaDO::getJobDuty, reqVO.getJobDuty())
                .inIfPresent(QhseJsaDO::getDeptId, ids)
                .likeIfPresent(QhseJsaDO::getDeptName, reqVO.getDeptName())
                .eqIfPresent(QhseJsaDO::getRemark, reqVO.getRemark())
                .betweenIfPresent(QhseJsaDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(QhseJsaDO::getId));
    }

    default Long selectCountByDeptAndTime(QhseJsaPageReqVO reqVO, Set<Long> ids) {
        return selectCount(new LambdaQueryWrapperX<QhseJsaDO>()
                .inIfPresent(QhseJsaDO::getDeptId, ids)
                .betweenIfPresent(QhseJsaDO::getJsaTime, reqVO.getJsaTime()));
    }

}