From f7f8f192ac14043608110489d34c8645e12929ad Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 04 十一月 2025 11:16:15 +0800
Subject: [PATCH] 供应商核查
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java | 87 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 83 insertions(+), 4 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
index 029c9a8..7344acc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -6,10 +6,8 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.system.model.TCrmClinic;
-import com.ruoyi.system.model.TErpProcurement;
-import com.ruoyi.system.service.TCrmClinicService;
-import com.ruoyi.system.service.TErpProcurementService;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.util.AIUtil;
import com.ruoyi.system.vo.TCrmClinicVO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +36,12 @@
private TCrmClinicService crmClinicService;
@Autowired
private TErpProcurementService erpProcurementService;
+ @Autowired
+ private TCrmSupplierService crmSupplierService;
+ @Autowired
+ private TCrmSupplierVerifyService crmSupplierVerifyService;
+ @Autowired
+ private TSysOtherConfigService sysOtherConfigService;
@Scheduled(fixedRate = 86460000)
// @Scheduled(cron = "10 0 0 * * ?")
@@ -97,4 +101,79 @@
}
}
+ @Scheduled(cron = "0 0 1 * * ?")
+ public void dayUpdateSupplierVerify() {
+ try {
+ // 每天1点生成供应商周期性的核查
+ List<TCrmSupplier> crmSuppliers = crmSupplierService.list();
+ if(!CollectionUtils.isEmpty(crmSuppliers)){
+ // 查询核查周期配置
+ TSysOtherConfig sysOtherConfig = sysOtherConfigService.getById(1);
+ List<String> supplierIds = crmSuppliers.stream().map(TCrmSupplier::getId).collect(Collectors.toList());
+ // 查询审核列表
+ List<TCrmSupplierVerify> crmSupplierVerifies = crmSupplierVerifyService.list(Wrappers.lambdaQuery(TCrmSupplierVerify.class)
+ .in(TCrmSupplierVerify::getSupplierId, supplierIds)
+ .orderByDesc(TCrmSupplierVerify::getGenerateTime));
+ for (TCrmSupplier crmSupplier : crmSuppliers) {
+ List<TCrmSupplierVerify> supplierVerifies = crmSupplierVerifies.stream().filter(crmSupplierVerify -> crmSupplier.getId().equals(crmSupplierVerify.getSupplierId())).collect(Collectors.toList());
+ Integer verifyUnit = sysOtherConfig.getVerifyUnit();
+ Integer verifyValue = sysOtherConfig.getVerifyValue();
+ if (!CollectionUtils.isEmpty(supplierVerifies)) {
+ // 根据最新的核查进行比较核查周期
+ TCrmSupplierVerify tCrmSupplierVerify = supplierVerifies.get(0);
+ LocalDate generateTime = tCrmSupplierVerify.getGenerateTime();
+ LocalDate nextVerifyDate = calculateNextVerifyDate(generateTime, verifyUnit, verifyValue);
+ if (nextVerifyDate != null && nextVerifyDate.isEqual(LocalDate.now())) {
+ createSupplierVerify(crmSupplier);
+ }
+ } else {
+ // 根据供应商添加时间进行比较核查周期
+ LocalDate createTime = crmSupplier.getCreateTime().toLocalDate();
+ LocalDate nextVerifyDate = calculateNextVerifyDate(createTime, verifyUnit, verifyValue);
+ if (nextVerifyDate != null && nextVerifyDate.isEqual(LocalDate.now())) {
+ createSupplierVerify(crmSupplier);
+ }
+ }
+
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 计算下一次供应商核查时间
+ * @param baseDate
+ * @param verifyUnit
+ * @param verifyValue
+ * @return
+ */
+ private LocalDate calculateNextVerifyDate(LocalDate baseDate, Integer verifyUnit, Integer verifyValue) {
+ switch (verifyUnit) {
+ case 1:
+ return baseDate.plusDays(verifyValue);
+ case 2:
+ return baseDate.plusMonths(verifyValue);
+ case 3:
+ return baseDate.plusYears(verifyValue);
+ default:
+ return null;
+ }
+ }
+
+
+ /**
+ * 供应商周期核查
+ * @param crmSupplier
+ */
+ private void createSupplierVerify(TCrmSupplier crmSupplier) {
+ TCrmSupplierVerify crmSupplierVerify = new TCrmSupplierVerify();
+ crmSupplierVerify.setSupplierId(crmSupplier.getId());
+ crmSupplierVerify.setGenerateTime(LocalDate.now());
+ crmSupplierVerify.setStatus(1);
+ crmSupplierVerifyService.save(crmSupplierVerify);
+ }
+
}
--
Gitblit v1.7.1