From 441eb455e1e8a9283cd569c132b14ba8da4c54a6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 11 十月 2025 17:49:47 +0800
Subject: [PATCH] 导出,短信,模板消息

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java |   72 +++++++++++++++++++++++++++++++++---
 1 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
index be11fba..973635f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
@@ -7,18 +8,27 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.dto.TCrmClinicDTO;
+import com.ruoyi.system.export.TCrmClinicAuditExport;
+import com.ruoyi.system.export.TCrmClinicListExport;
 import com.ruoyi.system.mapper.TCrmClinicMapper;
 import com.ruoyi.system.model.TCrmClinic;
+import com.ruoyi.system.model.TErpProcurement;
 import com.ruoyi.system.query.TCrmClinicQuery;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.TCrmClinicService;
+import com.ruoyi.system.service.TErpProcurementService;
 import com.ruoyi.system.vo.TCrmClinicVO;
 import com.ruoyi.system.vo.TCrmSupplierVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,23 +43,40 @@
 
     @Autowired
     private ISysUserService sysUserService;
+    @Autowired
+    private TErpProcurementService erpProcurementService;
 
     @Override
     public PageInfo<TCrmClinicVO> pageList(TCrmClinicQuery query) {
-
-        // TODO 业绩状态查询处理
-
+        query.setCreateTime(LocalDate.now());
         PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TCrmClinicVO> list = this.baseMapper.pageList(query,pageInfo);
+        if(CollectionUtils.isEmpty(list)){
+            return pageInfo;
+        }
+
+        List<String> clinicIds = list.stream().map(TCrmClinicVO::getId).collect(Collectors.toList());
+        List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
+                .in(TErpProcurement::getClinicId, clinicIds)
+                .in(TErpProcurement::getStatus, Arrays.asList(3,4,5))
+                .likeRight(TErpProcurement::getCreateTime, LocalDate.now()));
+        for (TCrmClinicVO tCrmClinicVO : list) {
+            List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(tCrmClinicVO.getId())).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(procurementList)){
+                tCrmClinicVO.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add));
+            }
+
+            if(Objects.nonNull(tCrmClinicVO.getMonthPurchaseAmount()) && tCrmClinicVO.getMonthPurchaseAmount().compareTo(tCrmClinicVO.getLowProcurementMoney())>0){
+                tCrmClinicVO.setPerformanceStatus(2);
+            }
+
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
 
     @Override
     public PageInfo<TCrmClinicVO> pageAuditList(TCrmClinicQuery query) {
-
-        // TODO 业绩状态查询处理
-
         PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TCrmClinicVO> list = this.baseMapper.pageAuditList(query,pageInfo);
         pageInfo.setRecords(list);
@@ -101,4 +128,37 @@
         }
         return R.ok();
     }
+
+    @Override
+    public List<TCrmClinicAuditExport> exportAudit(TCrmClinicQuery query) {
+        List<TCrmClinicAuditExport> list = this.baseMapper.exportAudit(query);
+        return list;
+    }
+
+    @Override
+    public List<TCrmClinicListExport> exportList(TCrmClinicQuery query) {
+        query.setCreateTime(LocalDate.now());
+        List<TCrmClinicListExport> list = this.baseMapper.exportList(query);
+        if(CollectionUtils.isEmpty(list)){
+            return list;
+        }
+
+        List<String> clinicIds = list.stream().map(TCrmClinicListExport::getId).collect(Collectors.toList());
+        List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
+                .in(TErpProcurement::getClinicId, clinicIds)
+                .in(TErpProcurement::getStatus, Arrays.asList(3,4,5))
+                .likeRight(TErpProcurement::getCreateTime, LocalDate.now()));
+        for (TCrmClinicListExport crmClinicListExport : list) {
+            List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(crmClinicListExport.getId())).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(procurementList)){
+                crmClinicListExport.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add));
+            }
+
+            if(Objects.nonNull(crmClinicListExport.getMonthPurchaseAmount()) && crmClinicListExport.getMonthPurchaseAmount().compareTo(crmClinicListExport.getLowProcurementMoney())>0){
+                crmClinicListExport.setPerformanceStatus(2);
+            }
+
+        }
+        return list;
+    }
 }

--
Gitblit v1.7.1