package com.xisc.pm.infra.repository.impl;

import com.xisc.pm.domain.entity.PmPdPlateInfo;
import com.xisc.pm.domain.repository.PmPdPlateInfoRepository;
import com.xisc.pm.infra.mapper.PmPdPlateInfoMapper;
import org.apache.commons.collections.CollectionUtils;
import org.hzero.mybatis.base.impl.BaseRepositoryImpl;
import org.hzero.mybatis.domian.Condition;
import org.hzero.mybatis.util.Sqls;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

/**
 * 钢板信息表(PmPdPlateInfo)资源库
 *
 * @author 蒋雨航 yuhang.jiang02@hand-china.com
 * @since 2024-08-22 19:58:31
 */
@Component
public class PmPdPlateInfoRepositoryImpl extends BaseRepositoryImpl<PmPdPlateInfo> implements PmPdPlateInfoRepository {
    @Resource
    private PmPdPlateInfoMapper pmPdPlateInfoMapper;

    @Override
    public List<PmPdPlateInfo> selectList(PmPdPlateInfo pmPdPlateInfo) {
        return pmPdPlateInfoMapper.selectList(pmPdPlateInfo);
    }

    @Override
    public PmPdPlateInfo selectByPrimary(Long plateInfoId) {
        PmPdPlateInfo pmPdPlateInfo = new PmPdPlateInfo();
        pmPdPlateInfo.setPmPdPlateInfoId(plateInfoId);
        List<PmPdPlateInfo> pmPdPlateInfos = pmPdPlateInfoMapper.selectList(pmPdPlateInfo);
        if (CollectionUtils.isEmpty(pmPdPlateInfos)) {
            return null;
        }
        return pmPdPlateInfos.get(0);
    }

    @Override
    public List<PmPdPlateInfo> selectByPlateNoList(Long tenantId, List<String> plateNoList) {
        return this.selectByCondition(Condition.builder(PmPdPlateInfo.class)
                .andWhere(Sqls.custom().andIn(PmPdPlateInfo.FIELD_PLATE_NO, plateNoList))
                .andWhere(Sqls.custom().andEqualTo(PmPdPlateInfo.FIELD_TENANT_ID, tenantId)).build());
    }
}
