liujie
2025-06-02 1e621d98f4361158df25f2b4af9b53899bfde32f
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCompanyServiceImpl.java
@@ -4,22 +4,21 @@
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.common.utils.StringUtils;
import com.ruoyi.system.dto.EditCompanyDto;
import com.ruoyi.system.dto.PushCompanyDto;
import com.ruoyi.system.mapper.TbCompanyMapper;
import com.ruoyi.system.mapper.TbOpeningBankMapper;
import com.ruoyi.system.model.TbCompany;
import com.ruoyi.system.model.TbIndustry;
import com.ruoyi.system.model.TbOpeningBank;
import com.ruoyi.system.model.TbPermit;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.CompanyListQuery;
import com.ruoyi.system.query.MyPushCompanyListQuery;
import com.ruoyi.system.service.TbCompanyService;
import com.ruoyi.system.service.TbIndustryService;
import com.ruoyi.system.service.TbOpeningBankService;
import com.ruoyi.system.service.TbPermitService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.CompanyDetailVo;
import com.ruoyi.system.vo.CustomerInfoVo;
import com.ruoyi.system.vo.IndexCompanyListVo;
import com.ruoyi.system.vo.MyPushCompanyListVo;
import org.apache.poi.ss.formula.functions.T;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -49,6 +48,18 @@
    @Autowired
    private TbOpeningBankService openingBankService;
    @Autowired
    private TbOrderService orderService;
    @Autowired
    private TbScheduleService scheduleService;
    @Autowired
    private TbBuyerCompanyInfoService buyerCompanyInfoService;
    @Autowired
    private TbUserService userService;
    @Override
    public Page<IndexCompanyListVo> getCompanyList(CompanyListQuery query, Long userId) {
@@ -187,4 +198,49 @@
        Page<MyPushCompanyListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        return this.baseMapper.getMyPushCompanyList(page,query,userId);
    }
    @Override
    public CompanyDetailVo companyDetail(String companyId, Long userId) {
        CompanyDetailVo companyDetailVo = new CompanyDetailVo();
        TbCompany tbCompany = this.baseMapper.selectById(companyId);
        BeanUtils.copyProperties(tbCompany, companyDetailVo);
        TbIndustry industry = industryService.getById(tbCompany.getCompanyIndustryId());
        companyDetailVo.setCompanyIndustryName(industry.getName());
        List<TbPermit> list = permitService.list(new LambdaQueryWrapper<TbPermit>().eq(TbPermit::getCompanyId, companyId));
        companyDetailVo.setPermits(list);
        List<TbOpeningBank> list1 = openingBankService.list(new LambdaQueryWrapper<TbOpeningBank>().eq(TbOpeningBank::getCompanyId, companyId));
        companyDetailVo.setOpeningBanks(list1);
        // 当前未产生订单
        if (tbCompany.getStatus() == 1) {
            return companyDetailVo;
        }
        TbOrder order = orderService.getOne(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).gt(TbOrder::getStatus, 0).orderByDesc(TbOrder::getCreateTime).last("limit 1"));
        companyDetailVo.setStatus(order.getStatus());
        List<TbSchedule> list2 = scheduleService.list(new LambdaQueryWrapper<TbSchedule>().eq(TbSchedule::getOrderId, order.getId()).orderByDesc(TbSchedule::getCreateTime));
        List<TbSchedule> collect = list2.stream().filter(e -> StringUtils.isEmpty(e.getParentId())).collect(Collectors.toList());
        for (TbSchedule tbSchedule : collect) {
            List<TbSchedule> collect1 = list2.stream().filter(e -> StringUtils.isNotEmpty(e.getParentId()) && e.getParentId().equals(tbSchedule.getId())).collect(Collectors.toList());
            tbSchedule.setSchedules(collect1);
        }
        companyDetailVo.setSchedules(collect);
        companyDetailVo.setPayTime(order.getPayTime());
        companyDetailVo.setConfirmTime(order.getConfirmTime());
        TbBuyerCompanyInfo one = buyerCompanyInfoService.getOne(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, order.getId()));
        CustomerInfoVo customerInfoVo = new CustomerInfoVo();
        BeanUtils.copyProperties(one, customerInfoVo);
        companyDetailVo.setCustomerInfoVo(customerInfoVo);
        companyDetailVo.setEstimatedRevenue(order.getPrice().subtract(order.getCommissionPrice()).subtract(order.getCommissionPlatform()));
        TbUser user = userService.getById(order.getUserId());
        companyDetailVo.setCustomerName(user.getUserName());
        return companyDetailVo;
    }
}