xuhy
2025-10-15 1f1b5cc1856b5b46eadf8743184c02c1d6529e12
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -8,8 +8,12 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.dto.AddProcurementDto;
import com.ruoyi.system.export.ProcurementReportClinicExport;
import com.ruoyi.system.export.ProcurementReportPlatformExport;
import com.ruoyi.system.export.ProcurementReportSupplierExport;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.ClinicProcurementReportQuery;
import com.ruoyi.system.query.TErpGoodsQuery;
import com.ruoyi.system.query.TErpProcurementQuery;
import com.ruoyi.system.service.TErpGoodsService;
@@ -32,6 +36,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.net.ssl.SSLContext;
@@ -44,10 +49,12 @@
import java.math.RoundingMode;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -188,6 +195,9 @@
                eTime = split[1] + " 23:59:59";
            }
            PageInfo<TErpProcurementVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
            if(CollectionUtils.isEmpty(supplierClinicId)){
                return pageInfo;
            }
            List<TErpProcurementVo> list = this.baseMapper.pageListWarehouse(query, pageInfo, user, sTime, eTime, supplierClinicId);
//            if (list.isEmpty()) {
//                return pageInfo;
@@ -638,4 +648,76 @@
        return this.baseMapper.supplierSalesStatisticsGoodsCountMonth(supplierId,startTime, endTime,goodsName);
    }
    @Override
    public PageInfo<ClinicProcurementReportVO> clinicProcurementReport(ClinicProcurementReportQuery query) {
        PageInfo<ClinicProcurementReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<ClinicProcurementReportVO> list = this.baseMapper.clinicProcurementReport(query, pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<String> procurementIds = list.stream().map(TErpProcurement::getId).collect(Collectors.toList());
        List<TErpProcurementGoods> erpProcurementGoods = erpProcurementGoodsMapper.selectList(new QueryWrapper<TErpProcurementGoods>().lambda().in(TErpProcurementGoods::getProcurementId, procurementIds));
        for (ClinicProcurementReportVO clinicProcurementReportVO : list) {
            List<TErpProcurementGoods> procurementGoods = erpProcurementGoods.stream().filter(tErpProcurementGoods -> tErpProcurementGoods.getProcurementId().equals(clinicProcurementReportVO.getId())).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(procurementGoods)){
                int sum = procurementGoods.stream().mapToInt(TErpProcurementGoods::getPurchaseCount).sum();
                clinicProcurementReportVO.setProcurementGoodsNum(sum);
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public List<ProcurementReportClinicExport> exportProcurementReportClinic(ClinicProcurementReportQuery query) {
        List<ProcurementReportClinicExport> list = this.baseMapper.exportProcurementReportClinic(query);
        if(CollectionUtils.isEmpty(list)){
            return new ArrayList<>();
        }
        List<String> procurementIds = list.stream().map(ProcurementReportClinicExport::getId).collect(Collectors.toList());
        List<TErpProcurementGoods> erpProcurementGoods = erpProcurementGoodsMapper.selectList(new QueryWrapper<TErpProcurementGoods>().lambda().in(TErpProcurementGoods::getProcurementId, procurementIds));
        for (ProcurementReportClinicExport procurementReportClinicExport : list) {
            List<TErpProcurementGoods> procurementGoods = erpProcurementGoods.stream().filter(tErpProcurementGoods -> tErpProcurementGoods.getProcurementId().equals(procurementReportClinicExport.getId())).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(procurementGoods)){
                int sum = procurementGoods.stream().mapToInt(TErpProcurementGoods::getPurchaseCount).sum();
                procurementReportClinicExport.setProcurementGoodsNum(sum);
            }
            if(Objects.nonNull(procurementReportClinicExport.getPayTime())){
                String payTimeStr = new SimpleDateFormat("yyyy-MM-dd").format(procurementReportClinicExport.getPayTime());
                procurementReportClinicExport.setPayTimeStr(payTimeStr);
            }
        }
        return list;
    }
    @Override
    public List<ProcurementReportSupplierExport> exportProcurementReportSupplier(ClinicProcurementReportQuery query) {
        List<ProcurementReportSupplierExport> list = this.baseMapper.exportProcurementReportSupplier(query);
        if(CollectionUtils.isEmpty(list)){
            return new ArrayList<>();
        }
        for (ProcurementReportSupplierExport procurementReportSupplierExport : list) {
            if(Objects.nonNull(procurementReportSupplierExport.getPayTime())){
                String payTimeStr = new SimpleDateFormat("yyyy-MM-dd").format(procurementReportSupplierExport.getPayTime());
                procurementReportSupplierExport.setPayTimeStr(payTimeStr);
            }
        }
        return list;
    }
    @Override
    public List<ProcurementReportPlatformExport> exportProcurementReportPlatform(ClinicProcurementReportQuery query) {
        List<ProcurementReportPlatformExport> list = this.baseMapper.exportProcurementReportPlatform(query);
        if(CollectionUtils.isEmpty(list)){
            return new ArrayList<>();
        }
        for (ProcurementReportPlatformExport procurementReportPlatformExport : list) {
            if(Objects.nonNull(procurementReportPlatformExport.getPayTime())){
                String payTimeStr = new SimpleDateFormat("yyyy-MM-dd").format(procurementReportPlatformExport.getPayTime());
                procurementReportPlatformExport.setPayTimeStr(payTimeStr);
            }
        }
        return list;
    }
}