package org.sxkj.gd.workorder.service.impl; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springframework.stereotype.Service; import org.sxkj.gd.workorder.entity.GdOperationalRevenue; import org.sxkj.gd.workorder.mapper.GdOperationalRevenueMapper; import org.sxkj.gd.workorder.service.GdOperationalRevenueService; import org.sxkj.gd.workorder.vo.GdOperationalRevenueVo; import org.sxkj.system.cache.SysCache; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** * 运营收益Service实现类 */ @Service public class GdOperationalRevenueServiceImpl extends ServiceImpl implements GdOperationalRevenueService { @Override public IPage selectPage(Page page, String operatingIncome, String totalCost, String netProfit, String financialIrr, String marketSpace, String earnForecast, String nickName) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 根据营业收入查询 (转换为精确查询) if (StringUtils.hasText(operatingIncome)) { try { queryWrapper.eq(GdOperationalRevenue::getOperatingIncome, new BigDecimal(operatingIncome)); } catch (NumberFormatException e) { // 如果转换失败,可以忽略或记录日志 } } // 根据综合总成本费用查询 (转换为精确查询) if (StringUtils.hasText(totalCost)) { try { queryWrapper.eq(GdOperationalRevenue::getTotalCost, new BigDecimal(totalCost)); } catch (NumberFormatException e) { // } } // 根据净利润查询 (转换为精确查询) if (StringUtils.hasText(netProfit)) { try { queryWrapper.eq(GdOperationalRevenue::getNetProfit, new BigDecimal(netProfit)); } catch (NumberFormatException e) { // } } // 根据财务内部收益率查询 (转换为精确查询) if (StringUtils.hasText(financialIrr)) { try { queryWrapper.eq(GdOperationalRevenue::getFinancialIrr, new BigDecimal(financialIrr)); } catch (NumberFormatException e) { // } } // 根据市场空间模糊查询 if (StringUtils.hasText(marketSpace)) { queryWrapper.like(GdOperationalRevenue::getMarketSpace, marketSpace); } // 根据收益预测模糊查询 if (StringUtils.hasText(earnForecast)) { queryWrapper.like(GdOperationalRevenue::getEarnForecast, earnForecast); } // 根据创建人名称模糊查询 if (StringUtils.hasText(nickName)) { queryWrapper.like(GdOperationalRevenue::getNickName, nickName); } // 创建部门 if (!AuthUtil.isAdministrator()) { List deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())); // 将Long类型的部门ID转换为String类型 List deptIdStrList = new ArrayList<>(); for (Long deptId : deptList) { deptIdStrList.add(String.valueOf(deptId)); } queryWrapper.in(GdOperationalRevenue::getCreateDept, deptIdStrList); } // 按创建时间倒序 queryWrapper.orderByDesc(GdOperationalRevenue::getCreateTime); return this.page(page, queryWrapper); } @Override public GdOperationalRevenueVo convertToVo(GdOperationalRevenue entity) { GdOperationalRevenueVo vo = new GdOperationalRevenueVo(); vo.setId(String.valueOf(entity.getId())); vo.setOperatingIncome(entity.getOperatingIncome()); vo.setTotalCost(entity.getTotalCost()); vo.setNetProfit(entity.getNetProfit()); vo.setFinancialIrr(entity.getFinancialIrr()); vo.setMarketSpace(entity.getMarketSpace()); vo.setEarnForecast(entity.getEarnForecast()); vo.setNickName(entity.getNickName()); vo.setCreateTime(entity.getCreateTime()); return vo; } }