liujie
2025-10-15 49b34fc604f2983f406ab2db5aa0f2eca4ab0d74
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -8,6 +8,9 @@
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;
@@ -46,10 +49,13 @@
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.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -104,6 +110,7 @@
    @Resource
    private TCrmWarehouseMapper crmWarehouseMapper;
    @Override
    public PageInfo<TErpProcurementVo> pageList(TErpProcurementQuery query, SysUser user) {
@@ -189,7 +196,11 @@
                sTime = split[0] + " 00:00:00";
                eTime = split[1] + " 23:59:59";
            }
            PageInfo<TErpProcurementVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
            if(supplierClinicId.isEmpty()){
                return pageInfo;
            }
            List<TErpProcurementVo> list = this.baseMapper.pageListWarehouse(query, pageInfo, user, sTime, eTime, supplierClinicId);
//            if (list.isEmpty()) {
//                return pageInfo;
@@ -445,6 +456,13 @@
    public DetailProcurementVO detailProcurement(String clinicSupplierId, SysUser user, String id) {
        DetailProcurementVO detailProcurementVO = new DetailProcurementVO();
        TErpProcurement tErpProcurement = this.getById(id);
        if (tErpProcurement.getWarehousingUserId()!=null && !tErpProcurement.getWarehousingUserId().isEmpty()) {
            SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tErpProcurement.getWarehousingUserId()));
            detailProcurementVO.setWarehousingUserName(sysUser.getUserName());
        }
        detailProcurementVO.setWarehousingTime(tErpProcurement.getWarehousingTime());
        detailProcurementVO.setStatus(tErpProcurement.getStatus());
        detailProcurementVO.setCreateTime(tErpProcurement.getCreateTime());
        detailProcurementVO.setSendTime(tErpProcurement.getSendTime());
@@ -641,6 +659,11 @@
    }
    @Override
    public List<TErpProcurementGoods> branchAdminStatisticsThree(List<String> clinicIds) {
        return this.baseMapper.branchAdminStatisticsThree(clinicIds);
    }
    @Override
    public PageInfo<ClinicProcurementReportVO> clinicProcurementReport(ClinicProcurementReportQuery query) {
        PageInfo<ClinicProcurementReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<ClinicProcurementReportVO> list = this.baseMapper.clinicProcurementReport(query, pageInfo);
@@ -660,4 +683,56 @@
        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;
    }
}