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

import com.xisc.pm.domain.entity.PmPonoWtInfo;
import com.xisc.pm.domain.repository.PmPonoWtInfoRepository;
import com.xisc.pm.infra.mapper.PmPonoWtInfoMapper;
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;

/**
 * 炉重信息表(PmPonoWtInfo)资源库
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-08-12 08:26:58
 */
@Component
public class PmPonoWtInfoRepositoryImpl extends BaseRepositoryImpl<PmPonoWtInfo> implements PmPonoWtInfoRepository {
    @Resource
    private PmPonoWtInfoMapper pmPonoWtInfoMapper;

    @Override
    public List<PmPonoWtInfo> selectList(PmPonoWtInfo pmPonoWtInfo) {
        return pmPonoWtInfoMapper.selectList(pmPonoWtInfo);
    }

    @Override
    public PmPonoWtInfo selectByPrimary(Long pmPonoWtInfoId) {
        PmPonoWtInfo pmPonoWtInfo = new PmPonoWtInfo();
        pmPonoWtInfo.setPmPonoWtInfoId(pmPonoWtInfoId);
        List<PmPonoWtInfo> pmPonoWtInfos = pmPonoWtInfoMapper.selectList(pmPonoWtInfo);
        if (CollectionUtils.isEmpty(pmPonoWtInfos)) {
            return null;
        }
        return pmPonoWtInfos.get(0);
    }

    @Override
    public List<PmPonoWtInfo> selectByPrecCastAndPonoList(List<String> precCastLotNoList, List<String> prePonoList, Long tenantId) {
        return this.selectByCondition(Condition.builder(PmPonoWtInfo.class)
                .andWhere(Sqls.custom().andEqualTo(PmPonoWtInfo.FIELD_TENANT_ID, tenantId))
                .andWhere(Sqls.custom().andIn(PmPonoWtInfo.FIELD_PREC_CAST_LOT_NO, precCastLotNoList))
                .andWhere(Sqls.custom().andIn(PmPonoWtInfo.FIELD_PREC_PONO, prePonoList))
                .build());
    }
}
