TdCCustInvoiceSaleParkRelDaoImpl.java 5.48 KB
package com.zteits.pay.dao.impl;

import org.apache.commons.lang3.StringUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.util.CollectionUtil;
import com.zteits.clouds.api.dto.pay.dto.TdCCustInvoiceSaleParkRelDTO;
import com.zteits.clouds.api.dto.pay.param.InvoiceParkRelRequest;
import com.zteits.clouds.api.dto.pay.param.TdCCustInvoiceSaleQueryRequest;
import com.zteits.pay.dao.TdCCustInvoiceSaleParkRelDao;
import com.zteits.pay.domain.TdCCustInvoiceSaleParkRel;
import com.zteits.pay.domain.TdCCustInvoiceSaleParkRelExample;
import com.zteits.pay.mapper.TdCCustInvoiceSaleParkRelMapper;
import com.zteits.pay.mapper.smapper.TdCCustInvoiceSaleParkRelSMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description:
 * @Author: zengqc
 * @Date: 2022/3/22 17:03
 */
@Component
public class TdCCustInvoiceSaleParkRelDaoImpl implements TdCCustInvoiceSaleParkRelDao {

    @Autowired
    private TdCCustInvoiceSaleParkRelMapper tdCCustInvoiceSaleParkRelMapper;
    @Autowired
    private TdCCustInvoiceSaleParkRelSMapper tdCCustInvoiceSaleParkRelSMapper;

    /**
     * 根据 销方纳税人识别号(税号) 获取关联的停车场
     */
    @Override
    public List<TdCCustInvoiceSaleParkRel> queryInvoiceParkRels(List<String> invoiceTaxids) {
        if (CollectionUtil.isEmpty(invoiceTaxids)) {
            return new ArrayList<>();
        }
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();
        example.createCriteria()
                .andSaleTaxidIn(invoiceTaxids);

        return tdCCustInvoiceSaleParkRelMapper.selectByExample(example);
    }

    /**
     * 分页查询关联停车场列表
     *
     * @param request
     * @return
     */
    @Override
    public PageInfo<TdCCustInvoiceSaleParkRel> queryRelParkForPage(TdCCustInvoiceSaleQueryRequest request) {
        List<String> saleTaxids = request.getSaleTaxids();
        if (CollectionUtil.isEmpty(saleTaxids)) {
            return new PageInfo<>(new ArrayList<>());
        }
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();
        TdCCustInvoiceSaleParkRelExample.Criteria sql = example.createCriteria();
        sql.andSaleTaxidEqualTo(saleTaxids.get(0));

        // 根据名称模糊查询
        if(!StringUtils.isBlank(request.getPlName())){
            sql.andPlNameLike("%" + request.getPlName() + "%");
        }

        example.setOrderByClause("pl_no");
        List<TdCCustInvoiceSaleParkRel> list = tdCCustInvoiceSaleParkRelMapper.selectByExample(example);
        if (CollectionUtil.isNotEmpty(list)) {
            return new PageInfo<>(list);
        }
        return new PageInfo<>(new ArrayList<>());
    }

    /**
     * 删除关联的停车场列表
     *
     */
    @Override
    public void deleteInvoiceRelPlNo(InvoiceParkRelRequest invoiceParkRelRequest) {
        String saleTaxid = invoiceParkRelRequest.getSaleTaxid();
        if(saleTaxid == null){
            return;
        }
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();

        example.createCriteria().andSaleTaxidEqualTo(saleTaxid);

        tdCCustInvoiceSaleParkRelMapper.deleteByExample(example);
    }

    /**
     * 新增关联的停车场列表
     */
    @Override
    public void batchAddInvoiceRelPlNo(List<TdCCustInvoiceSaleParkRel> relList) {
        if (CollectionUtil.isEmpty(relList)) {
            return;
        }
        tdCCustInvoiceSaleParkRelSMapper.batchAddInvoiceRelPlNo(relList);
    }

    /**
     * 根据停车场编号获取关联关系列表
     *
     * @param plNos
     * @return
     */
    @Override
    public List<TdCCustInvoiceSaleParkRel> queryInvoiceSaleParkRelByPlNos(List<String> plNos) {
        if (CollectionUtil.isEmpty(plNos)) {
            return new ArrayList<>();
        }
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();

        example.createCriteria().andPlNoIn(plNos);

        List<TdCCustInvoiceSaleParkRel> saleParkRelList = tdCCustInvoiceSaleParkRelMapper.selectByExample(example);
        return saleParkRelList;
    }

    /**
     * 根据停车场编号批量删除
     *
     */
    @Override
    public void batchDeleteInvoiceRelPlNoByPlNo(List<String> plNos) {
        if (CollectionUtil.isEmpty(plNos)) {
            return ;
        }
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();

        example.createCriteria().andPlNoIn(plNos);

        tdCCustInvoiceSaleParkRelMapper.deleteByExample(example);
    }

    /**
     * 获取停车场与销方关联关系
     */
    @Override
    public List<TdCCustInvoiceSaleParkRelDTO> queryInvoiceParkRelByPlNo(List<String> plNos) {

        return tdCCustInvoiceSaleParkRelSMapper.queryInvoiceParkRelByPlNo(plNos);
    }

    /**
     * 据 税号LIST 去删除关联的停车场编号
     */
    @Override
    public void batchDeleteInvoiceParkRelByTaxIds(List<String> saleTaxIds) {
        if (CollectionUtil.isEmpty(saleTaxIds)) {
            return ;
        }
        TdCCustInvoiceSaleParkRelExample example = new TdCCustInvoiceSaleParkRelExample();

        example.createCriteria().andSaleTaxidIn(saleTaxIds);

        tdCCustInvoiceSaleParkRelMapper.deleteByExample(example);
    }

}