liujie
2025-05-26 08c37794bd32cf5798ce581b472b1fae4f376d61
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCompanyServiceImpl.java
@@ -1,11 +1,25 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.mapper.TbCompanyMapper;
import com.ruoyi.system.model.TbCompany;
import com.ruoyi.system.model.TbIndustry;
import com.ruoyi.system.model.TbPermit;
import com.ruoyi.system.query.CompanyListQuery;
import com.ruoyi.system.service.TbCompanyService;
import com.ruoyi.system.service.TbIndustryService;
import com.ruoyi.system.service.TbPermitService;
import com.ruoyi.system.vo.IndexCompanyListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -18,4 +32,98 @@
@Service
public class TbCompanyServiceImpl extends ServiceImpl<TbCompanyMapper, TbCompany> implements TbCompanyService {
    @Autowired
    private TbPermitService permitService;
    @Autowired
    private TbIndustryService industryService;
    @Override
    public Page<IndexCompanyListVo> getCompanyList(CompanyListQuery query, Long userId) {
        Page<TbCompany> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<IndexCompanyListVo> page1 = new Page<>();
        LambdaQueryWrapper<TbCompany> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(TbCompany::getIsDelete,0);
        if(query.getCertificateNames()!=null && query.getCertificateNames().size()>0){
            List<TbPermit> tbPermits = permitService.list(new LambdaQueryWrapper<TbPermit>().in(TbPermit::getName, query.getCertificateNames()));
            if(tbPermits.isEmpty()){
                return page1;
            }
            queryWrapper.in(TbCompany::getId, tbPermits.stream().map(TbPermit::getCompanyId).collect(Collectors.toList()));
        }
        queryWrapper.eq(TbCompany::getCityCode,query.getCityCode());
        queryWrapper.eq(TbCompany::getAreaCode,query.getAreaCode());
        if(query.getCompanyCategorys()!=null && query.getCompanyCategorys().size()>0){
            queryWrapper.in(TbCompany::getCompanyCategory, query.getCompanyCategorys());
        }
        if(query.getRegisteredCapitals()!=null && query.getRegisteredCapitals().size()>0){
            queryWrapper.in(TbCompany::getRegisteredCapital, query.getRegisteredCapitals());
        }
        if(query.getCompanyIndustryIds()!=null && query.getCompanyIndustryIds().size()>0){
            queryWrapper.in(TbCompany::getCompanyIndustryId, query.getCompanyIndustryIds());
        }
        if(query.getTaxpayerTypes()!=null && query.getTaxpayerTypes().size()>0){
            queryWrapper.in(TbCompany::getTaxpayerType, query.getTaxpayerTypes());
        }
        if(query.getTaxCredits()!=null && query.getTaxCredits().size()>0){
            queryWrapper.in(TbCompany::getTaxCredit, query.getTaxCredits());
        }
        if(query.getHighTechEnterpriseTechnology()!=null){
            queryWrapper.eq(TbCompany::getHighTechEnterpriseTechnology, query.getHighTechEnterpriseTechnology());
        }
        if(query.getSocialSecurity()!=null){
            queryWrapper.eq(TbCompany::getSocialSecurity, query.getSocialSecurity());
        }
        if(query.getTendering()!=null){
            queryWrapper.eq(TbCompany::getTendering, query.getTendering());
        }
        if(query.getHaveTrademark()!=null){
            queryWrapper.eq(TbCompany::getHaveTrademark, query.getHaveTrademark());
        }
        if(query.getHavePatent()!=null){
            queryWrapper.eq(TbCompany::getHavePatent, query.getHavePatent());
        }
        if(query.getHaveSoftWorks()!=null){
            queryWrapper.eq(TbCompany::getHaveSoftWorks, query.getHaveSoftWorks());
        }
        if(query.getMoneySort()!=null && query.getMoneySort()==1){
            queryWrapper.orderByDesc(TbCompany::getSaleMoney);
        }else if(query.getMoneySort()!=null && query.getMoneySort()==2){
            queryWrapper.orderByAsc(TbCompany::getSaleMoney);
        }else {
            queryWrapper.orderByDesc(TbCompany::getCreateTime);
        }
        Page<TbCompany> companyPage = this.baseMapper.selectPage(page, queryWrapper);
        List<Integer> ids = companyPage.getRecords().stream().map(TbCompany::getCompanyIndustryId).collect(Collectors.toList());
        List<TbIndustry> tbIndustries = industryService.list(new LambdaQueryWrapper<TbIndustry>().in(TbIndustry::getId, ids));
        ArrayList<IndexCompanyListVo> list = new ArrayList<>();
        for (TbCompany record : companyPage.getRecords()) {
            IndexCompanyListVo indexCompanyListVo = new IndexCompanyListVo();
            indexCompanyListVo.setId(record.getId());
            indexCompanyListVo.setCompanyName(record.getCompanyName());
            TbIndustry tbIndustry = tbIndustries.stream().filter(e -> e.getId().equals(record.getCompanyIndustryId())).findFirst().orElse(null);
            indexCompanyListVo.setIndustryName(tbIndustry.getName());
            indexCompanyListVo.setEstablishTime(record.getEstablishTime());
            indexCompanyListVo.setTaxpayerType(record.getTaxpayerType());
            indexCompanyListVo.setTaxCredit(record.getTaxCredit());
            indexCompanyListVo.setCompanyCategory(record.getCompanyCategory());
            indexCompanyListVo.setHighTechEnterpriseTechnology(record.getHighTechEnterpriseTechnology());
            indexCompanyListVo.setPaidInFunds(record.getPaidInFunds());
            indexCompanyListVo.setRegisteredCapital(record.getRegisteredCapital());
            indexCompanyListVo.setSaleMoney(record.getSaleMoney());
            if(record.getUserId().equals(userId.toString())){
                indexCompanyListVo.setIsMyself(1);
            }
            list.add(indexCompanyListVo);
        }
        BeanUtils.copyProperties(companyPage,page1);
        page1.setRecords(list);
        return page1;
    }
}